Continuous delivery в крупном интернет проекте

Post on 23-Dec-2014

426 views 5 download

description

Презентация доклада Владислава Чернова на конференции SQADays-14, Львов 8-9 ноября 2013

Transcript of Continuous delivery в крупном интернет проекте

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: v.chernov@corp.badoo.com

Skype: chernovvs

Twitter: @BadooDev

Habrahabr: bit.ly/BadooHabrВладислав Чернов