continuous delivery
/kənˈtɪn.ju.əs dɪˈlɪv.ər.i/noun
Continuous delivery is a practice in which each successful software change is automatically built, tested and prepared so the team can deploy it to production at any time.
With continuous delivery, the team can deploy an approved change as soon as the product manager gives the go-ahead.
With continuous delivery, a development team keeps its software ready for a Glossary · In briefreleaseA release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.Read more after every change. An automated pipeline builds the software, runs checks and puts the same version in a test or acceptance environment, for example. Only a version that completes all required steps is ready for production.
From code change to release
Continuous delivery builds on Glossary · In briefcontinuous integrationContinuous integration is a practice in which developers regularly merge small code changes and check them automatically, making integration problems visible early.Read more. When developers merge their code, a pipeline checks the change. This might include automated tests, a security check and creating an executable software package. If a step fails, the pipeline stops and gives the team feedback.
If the pipeline succeeds, a tested version is ready for production. The team decides when to deploy it. A product manager might wait for an agreed publication date, while an urgent bug fix can go out immediately. The required checks and approvals depend on the product and its risks.
Delivery or deployment?
With continuous delivery, someone usually makes an explicit decision to start the production deployment. With Glossary · In briefcontinuous deploymentContinuous deployment is a practice in which every software change that passes all automated checks goes to production without a manual approval step.Read more, every change that passes the pipeline goes to production automatically. Both require repeatable builds and tests; the difference is the final step.
Continuous delivery makes frequent deployments possible, but does not require a team to publish every change immediately. It reduces manual handovers and helps find problems earlier. It does not guarantee error-free releases: reliability still depends on the tests, pipeline and production monitoring.