Date post: | 14-Jun-2015 |
Category: |
Technology |
Upload: | badoo-development |
View: | 479 times |
Download: | 1 times |
Continuous delivery в крупном интернет
проекте
Владислав ЧерновRelease Engineer
Git Flow
Gitosis web admin● 25+ репозиториев● Много пользователей● Быстрое управление
GitPHP
● CodeReview
● Gitosis
● Авторизация через Crowd
Git хуки
● Контроль над разработчиками
● Помощь разработчикам
● Уведомления
Запрещающие хуки
● Невалидный код
● Код не по стандартам
● Нерешённые конфликты
● Неправильное имя ветки
● Проверка прав на пуш
Хуки нотификаций
● Рассылают уведомления в джабер
● Рассылают письма с диффами
● Оставляют комментарии в JIRA
Системные хуки
● Связывают задачи с релизами
● Заполняют поля в JIRA
● Изменяют статусы в JIRA
Automerge
● Выборка готовых к выкладке задач из JIRA
Automerge
● Выборка готовых к выкладке задач из JIRA
● Проверка существования ветки задачи в remote "origin"
Automerge
● Выборка готовых к выкладке задач из JIRA
● Проверка существования ветки задачи в remote "origin"
● Проверка связанности задачи с другими задачами
Automerge
● Выборка готовых к выкладке задач из JIRA
● Проверка существования ветки задачи в remote "origin"
● Проверка связанности задачи с другими задачами
● Попытка мержа ветки задачи в релиз
Automerge
● Выборка готовых к выкладке задач из JIRA
● Проверка существования ветки задачи в remote "origin"
● Проверка связанности задачи с другими задачами
● Попытка мержа ветки задачи в релиз● Уведомление о конфликте в jabber
Automerge
● Выборка готовых к выкладке задач из JIRA
● Проверка существования ветки задачи в remote "origin"
● Проверка связанности задачи с другими задачами
● Попытка мержа ветки задачи в релиз● Уведомление о конфликте в jabber● Отправка отчёта
Automerge
- ???? - PROFIT!
DeployDashboard - веб интерфейс AIDA
● Управление релизами
● Статусы задач
● Применение патчей
Контроль качества
Этапы тестирования● Code review● Автоматический запуск юнит тестов● Devel● Shot● Staging● Опциональное тестирование на production
Интеграция и автоматизация в баг-трекере:
● Критерии "готовности" задачи● Интеграция с Git, Gitphp и Teamcity● Автоматическое изменение статуса задач● Нотификации● Дополнительная информация
Continuous integration
1. Настройка проекта
2. Сборка
3. Deploy
4. Smoke-тесты
5. Откат сборки
6. Автотесты
Continuous Delivery
TeamCity
Автоматизация
GitPHP
Gitosis
Git
AIDA
JIRA
DeployDashboard
PROFIT!!!!
● 70% задач на production в течении суток
● Формирование релиза
● Отсутствие рутинных действий
Вопросы?
Владислав ЧерновE-mail: [email protected]
Skype: chernovvsTwitter: @BadooDev
Habrahabr: bit.ly/BadooHabr