Continuous delivery
Definition
Continuous delivery (CD) is the practice of keeping software in a state where it can be released to production at any time, by automating all stages from code commit to a tested, production-ready artifact, so that releasing is a deliberate business decision, not a risky engineering project.
Jez Humble and David Farley defined continuous delivery in their 2010 book of the same name, distinguishing it from continuous deployment (which they see as a more advanced practice). The core promise: if you practice continuous delivery, you can deploy to production today, this afternoon, on demand, because the pipeline from code to deployable artifact is fully automated and the artifact is already validated.
The continuous delivery pipeline extends CI:
- CI stage: Build, unit test, static analysis
- Acceptance stage: Automated acceptance tests against a staging environment
- UAT/performance stage: User acceptance tests, load tests, security scans
- Production candidate: The artifact passes all gates and is marked ready to deploy
- Manual release trigger: A human decides when to release the production candidate
The manual release trigger is what separates continuous delivery from continuous deployment. In continuous delivery, releasing is a human-approved business decision. In continuous deployment, every green build auto-deploys.
Continuous delivery requires a deployment pipeline that is reliable, fast, and comprehensive enough that the team trusts it. Building that trust takes time and investment, which is why many organizations practice CI but not true CD. The quality bar for the test suite must be high enough that a green pipeline genuinely means 'ready to ship.'
Examples
- SaaS product: every merge to main produces a versioned artifact; release manager clicks 'Deploy' in Slack when features are ready
- Mobile app: every build that passes all tests is submitted to TestFlight; App Store release is a manual approval trigger
- Feature flagged delivery: code ships continuously; flags control which users see which features, decoupling code deployment from feature release
- On-demand release: business team can request a production deploy at any time; engineering says yes because the pipeline guarantees readiness
Related terms
Snap a continuous delivery. Ship its actions.
BoardSnap turns any whiteboard, including this one, into a summary and action plan.