SlideShare a Scribd company logo
1 of 16
Download to read offline
AIDA
*
REVOLUTION
*EVOLUTION IN RELEASE ENGINEERING

OLEG OJAMÄE

ALEXANDER ILYIN
AUTOMATED
INTERACTIVE
DEPLOY
ASSISTANT
http://bit.ly/badoo-aida-1-habr
ЯЩИК ПАНДОРЫ АИДЫ
DEPLOY DASHBOARD
Список активных релизов и история релизов
Перечень задач в релизах и их статусы
Интерфейсы для применения patch и hotfix
Создание нового .shot и список существующих
Интерфейс раскладки конфигов и crontab
GITOSIS — GITPHP
50+ репозиториев

Code Review

200+ пользователей

JIRA

Web интерфейс

Заменил Gerrit

Open Source

Интегрирован Mergely

“The only valid measurement
of code quality: WTF/minute.”

https://github.com/tv42/gitosis
http://bit.ly/badoo-gitphp-habr
GIT WORKFLOW
PHP — C/C++ — C#
build_2

patch
build_1

PHP-2
JS-1

HTML-3

master
hotfix

TEST-1

Developers Actions
Developers Commits
Actions by Leads / Release Team
Automated Actions
GIT WORKFLOW
JAVA — OBJECTIVE-C
release_fix_1
release_1.0
master
integration_fix_1
integration_1
dev

IOS-1_new_feature

IOS-2_new_feature

Developers Commits
Actions by Leads / Release Team
Automated Actions
ПЯТЬ ПРАВИЛ РЕЛИЗЕРА
Все ветки начинаются с master
Новая ветка для каждого релиза
Откат задач через rebase
Ветка релиза не мерджится в ветку задачи
Не пушить с force
“У нас будет свой флоу,
с rebase и feature ветками.”
http://bit.ly/badoo-git-rebase-habr
http://bit.ly/badoo-workflow-1-habr
http://bit.ly/badoo-workflow-2-habr
AUTOMERGE
Выборка готовых к выкладке задач из JIRA
Проверка существования ветки задачи в origin
Проверка готовности связанных задач
Обработка конфликтов при merge
Уведомление о конфликте в jabber
GIT — HOOKS
16 разных событий
Локальные и удаленные события
Возможность остановки
Возможность изменения

git push origin HEAD

prepare-commit-msg

pre-receive
post-receive
GIT — LOCAL HOOKS
prepare-commit-msg

Подготовка данных для последующих этапов тестирования
Простой способ определения текущего набора задач в ветке
Определение набора задач после git rebase
Поддержка в стороннем ПО — TeamCity, JIRA, PHPStorm
GIT — REMOTE HOOKS

pre-receive

post-receive

Проверка прав

Уведомления

Анализ кода

Обновление служ. инф.

Проверка формата ветки

Отложенное выполнение

Внешние зависимости

http://bit.ly/badoo-git-habr
AIDA — SERVER SIDE
Очередь собщений
Несколько попыток
Многопоточность
Jabber клиент
Обертка над git
TeamCity клиент
JIRA клиент
Система уведомлений
Доступ на staging
Доступ на production
Синхронный и асинхронный режим
PROFIT
Автоматизация разработки
Экономия времени
Отсутствие рутины
Клиент-серверная архитетура
Простой откат
Автоматизация тестирования
Система развивается
http://bit.ly/badoo-code-coverage-habr
http://bit.ly/badoo-phpunit-habr
ПОЧИТАТЬ
http://bit.ly/badoo-developer-handbook

ПОГОВОРИТЬ
16

@BadooDev

#AIDA

More Related Content

Viewers also liked

Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
Badoo Development
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?
Badoo Development
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
Badoo Development
 

Viewers also liked (7)

Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй Docker
 
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияDocker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрация
 

More from Badoo Development

Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
Badoo Development
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
Badoo Development
 

More from Badoo Development (20)

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel Automation
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RU
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.Браузер
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, Avito
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
 
Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данных
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana Labs
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruTechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, Badoo
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, Erlyvideo
 
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»  Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
 
ChromeDriver Jailbreak
ChromeDriver JailbreakChromeDriver Jailbreak
ChromeDriver Jailbreak
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кода
 

Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA и TeamCity".

  • 1. AIDA * REVOLUTION *EVOLUTION IN RELEASE ENGINEERING OLEG OJAMÄE ALEXANDER ILYIN
  • 4. DEPLOY DASHBOARD Список активных релизов и история релизов Перечень задач в релизах и их статусы Интерфейсы для применения patch и hotfix Создание нового .shot и список существующих Интерфейс раскладки конфигов и crontab
  • 5. GITOSIS — GITPHP 50+ репозиториев Code Review 200+ пользователей JIRA Web интерфейс Заменил Gerrit Open Source Интегрирован Mergely “The only valid measurement of code quality: WTF/minute.” https://github.com/tv42/gitosis http://bit.ly/badoo-gitphp-habr
  • 6. GIT WORKFLOW PHP — C/C++ — C# build_2 patch build_1 PHP-2 JS-1 HTML-3 master hotfix TEST-1 Developers Actions Developers Commits Actions by Leads / Release Team Automated Actions
  • 7. GIT WORKFLOW JAVA — OBJECTIVE-C release_fix_1 release_1.0 master integration_fix_1 integration_1 dev IOS-1_new_feature IOS-2_new_feature Developers Commits Actions by Leads / Release Team Automated Actions
  • 8. ПЯТЬ ПРАВИЛ РЕЛИЗЕРА Все ветки начинаются с master Новая ветка для каждого релиза Откат задач через rebase Ветка релиза не мерджится в ветку задачи Не пушить с force “У нас будет свой флоу, с rebase и feature ветками.” http://bit.ly/badoo-git-rebase-habr http://bit.ly/badoo-workflow-1-habr http://bit.ly/badoo-workflow-2-habr
  • 9. AUTOMERGE Выборка готовых к выкладке задач из JIRA Проверка существования ветки задачи в origin Проверка готовности связанных задач Обработка конфликтов при merge Уведомление о конфликте в jabber
  • 10. GIT — HOOKS 16 разных событий Локальные и удаленные события Возможность остановки Возможность изменения git push origin HEAD prepare-commit-msg pre-receive post-receive
  • 11. GIT — LOCAL HOOKS prepare-commit-msg Подготовка данных для последующих этапов тестирования Простой способ определения текущего набора задач в ветке Определение набора задач после git rebase Поддержка в стороннем ПО — TeamCity, JIRA, PHPStorm
  • 12. GIT — REMOTE HOOKS pre-receive post-receive Проверка прав Уведомления Анализ кода Обновление служ. инф. Проверка формата ветки Отложенное выполнение Внешние зависимости http://bit.ly/badoo-git-habr
  • 13. AIDA — SERVER SIDE Очередь собщений Несколько попыток Многопоточность Jabber клиент Обертка над git TeamCity клиент JIRA клиент Система уведомлений Доступ на staging Доступ на production Синхронный и асинхронный режим
  • 14.
  • 15. PROFIT Автоматизация разработки Экономия времени Отсутствие рутины Клиент-серверная архитетура Простой откат Автоматизация тестирования Система развивается http://bit.ly/badoo-code-coverage-habr http://bit.ly/badoo-phpunit-habr