What's the difference between Continuous Delivery and Continuous Deployment?

April 2, 2021

Continuous Delivery and Continous Deployment are frequently conflated with each other. This is at least in part because they have the same common abbreviation: CD.

And while thes concepts are technically related, it is important to understand their differences, and be clear about which one we mean when communicating.

In short, Continuous Delivery is the practice of continuously and automatically building and delivering a software package whenever a code change is committed. The end result is typically a Docker image, .zip file, or APK package uploaded to a centralized server for access by users or testers.

Continuous Deployment goes one step further, and not only builds the software, but also deploys it into production.

In a technical sense, the difference between continuous delivery and deployment is conceptually as small as running dpkg -i or brew install. In human terms, there can be a huge psychological difference between the two.

Which of these is your team using, and why? If you have a moment hit REPLY, and let me know. If you’re doing neither, what is stopping you?