# 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]]