Continuous Delivery
Continuous delivery is a software development practice where code changes are automatically built, tested, and prepared for release to production on a frequent basis. The goal is to establish an automated workflow that pushes each code change through a pipeline, validating the change at each stage. This enables developers to release new features and fixes to users in a fast and safe manner.
With continuous delivery, each code change goes through stages like automated building, automated testing, and deployment to a staging environment. Tests are run against the staging environment to detect issues and ensure the code is production ready. The deployment is automated such that passing through each stage will trigger the next stage. When testing is passed, the code can then be easily released to production with the click of a button. The key benefit is that developers can deliver value faster and safer. Problems are detected rapidly through automation and changes can be rolled back if issues emerge. Overall, continuous delivery emphasizes releasing software often through automated pipelines versus manual intermittent deployments.