Azure App Service vs. App Service Plan. What's the difference?

Azure App Service logo vs. App Service Plans logo

Azure App Service is a great platform to host web applications in the cloud. It provides a simple Platform-as-a-Service (PaaS) offering that takes away a lot of the overhead of managing a deployed app.

With Azure App Service, you also need to be aware of App Service Plans.

Understanding the difference between Azure App Service and App Service Plans however can sometimes be tricky, particularly if you're not familiar with App Services or Azure in general.

App Service Plans

An App Service Plan is the server that hosts your app. It provides the compute power in terms of CPU, memory (RAM), and storage that is available for your app to use. In practice, this server is a virtual machine that's hidden away from you and managed by Microsoft, so you don't need to worry about managing updates or patches etc., and can just concentrate on your code.

There are multiple tiers or SKUs (stock keeping units) available for the plan, each providing a different level of resources (number of CPUs, amount of RAM etc.). Each SKU also determines which features your app can use, such as Always On, private networking, auto-scale etc.

Azure App Service Plans tier/sku list with hardware differences

The SKU of the plan is what you pay for, and each tier has a different price point. You can change the SKU of the plan after it's been created to scale it up and down.

App Services

An Azure App Service represents your actual app. It defines the URL that your app can be accessed on, and is where you publish your code to.

You can configure multiple options for your app including app settings, networking, custom domains, auto scale, plus many more.

Azure App Service menu options in the Azure portal

How they Fit Together

Each App Service Plan can host multiple apps. You can have a plan without an app service, but you can't have an app service without a plan (much like you can have a server without an app, but not an app without somewhere to run it!).

It's important to note that every app on the same plan will share the CPU, memory and storage of that plan, so having too many apps on one plan could lead to performance issues -this is something you'll need to judge within the context of your apps.

Splitting your apps out onto separate plans can be useful when:

  1. You want to scale your app independently of any other apps on the plan
  2. You want to ensure performance of your app is not impacted by any other apps
  3. You want to host your apps in separate regions

Just be aware that using multiple App Service Plans will increase costs.

Function Apps also run on App Service plans and can be ran on the same plan as an Azure App Service in some cases.

Key Takeaways

  • The App Service Plan is what you pay for
  • The App Service Plan defines how much compute resource you have across all the apps on that plan
  • An App Service Plan can host multiple App Services
  • The tier/SKU of the App Service Plan determines what features your app has available to use
  • Each App Service can have its own settings and configuration

Hopefully you've found this short overview of the differences between the technologies useful.