continuous-delivery

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

Continuous Delivery основывается на Continuous Integration (CI), автоматизируя процесс выпуска. После успешной интеграции кода он проходит автоматизированное тестирование и подготавливается к развертыванию. CD направлена на обеспечение того, чтобы программное обеспечение всегда находилось в состоянии готовности к выпуску, что позволяет осуществлять частые и надежные выпуски. Этот подход снижает риски, связанные с развертыванием программного обеспечения, и позволяет быстрее получать обратную связь от пользователей. Ключом является автоматизация конвейера выпуска.

        graph LR
  Center["continuous-delivery"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_cicd["cicd"]:::related -.-> Center
  click Rel_cicd "/terms/cicd"
  Rel_cicd_pipeline["cicd-pipeline"]:::related -.-> Center
  click Rel_cicd_pipeline "/terms/cicd-pipeline"
  Rel_continuous_integration["continuous-integration"]:::related -.-> Center
  click Rel_continuous_integration "/terms/continuous-integration"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Проверка знаний

1 / 3

🧒 Простыми словами

Это как если бы твои домашние задания всегда были аккуратно разложены и готовы к сдаче, оставалось только дождаться, когда учитель скажет «сдавайте».

🤓 Expert Deep Dive

Непрерывная доставка (Continuous Delivery, CD) представляет собой предпоследний этап в зрелом конвейере DevOps, являясь связующим звеном между непрерывной интеграцией (Continuous Integration, CI) и непрерывным развертыванием (Continuous Deployment, CD). В то время как CI фокусируется на частой интеграции кода и проверке его корректности посредством автоматизированных сборок и тестов, CD расширяет этот процесс, гарантируя, что интегрированный код всегда находится в состоянии, пригодном для выпуска. Конвейер обычно включает создание артефактов, автоматизированное развертывание в различных непродуктивных средах (например, QA, UAT, Staging), а также тестирование производительности и безопасности. Ключевое отличие от непрерывного развертывания заключается в намеренном введении ручного этапа перед выпуском в продакшн, что позволяет проводить бизнес-валидацию, координировать A/B-тестирование или применять стратегии поэтапного вывода (canary release). С архитектурной точки зрения, CD в значительной степени опирается на надежные инструменты CI/CD (например, Jenkins, GitLab CI, GitHub Actions), инфраструктуру как код (IaC) и принципы неизменяемой инфраструктуры. К недостаткам можно отнести потенциально более медленный темп выпуска по сравнению с полным непрерывным развертыванием, однако это обеспечивает больший контроль и снижение рисков для организаций со сложными требованиями к выпуску или нормативными ограничениями.

🔗 Связанные термины

Предварительные знания:

📚 Источники