Azure Pipelines architecture for Azure Web Apps

Important

CI/CD for Azure Web Apps is a variant of Design a CI/CD pipeline using Azure DevOps. This article focuses on the Web Apps-specific facets of deployment.

Azure Web Apps is a fast and simple way to create web apps using ASP.NET, Java, Node.js, Python, and other languages and frameworks. Deliver value faster to your customers with a continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Azure Web Apps.

Architecture

Architecture diagram of a CI/CD pipeline using Azure Pipelines.

Download a Visio file of this architecture.

Dataflow

This section assumes you have read Azure Pipelines baseline architecture and only focuses on the considerations specifics to deploying a workload to Azure App Services.

  1. PR pipeline - Same as the baseline

  2. CI pipeline - Same as the baseline, except the build artifacts created for Web Apps is a Web Deploy package.

  3. CD pipeline trigger - Same as the baseline

  4. CD release to staging - Same as the baseline with 2 exceptions: 1) the build artifact that is downloaded is the Web Deploy Package and 2) the package is deployed to a staging slot in App Services.

  5. CD release to production - Same as the baseline with 2 exceptions: 1) the release to production for a Web App swaps the production and staging slot, and 2) the rollback for Web Apps swaps production and staging slots back.

  6. Monitoring - same as the baseline

Components

This section assumes you have read Azure Pipelines baseline architecture components section and only focuses on the considerations specifics to deploying a workload to Azure App Services.

Considerations

This section assumes you have read the considerations section in Azure Pipelines baseline architecture and only focuses on the considerations specifics to deploying a workload to Azure App Services.

Operational Excellence

  • Consider implementing environments beyond just staging and production to enable things like rollbacks, manual acceptance testing, and performance testing. The act of using staging as the rollback environment keeps you from being able to use that environment for other purposes.

Next steps