Ответ
Continuous Delivery (CD) — это практика разработки, при которой код всегда находится в состоянии, готовом к развертыванию в production. Это достигается за счет полностью автоматизированного пайплайна сборки, тестирования и подготовки релиза.
Ключевые принципы:
- Автоматизация всего пайплайна: от коммита до создания релизного артефакта.
- Готовность к релизу: любая успешно прошедшая пайплайн версия может быть немедленно выпущена.
- Ручное подтверждение для 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.