Continuous deployment (CD) is a
software engineering approach in which software functionalities are delivered frequently and through automated
deployment
Deployment may refer to:
Engineering and software Concepts
* Blue-green deployment, a method of installing changes to a web, app, or database server by swapping alternating production and staging servers
* Continuous deployment, a software e ...
s.
Continuous deployment contrasts with
continuous delivery
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, following a pipeline through a "production-like environment", withou ...
(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. As such, continuous deployment can be viewed as a more complete form of automation than continuous delivery.
Motivation
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.
Example
In an environment in which data-centric
microservices
A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through lightwe ...
provide the functionality, and where the microservices can have multiple instances, CD consists of instantiating the new version of a microservice and retiring the old version once it has drained all the requests in flight.
See also
*
CI/CD
In software engineering, CI/CD or CICD is the combined practices of continuous integration (CI) and (more often) continuous delivery or (less often) continuous deployment (CD).
Comparison
* Continuous integration: Frequent merging of several ...
, the combined practices of either (more often)
continuous integration and
continuous delivery
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, following a pipeline through a "production-like environment", withou ...
, or (less often) continuous integration and continuous deployment
References
{{reflist
Software development process
Software release