Upload
badoo-development
View
483
Download
1
Tags:
Embed Size (px)
DESCRIPTION
При построении Continuous delivery в крупном интернет проекте возникает огромное количество проблем. Мы рассказали как автоматизировать этот процесс и улучшить качество выпускаемого продукта. Также вы узнаете: 1) Бизнес, лимит времени и много рутинных действий как основная мотивация для автоматизации процесса. 2) Как верно простроить и автоматизировать процесс разработки и тестирования. 3) AIDA. Наш собственный инструмент автоматизации. 4) Автоматизация рутинные операции в системе контроля версий. 5) Continuous integration как основной шаг к Continuous delivery. 6) Наш подход к интеграции системы контроля версий, баг трекера и CI сервера. 7) Почему мы используем собственный утилиты для запуска и прогона автотестов. И конечно про основные “грабли” на которые мы наступали при автоматизации процесса.
Citation preview
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