DevOps uses the practices of both Continuous Integration and Continuous Delivery to improve software delivery.
Another term we sometimes hear alongside these practices is Continuous Deployment. Continuous Deployment sounds confusingly similar to Continuous Delivery, and confuse it does.
But why? And what exactly is it?
Addressing the confusion between Continuous Delivery and Continuous Deployment
One reason for the confusion is that Continuous Deployment’s history is somewhat fuzzy. While the concept of Continuous Delivery is plainly traceable and written about often, Continuous Deployment’s definition is harder to pin down.
And when we do see it used, it’s rarely consistent and its meaning often changes with context or the person using it.
For example, sometimes people will use ‘Continuous Deployment’ as:
- An interchangeable term for Continuous Delivery (something we’ve likely been guilty of at Octopus, given we make a deployment tool)
- Indication of the complete automation of the deployment process (as opposed to using manual tests or approvals)
- A way to describe release promotion through environments, as if a small part of Continuous Delivery
As typical with these gray areas, the truth lies somewhere in the middle. The simple facts are these:
- Continuous Deployment practices are Continuous Delivery practices
- Continuous Deployment is a small part of Continuous Delivery
- Continuous Deployment does relate mostly to automating the end of the deployment pipeline
The easiest explanation is that Continuous Deployment is Continuous Delivery where every software version deploys instantly. With vanilla Continuous Delivery, manual steps are not uncommon, and you can skip versions if it makes sense.
Another way to look at the difference is to consider Continuous Delivery an automation scale where Continuous Deployment is the most extreme but logical conclusion: Automation with no human intervention. It’s the end goal of Continuous Delivery. Continuous Delivery nirvana.
And that’s all Continuous Deployment really adds to Continuous Delivery. The workflows, tools, and methodology are all the same.
Continuous Deployment is a term with a fuzzy history but is, merely, a different flavor of Continuous Delivery. A flavor that Continuous Delivery’s definitions already include.