What is the difference between Continuous Deployment and Continuous Delivery?

Continuous Delivery and Continuous Deployment are closely related concepts in software development, but they have a key difference:

Continuous Delivery:

  • Focuses on making sure that software is always in a releasable state.
  • Automates the process of building, testing, and preparing code changes for release.
  • Requires manual approval to deploy changes to production.

Continuous Deployment:

  • Builds upon Continuous Delivery by automatically deploying every code change to production as soon as it passes testing.
  • Eliminates the manual approval step.

Here's a simple analogy:

Imagine a factory that produces cars.

  • Continuous Delivery is like having a system where every car that comes off the assembly line is inspected, tested, and ready to be shipped to a dealership. But, you still have a person who decides when to actually send the cars out.
  • Continuous Deployment is like having a system where every car that passes inspection and testing is automatically loaded onto a truck and sent to a dealership, without any human intervention.

Key Differences Summarized :

Feature Continuous Delivery Continuous Deployment
Release to Production Manual Approval Automatic
Level of Automation High Highest
Risk Tolerance Moderate High

 

Which one is right for you?

  • Continuous Delivery is a good starting point for most teams. It allows you to automate your release process and ensure that your software is always ready to go.
  • Continuous Deployment is ideal for teams that have a high level of confidence in their testing and automation. It enables faster feedback loops and quicker releases.

Ultimately, the choice between Continuous Delivery and Continuous Deployment depends on your specific needs and risk tolerance.