AIDA Badoo

Preview:

Citation preview

AIDA

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

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

Automated Interactive Deploy Assistant

Содержание 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

Git workflow

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

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

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

Gitosis web admin

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

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

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

+ =

GitPHP

• CodeReview

• Gitosis

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

Git хуки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Automerge

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

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

"origin"

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

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

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

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

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

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

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

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

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

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

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

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

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

• Devel

• Shot

• Staging

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

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

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

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

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

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

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

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

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

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

2. Сборка

3. Deploy

4. Smoke-тесты

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

6. Автотесты

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

1. Git

2. Gitosis

3. GitPHP

4. Automerge

5. DeployDashboard

6. JIRA

7. TeamCity

Continuous Delivery

В итоге:

• 70% задач на production

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

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

действий

Вопросы?

Vladislav Chernov e-mail: v.chernov@corp.badoo.com

skype: chernovvs

Oleg Ojamäe e-mail: oleko.dundich@gmail.com

skype: oleko_dundich

Recommended