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.