Introduction

As a software professional, you might have already been aware of different software development methodologies that people practice. Irrespective of the methodology being followed, there will be multiple environments, such as dev, staging, and production, where the application life cycle needs to be followed with these critical stages related to development:

  1. Develop based on the requirements
  2. Build the application and fix any errors
  1. Deploy/release the package to an environment (dev/stage/prod)
  2. Test against the requirements
  3. Promote the release to the next environment (from dev to stage and stage to prod)
Note that for the sake of simplicity, the initial stages, such as requirement gathering, planning, design, and architecture, are excluded just to emphasize the stages that are relevant to this chapter.

For each change that you make to the software, we need to build and deploy the application to multiple environments, and it might be the case that different teams are responsible for releasing the builds to different environments. As different environments and teams are involved, considering the amount of time that is spent in running the builds, deploying them in different environments would be more dependent on the processes that different teams follow. 

In order to streamline and automate a few of the steps mentioned earlier, in this chapter, we will discuss some of the popular techniques that the industry follows in order to deliver software quickly, with minimal infrastructure.

In previous chapters, most of the recipes provided us with a solution for an individual business problem. However, in this chapter, the entire chapter as a single entity will try to provide you with a solution for the Continuous Integration and Continuous Delivery of your business-critical application.

The Azure DevOps team continuously adds new features to Azure  DevOps at https://dev.azure.com (formerly known as VSTS at https://www.visualstudio.com) and updates the user interface as well. Don't be surprised if screenshots that are provided in this chapter don't match those of your screens at https://dev.azure.com while you are reading this.