Continuous Deployment
Continuous Deployment is the practice of automatically deploying code changes to production as soon as they are ready. It aims to release software faster and more reliably.
Continuous Deployment builds on Continuous Integration. With Continuous Integration, code changes are automatically built, tested, and merged to a shared repository like GitHub frequently. Continuous Deployment takes this a step further by automatically releasing those changes all the way to production with the click of a button or as soon as they pass all automated tests. For example, a developer can commit a change, and if all tests pass, the change is automatically built, tested and deployed to production servers. This creates a fast feedback loop to catch issues quickly. Tools like Jenkins, Spinnaker and ArgoCD enable Continuous Deployment by automating the release process.
The key benefits of Continuous Deployment include faster time to market, reduced risk from frequent small releases rather than big bang releases, and developers spending less time on manual tasks like deployments. Overall, it enables teams to deliver value to customers faster and more reliably. The tradeoff is increased complexity to set up the automation.