Upload
ontico
View
327
Download
7
Embed Size (px)
DESCRIPTION
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: [email protected]
skype: chernovvs
Oleg Ojamäe e-mail: [email protected]
skype: oleko_dundich