The Azure Fabric Controller (FC) is the service that automatically manages all roles and resources in Azure, is in charge of :
- Mapping declarative service specifications to available resources and allocate them
- Assuring system health and satisfies SLAs
- Performing application and OS updates
Keeping in mind that, there are two concepts that are particularly important for assuring the availability of your services :
- Fault domains are a physical unit of failure (you could associate that concept with a server rack for instance),the FC distributes the services in different update domains for assuring that if one physical unit becomes unavailable , your service will remain available .
- Update domains are a logical unit, that allows you to specify how your service will be updated(for an application or OS update).When the FC is updating a service, it updates the roles in the same update domain at the same time and in a transactional way,so if you distribute your roles in different update domains,your service wont’ become unavailable during an update.You can distribute the roles in different update domains specifying the upgradeDomainCount attribute in the service definition file.
You can associate these two concepts with a vertical and horizontal partition.The following diagram illustrates a Azure service distributed in 2 fault domains and 3 update domains.