Опишите процесс релиза на вашем предыдущем проекте

«Опишите процесс релиза на вашем предыдущем проекте» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Релизный процесс был автоматизирован через CI/CD и следовал модели GitFlow.

Основные этапы:

  1. Подготовка:
    • Создание ветки release/vX.Y.Z от develop.
    • Финальное тестирование (smoke, регрессия) на staging-окружении.
    • Проверка чек-листов (миграции БД, конфигурация).
  2. Сборка и деплой:
    • Сборка артефакта и деплой на production через Jenkins/GitLab CI.
    • Постепенный rollout (canary-релиз) на 10%, затем 50%, затем 100% трафика.
  3. Мониторинг и откат:
    • Отслеживание ключевых метрик (ошибки 5xx, latency, бизнес-показатели) в Grafana и Sentry.
    • Готовность к мгновенному rollback через переключение на предыдущий стабильный образ.
  4. Фиксация:
    • После успешного релиза — мерж ветки release в main и develop.
    • Создание аннотированного тега (git tag -a v1.2.0).

Пример конфигурации стадии в GitLab CI:

release_to_prod:
  stage: deploy
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^release/vd+.d+.d+$/
  script:
    - echo "Deploying to production..."
    - ./scripts/deploy_prod.sh
  environment:
    name: production
    url: https://app.company.com

Почему так: Постепенный rollout и автоматизированный откат минимизируют downtime и риски.