Design a CI/CD pipeline using Azure DevOps

This scenario provides architecture and design guidance for building a continuous integration (CI) and continuous deployment (CD) pipeline. In this example, the CI/CD pipeline deploys a two-tier .NET web application to the Azure App Service.

Migrating to modern CI/CD processes provides many benefits for application builds, deployments, testing, and monitoring. By using Azure DevOps along with other services such as App Service, organizations can focus on the development of their apps rather than the management of the supporting infrastructure.

Relevant use cases

Consider Azure DevOps and CI/CD processes for:

  • Accelerating application development and development lifecycles.

  • Building quality and consistency into an automated build and release process

  • Increasing application stability and uptime.

Architecture

The data flows through the scenario as follows:

  1. A developer changes application source code.

  2. Application code including the web.config file is committed to the source code repository in Azure Repos.

  3. Continuous integration triggers application build and unit tests using Azure Test Plans.

  4. Continuous deployment within Azure Pipelines triggers an automated deployment of application artifacts with environment-specific configuration values.

  5. The artifacts are deployed to Azure App Service.

  6. Azure Application Insights collects and analyzes health, performance, and usage data.

  7. Developers monitor and manage health, performance, and usage information.

  8. Backlog information is used to prioritize new features and bug fixes using Azure Boards.

Components

  • Azure DevOps is a service for managing your development lifecycle end-to-end—from planning and project management, to code management, and continuing to build and release.

  • Azure Web Apps is a PaaS service for hosting web applications, REST APIs, and mobile back ends. While this article focuses on .NET, there are several additional development platform options supported.

  • Application Insights is a first-party, extensible Application Performance Management (APM) service for web developers on multiple platforms.

Last updated