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.