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
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.
PR pipeline - Same as the baseline
CI pipeline - Same as the baseline, except the build artifacts created for Web Apps is a Web Deploy package.
CD pipeline trigger - Same as the baseline
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.
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.
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.
Azure App Service: Azure App Service is an HTTP-based service for hosting web applications, REST APIs, and mobile back ends. Azure Web Apps are actually applications hosted in Azure App Service.
Azure Web Apps: Quickly create and deploy mission-critical Web apps at scale. Azure Web Apps has many offerings, including Windows Web Apps, Linux Web Apps, and Web Apps for Containers.
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
- Get started with continuous deployment to Azure App Service
- Get started with Git in Azure Repos
- Deploy to App Service using Azure Pipelines
- Deploy to Azure Web App for Containers
- Configure continuous deployment with custom containers in Azure App Service
- Learn about work item integration with Application Insights
- Link GitHub commits, pull requests, and issues to work items in Azure Boards