4

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?

huysmania
  • 1,054
  • 5
  • 11
Vikram
  • 543
  • 7
  • 20

2 Answers2

7

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

Neil Sant Gat
  • 857
  • 6
  • 10
0

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:

  1. https://learn.microsoft.com/en-us/azure/virtual-machines/availability#availability-sets
  2. https://learn.microsoft.com/en-us/azure/virtual-machines/linux/co-location
bwl1289
  • 1,655
  • 1
  • 12
  • 10