Continuous delivery
lastmod 2025-12-08created 2021-06-239 edits
Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, without doing so manually. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
CD contrasts with continuous deployment, a similar approach in which software is also produced in short cycles but through automated deployments rather than manual ones.
Category
- Continuous integration (CI)
- Continuous build (CB)
- Continuous delivery (CD)
- Continuous deployment (CD)
- Continuous testing (CT)
Continuous delivery vs Continuous deployment
Continuous delivery is the ability to deliver software that can be deployed at any time through manual releases; this is in contrast to continuous deployment which uses automated deployments. According to Martin Fowler, continuous deployment requires continuous delivery. Academic literature differentiates between the two approaches according to deployment method; manual vs. automated.
Continuous Delivery and Continuous Deployment are often confused, but the key difference lies in the level of automation of production deployment.
- Continuous Delivery
- Code changes are automatically built and tested so that they are always ready to deploy, but the actual production deployment requires manual approval.
- In other words, a person decides when to press the deploy button.
- This lets you adjust the timing of deployment to business requirements and do a final review before important releases.
- Continuous Deployment
- Going one step further, every code change that passes the automated tests is automatically deployed to the production environment.
- Once code is committed and passes the tests, it is delivered straight to users without human intervention.
Put simply,
- Continuous Delivery means "ready to deploy at any time",
- and Continuous Deployment means "deployed automatically".
In practice,
- Continuous Delivery is preferred in heavily regulated industries (finance, healthcare, etc.) or where careful release management is needed,
- while Continuous Deployment is widely used in web services and SaaS products where fast feedback and iteration matter.
See also
- Wait4X - A lightweight tool that waits until services are ready
- Komodo - A tool for building/deploying to multiple servers
- Argo CD