20
AIDA Непрерывная интеграция в крупном Интернет проекте

AIDA Badoo

Embed Size (px)

Citation preview

Page 1: AIDA Badoo

AIDA

Непрерывная интеграция в

крупном Интернет проекте

Page 2: AIDA Badoo

Automated Interactive Deploy Assistant

Page 3: AIDA Badoo

Содержание 1. Git

1.1 Workflow

1.2 Gitosis

1.3 GitPHP

1.4 Hooks

2. Automerge

3. Dashboard

4. JIRA. Контроль разработки

5. TeamCity - авто тесты, сборка и деплой

6. Continuous delivery

Page 4: AIDA Badoo

Git workflow

Master - стабильная версия кода, копия продакшена.

Каждая задача в отдельной ветке. Ветки релизов

создаются автоматически по расписанию.

Page 5: AIDA Badoo

Gitosis web admin

• 25+ репозиториев

• Много пользователей

• Быстрое управление

+ =

Page 6: AIDA Badoo

GitPHP

• CodeReview

• Gitosis

• Авторизация через JIRA

Page 7: AIDA Badoo

Git хуки

• Контроль над разработчиками

• Помощь разработчикам

• Уведомления

Page 8: AIDA Badoo

Запрещающие хуки

• Невалидный код

• Код не по стандартам

• Нерешённые конфликты

• Неправильное имя ветки

• Проверка прав на пуш

Page 9: AIDA Badoo

Хуки нотификаций

• Рассылают уведомления в джабер

• Рассылают письма с диффами

• Оставляют комментарии в JIRA

Page 10: AIDA Badoo

Системные хуки

• Связывают задачи с релизами

• Заполняют поля в JIRA

• Изменяют статусы в JIRA

Page 11: AIDA Badoo

Automerge

• Выборка готовых к выкладке задач из JIRA

• Проверка существования ветки задачи в remote

"origin"

• Проверка связанности задачи с другими задачами

• Попытка мержа ветки задачи в релиз

• Уведомление о конфликте в jabber

• Отправка отчёта

Page 12: AIDA Badoo

DeployDashboard - веб интерфейс AIDA

• Список релизов

• Списки связанных с релизами задач и их статусами

• Форма добавления патча в master или релиза

• Список патчей в master и релизы

• Применение патча непосредственно из дашборда

Page 13: AIDA Badoo

Взглянем на Аиду с другой стороны

Page 14: AIDA Badoo

Контроль качества

Page 15: AIDA Badoo

QA • Автоматический запуск юнит тестов

• Devel

• Shot

• Staging

Page 16: AIDA Badoo

JIRA. Контроль разработки

Интеграция и автоматизация в баг-трекере:

• Критерии "готовности" задачи

• Интеграция с Git, Gitphp и Teamcity

• Автоматическое изменение статуса задач

• Нотификации

• Дополнительная информация

Page 17: AIDA Badoo

TeamCity - авто тесты, сборка и деплой

Page 18: AIDA Badoo

TeamCity - авто тесты, сборка и деплой

1. Настройка проекта

2. Сборка

3. Deploy

4. Smoke-тесты

5. Откат сборки

6. Автотесты

Page 19: AIDA Badoo

Автоматизация:

1. Git

2. Gitosis

3. GitPHP

4. Automerge

5. DeployDashboard

6. JIRA

7. TeamCity

Continuous Delivery

В итоге:

• 70% задач на production

• Формирование релиза

• Отсутствие рутинных

действий

Page 20: AIDA Badoo

Вопросы?

Vladislav Chernov e-mail: [email protected]

skype: chernovvs

Oleg Ojamäe e-mail: [email protected]

skype: oleko_dundich