Are there differences in uptime guarantees having 1 vs. 2 App Service instances?

Veli-Jussi Raitila 446 Reputation points
2020-02-01T08:02:53.367+00:00

The App Service SLA (99.95%) does not mention the number of instances. However, is there still a practical difference in site behavior e.g. possible downtime during maintenance operations executed by the Azure infrastructure team?

In other words, does having 2 instances instead of one still give you higher reliability when it comes to having potential service outages - particularly in a situation where the site requires a slightly higher than average warm-up time?

Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
8,962 questions
0 comments No comments
{count} votes

Accepted answer
  1. Verner Fortelius 77 Reputation points
    2021-03-04T12:37:43.353+00:00

    At some point I have run an AppService with three instances when one of them have failed. Without using an affinity cookie this then resulted in exactly every third request failing.
    With the new HealthCheck feature I suppose this failing instance would eventually have been restarted, but this would still have resulted in downtime, and from our perspective it doesnt matter much if every request is failing or every third, the app is still essentially broken.
    In this particular case the end result would therefore be the same with one vs more instances. Of course this case was an unplanned crash of an instance, so I suppose it may work in cases where an instance is recycled on purpose...

    Iirc also the HealthCheck functionality in itself will only work if you have multiple instances, so in this cases it does make a difference at least in terms of automatic mitigation.
    https://learn.microsoft.com/en-us/azure/app-service/monitor-instances-health-check


2 additional answers

Sort by: Most helpful
  1. SnehaAgrawal-MSFT 22,706 Reputation points Moderator
    2020-02-03T13:15:40.393+00:00

    Thanks for asking question! Azure's App Service plans are already highly available, from a service perspective. That is, it's a multi-tenant service set up for high availability, where you don't need to worry about the infrastructure.

    To add to this the compute resources may be on shared or dedicated virtual machines (VMs), depending on the pricing tier that you choose. example for Basic plan it is up to 3 instances and for Standard plan it is up to 10 instances. Subject to availability. However, the SLA doesn't apply to free/shared tiers.

    You may refer to SLA for App Service here.

    Just keep in mind: If, for some reason, your app needs to be restarted (e.g. app pool recycling or some other reason), you might experience momentary unavailability if you only have a single instance of your web app running.

    This SLA works based on the fault domain and update domains, you may wish to understand how fault domains and update domains works in Azure.


  2. greg slack 1 Reputation point Microsoft Employee
    2020-02-07T19:35:37.15+00:00

    Having been running App Services and App Service Plans (ASP) for about 5 years now I can say that as an organization we did discuss adding redundancy to the app services (additional data centers and use traffic manager and/or front door) in order to achieve a greater HA score. In the end though the juice wasn't worth the squeeze both financially and from a management perspective given not a single outage of our services were due to a Microsoft issue with App Services (other Microsoft outages rendered the application useless but the App Service was "working").

    To answer your question more directly (I think) when you say "does having 2 instances instead of one", I believe you are talking about "scaling out" the number of instances. This does not help you achieve high availability (HA), this just increases the processing power the app or apps on the ASP can handle. Think of the ASP as a nebulous blob of IIS/memory/compute ... by scaling OUT your are doubling, tripling, etc. the capacity for the processing of work behind an "invisible" load balancer.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.