Чем бы дитя ни тешилось, лишь бы по FTP не деплоило и не масштабировало свои продукты, перекачивая образы виртуальных машин. Респект и хвала умным парням и девушкам, которые знают, что такое CI, CD и активно их используют в своем продакшне. Cust Dev по России показал, что все очень плохо. Увы.
Крик души
Соблюдаем анонимность и надеемся никого не обидеть. На вопрос “Как вы работаете и доставляете свой продукт в продакшн?” мы услышали уйму различных ответов. Вот некоторые тезисы из самых популярных ответов:
- Я не пользуюсь ide, все делаю через админку вордпресса, ручками открывая файлы с фтпшника в саблайме.
- Разворачиваем новые экземпляры своего SaaS, копируя целиком виртуалки. За ночь копируется нормально.
- Как-как? По ftp, а git используем для резервных копий.
- Мы планировали использовать git, но как-то не получилось. Сейчас все руками.
- У меня все настроено с помощью капистрано.
- Все через пулл-реквесты, потом суровый код-ревью, потом CI подтягивает все в прод.
Это не сферические кони в вакууме, а реальные люди из реальных студий и агентств России из крупных и мелких городов. На удивление различия в относительных долях того или иного ответа в зависимости от региона оказались несущественными. Быть может, для небольшого и несерьезного проекта, типа сайта-одностраничника, подобный подход вполне себе вменяемый, но если ты ответственный за DevOps в более-менее крупной веб-студии, для безболезненного масштабирования просто жизненно-необходимо придерживаться git workflow и использования ряда CI/CD инструментов.
SaaS масштабирование
Боль у каждого своя, и как использовать тот или иной инструмент решает каждый сам. Если вы — счастливый обладатель SaaS решения (системы мониторинга, CRM, CMS, в общем, все, где нужно масштабироваться быстро по горизонтали) и вы до сих пор клонируете виртуалки, то
Использование системы не по назначению, перманентное хранилище и FTP
Есть то, что есть, и работать приходится именно с этим. Особенности работы Docker образов и контейнеров включают в себя определенные ограничения для файловых операций внутри контейнера, а именно — неперсистентность результата их выполнения после перезапуска процесса веб-сервера (что порождает пересоздание контейнера) или перебилда image вашего приложения. Мы, хоть и косвенно, но являемся Shared CaaS решением. Наше предложение — хранилище с FTP доступом из вне. Папка монтируется в контейнер при билде и запуске приложения.
Для любителей
- Зарегистрироваться у нас
- Нажать кнопку + справа вверху
- Ввести имя приложения, выбрать датацентр
- Выбрать нужный темплейт — Any PHP
- Дождаться окончания создания приложения, перейти в п.меню Storage
- Кликнуть на строку /app/www и получить данные для подключения: Host, Username, Password. Если изменения DNS еще не настигли ваш узел связи или у вас закешировано там что-то другое, то советуем использовать доменное имя инстанса, на котором создано ваше приложение: п.меню Settings, посмотреть на git url и прочитать хостнейм — то, что между символами “@” и ”:”.
Подчеркну, что мы далеки от такого подхода в разработке, поэтому будем крайне призательны вам за фидбек по этому флоу — что нужно, что не нужно.
Что делать и кто виноват?
Если вы разработчик и вы заинтересованы в своем профессиональном росте, то мы с радостью окажем вам консультацию по работе с git, билдпаками, поможем подобрать оптимальную продакшн-конфигурацию вашего приложения. Саппорт всегда к вашим услугам.
Если же у вас есть собственный проект и вы испытываете определенные сложности в работе/продакшн настройке или просто хотите оптимизировать деплой вашего проекта, сделать все по уму, наладить масштабирование, быть уверенными в отказоустойчивости, мы готовы вам помочь с переездом к нам и попутно проведем полный аудит вашей архитектуры.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (35)
navion
15.06.2016 23:15Наше предложение — хранищище с FTP доступом из вне.
Глупый вопрос, а через NFS 4.1 это нельзя реализовать?atoshin
15.06.2016 23:22+1Глупый ответ: для большинства пользователей настроить доступ по ftp гораздо проще, чем по NFS
navion
15.06.2016 23:48Топик вроде не о простоте, а по NFS можно подключить стандартный docker volume.
AdaStreamer
15.06.2016 23:58+1Вы, наверное, о разных вещах говорите. Тут речь идет о предоставлении доступа пользователям к папкам, примонтированным к контейнерам их приложений.
adatheleader
15.06.2016 23:17Ребят, а почему минусуете-то? Тут правда жизни написана. Все действительно очень плохо. Часто встречаются «программисты», которые про git только слышали, но делать ничего не хотят. Хотя в каком-то городе в Германии (или само правительство страны, не помню точно) использовали git для принятия законов.
Samouvazhektra
16.06.2016 05:02+3ну так CI->развертывание тестовой среды->покрытие тестами это всё времязатраты->бабло которое очень многие не готовы платить, из вариантов Петя который делает проект за 3 недели и за 30 енотов и Вася который выдаст результат за 10 енотов и всего за неделю — предпочтут Васю, который еще как добрый парень объяснит — что он скромный честный и работящий, а другие просто впаривают ерунду и разводят неразумных клиентов на бабки, и портфолио у Васи солидное и отзывы хорошие — так как никто внутряк даже не открывал, а ошибки, если что быстренько по фтп поправятся, если найдутся… И такой расклад до достижения какого то определенного уровня многих устраивает. У нас к сожалению большой пласт бизнеса просто не воспринимает с должной степенью роль грамотной IT инфраструктуры и перспектив её планирования, и для реализации насущных потребностей предпочтёт обратиться не к профессиналам а к знакомому «компьютерщику», который хорошо «виндовс» переустанавливает. А на спрос всегда предложение найдётся
ilyaplot
16.06.2016 10:41Пост напомнил ранние сайты на юкозе. Заходишь, а там только регистрация.
Опрос программистов надо было проводить среди тех, кто хотя бы слышал слово SaaS. Процент людей, использующих FTP в продакшене напоминал бы процент пользователей ie6 в 2023 году.AdaStreamer
16.06.2016 12:34>>> Заходишь, а там только регистрация.
Это как Тардис — больше внутри, чем снаружи :-)
Подскажешь, где найти тех, кто слышал SaaS?
thunderspb
16.06.2016 12:12Узнал тут недавно, что одна крупная компания деплоится перловыми велосипедами… ужаснулся… Некоторые деплоятся ansible… Жуть…
Почему не воспользоваться предназначенными для этого системами? Jenkins + Git/Perforce/SVN + Nexus + Docker (а можно еще туда kubernetes навернуть) творят просто чудеса… А если посмотреть в энтерпрайз решения, то там ваааще огромный выбор. Я работал с Anthill (к сожалению пару лет назад закрыли разработку) и ElectricCommander, там можно очень неплохую систему развернуть.
inf
16.06.2016 13:10А что, капистрано уже не модно? Что теперь труЪ?
AdaStreamer
16.06.2016 14:44+1Вероятно, автор статьи не совсем корректно выразился. Капистрано или любой другой си ай как раз тру, в отличие от способов работы, описанных в первых четырех тезисах.
AdaStreamer
16.06.2016 14:44+2Я так понял, что акцент должен был быть на процентном отношении использования тех или иных технологий в работе.
RealFLYNN
16.06.2016 16:58Что такое CD? (inb4: компакт-диск, азазазазаз)
Сурьезно, если хотите, чтобы стало лучше, желательно давать расшифровку используемым аббревиатурам. Тем более, сами упоминаете, что не все знакомы с этими понятиями. То, что CI — это continuous integration, я, допустим, сообразил, а вот CD — даже погуглить не получится.
Dreyk
16.06.2016 17:27- У меня все настроено с помощью капистрано.
- Все через пулл-реквесты, потом суровый код-ревью, потом CI подтягивает все в прод.
что не так с этими пунктами?adatheleader
16.06.2016 17:36+4Выше в комментариях написали уже, что в этих пунктах нет ничего плохого, просто таких разработчиков маловато.
AStek
16.06.2016 18:47Ребята, вот поясните мне нубу. Я уже лет 5 как не пишу на php но до этого писал и деплоил по FTP. Альтернатив не было. Клиент присылает доступ к php-хостингу и ни чего лутше там нет. Сейчас что-то изменилось?
AdaStreamer
16.06.2016 19:23У кого как. Если говорить о превалирующем большинстве (особенно о клиентах особо технически не подкованных), то ничего не поменялось.
i360u
Разрываюсь между первым и последним пунктом опроса...
Ernado
Очевидно же, что последний!
nochkin
А обезьяны могут говорить «мяу»?
Ernado
Каждый имеет неотъемлемое право на свое Мяу!