We also faced the same issues but unfortunately isn't much we can do. Here is some further explanation from what I heard from Azure Support yesterday.
There are two types of updates that occur
- App service specific updates
These updates are to allow for bug fixes, security patching, enabling new functionality, and they are deployed regionally in batches, and in a round robin way.
The way to be "protect" against these updates is either
- To have your App Service Scaled Out, because it will restart one instance at a time which gives the instance enough time to be back up once the updates starts in the another one
- An App Service in a different region (or different scale unit by using a different App Service Plan) and rely on Azure Traffic Manager (as stated in the image you provided)
- Storage level updates
These updates are done on the file servers themselves. They also allow for improved durability and security.
Now, with storage updates there are different things that happen
Any App Service that is sitting on Storage that is updated will be restarted twice, and this is by design.
And you also may noticed, at least happened with our App Services, there was an Environment Variables Change, and this is due to the file servers being updated, and this is what happens in Azure Infrastructure (completely behind the scene)
The files are stored on remote storage, and each App Service has two storage accounts that are tied to it: a primary (active), and a secondary (passive). When the storage that is hosting the primary is updated, the App Service can't acces it, so Azure has to point the App Service at the secondary location of files hence the App Service is restarted. And it restarts again, when the update is complete, and the storage is changed it back as it was.
And for Storage updates, it does not matter if you have a Scale Out App Service or not, all instances will be restarted at the same time
The way to be "protected" against these storage update is
- To have an App Service in a different region (or an additional App Service but using different App Service Plan), and rely on Azure Traffic Manager to switch the traffic
- And as Azure states, the use of Local Cache but you might find issues to use with Sitecore: max 2GB of local cache, and Sitecore doesn't support it