In 30 seconds
- Every change passes an automated pipeline.
- The result is always ready to release.
- Releasing becomes a business decision, not a technical event.
The deployment pipeline
- Commit triggers a build
- Automated tests run at several levels
- The build is deployed to test environments
- A releasable version is ready
Jez Humble and David Farley set out the approach in their 2010 book Continuous Delivery.
Prerequisites
- Continuous integration
- Strong automated tests
- Infrastructure as code for consistent environments
Delivery vs deployment
In continuous delivery, a person decides when to release. In continuous deployment, every passing change goes live automatically. See the comparison.
Myth vs reality
Myth · Continuous delivery means releasing all the time.
Reality · It means being able to, whenever chosen.
Myth · It's only for web companies.
Reality · Many industries use it, including regulated ones.
Myth · It needs a big tooling budget.
Reality · Most of the tools are free; discipline is the real cost.
FAQ
How do we measure it?
Deployment frequency and lead time for changes are good signals.
What's a release candidate?
A build that has passed the pipeline and could be released.
Is CD part of DevOps?
Yes, it's one of DevOps' core practices.