Azure high-availability

 

 

Availability Zones is a high-availability offering that protects your applications and data from datacenter failures. The physical separation of Availability Zones within a region protects applications and data from datacenter failures.


All the zones are in high-availabily, but not all the regions. 

 

With Availability Zones, Azure offers industry best 99.99% VM uptime SLA. The full Azure SLA explains the guaranteed availability of Azure as a whole.

Build high-availability into your application architecture by co-locating your compute, storage, networking, and data resources within a zone and replicating in other zones. Azure services that support Availability Zones fall into two categories:

 

- Zonal services – you pin the resource to a specific zone (for example, virtual machines, managed disks, Standard IP addresses), or 
 

- Zone-redundant services – platform replicates automatically across zones (for example, zone-redundant storage, SQL Database).

 

 

Products available by region

 

https://azure.microsoft.com/en-us/global-infrastructure/services/?products=sql-database,data-lake-analytics,machine-learning-service

 

High-availability and Azure SQL Database

 

The high availability solution is designed to ensure that committed data is never lost due to failures, that maintenance operations do not affect your workload, and that the database will not be a single point of failure in your software architecture. 

 

There are two high-availability architectural models that are used in Azure SQL Database:
 
- Standard availability model that is based on a separation of compute and storage. It relies on high availability and reliability of the remote storage tier. This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.
- Premium availability model that is based on a cluster of database engine processes. It relies on the fact that there is always a quorum of available database engine nodes. This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.

There are two high-availability architectural models that are used in Azure SQL Database:

 

- Standard availability model that is based on a separation of compute and storage. It relies on high availability and reliability of the remote storage tier. This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.


- Premium availability model that is based on a cluster of database engine processes. It relies on the fact that there is always a quorum of available database engine nodes. This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.

 

Basic, Standard, and General Purpose service tier availability

These service tiers leverage the standard availability architecture. The following figure shows four different nodes with the separated compute and storage layers.


The standard availability model includes two layers:

 

- A stateless compute layer that runs the sqlserver.exe process and contains only transient and cached data on the attached SSD, such as TempDB, model database, plan cache, buffer pool and column store pool. This stateless node is operated by Azure Service Fabric that initializes sqlserver.exe, controls health of the node, and performs failover to another node if necessary.

- A stateful data layer with the database files (.mdf/.ldf) that are stored in Azure Blob storage. Azure blob storage has built-in data availability and redundancy feature. It guarantees that every record in the log file or page in the data file will be preserved even if SQL Server process crashes.

 

Whenever the database engine or the operating system is upgraded, or a failure is detected, Azure Service Fabric will move the stateless SQL Server process to another stateless compute node with sufficient free capacity. Data in Azure Blob storage is not affected by the move, and the data/log files are attached to the newly initialized SQL Server process. This process guarantees 99.99% availability, but a heavy workload may experience some performance degradation during the transition since the new SQL Server instance starts with cold cache.

 

Premium and Business Critical service tier availability

 

Premium and Business Critical service tiers leverage the Premium availability model, which integrates compute resources (SQL Server Database Engine process) and storage (locally attached SSD) on a single node. High availability is achieved by replicating both compute and storage to additional nodes creating a three to four-node cluster.

The underlying database files (.mdf/.ldf) are placed on the attached SSD storage to provide very low latency IO to your workload. High availability is implemented using a technology similar to SQL Server Always On Availability Groups. The cluster includes a single primary replica (SQL Server process) that is accessible for read-write customer workloads, and up to three secondary replicas (compute and storage) containing copies of data. The primary node constantly pushes changes to the secondary nodes in order and ensures that the data is synchronized to at least one secondary replica before committing each transaction. This process guarantees that if the primary node crashes for any reason, there is always a fully synchronized node to fail over to. The failover is initiated by the Azure Service Fabric. Once the secondary replica becomes the new primary node, another secondary replica is created to ensure the cluster has enough nodes (quorum set). Once failover is complete, SQL connections are automatically redirected to the new primary node.

 

Fresh and updated Azure map location:

https://map-cdn.buildazure.com/

 

Azure Region Pairs

Microsoft Azure is generally available in over 54 regions around the world. Each Azure Region is home to a vast array of services hosted within multiple datacenters in the region. Separate regions is very apparent within Microsoft Azure, as you need to choose a specific Azure Region to host your services within.

 

An Azure Region Pair is a relationship between 2 Azure Regions within the same geographic region for disaster recovery purposes. If one of the regions were to experience a disaster or failure, then the services in that region will automatically failover to that regions secondary region in the pair. For example, North Central US region’s pair is South Central US.

 

Geography Paired regions
Asia East Asia / Southeast Asia
Australia Australia East / Australia Southeast
Australia Australia Central / Australia Central 2
Brazil Brazil South (1) / South Central US
Canada Canada Central / Canada East
China China North / China East
China China North 2 / China East 2
Europe North Europe (Ireland) / West Europe (Netherlands)
France France Central / France South
Germany Germany Central / Germany Northeast
India Central India / South India
India West India / South India
Japan Japan East / Japan West
Korea Korea Central / Korea South
North America East US / West US
North America East US 2 / Central US
North America North Central US / South Central US
North America West US 2 / West Central US
South Africa South Africa North / South Africa West
UK UK West / UK South
United Arab Emirates UAE North / UAE Central
US Department of Defense US DoD East / US DoD Central
US Government US Gov Arizona / US Gov Texas
US Government US Gov Iowa / US Gov Virginia
US Government US Gov Virginia / US Gov Texas

 

Source and reference: 

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-high-availability

https://buildazure.com/azure-region-pairs-explained/