AWS & Azure Journey 3

Typical data centers have multiple backup centers or disaster recovery centers in production environment and critical test environments. Sometimes the applications are deployed using HOT-HOT configurations where both main and backup servers can accept client requests. If main datacenter goes down, the new connections are routed to the DR (Disaster recovery) servers.

Similarly Resiliency and High availability are key considerations while choosing a cloud provider. Two main providers, AWS and Azure provide a very similar offerings to make applications highly available with few subtle differences. The main components of the high available architecture are Regions and Availability Zones.

Regions: Both AWS and Azure offers multiple regions across the globes with a cluster of data centers in each regions. The regions are unique physical location around the world. As of today AWS has 25 distinct regions across North and South America, Asia and Europe while Azure has 60 regions. Both of them are coming up with new regions rapidly.

Availability Zones (AZ): Each regions comprise multiple separate data centers with redundant network, power and connectivity. It is strongly recommended to keep your application and hardware, like EC2 (AWS) or VM (Azure), in multiple AZs for backups. The AZs make the cloud infrastructure highly available, fault tolerant and scalable. All AZs in an AWS region are interconnected with low latency network and they have synchronous replication between them. If one of the AZ data center goes down, customer applications still have other AZs to fall back into. Azure has Zone redundant services which replicate the applications and data across the availability zones automatically and protect from a single point of failure. AWS offers 80 distinct AZs across the regions.

Azure also has a concept of Availability Set which is to make applications redundant within a single data center. Azure does it by putting the application or VM into separate Fault domain and Update domain. Each fault domain has a different network switch and power source in cluster rack. When VMs are added to availability set, they are distributed to three different fault domains. This distribution ensures even if one server rack gets impacted due to power or network issues, the other 2 racks are unaffected and get the customer requests to your VMs or applications. Similarly VMs in different update zones are not scheduled to be updated at the same time. So any OS patching in a server rack will not impact all copies of your applications which are located in other update zones.

When your application is placed in 3 distinct AZs in a region, the application is atomically distributed across three fault domains and three update domains.

AWS local Zones: With AWS local zones, it has become very convenient to place compute, storage or other services closer to end users. Local zones are extensions of AWS regions where we can deploy latency sensitive applications.

As we can see, both AWS and Azure offer similar infrastructure to make our applications global, HA and resilient. We will later see how Edge servers, cloud fronts and scalability groups help us to build a robust infrastructure in cloud with minimum efforts.

Happy Learning.

Reference: https://aws.amazon.com ; https://azure.microsoft.com/en-us/