continuous delivery, или волшебная кнопка для релизов по...

Post on 16-Jul-2015

218 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Яковлев Денис

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. Доставка кода (git pull)

2. Обновление данных (yiic migrate)

3. Новые версии компонент (apt-get upgrade)

4. Перезапуск сервисов

Упрощаем

1 сервер = 1 команда ( chef-client )

Сценарии релиза

Репетируем

1. Запуск нагрузки (yandex-tank)

2. Деплой серверов (chef-client)

Кнопка релиза

3. Нагрузка

• «Плохие релизы»

• Увеличивается время ответа

• Формируем лог

• Нагружаем Staging

• Сравниваем результаты

4. Статус

• Много участников

• Устное выяснение статуса

Dashboard

Выводы

Релизы по требованию

• Задача решаема

• Комплексный подход

• Внешняя команда

Яковлев Денис

d.yakovlev@2gis.ru

top related