Continuous delivery
Continuous delivery is a software development [practice] in which software is built and managed in such a way that it can be released to production environments at any time.
Continuous delivery is not the same as continuous deployment. Continuous delivery means the software is not automatically deployed to production systems, but just that you could – in theory – manually trigger an automated production deployment at a moment’s notice.
The following constraints on the software delivery process help to achieve continuous deployment:
- There is always a branch of stable artifacts from which a new production-grade release can be built.
- Builds and tests are fast and reliable.
- Deployments are done frequently, in small batches.
- Deployments are highly automated.
- Rollbacks are triggered automatically if new exceptions are logged in production after a release, else operations staff are notified automatically of new exceptions.
See also rolling deployments.