Over a million developers have joined DZone.

Introduction to Continuous Delivery

DZone 's Guide to

Introduction to Continuous Delivery

· DevOps Zone ·
Free Resource

Continuous Delivery (CD) is a software development design practice used to increase the efficiency of the software delivery process by relying more heavily on automation, continuous integration, and continuous deployment. Such techniques encourage more frequent enhancements, and these smaller, iterative changes allow for quick bug fixes with minimal risk. Ultimately, it's all in the name: Continuous Delivery is about keeping things moving.

According to James Betteley in his "8 Principles of Continuous Delivery," smart automation is the key to this process:

This is all about creating a repeatable and reliable process for delivering software. You have to automate pretty much everything in order to be able to achieve continuous delivery. manual steps will get in the way or become a bottleneck. This goes for everything from requirements authoring to deploying to production.

In other words, CD aims to remove unknowns and minimize the possibility of failure - as much as possible, at least - in the software delivery process. In turn, these quick and easily-updated releases allow for equally efficient user feedback. Rather than discovering major bugs far down the line and committing serious resources to significant overhauls, unexpected problems are caught early, and caught while they're still manageable.

For a more artistic look at CD, Nhan Ngo has created a series of visualizations inspired by Continuous Delivery. You can find them all (free to download, print, or whatever you'd like) on Jez Humble's blog, a long with a lot more CD resources. Take a look at the first:

However,  it is important to note that CD is not simply a rapid-fire scheduling tool - it's a design pattern. The key, then, is not to re-release every time you write a new line of code, but to write new lines of code so that you could. Kief Morris communicates the idea succinctly in "Continuous Delivery vs. Traditional Agile":

Making releasable builds every night is still not Continuous Delivery. CD is about moving away from making the software ready as a separate activity, and instead developing in a way that means the software is always ready for release.

So, CD is for development teams interested in maximizing efficiency, minimizing risk, and building things that are ready to deploy all the time.

If you're interested in learning more, keep an eye out for DZone's 2014 Guide to Continuous Delivery, releasing on April 14th.  In the meantime, you can get your CD fix from our Refcardz on Preparing for Continuous Delivery and Continuous Delivery.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}