Dev-Test deployment for testing PaaS solutions

Solution Idea

If you'd like to see us expand this article with more information (implementation details, pricing guidance, code examples, etc), let us know with GitHub Feedback!

This architecture represents how to configure your infrastructure for development and testing of a standard PaaS-style system.

This solution is built on the Azure managed services: Azure DevOps, Azure SQL Database, Azure Cache for Redis and Application Insights. These services run in a high-availability environment, patched and supported, allowing you to focus on your solution instead of the environment they run in.

Architecture

Application Insights Application Insights Application Insights Swap ARM and Code Deployment Visual StudioTeam Services Build andRelease Agent DevelopmentDatabase RedisCache DevelopmentCI Web App Pre-ProductionWeb App QADatabase RedisCache QAWeb App ProductionDatabase RedisCache ProductionWeb App Development Resource Group QA Resource Group Prod Resource Group

Components

  • Azure DevOps manage the development process.
  • The Microsoft Release Management build and release agents deploy the Azure Resource Manager template and associated code to the various environments.
  • Resource Groups: AzureDevOps resource groups are used to define all the services required to deploy the solution into a dev-test or production environment.
  • Web Apps: A web app runs the website and is deployed to all environments. Staging slots are used to swap pre-production and production versions.
  • Azure SQL Database maintains data for the website. Copies are deployed in the dev, test, and production environments.
  • Azure Cache for Redis is used in each environment to improve performance of the website.
  • Application Insights: Application Insights monitors the web application during development and test runs, and then monitors the full production system when it’s released.

Next Steps