Continuous Delivery (CDel) is a software development discipline where you build software in such a way that the software can be released to production at any time. In a Continuous Delivery environment:
- You can deploy software at any point in its lifecycle
- In the event that the software is for whatever reason not deployable, the Delivery Team swarms to rectify the issue.
- Anyone can get fast, automated feedback on the production readiness of their systems if and when anyone makes a change
- You can perform push-button deployments of any version of the software to any environment on demand
Continuous Delivery (CDel) should not be confused with Continuous Deployment (CDep). In a Continuous Deployment environment, every change goes through the development pipeline and automatically gets put into production, resulting in many production deployments every day. CDel is the precursor to Continuous Deployment in that, while you are able to deploy whenever you choose to do so, this process can be manual (e.g., gated automated deployment where human intervention is required for the software to be deployed to a live environment). Therefore, in certain situations where deploying to the live environment would be suboptimal, in a CDel environment you may choose not to deploy.
Similarly, CDel should not be confused with Continuous Integration (CI). CI refers to integrating, building, and testing code within a development environment, although it is not concerned with deployment.
The principal benefit of Continuous Delivery alone is reduced deployment risk. Continuous Deployment, however, has the additional benefits of more products deployed to end users and, hence, shorter feedback loops.