2.9 Deploy

After release has been confirmed and approved, operations team will proceed to deploy the binaries to the production environment. Using DevOps practices, the deployment should be automated, and an automated test should be conducted to ensure that the new deployment does not impact the production environment. This will ensure continuous delivery (CD).

In order to enable automation for the deployment, an integration tool is required to coordinate between the various systems such as the test system and software release management system. Table below describes example of deployment tool.

Tools Descriptions
Jenkins (integration) An open source automation server that helps to automate the certain part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. Refer to image below.

 


Figure 2-18 Jenkins: Project Deployment - CI/CD Tool

2.9.1 Continuous Delivery vs Continuous Deployment

Figure 2-19 Continuous Delivery vs Continuous Deployment

Continuous Delivery ensures that each build has gone through proper testing and preparation for production release. Once approved by the operations team, the release is deployed to the production environment.

On the other hand, Continuous Deployment automates the entire release deployment chain to production environment without human intervention.

The scope of deploy automation should be properly defined to prevent major breakdown on the system. Major releases should be properly scrutinized, managed and approved by the operations team while minor releases should take advantage of deploy automation.


2.9.2 Deliverables

The deliverables in this phase includes Deployment schedule.