agile3
Engineering Practices

Continuous Delivery (CD)

Keeping software always in a releasable state, so any version can go live at the push of a button.

2 min read · Practitioner

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

  1. Commit triggers a build
  2. Automated tests run at several levels
  3. The build is deployed to test environments
  4. A releasable version is ready

Jez Humble and David Farley set out the approach in their 2010 book Continuous Delivery.

Prerequisites

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.