Ответ
Процесс релиза строился по гибкой методологии (Scrum/Kanban) с четкими этапами:
-
Подготовка:
- Формирование релизного бранча из готовых тасок (git flow:
git checkout -b release/v1.2) - Code review + автоматизированные тесты (CI/CD пайплайн, например, GitHub Actions/Jenkins).
- Формирование релизного бранча из готовых тасок (git flow:
-
Тестирование:
- Smoke/Regression тесты на staging-окружении.
- Фикс багов напрямую в релизной ветке (hotfix).
-
Деплой:
- Канареечное развертывание (например, 10% трафика на новую версию).
- Полный rollout после мониторинга метрик (Prometheus/Grafana).
-
Пострелиз:
- Логгирование инцидентов (Sentry/ELK).
- Ретроспектива для улучшения процесса.
Пример CI-скрипта:
# .github/workflows/release.yml
name: Release
on:
push:
branches: [release/*]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ./deploy.sh --env=production
Ключевое: документация изменений, rollback-план и коммуникация с stakeholders.