Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ЯковлевДенис 
2gis.ru@rnd2gis 
Continuous Delivery или 
волшебная кнопка для релизов 
по запросу
API 2GIS
api.2gis.ru 
250 
городов 
21 
млн 
Mail.ru
Инфраструктура API
Россия 
Новосибирск 
Москва
Нидерланды 
Дронтен
КОМАНДА
7 Dev 
3 QA
ЗАКАЗЧИКИ 
Партнёры • Flamp • Online • PM
ФИЧИ 
От 1 до 5 в день
Задача
Сделать кнопку для релиза
Ограничения
1.Не доверяем тестам 
2.Ручной процесс деплоя 
3.Проблемы производительности 
4.Нет текущего статуса релиза
1. Тесты
Баги в тестах и коде
•Время ~6 часов 
•Зависимость от данных
•Используем paratest 
•Рефакторингтестов
Запускаем –фиксим–снова запускаем
•Зеленая сборка 
•Стабильность тестов 
•6 часов => 50 минут
2. Деплой
1.Доставка кода (gitpull) 
2.Обновление данных (yiicmigrate) 
3.Новые версии компонент (apt-get upgrade) 
4.Перезапуск сер...
Упрощаем
1 сервер = 1 команда ( chef-client )
Сценарии релиза
Репетируем
1.Запуск нагрузки (yandex-tank) 
2.Деплойсерверов (chef-client)
Кнопка релиза
3. Нагрузка
•«Плохие релизы» 
•Увеличивается время ответа
•Формируем лог 
•Нагружаем Staging 
•Сравниваем результаты
4. Статус
•Много участников 
•Устное выяснение статуса
Dashboard
Выводы
Релизы по требованию
•Задача решаема 
•Комплексный подход 
•Внешняя команда
ЯковлевДенис 
d.yakovlev@2gis.ru
Upcoming SlideShare
Loading in …5
×

Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)

1,098 views

Published on

Доклад Дениса Яковлева на HighLoad++ 2014.

Published in: Internet
  • Be the first to comment

Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковлев (2ГИС)

  1. 1. ЯковлевДенис 2gis.ru@rnd2gis Continuous Delivery или волшебная кнопка для релизов по запросу
  2. 2. API 2GIS
  3. 3. api.2gis.ru 250 городов 21 млн Mail.ru
  4. 4. Инфраструктура API
  5. 5. Россия Новосибирск Москва
  6. 6. Нидерланды Дронтен
  7. 7. КОМАНДА
  8. 8. 7 Dev 3 QA
  9. 9. ЗАКАЗЧИКИ Партнёры • Flamp • Online • PM
  10. 10. ФИЧИ От 1 до 5 в день
  11. 11. Задача
  12. 12. Сделать кнопку для релиза
  13. 13. Ограничения
  14. 14. 1.Не доверяем тестам 2.Ручной процесс деплоя 3.Проблемы производительности 4.Нет текущего статуса релиза
  15. 15. 1. Тесты
  16. 16. Баги в тестах и коде
  17. 17. •Время ~6 часов •Зависимость от данных
  18. 18. •Используем paratest •Рефакторингтестов
  19. 19. Запускаем –фиксим–снова запускаем
  20. 20. •Зеленая сборка •Стабильность тестов •6 часов => 50 минут
  21. 21. 2. Деплой
  22. 22. 1.Доставка кода (gitpull) 2.Обновление данных (yiicmigrate) 3.Новые версии компонент (apt-get upgrade) 4.Перезапуск сервисов
  23. 23. Упрощаем
  24. 24. 1 сервер = 1 команда ( chef-client )
  25. 25. Сценарии релиза
  26. 26. Репетируем
  27. 27. 1.Запуск нагрузки (yandex-tank) 2.Деплойсерверов (chef-client)
  28. 28. Кнопка релиза
  29. 29. 3. Нагрузка
  30. 30. •«Плохие релизы» •Увеличивается время ответа
  31. 31. •Формируем лог •Нагружаем Staging •Сравниваем результаты
  32. 32. 4. Статус
  33. 33. •Много участников •Устное выяснение статуса
  34. 34. Dashboard
  35. 35. Выводы
  36. 36. Релизы по требованию
  37. 37. •Задача решаема •Комплексный подход •Внешняя команда
  38. 38. ЯковлевДенис d.yakovlev@2gis.ru

×