@komandakycto
php программист

Чем деплоить php проекты?

Кто-нибудь использует системы деплоя приложений на боевые сервера? В чем основные отличия от простого pull стабильной ветки в системе контроля версий? Есть ли резон в их использовании?
  • Вопрос задан
  • 2622 просмотра
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Часто для деплоя требуется
а) совершить некие действия: скомпилировать css, собрать js, накатить миграции базы итд...
б) в процессе деплоя протестировать что получилось и решить стоит ли вообще деплоить (+ дать по башке автору комита который провалил тесты)
Все эти задачи и должен делать сервер CI.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Не забудьте про rsync как средство деплоя.

Вообще все просто, при деплое через git pull у вас перестает работать текущая версия сайта. И время простоя зависит от сложности деплоя. Например вам нужно установить вендоры - пока будет работать composer install мы ждем. Затем мы чистим кеш - опять простой. Затем миграции. Снова ждем, а миграции могут выполняться долго в зависимости от сложности... хотя они редко выполняются дольше пары минут.

А всякие тулзы типа капифони и т.д. имеют возможность версионизации. То есть пока у вас поднимается новая версия - старая обрабатывает запросы. Как только миграции будут накачены, капифони просто поменяет симлинки и релоаднет nginx (не перезагрузит, а только реалоаднет).

А когда приходится при каждой выкатке на сервер еще и за окружением следить вход пускают еще и ansible/puppet. Так же есть еще и Docker.
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Как вариант phing.
У нас проект разворачивается на 3 разных по назначению сервера, включая БД.
Можно сделать и откат версии. Для миграционников это в принципе и так очевидная операция, а для версий кода используется переключение симлинка на папку с другим деплоем и перезагрузка кэша.
pull также не удобен и по причине безопасности - надо каждый сервер прописывать в вайт-лист для сервера git.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы