Continuous Delivery
Continuous Delivery represents a logical extension to Continuous Integration practices. It expands the automation defined in continuous integration beyond simply using a shared mainline, building the software project and executing unit tests. Continuous Delivery adds automated deployments and acceptance test verification automation to the solution and ensures the software project is in an always-releasable state. To better describe this process, let's take a look at some basic characteristics of Continuous Delivery:
The development resources use Continuous Integration to commit changes to the mainline of the source control solution multiple times per day, and the automation system initiates a complete build, deploy, and test validation for each commit
Automated tests should execute against every change deployed, and help ensure that the software remains in an always-releasable state.
Every committed change is treated as potentially releasable, and extra care is taken to...