What is it?
With Continuous Deployment (CD), the development team maintains software so that it can be released to production at any moment, specifically on demand. This practice builds on top of Continuous Integration and Continuous Delivery. As a result, the software configuration and deployment orchestration becomes part of the development team’s duty.
Why use it?
- The development team maintains deployable code and configuration over new features.
- It enables fast feedback from end users.
- Each feature can be pushed out after completion.
- It enforces everything as code practices as configuration and deployment orchestration needs to be part of the automation.
- It enables fast rollbacks and recovery from failures.
How to do it?
The practice needs close collaboration of everyone involved in deployment and delivery of the software to production. Everything related to the deployment needs to me automated as much as possible. As new features are pushed to production right away, the use of feature toggles and dark launches becomes important.
Continuous Deployment also needs a good level of monitoring of the application. These monitors should be visualised so that changes to response times or error to success rates can be quickly spotted when new deployment is rolled out.