What is CD?

Continuous Delivery (CD) is about the ability to be Agile in the extreme. Time between code is passed into the version control system (VCS) to be deployed into production that is not years, months or weeks. At best, it is not even days but rather it is in hours or minutes.

At first glance CD may seem dangerous and unreachable. But the fact is that big companies like Facebook, Google and Etsy have been doing CD for many years, so it is absolutely doable for small businesses, as well as for large ones.

Achieving CD eliminates the biggest problems with waterfall projects.

Continuous Delivery Overview

1. In projects doing CD the engineer submits code and tests into VCS. The code has been tested locally and also reviewed by a co-engineer. Note the submitter is not called a developer because it could just as well be a person with special skills in testing or management.
2. The Continuous Integration (CI) server triggers a series of automated builds, tests and deploys. This process is often referred to as the Deployment Pipeline. Automation is the key. No manual fingers do anything... all the way to the production deploy. This automation is cheap so it will constantly be executed for all of the related changes being made into the VCS.
3. The engineer loves what she is doing. She wants her users to be happy. So a very crucial part of her work is monitoring the production servers. If a daily deploy seems to change any of the normal metrics like page loads, network traffic or cpu-usage, the engineer will act on that.

Notice

The above things absolutely cannot be done without the proper safety measures. For information on those practices please read How to do CD?