Что такое Continuous Delivery (CD)?

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

Ответ

Continuous Delivery (CD) — это практика разработки, при которой код всегда находится в состоянии, готовом к развертыванию в production. Это достигается за счет полностью автоматизированного пайплайна сборки, тестирования и подготовки релиза.

Ключевые принципы:

  1. Автоматизация всего пайплайна: от коммита до создания релизного артефакта.
  2. Готовность к релизу: любая успешно прошедшая пайплайн версия может быть немедленно выпущена.
  3. Ручное подтверждение для production: развертывание на «боевые» серверы требует явного одобрения (в отличие от Continuous Deployment).

Пример этапов CD-пайплайна (GitLab CI):

stages:
  - build
  - test
  - deploy:staging
  - deploy:production  # Требует ручного запуска

deploy_to_production:
  stage: deploy:production
  script:
    - echo "Deploying to production..."
    - ./deploy-prod.sh
  when: manual  # Ключевая настройка для Delivery
  only:
    - main

Практическая польза: CD минимизирует ручную работу, снижает риск ошибок при развертывании и позволяет выпускать обновления чаще и предсказуемее. Основное отличие от Continuous Deployment — наличие «ручного затвора» (manual gate) для выпуска в production.