Continuous deployment

Continuous deployment is a process that takes continuous delivery to the next level. It is a perfect approach for projects where all acceptance tests are automated and there is no need for manual approval from anyone. In short, once code is merged to the stable branch (usually master), it is automatically deployed to the production environment.

This approach seems to be very nice and robust, but is not often used because it is very hard to find a project that does not need manual QA testing and someone's approval before a new version is released. Anyway, it is definitely doable and some companies claim to be working that way.

In order to implement continuous deployment, you need the same basic prerequisites as the continuous delivery process. Also, a more careful approach to merging into a stable branch is often required. What gets merged into the master in continuous integration usually goes instantly to the production environment. Because of that, it is reasonable to hand off the merging task to your CI system, as explained in the Merge testing through CI section.

In the next section, popular tools for continuous integration are described.