Continuous Delivery vs Automated DeploymentCD is much more than automated deployment.
I recently had a conversation with someone who works on a team using GitFlow. They’re a small team, and they seem to be producing some good software, at a pretty good pace. Still, there are times when they get a backlog of features that are ready for use, but not yet in front of customers, and it takes a small effort to merge everything from their
develop branch to
master, tag it, and get it deployed.
I asked if he was familiar with the concept of continuous delivery, and he assured me he was, and that he had used it several times before. So I moved on to ask about what was preventing the team from doing continuous delivery. After a few minutes of discussion, he said to me:
“You know, I don’t really think continuous deployment would help much. I mean, it only takes a few minutes to do a release manually right now, so at best it would save a few minutes every week or so.”
I had made a mistake.
I had assumed that when my conversation partner said “I’ve done continuous delivery before” it meant we had a mutual understanding of continuous delivery.
My team lead friend was under the common, but mistaken, impression that continuous delivery is just another name for automated deployments.
It’s easy to understand why these two terms are often confused. From a distance, they look very similar. In fact, from a technology standpoint, they practically are the same.
So what’s the difference?
Well, the difference is in the name.
With automated deployments, the deployment of your software is automated. Nice. That’s a great thing!
But with continuous delivery, well… you deliver your software continuously.
Naturally, continuous delivery depends on automated deployments. But it’s so SO much more. Continuous delivery is the practice of delivering software iteratively and incrementally, every time a small change is made. Usually multiple times per day.
For more on this, check out MimimumCD.org, which provides a description, and guidance, on the minimum necessary to claim that you’re doing continuous delivery. I’ve also interviewed Bryan Finster, one of the organizers of the project on my podcast in Episode 21: Minimum Viable Continuous Delivery.
Talking DevOps, Go and Continuous Delivery in Reverse on the Lovin' Legacy podcast
I join the Lovin' Legacy podcast to talk about DevOps, the Go language, and implementing Continuous Delivery in reverse. Have a listen.
Talking Continuous Delivery on The Agile Embedded podcast
I join the Agile Embedded podcast to discuss continuous delivery, and how to implement it in reverse.
Improve your software delivery