# Continuous Deployment (CD) Continuous Deployment (CD) is a software release practice where every code change that passes automated tests is automatically deployed to production without human intervention. It extends [[Continuous Delivery (CD)|Continuous Delivery]] by removing the manual approval gate. Continuous Deployment requires high confidence in automated testing and monitoring, as there's no human checkpoint before changes reach users. ## Key Characteristics - **Fully automated**: No manual steps from commit to production - **Every change deploys**: All passing commits go live - **Extensive testing**: Robust automated test suites required - **Feature flags**: Control feature visibility independent of deployment - **Rapid rollback**: Quick recovery when issues are detected ## Continuous Deployment vs Continuous Delivery | Aspect | Continuous Delivery | Continuous Deployment | |--------|---------------------|----------------------| | Production deploy | Manual approval required | Fully automated | | Human intervention | Required before release | None (except rollback) | | Release decision | Made by humans | Made by automated tests | | Deployment frequency | On-demand | Every passing build | | Risk tolerance | Lower | Higher | | Automation maturity | Good | Excellent | See also: [[Continuous Delivery (CD)]] ## Pipeline Flow ``` Code → Build → Test → Stage → Production → Monitor ↓ ↓ Auto-deploy Auto-rollback ``` ## Prerequisites - Comprehensive automated test coverage - Robust monitoring and alerting - Feature flags for gradual rollouts - Blue-green or canary deployment strategies - Fast rollback capabilities ## Who Uses It - Tech companies with mature DevOps practices - SaaS products with frequent updates - Teams with strong testing culture - Organizations prioritizing rapid iteration ## References - https://en.wikipedia.org/wiki/Continuous_deployment ## Related - [[Continuous Integration (CI)]] - [[Continuous Delivery (CD)]] - [[CI CD pipelines]] - [[DevOps]] - [[GitHub]] - [[GitLab]]