Continuous deployment

Continuous deployment (CD) is a software engineering approach in which software functionalities are delivered frequently and through automated deployments.

[1][2][3] Continuous deployment contrasts with continuous delivery (also abbreviated CD), a similar approach in which software functionalities are also frequently delivered and deemed to be potentially capable of being deployed, but are actually not deployed.

[5] A major motivation for continuous deployment is that deploying software into the field more often makes it easier to find, catch, and fix bugs.

A bug is easier to fix when it comes from code deployed five minutes ago instead of five days ago.

[6] In an environment in which data-centric microservices provide the functionality, and where the microservices can have multiple instances, continuous deployment consists of instantiating the new version of a microservice and retiring the old version once it has drained all the requests in flight.