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;
🧠 Проверка знаний
🧒 Простыми словами
Это как если бы твои домашние задания всегда были аккуратно разложены и готовы к сдаче, оставалось только дождаться, когда учитель скажет «сдавайте».
🤓 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) и принципы неизменяемой инфраструктуры. К недостаткам можно отнести потенциально более медленный темп выпуска по сравнению с полным непрерывным развертыванием, однако это обеспечивает больший контроль и снижение рисков для организаций со сложными требованиями к выпуску или нормативными ограничениями.