SlideShare a Scribd company logo
1 of 93
Download to read offline
Менеджмент серверов с
помощью Forge и
непрерывный деплой с
помощью Envoyer
Герасимчук Егор (DotsPlatform)
Меня хорошо видно &&
слышно?
2
Пару слов обо мне
3
● Более 8 лет занимаюсь backend-разработкой на PHP
● Год преподаю в OTUS
● Ментор Гарвардского курса CS50
● Co-Founder/CTO украинских стартапов mister.am и
dotsplatform.com – экономим время програмистов
доставляя им пиццу к рабочему месту
4
Герасимчук Егор
• Различать continuous integration / delivery / deployment
• Настраивать сервера с помощью Forge
• Разворачивать приложения с помощью Envoyer
5
Цели мастер-класса
Можно делать вместе со мной
6
1. Кредитка с 1$
2. Аккаунт на https://forge.laravel.com
3. Аккаунт на https://envoyer.io
4. Аккаунт на https://www.linode.com
5. Проект на github на lararvel
https://github.com/egerasimchuk/blog
7
True Story
8
Раз в 2 недели у нас был
деплой
9
Один - сервер нет проблем
1
0
ssh user@172.8.9.0
cd working-dir
git pull
1
1
Потом добавились скрипты
1
2
php artisan migrate
php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
И еще скрипты
1
3
php artisan queue:restart
php artisan assets:up
php artisan assets:up --private
sudo service php7.x-fpm restart
1
4
Мы упростили и создали одну
команду для деплоя
1
5
php artisan app:deploy
Стало примерно так
1
6
ssh user@172.8.9.0
cd working-dir
git pull
php artisan app:deploy
sudo service php7.x-fpm restart
Нагрузка растет и докинули еще
пару серверов
1
8
И деплой тоже нужен на все
сервера одновременно
1
9
Деплой занимал 30 минут
2
0
Появился даунтайм
2
1
Код доставлялся долго
2
2
Иногда какая-то команда не
выполнялась на одном из
серверов
2
3
Деплой стал болью
2
4
2
5
Что делать?
2
6
Envoyer
2
7
Теперь деплои каждый день
2
8
Не занимают времени
2
9
Нет даунтаймов
3
0
Push в master - код на
продакшне
3
1
Деплой стал незаметным
3
2
3
3
Немного теории
3
4
Развёртывание –
процесс подготовки ПО к
использованию
3
5
• DevOps
• Release Engineer
• Программист
3
6
Кто развёртывает?
Подготовка к
• Валидация изменений кода (code review, тесты)
• Чек-лист действий при релизе
• Сборка артефактов (компиляция css/js)
• Разворачивание релиза
• Обновление конфигурации сборки
• Откат релиза
3
7
Что нужно для автоматизации
развёртывания?
Развёртывание: вопросы
• Версионирование
• Периодичность сборок и развёртывания
• Количество окружений (stage), порядок переноса между
окружениями
• Обновление конфигураций
• Мониторинг после развёртывания
3
8
Вопросы при развертывании
Вариант пайплайна развёртывания
• Обновляем код
• Обновляем зависимости
• Накатываем миграции на БД
• Перезагружаем воркеры
• Чистим кэш
• Прогоняем тесты (unit, integration, возможно, system)
3
9
Пайплайн для разворота
тестового окружения
Вариант пайплайна развёртывания
• Обновляем код
• Обновляем зависимости
• Накатываем миграции на БД
• Перезагружаем воркеры
• Чистим и прогреваем кэш
• Прогоняем тесты (system, end to end)
4
0
Пайплайн для разворота
production-окружения
Вопросы по развёртыванию
• Нужно переименовать колонку в таблице БД. Какой
правильный подход при автоматизации
развёртывания?
• Как определить, что развёртывание прошло неудачно?
4
1
CI/CD
Continuous integration / delivery / deployment
4
2
Continuous integration (непрерывная
интеграция) – постоянное слияние в
master-ветку и сборка проекта
4
3
Continuous delivery (непрерывная
доставка) – постоянное обновление ПО в
production-окружении
4
4
Continuous deployment (непрерывное
развёртывание) – полностью
автоматический continuous delivery
4
5
А что настроено у вас?
4
6
• Автоматические тесты
• Сервер интеграции
• Изменения в процессе разработки
4
7
Что нужно для
Continuous integration:
• Быстрое выявление проблем интеграции
• Всегда прогоняются модульные тесты
• Наличие текущей стабильной версии
• Разработчики работают в более коротком цикле
4
8
Преимущества
Continuous integration:
• Затраты на поддержку (содержание сервера, тесты)
• Затраты на инициализацию процесса
4
9
Недостатки Continuous
integration:
• Continuous integration
• Автоматизация развертывания
5
0
Что нужно для
Continuous delivery:
• Быстрое получение обратной связи от пользователей
• Быстрое реагирование на изменения бизнес-
требований
5
1
Преимущества
Continuous delivery:
• Затраты на поддержку (содержание сервера, тесты)
• Затраты на инициализацию процесса
5
2
Недостатки Continuous
delivery:
• Continuous delivery
• Качественное тестирование
• Feature toggle
5
3
А для
Continuous deployment:
5
4
Feature toggle?
Feature toggle – механизм для быстрого
включения или выключения фич в
работающем приложении
5
5
5
6
Questions?
• Всегда ли можно применять continuous deployment?
Если нет, приведите примеры.
• Почему особенно важно качество тестов при continuous
deployment?
• В каком случае применение continuous integration не
оправдано?
• Можно ли выполнять вручную какие-либо операции на
production-сервере при continuous deployment? Если да,
то приведите примеры.
5
7
5
8
Стратегии
развертывания
● Полное обновление
● Поочередное обновление
● Atomic Deployment
● Blue/green deployment
● Shadow deployment
● Canary deployment
5
9
Какие есть инструменты?
6
0
Terminal :)
ssh root@172.14.120.7
sudo apt install php nginx mysql-client redis …..
6
1
Облачные сервисы для
менеджмента серверов
● RunCloud
● ServerPilot
● Forge
● Envoyer
● cPanel
6
2
Почему Forge?
6
3
Laravel
6
4
Преимущества Laravel Forge
● Экосистема для Laravel-проектов
● Разворот сервера за 5 мин
● Пакеты для работы Laravel-приложения
● Автоматический деплой
● Настройка очередей
● Настройка регулярных задач (cron)
● Настройка сертификатов
6
5
Настроим сервер для проекта
с помощью Forge
6
6
Недостатки Laravel Forge
● Работает только с “голыми” серверами
● Платный – от 19$ в месяц
● Не подходит для деплоев (есть downtime во время
деплоя, нельзя кастомизировать процесс деплоя)
6
7
Развернем laravel-приложение
6
8
А что же делать с деплоями?
6
9
Envoyer
https://envoyer.io/
7
0
Envoyer – это zero-downtime
деплойер для PHP и Laravel
проектов.
7
1
Envoyer платный, цена стартует от
10$/месяц.
7
2
Как Zero-Downtime Deploy
работает?
7
3
Zero-downtime-инструменты поддерживают
систему с папкой releases
7
4
Схема деплоя
● создает новую папку в releases
● клонирует репозиторий на нужном коммите в эту
папку
● в этой папке запускается деплой-скрипт
● система меняет символическую ссылку current-
папки на последний релиз
7
5
Структура папок для
laravel-проекта:
project/releases – здесь лежат деплои релизов
project/releases/20200421132948/...
project/releases/20200421135956/…
project/current -> project/releases/20200421135956/
это рабочая директория, на которую настроен web -сервер
project/storage – хранилище Laravel-приложения, общее для всех релизов
project/.env – файл с настройками окружения
7
6
Шаги стандартного
деплоя
● Клонирование репозитория
● Установка зависимостей
● Активация релиза
● Удаление старых релизов
7
7
Перед и после каждого шага
можно настраивать свои задачи
Вариант пайплайна развёртывания
• Обновляем код
• Обновляем зависимости
• Накатываем миграции на БД
• Перезагружаем воркеры
• Чистим и прогреваем кэш
• Прогоняем тесты (system, end to end)
7
8
Вспомним пайплайн для
разворота production-
окружения
7
9
Пайплайн в Envoyer:
● Клонирование репозитория
● Установка зависимостей
● До активация релиза:
○ накатываем миграции
○ чистим и прогреваем кэш
○ кэшируем маршруты и конфиги
○ собираем артефакты
○ прогоняем тесты
● Активация релиза
● После активации релиза
○ рестарт воркеров
● Удаление старых релизов
8
0
Доступные переменные
● cd {{ release }} – перейти в папку текущего релиза
● cd {{ project }} – перейти в папку проекта
● {{ sha }} – хэш задеплоенного коммита
● {{ time }} – таймштамп текущего деплоя в формате YmdHis
8
1
Накатывание миграций БД
8
2
Рестарт очередей
Envoyer умеет деплоить сразу на
несколько серверов
Пока не закончится предыдущий шаг
деплоя на каждом сервере,
дальнейшие шаги не запускаются
Если на любом шаге деплоя
произойдет ошибка, то деплой будет
отменен
- А что делать если деплой нужно откатить?
- В интерфейсе есть кнопка Redeploy
Символическая ссылка current просто станет указывать на рабочую папку в
папке releases, и всё снова заработает.
А что делать, если деплой нужно
откатить, а миграции выполнились?
Ручками, terminal :)
Ручками, terminal :(
Или писать свой пайплайн деплоя,
который будет обрабатывать ошибки и
откатывать миграции
Например, с Laravel Envoy
https://laravel.com/docs/7.x/envoy
но это совсем другая история….
Спасибо за внимание!
Герасимчук Егор
Co-founder, CTO
Dotsplatform.com
yehor@dotsplatform.com

More Related Content

What's hot

Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Fwdays
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsAlex Chistyakov
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)Ontico
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Ontico
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 

What's hot (19)

Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systems
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 

Similar to Zero Downtime PHP Deployment with Envoyer And Forge

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...Ontico
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разTimur Batyrshin
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspbGonchik Tsymzhitov
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg Nenashev
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_confMax Glekov
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьDaria Oreshkina
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»FDConf
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва it-people
 
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...Rais Charipov
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичковOvadiah Myrgorod
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 

Similar to Zero Downtime PHP Deployment with Envoyer And Forge (20)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_conf
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
 
Sivko
SivkoSivko
Sivko
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичков
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 

Zero Downtime PHP Deployment with Envoyer And Forge