I understood both Azure regions and Availability Zones are meant for fail over. But is there any specific difference between these?
Region pair are two regions nearby that are at least 300 miles away. Availability zones are inside region or can be between two region.
This is covered in documentation: https://learn.microsoft.com/en-us/azure/availability-zones/az-overview.
Azure availability zones are physically separate locations within each Azure region that are tolerant to local failures.
A region can contain multiple availability zones.
They protect against more local failures while the region pairs are further apart and protect from larger failures.
Related
This is very basic / fundamental oriented question.
Fact: "There's a minimum of three zones within a single region"
Fact: "Not every region has support for availability zones."
https://learn.microsoft.com/en-us/learn/modules/azure-architecture-fundamentals/regions-availability-zones
How can a region that has no support for availability zones have a minimum of 3 zone?
It doesn't make any logical sense so I guess I am misreading here. So can someone clarify exactly what am I missing?
I think you are confusing a region and an availability zone-enabled region. A region can have a single zone. Regions with three or more zones are an availability zone-enabled region.
From the official doc:
Azure availability zones are physically separate locations within each
Azure region that are tolerant to local failures.
How can a region that has no support for availability zones have a minimum of 3 zone?
Not all regions support availability zone at this moment. You can find a list of regions that support availability zones in here:
https://learn.microsoft.com/en-us/azure/availability-zones/az-overview#azure-regions-with-availability-zones
I was reading article from Microsoft which states as below
Managed disks are integrated with availability sets to ensure that the disks of VMs in an availability set are sufficiently isolated from each other to avoid a single point of failure. Disks are automatically placed in different storage scale units (stamps). If a stamp fails due to hardware or software failure, only the VM instances with disks on those stamps fail. For example, let's say you have an application running on five VMs, and the VMs are in an Availability Set. The disks for those VMs won't all be stored in the same stamp, so if one stamp goes down, the other instances of the application continue to run.
So the question is:
Is it single storage unit? I mean, if that storage unit is down, all VM goes down?
If yes, Does managed disk is the solution?
Answer to both is Yes. Use Managed Disks with Availability Sets when creating VMs so to avoid Hardware failures within a Zone aka Data Center. Multiple Zones aka multiple Data Centers combine to become an Azure Region. In one region you will have a minimum of 3 zones (data centers) and max has no limit as of now.
Managed disks by design have a high availability (SLA~~99.99%)This is done by providing you with three replicas of your data. If one or even two replicas experience issues, the remaining replicas help ensure persistence of your data and high tolerance against failures.
In fact, It is even better but more expensive, to use managed disks with Availability Zone Option, which protects your apps from a data center failure.. (Which happens!)
I am studying about microsoft Azure. Not able to understand difference between availability zones and regions.
Actually azure has the doc to describe the details about what's Availability Zones.
Firstly check: What are Availability Zones in Azure?
Availability Zones is a high-availability offering that protects your applications and data from datacenter failures. Availability Zones are unique physical locations within an Azure region. Each zone is made up of one or more datacenters equipped with independent power, cooling, and networking.
In another doc explains what's regions.
A region is a set of datacenters deployed within a latency-defined
perimeter and connected through a dedicated regional low-latency
network.
Availability Zones are part of regions.
Availability Zones are physically separate locations within an Azure region.
Azure Availability zone
An availability zone is one or more data centers that are independent of another (power, water, natural disasters). An availability zone could have 1, 2, 3, or a million data centers. Usually, 3 is a good number: since data can be replicated to the other 2 in case of failure, you still have more than one data center operating. But you can see Availability zones with any number of data centers. The more data centers, the more resilient against shutdowns. What it can be a little bit confusing, is that an availability zone is not a physical location per se as a datacenter, but a latency-defined perimeter.
Azure Region
Now scale that up. Imagine those datacenter are connected directly from one to the other, by low latency connections. AKA: private cable network.
Each Azure region features datacenters deployed within a latency-defined perimeter. They're connected through a dedicated regional low-latency network. This design ensures that Azure services within any region offer the best possible performance and security.
Look at this graph:
Now, a region that has more availability zones, is more resilient than one with fewer availability zones.
Azure Geography
It is an area with one or more Azure Regions—for example, India, the United States, United Kingdom.
Availability Zones are not available in all regions in Azure yet.
So, in the absence of this feature what are some HA alternatives adopted by customers ?
usually its combination of built-in geo redundancy with the one you implement on your own (say, Azure SQL replication + VMs in 2 regions) and traffic manager\azure front door on top of that.
That's correct, not all regions have Availability Zones. For VM's, you can use Availability Sets to get pretty close to the SLA for AZ's.
You should not really use multiple regions as an high-availability option if your workload is latency-sensitive. Regions should be considered for DR.
I would like to know the difference between the two. I dont find a specific explanation and also there is no specific documentation pertaining to Placement groups. It is always explained in relation to an Availaibilty set similar to the link belo. It is ecplained that it is similar to placement groups, but when to use one over the other?
https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-placement-groups
The only closest difference I was able to find was that the Azure Placement group maintains its own fault and update domains. But isnt that what Availability sets also focus on, separate fault and update domains?
In most cases, an availability set and a placement group provide the same availability guarantees (namely, that VMs within each are spread across update domains and fault domains). The difference is in how each may be used. Availability sets are used with VMs and cannot be used with availability zones. On the other hand, placement groups are created implicitly when you create a scale set. Scale sets allow for greater scale by deploying across multiple placement groups and even across multiple availability zones.
So, you may think, why not always use scale sets? Because scale sets require the same configuration for all VMs in the set (same VM size, same extensions on the VM, etc.). To summarize, you should use availability sets when you are ok with smaller scale but want each VM to be unique. On the other hand, you should use scale sets/placement groups when you want larger scale, often across availability zones, and are ok with each VM being the same.
I hope this helps. I've written up a quick blog post as well describing the different high availability strategies on Azure. Check it out if you're interested :): https://negatblog.wordpress.com/2018/06/04/high-availability-on-azure/
Cheers,
Neil
TL;DR: If latency is your first priority, put VMs in a Proximity Placement Group and the entire solution in an availability zone (a single proximity placement group cannot span zones). But, if redundancy and resiliency/high availability is your top priority, put your instances in an Availability Set (this will spread your instances across fault domains; these fault domains do not possess "common power sources and network switches").
Availability sets "[are] a logical grouping of VMs that allows Azure to understand how your application is built to provide for redundancy and availability...In an availability set, VMs are automatically distributed across these fault domains. This approach limits the impact of potential physical hardware failures, network outages, or power interruptions."
Proximity placement groups, on the other hand, "...offer co-location in the same data center. [Therefore] planned maintenance events, like hardware decommissioning at an Azure datacenter, could potentially affect the alignment of resources in proximity placement groups. Resources may be moved to a different data center, disrupting the collocation and latency expectations associated with the proximity placement group."
Resources:
https://learn.microsoft.com/en-us/azure/virtual-machines/availability#availability-sets
https://learn.microsoft.com/en-us/azure/virtual-machines/linux/co-location