What is App Service Plan Azure App Service is a full managed Platform as a Service (PaaS) which enables to build and deploy web applications, Restful API’s, mobile back ends without managing the underlying infrastructure. In Azure App Service, the application runs on App Service Plan (ASP). App service plan contains a compute instance to run the web applications, here compute means CPU, Memory, and Storage within the Virtual Machine(VM). In the App Service Plan, you can deploy an Azure Web App, Mobile App, or API App. Also, the Azure function can be hosted. App Service Plan contains - Region - When you are creating App Service, you must select App service plan with a region and compute resource are created in the selected regions. Ideally, you should select the region where your Azure resources are created.
- Operating System – Windows or Linux
- Number of VM instances
- Size of VM instance – like small, medium and large
- Pricing Tier
Pricing tier drives the metrics like OS, VM instances and Size of the VM so lets understand about it. Pricing TierPricing tier determines the features you get within the service depending on how much you want to pay for the plan. - Free or Shared - Apps run in shared VM with limited time. Resources cannot scale and this plan should be used only for development and testing purposes. Some apps in shared plans belong to other customers, so you should think about it if you need security.
- Free plan is F1 with 60 CPU minutes/day, 1GB RAM and 1GB storage.
- Shared plan is D1, 240 CPU minutes/day, 1GB RAM and 1GM storage
- Dedicated are Basic, Standard, Premium, PremiumV2, Premium V3. Apps run on dedicated Azure VMs and there is no sharing with other customers. Only Apps in one plan can share the compute and resources in another plan can not share compute. You go higher tier, you get higher VM instances and scale out. Use this plan for Production workloads. Note: Premium plan virtual machines with faster processors, SSD storage, and double memory-to-core ratio compared to standard plan.
- Isolated plans are Isolated and IslocatedV2 called App Service Environment. Run on Azure VM with a dedicated virtual network. It has network isolation on top of the compute. Note: The plan offers Dv2-series virtual machines with faster processors, SSD storage, and a double memory-to-core ratio compared to the Standard plan.
Higher the pricing tier you opt, you get more benefits but also it involves costing, so before the creating the plan, think all features you need and select based on your need.
Can I host multiple applications on one App Service Plan?Yes, you can host multiple web applications in one app service plan as long as it has enough resources to cater to your workloads. There is a limitation for each pricing tier. VM instance running considerationsBelow activities consume CPU and memory on same VM instance - Multiple apps running on same app service plan
- Deployment slots
- Diagnostic logs, backups, web jobs
App Service Plans Features ComparisonBelow tables show key feature with plan, compare and select based on your requirement.
Feature/Plan
|
Free
|
Shared
|
Basic
|
Standard
|
Premium
|
Isolated
|
VM
instances
|
Shared -
|
Shared
|
Dedicated
|
Dedicated
|
Dedicated
|
Dedicated
|
Instance
count(upto)
|
No
|
No
|
3
|
10
|
30
|
100
|
Scale
out
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Apps
Count per Plan
|
10
|
100
|
Unlimited
|
Unlimited
|
Unlimited
|
Unlimited
|
Disk
space
|
1GB
|
1GB
|
10GB
|
50GB
|
250GB
|
1TB
|
Custom
Domain
|
-
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Hybrid
connectivity
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
VNET Integration
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
Price
|
Fee
|
$0.013/hr
|
$0.075/hr
|
$0.10/hr
|
$0.20/hr
|
$0.40.hr
|
When to
use
|
Development
Testing
|
Development
Testing
|
Dedicated
Development
Testing
Low traffic
|
Production
|
Scale and Performance
|
High performance with
Isolation
|
Auto
scale
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Deployment
Slots
|
No
|
No
|
No
|
5
|
20
|
20
|
SLA
|
No
|
No
|
99.95%
|
99.95%
|
99.95%
|
99.95%
|
Note: Above table data can be changed from time to time, for the latest information please refer Microsoft documentation.Understand Scaling Scaling helps application remains responsive when there is a high demand, and save money by reducing the resource when there is no demand. - Scale up – to increate more CPU, memory and Disk space. Scale up means going from Free -> Basic Standard > Premium/Isolated. It gives extra features according to the plan. You can scale up or down at any time by changing the Pricing plan.
- Scale out- to increate VM instance count for your application. You can scale out based on the plan up to 100 instances. 2 ways you can configure
- Manual – do it yourself
- Automatic (Auto scale) – increate instance counts dynamically based on rules and schedules.
Note: you price will increase when you configure scale-out and instance count is increased. E.g. if your monthly charge for the App service plan is 50$ with 2 instances it will 100$ and for 3 instances 150$. With scaling, you do not need to worry about redeploying the code. Auto scalingFew points to consider for auto scaling - Minimum instances – set to minimum instance count to reduce cost and also make sure your app is always running when there is no load.
- Maximum Instances – set maximum to limit total hourly cost
- Default instance count – select safe value and default instance count will be used by auto-scaling service when metrics are not available.
- Scale rule – Always configure both scale out and in rule to cater to performance increase or decrease
- Scale Margin - Give adequate margin between maximum and minimum instances values. Using rules you can reach maximum and minimum values.
- Metric Statistics – choose correct metrics like Minimum. Maximum, Average, and Total.
- Notifications – always configure notifications, it is better to understand how your app is performing during the load.
- Scale together r – if you have a plan with 3 instances and multiple apps running then your app runs on all instances and, when you scale out, all apps scale together.
Should we put the new app in the existing plan or a new Plan?
1. Existing Plan - One app service plan has multiple web apps; you can save money with this feature but you have to make sure enough resources are available if you are adding more apps to same plan otherwise your new app can cause downtime of existing Apps. 2. If you want to scale up independently use new App service plan 3. If resource needed in different Geo regions consider new plan
Can I move App to another Service plan?Yes, you can move when source and target plans have same geographical region, resource group and OS type. Can I move the App service plan to a different region?App service plan region is where the App is deployed region. You can not change the App service plan region instead you to clone the App and recreate it. Do I need to delete App Service plan?If you do not have Apps in App service plan, better you move to the Free tier or delete the App service plan otherwise it incurs cost due to VM instance reservation. References
|