Continuous Delivery vs Automated Deployment
September 3, 2022CD 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.
The Technologist Podcast #4: Continuous Delivery, DevOps, Go
Coach Denis interviews me about my mission to bring enterprise-class software delivery to small teams with small budgets.
When continuous deployment isn't possible
Sometime's it's impossible to deploy frequently. But don't let that keep you from continuous delivery!
How can we trust automated tests in life-or-death scenarios?
Actually, how can we trust manual tests in high-stakes scenarios?