Fabric controller owns all resources in a data center. Fabric
controller makes the Azure platform highly available. To avoid a downtime,
fabric controller groups the systems in the data center into a number of fault
domains. Each fault domain consists of systems which can shut down by a single
failure like the systems connected to a single hub. When it hosts
an application, it hosts the roles in different fault domains. So it is
advisable to have at least two Web/Worker roles defined for an application. This
will ensure that a small failure in the data center won’t bring down your
application.
Another aspect associated with the fabric controller is the Update
domain. Any update to the application will be done using the Update domain,
which will update one set of roles at a time to ensure zero downtime for your
application. Once the first set is updated successfully, it updates the second
set of roles.