Microsoft Azure App Service is a PaaS service in Azure. The Azure App Service can be used to modernize your Web apps, API apps and mobile apps and can work with various software development frameworks and runtime stacks.
When designing an offer and implementation for migrating a customer’s on-prem application to Azure App Service, a series of considerations need to be taken into account. Usually a technical questionnaire can be shared with the customer and the collected feedback should be matched directly to the design factors in order to make proper design decisions.
Azure App Service design considerations
At a minimum the following design considerations should be made.
- Target user audience, including number and location of maximum and concurrent users. This affects the sizing of the Azure App Service instance, mainly depending on the concurrent IP connections/sessions.
- Will the app be imported from a code base or will it using a Docker container?
- Source code versioning mechanism/repository, e.g. Github.
- Runtime stack of the migrated application(s), e.g. .NET, .NET core, Python, PHP, Ruby, etc.
- Estimated conventional hardware resources (RAM, CPU, disk size and type, IOPS, bandwidth) that the application consumes under normal and stressed conditions. These should be translated into Azure App Service ACU (Azure Compute Units).
- What type of data storage does the application use? This could be a SQL (e.g. MySQL, PostgreSQL) or non-SQL flat database (e.g. CosmosDB). For each associated database, the exact release number (version) and storage space requirements should be defined.
- Application authentication and authorization mechanisms and identity management (e.g. Windows/Azure AD vs SQL authentication and MFA).
- Does the App require only standard backups or application snapshots as well (premium feature)?
- Are Azure Application Insights (app monitoring) required?
- Does the Azure Web App require strict isolation and security? This will determine if Azure App Service Environment (ASE) will be used or not.
- Will a VPN be needed with private IP address space or will the solution be accessible from the public Internet?
- What are the load balancing requirements? This article should be considered when deciding upon the appropriate L4 vs L7 load balancing service option in Azure.
- What are the high availability requirements? Does the solution need to be a single-region or a multi-region solution? The appropriate Azure App Service architecture blueprint should be utilized based on this decision, ranging from a basic to a fully scalable multi-region Web App.
- Does the app have any special compliance requirements, e.g. HIPAA, PCI DSS compliance, etc?
Check a more recent blog post (Azure App Service Design Considerations Part 2) for additional design considerations which supplement this post.