Почему
Trunk Based Development
лучшая модель ветвления?
Александров Андрей
Slide 2
Slide 2 text
Пруфы :)
• State of DevOps 2018. Применение TBD коррелирует с
производительностью(High и Elite performers)
• Accelerate
• Доклад “Why Google Stores Billions of Lines of Code in a Single
Repository”. 25,000 человек в монорепе
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
Суть Trunk
• Все ветки, кроме master, живут МАКСИМУМ 2 ДНЯ
• Feature Flags + Branch by abstraction
• Continuous Code Review
• master всегда готов к деплою, даже если в нем есть недописанные фичи
Slide 5
Slide 5 text
Feature Flags
• Флаги, которыми мы можем включать и выключать фичи
• --withOneClickPurchase — включили покупку за один клик
Slide 6
Slide 6 text
Что дает Feature Flags
• Позволяет деплоить код, который еще не готов
• Позволяет делать A/B тесты
• Шарить код между недоработанными фичами
Slide 7
Slide 7 text
Branch By Abstraction вместо
feature branch
Slide 8
Slide 8 text
Что дает Branch By Abstraction
• Частые интеграции!
• Постепенное изменение кода
• Возможность оторваться от задачи
Slide 9
Slide 9 text
Continuous Code Review
• Изменили абстракцию, отправили PR в master
• PR маленький, ревью и мерж за пару минут!
• 10 минут приемлемо
• Больше 1 часа считается плохим результатом
Slide 10
Slide 10 text
Что дает Continuous Review
• Шаринг знаний
• Снижение тех долга
• Ускорение поставки
Slide 11
Slide 11 text
Все это очень сложно!
• Нужно хорошее покрытие тестами, желательно иметь CI
• Feature Flags потребует изменений в инфраструктуре
• Branch By Abstraction требует навыка построения абстракций и
декомпозиции
Slide 12
Slide 12 text
Почему лучшая
• Частые короткие итерации
• Можем деплоить даже неготовый код
• Шаринг знаний
• Ревью за несколько минут
Slide 13
Slide 13 text
Конец :)
Express42
http://express42.com
DevOps Deflope
https://devopsdeflope.ru
DevOps Deflope News
@devops_deflope
Мой канал в Telegram
@aladmit_world