Search code examples
azureazure-app-service-plansazure-appservice

Azure App Service and infrastructure maintenance


As I understand there is no concept of update domain in App Services (and in other PaaS offerings). I am wondering how Azure is handling OS updates if I have only a single instance of an App Service app. Do I need to plan for two and more instances if I want to avoid such cases when an app goes down during the OS/other updates or this is handled without downtime? According to docs App Service has 99.95% SLA - is this time reserved here?


Solution

  • First of all, welcome to the community.

    Your application will not become unavailable when App Services is patching the OS, you don't have to worry about that. Imagine if that would be the case, it would be a huge problem. Instead, the PaaS service will make sure your application is replicated to an updated worker node before that happens.

    But you should have multiple instances, as a best practice listed in this article:

    To avoid a single point-of-failure, run your app with at least 2-3 instances.

    Running more than one instance ensures that your application is available when App Service moves or upgrades the underlying VM instances

    Have a look at this detailed blog post:

    https://azure.github.io/AppService/2018/01/18/Demystifying-the-magic-behind-App-Service-OS-updates.html

    When the update reaches a specific region, we update available instances without apps on them, then move the apps to the updated instances, then update the offloaded instances.

    The SLA is the same regardless the number of instances, even if you select "1 instance":

    We guarantee that Apps running in a customer subscription will be available 99.95% of the time

    Have a look at Hyper-V and VMWare, it will give you a rough idea on how App Services handle that.

    If you're looking for zero-downtime deployments with App Services, what you are looking for are deployment slots.

    Managing versions can be confusing, take a look at this issue I opened, it gives you a detailed how-to approach about managing different slot versions, which is not clearly described by Microsoft docs.