You are migrating an ASP.NET Core application to Azure App Service.
The application requires two different environments: a production environment for end-users and an approval environment for the QA team to validate new application versions. The application also needs to warm up some internal modules to better perform in production.
You need to configure the App Service to meet the requirements and minimize the solution costs.
Which App Service feature and pricing tier should you use?
You should use the Standard tier. You need to use the standard pricing tier because it is the most cost-effective tier that supports deployment slots.
You should not use the Basic tier. This tier does not support any deployment slots, which is necessary to meet the requirements of having a different environment for the QA team and warm up the application before releasing it into production.
You should not use the Premium tier. Compared with the Standard tier, the Premium tier provides greater limits and access to premium SSD disks in the underlining virtual machine used by the App Service Plan. However, to minimize the solution costs, you should use the Standard tier.
You should use deployment slots. A deployment slot is a web app that runs in the same App Service plan from the original web app. This allows you to have different hosts, settings, or application versions than the production environment. You can use a deployment slot to test new application versions in the approval environment and warm up the application before releasing it into production. You can have up to five deployment slots in the Standard tier.
You should not use always on. You can use this feature to keep the application loaded in the App Service Plan memory, even if does not receive any traffic. It is recommended to always leave enabled for production environments in order to avoid HTTP 500 errors when the application is reloaded after not receiving traffic. You can disable always on in other environments to save some computing resources.
You should not use Application Gateway. Application Gateway is an HTTP/HTTPS layer load balancer used to route web traffic for one or multiple applications. It can also include Web Application Firewall (WAF) to secure your application against common security attacks. You can integrate Application Gateway with App Service, but it does not provide separate environments to test your application or warm up the application before releasing it into production.