Izhevsk PHP Meetup #2. На пути в continuous delivery. Автодеплой
Александр Лёвин, разработчик, Пиком
Расскажу об истории моих непростых отношений с деплоем. Об эволюции от ручного деплоя к автоматическому. И, конечно, не забуду рассказать моём текущем варианте деплоя и планах его развития.
Git pull + composer install Плюсы ● Меньше ручной работы ● Какая-никакая возможность откатиться Минусы ● Бэкапы не полноценны ● Не обновляет файлы вне версионного контроля ● Возможен длительный даунтайм
Самописный инструмент Плюсы ● Можно заточить под собственные нужды ● Можно использовать любимый PHP/Python/etc Минусы ● Вместо 1 проекта 2 ● Теперь еще и инструмент надо деплоить
Что хранить в хранилище git ВСЕ НЕОБХОДИМОЕ ДЛЯ РАЗВЕРТЫВАНИЯ ● Конфигурации и настройки ● composer.json + composer.lock ● cron.tab ● настройки для других сервисов (Monit/Munin/ etc) ● Сам скрипт деплоя ● etc...
Features ● скрипт деплоя - простой XML файл ● богатый набор задач из коробки ● легкая расширяемость через классы PHP ● кроссплатформенность ● не требует внешних зависимостей ● работает на PHP7
#получение даты и времени #блок инициализации переменных #резервное копирование #работа с git #сборка проекта во временную папку #Настройка #Обновление скрипта деплоя #миграции #выкат новой вресии
Автоматизация На целевом сервере: deploy.sh из котором запускается php phing.phar /var/deploy/phing.xml пользователь deployer с правами запуска deploy.sh в /home/deploy/.ssh/authorized_keys ключ пользователя который будет запускать деплой удаленно