Релизный процесс InDrive

Минималистичная презентация с Mermaid-диаграммами

Илья, Release Engineer

Повестка

  • Git Flow и «релиз-трейн»
  • Тестирование (Smoke, Beta, Регресс)
  • Публикация и раскатка
  • Инциденты и хотфиксы
  • Автоматизация

Общая схема процесса

flowchart LR A(Develop) --> B[Release Branch] B --> C(Смоук-тест) C --> D(Бета на сотрудниках) D --> E(Регресс-тест) E --> F(Отправка в магазины) F --> G(Постепенная раскатка)

Срезаем ветку, тестируем, выкатываем, мониторим.

Git Flow и Релиз-трейн

flowchart LR subgraph Main D(Develop) M(Master / Prod) end F(Feature/*)-->D D --> R(Release/*) --> M
  • Еженедельный «срез» ветки release/*
  • Не успел залить в develop до среды — жди следующего релиза

Тестирование (Smoke, Beta, Регресс)

  • Смоук-тест: быстрый чек критического функционала
  • Бета-тест: выкатка на группу своих сотрудников
  • Регресс: полный прогон (авто + ручные тесты)

Публикация и раскатка

  • Сборка уходит на ревью (Google Play / App Store)
  • Постепенная раскатка по сегментам: 10%, 30%, 50% и т.д.
  • Возможность откатить при обнаружении инцидентов

Инциденты и хотфиксы

  • Инциденты: блокирующие баги или срочные запросы бизнеса
  • Хотфикс: ответвление от продакшена, быстрый фикс
  • Постмортемы: ищем корень проблем, делаем выводы

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

  • Автосоздание релизных тикетов в Jira
  • Slack-нотификации о тестах/сборках
  • Автоматический rollout и крэш-мониторинг
  • Цель — минимум ручных операций, максимум Developer Productivity

Спасибо за внимание!

Вопросы? Буду рад ответить.