continuous deployment

/kənˌtɪn.ju.əs dɪˈplɔɪ.mənt/noun

Continuous deployment is a practice in which every software change that passes all automated checks goes to production without a manual approval step.

With continuous deployment, an approved bug fix reaches production automatically shortly after the code is merged.

With continuous deployment, a code change passes through an automated sequence of steps. The software is built and tested, and a successful change goes directly to the production environment. The team does not have to press a button for every 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.

From code change to production

The practice 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. Developers merge small changes regularly. A pipeline then checks code quality, runs automated tests and builds the application, for example. The new version is deployed only if all required checks pass.

Automatic deployment does not mean working without checks. Those checks happen earlier in the process and are defined in the pipeline. Glossary · In briefmonitoringMonitoring systematically tracks software, infrastructure or processes through measurements and checks. Deviations can trigger alerts so an administrator can investigate.Read more shows whether the new version continues to work properly in production. If problems occur, the team can undo the change with a Glossary · In briefrollbackA rollback reverses a change so software, configuration or data returns to an earlier state. Teams use it when a change causes errors or other unwanted effects.Read more or disable the functionality with a Glossary · In brieffeature flagA feature flag is a setting that enables or disables software functionality without another code deployment. It can apply to all users or a particular group.Read more.

How it differs from continuous delivery

With Glossary · In briefcontinuous deliveryContinuous 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.Read more, every successful change is ready for production, but a person decides when deployment starts. Continuous deployment also automates that final step: a change goes straight to production after passing all checks.

This requires reliable tests, a repeatable deployment process and effective production monitoring. Sometimes an explicit approval step is more appropriate, for example when an organization needs legal approval for a release or wants to coordinate a fixed release date with users. The team decides for each project whether automatic deployment is responsible and practical.