1
votes

Context :

We are prototyping a multi cloud deployment of our application (based on micro services). For balancing between high availability and co location we used "Availability Sets" feature in Azure. Which kind off ensures that Azure platform/service upgrades doesn't happen in two distinct sets simultaneously.

Availability sets Azure

Scenario :

I couldn't find anything similar in Google Cloud Platform and AWS. So in this case we have to go with separate "Zones" for high availability.

One argument in favor of Availability sets ( theoretically) are they are kind of more closer that Zones as the former is inside an data center.

Do we have anything close to "availability sets" in GCP and AWS. Please share your thoughts.

2

2 Answers

1
votes

It sounds like Placement Groups may be an equivalent feature in AWS. There are a few different configurations where you can ask AWS to cluster your instances very close to maximize network I/O performance or spread your instances across hardware to reduce correlated failures.

Cluster – packs instances close together inside an Availability Zone. This strategy enables workloads to achieve the low-latency network performance necessary for tightly-coupled node-to-node communication that is typical of HPC applications.

Partition – spreads your instances across logical partitions such that groups of instances in one partition do not share the underlying hardware with groups of instances in different partitions. This strategy is typically used by large distributed and replicated workloads, such as Hadoop, Cassandra, and Kafka.

Spread – strictly places a small group of instances across distinct underlying hardware to reduce correlated failures.

I can't speak for Google Cloud as I am not aware of a similar feature but I am also not nearly as familiar with their offerings.

Hope that helps.

2
votes

Regarding GCP, there are several solutions for high-availability. In general it is recommended to Design Robust Systems prone to failures and Building scalable and resilient applications.

By designing robust systems you are insuring that your VMs are available in case of single instance failure, reboot of the instance or if there is an issue with the zone.

What looks most similar to Availability Sets is Managed Instance Groups.

The managed instance group auto-updater allows you to deploy new versions of software to instances in your MIG, supporting different rollout scenarios (rolling updates, canary updates). You can control the speed and scope of deployment as well as the level of disruption to your service.

Also you can use Regional Persistent Disk that replicates data across zones (datacenters).