![Page 1: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/1.jpg)
Яковлев Денис
2gis.ru @rnd2gis
Continuous Delivery или
волшебная кнопка для релизов
по запросу
![Page 2: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/2.jpg)
API 2GIS
![Page 4: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/4.jpg)
Инфраструктура API
![Page 5: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/5.jpg)
Россия
НовосибирскМосква
![Page 6: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/6.jpg)
Нидерланды
Дронтен
![Page 7: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/7.jpg)
КОМАНДА
![Page 8: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/8.jpg)
7 Dev 3 QA
![Page 9: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/9.jpg)
ЗАКАЗЧИКИ
Партнёры • Flamp • Online • PM
![Page 10: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/10.jpg)
ФИЧИ
От 1 до 5 в день
![Page 11: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/11.jpg)
Задача
![Page 12: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/12.jpg)
Сделать кнопку для релиза
![Page 13: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/13.jpg)
Ограничения
![Page 14: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/14.jpg)
1. Не доверяем тестам
2. Ручной процесс деплоя
3. Проблемы производительности
4. Нет текущего статуса релиза
![Page 15: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/15.jpg)
1. Тесты
![Page 16: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/16.jpg)
Баги в тестах и коде
![Page 17: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/17.jpg)
• Время ~6 часов
• Зависимость от данных
![Page 18: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/18.jpg)
• Используем paratest
• Рефакторинг тестов
![Page 19: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/19.jpg)
Запускаем – фиксим – снова запускаем
![Page 20: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/20.jpg)
• Зеленая сборка
• Стабильность тестов
• 6 часов => 50 минут
![Page 21: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/21.jpg)
2. Деплой
![Page 22: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/22.jpg)
1. Доставка кода (git pull)
2. Обновление данных (yiic migrate)
3. Новые версии компонент (apt-get upgrade)
4. Перезапуск сервисов
![Page 23: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/23.jpg)
Упрощаем
![Page 24: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/24.jpg)
1 сервер = 1 команда ( chef-client )
![Page 25: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/25.jpg)
Сценарии релиза
![Page 26: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/26.jpg)
Репетируем
![Page 27: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/27.jpg)
1. Запуск нагрузки (yandex-tank)
2. Деплой серверов (chef-client)
![Page 28: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/28.jpg)
Кнопка релиза
![Page 29: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/29.jpg)
3. Нагрузка
![Page 30: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/30.jpg)
• «Плохие релизы»
• Увеличивается время ответа
![Page 31: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/31.jpg)
• Формируем лог
• Нагружаем Staging
• Сравниваем результаты
![Page 32: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/32.jpg)
4. Статус
![Page 33: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/33.jpg)
• Много участников
• Устное выяснение статуса
![Page 34: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/34.jpg)
Dashboard
![Page 35: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/35.jpg)
Выводы
![Page 36: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/36.jpg)
Релизы по требованию
![Page 37: Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)](https://reader035.vdocuments.mx/reader035/viewer/2022062405/5585bab2d8b42a5e5a8b4c7a/html5/thumbnails/37.jpg)
• Задача решаема
• Комплексный подход
• Внешняя команда