CD expands upon the ideas of CI. With CI, if you can compile a build, it's in its optimum state. In
contrast to CI, CD asserts that there should be a main branch of ongoing source code integration that
you can package, deploy and release into production at any given point.
Author Martin Fowler contends that you are doing CD if:
• Your software is deployable throughout its lifecycle.
• Your team prioritizes keeping the software deployable over working on new features.
• Anyone can get fast, automated feedback on the production readiness of their systems whenever
somebody makes a change to them.
• You can perform push-button deployments of any version of the software to any environment
on demand.
CI is a part of CD, but so is the creation of deployable container-packaged executables. So, too, is the
use of a comprehensive suite of tests that evaluates software quality, performance under load and user
acceptance.