Back to FAQ
Continuous Integration and Continuous Deployment

What is the difference between Continuous Delivery and Continuous Deployment?

Continuous Delivery is a software development practice that emphasizes the use of automated processes to ensure that code changes, after being tested, are always in a releasable state. Its importance lies in reducing release risks and allowing business decision-makers to flexibly choose the timing of releases. It is applicable to scenarios where high-quality software needs to be delivered quickly and reliably, such as in the financial and e-commerce industries.

Its core is the automation of building, testing (unit, integration, etc.), and deployment to production-like environments, forming a reliable pipeline. The team manually triggers the final deployment to the official production environment. Continuous Delivery significantly shortens the value delivery cycle but retains manual approval for production environment deployments, providing a risk control buffer.

Continuous Deployment takes a step further on the basis of Continuous Delivery. It requires that every code change that passes all automated tests is automatically and directly deployed to the production environment without human intervention. It is suitable for teams pursuing extreme delivery speed and high automation, which can minimize delays and quickly obtain user feedback, but requires extremely high test coverage and reliability guarantees. The choice of which model to adopt depends on the organization's acceptance of automation level and risk.