29
Continuous delivery в крупном интернет проекте Владислав Чернов Release Engineer

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

  • Upload
    sqalab

  • View
    425

  • Download
    5

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

проекте

Владислав ЧерновRelease Engineer

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

Git Flow

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

Gitosis web admin

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

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

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

Page 4: Continuous delivery в крупном интернет проекте
Page 5: Continuous delivery в крупном интернет проекте

GitPHP

• CodeReview

• Gitosis

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

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

Git хуки

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

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

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

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

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

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

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

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

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

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

Page 8: Continuous delivery в крупном интернет проекте
Page 9: Continuous delivery в крупном интернет проекте

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

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

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

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

Page 10: Continuous delivery в крупном интернет проекте
Page 11: Continuous delivery в крупном интернет проекте

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

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

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

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

Page 12: Continuous delivery в крупном интернет проекте
Page 13: Continuous delivery в крупном интернет проекте

Automerge

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

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

Automerge

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

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

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

Automerge

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

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

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

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

Automerge

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

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

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

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

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

Automerge

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

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

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

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

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

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

Automerge

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

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

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

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

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

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

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

Automerge

- PROFIT! - ????

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

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

• Управление релизами

• Статусы задач

• Применение патчей

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

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

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

Этапы тестирования

• Code review

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

• Devel

• Shot

• Staging

• Опциональное тестирование на production

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

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

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

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

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

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

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

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

Continuous integration

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

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

2. Сборка

3. Deploy

4. Smoke-тесты

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

6. Автотесты

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

Continuous Delivery

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

TeamCity

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

GitPHP

Gitosis

Git

AIDA

JIRA

DeployDashboard

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

PROFIT!!!!

• 70% задач на production в течении суток

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

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

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

Вопросы?

E-mail: [email protected]

Skype: chernovvs

Twitter: @BadooDev

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