Доклад Александа Ильина и Олега Оямяэ на конференции...
-
Upload
badoo-development -
Category
Technology
-
view
7.172 -
download
0
description
Transcript of Доклад Александа Ильина и Олега Оямяэ на конференции...
ALEXANDER ILYIN
AIDAREVOLUTION*
OLEG OJAMÄE
*EVOLUTION IN RELEASE ENGINEERING
AUTOMATEDINTERACTIVEDEPLOYASSISTANT
http://bit.ly/badoo-aida-1-habr
ЯЩИК ПАНДОРЫ АИДЫ
DEPLOY DASHBOARD
Список активных релизов и история релизов
Перечень задач в релизах и их статусы
Интерфейсы для применения patch и hotfix
Создание нового .shot и список существующих
Интерфейс раскладки конфигов и crontab
GITOSIS — GITPHP
50+ репозиториев
200+ пользователей
Web интерфейс
Open Source
https://github.com/tv42/gitosishttp://bit.ly/badoo-gitphp-habr
Code Review
JIRA
Заменил Gerrit
Интегрирован Mergely
“The only valid measurementof code quality: WTF/minute.”
GIT WORKFLOW PHP — C/C++ — C#
patch
hotfix TEST-1
build_1
master
Developers ActionsDevelopers CommitsActions by Leads / Release TeamAutomated Actions
JS-1
PHP-2
HTML-3
build_2
GIT WORKFLOW JAVA — OBJECTIVE-C
dev
master
release_fix_1
integration_fix_1
release_1.0
integration_1
IOS-1_new_feature IOS-2_new_feature
Developers CommitsActions by Leads / Release TeamAutomated Actions
Все ветки начинаются с master
Новая ветка для каждого релиза
Откат задач через rebase
Ветка релиза не мерджится в ветку задачи
Не пушить с force
ПЯТЬ ПРАВИЛ РЕЛИЗЕРА
“У нас будет свой флоу, с rebase и feature ветками.”
http://bit.ly/badoo-git-rebase-habrhttp://bit.ly/badoo-workflow-1-habrhttp://bit.ly/badoo-workflow-2-habr
AUTOMERGE
Выборка готовых к выкладке задач из JIRA
Проверка существования ветки задачи в origin
Проверка готовности связанных задач
Обработка конфликтов при merge
Уведомление о конфликте в jabber
prepare-commit-msg pre-receivepost-receive
git push origin HEAD
GIT — HOOKS
16 разных событий
Локальные и удаленные события
Возможность остановки
Возможность изменения
prepare-commit-msg
Подготовка данных для последующих этапов тестирования
Простой способ определения текущего набора задач в ветке
Определение набора задач после git rebase
Поддержка в стороннем ПО — TeamCity, JIRA, PHPStorm
GIT — LOCAL HOOKS
post-receivepre-receive
GIT — REMOTE HOOKS
http://bit.ly/badoo-git-habr
Проверка прав
Анализ кода
Проверка формата ветки
Внешние зависимости
Уведомления
Обновление служ. инф.
Отложенное выполнение
AIDA — SERVER SIDE
Очередь собщений
Несколько попыток
Многопоточность
Jabber клиент
Обертка над git
TeamCity клиент
JIRA клиент
Система уведомлений
Доступ на staging
Доступ на production
Синхронный и асинхронный режим
Автоматизация разработки
Экономия времени
Отсутствие рутины
Клиент-серверная архитетура
Простой откат
Автоматизация тестирования
Система развивается
http://bit.ly/badoo-code-coverage-habr
http://bit.ly/badoo-phpunit-habr
PROFIT
ПОЧИТАТЬhttp://bit.ly/badoo-developer-handbook
@BadooDev #AIDAПОГОВОРИТЬ
16