While working on an Azure Stack implementation project, I sometimes need to “deepdive” into some of the functions available on Azure Stack. I often need to find out how it works or where the functionality differs from public Azure (if any). Last week it was Availability Sets.
More on Azure Availability Sets here.
While Availability Sets are a common good in Azure, I was missing some documentation on it for Azure Stack. So, I fired up some Virtual Machines in an Availability Set and tried to understand the difference between the Fault Domains and the Update Domains. I noticed the Fault Domains were changing but the Update Domains were not. Does this mean the Update Domain is the whole Azure Stack and the Fault Domains the hosts? Well, I was not completely wrong.
A quick chat with Kenny Lowe led me to the following conclusion. Thanks Kenny!
Fault Domains: The number of physical nodes (max. 3) of your Azure Stack.
Update Domains: Not Applicable on Azure Stack, but there for (template) compatibility.
I’m curious how Availability Sets will look like with multiple scale-units when that feature is released.
“From the field”
When working with people who have a VMware/Hyper-V background, but not necessarily Azure, take some time to explain the following:
There is no “High Availability” (HA) in the way it works on these traditional platforms on Azure (Stack). With HA, I mean an almost real-time copy of the virtual machine that runs in the shadows on another host often in the same cluster.
The explanation I tend to use is that it is because of the way Azure is constructed technically (not going in detail here) and that most importantly you design a cloud infrastructure with “As a Service” building blocks. Virtual machines are just a part of it. To build a high available service based on virtual machines you use Availability Sets. For other services like App Services, SQL, etc there are the SKU’s that will help you meet your availability requirements.