Now this blog post is only going to cover the two largest cloud providers, Microsoft’s Azure and Amazon’s AWS and only focusing on Infrastructure as a Service (Azure VMs for Azure, and EC2 for AWS) offerings they both provide, but with a bit of a deep dive in to the way they both provide resilience. Also with some architecture best practices to ensure your infrastructure and furthermore your applications remains available in the event of failure so that you can still provide applications to your user base and more importantly to your end customers. When designing your cloud IaaS deployments knowing how best to architect for high availability and resilient infrastructure is required, so knowing the in’s and outs of the major cloud providers is a must.
In this first part of a multiple blog overview we will cover off both AWS and Azure’s datacentre construction.
Let’s start to look at how they each construct their data centres and provide you with their platforms for your Infrastructure as a Service deployments.
First off the bat, let’s see how AWS setup their Datacentres. AWS has 69 Availability Zones dispersed over 22 geographic regions throughout the world (as of August 2019, but we can expect this number to grow as they continue to expand.)
Each AWS region is separated by geographic location and are totally independent from one another and are also made up of multiple AWS availability zones. Wikileaks actually released the locations of each AWS datacentre (some are AWS owned others are co-located datacentres). This isolation between regions is provided by completely separate infrastructure, that includes cooling, power and water supply. Every AWS region will have a minimum of two availability zones and each Availability Zone will have a minimum of one datacentres within each AZ, with connectivity between each datacentre within the AWS region having redundant low latency network connections between them.
AWS Regions and Availability Zones Overview
In the picture above I have focused on the Sydney Australia AWS Region, which is comprised of three availability zones, multiple data centres (thanks to our wikileaks friends we know there are 8 in the Sydney region) and each with high bandwidth, low latency private redundant fibre connections which allows synchronous replication of services between each AZ.
So what is an Availability Zone? Well by AWS own definition an ‘Availability Zones are the core of our infrastructure architecture and they form the foundation of AWS’s and customers’ reliability and operations. Availability Zones are designed for physical redundancy and provide resilience, enabling uninterrupted performance, even in the event of power outages, Internet downtime, floods, and other natural disasters.’ As stated before each AZ is made up of one or more datacentres but are logically grouped as one datacentre (availability zone) for all intents and purposes.
Having numerous Regions with multiple availability zones all with isolation and fast reliable network connectivity between them provides you with great fault tolerance and stability for your EC2 instances.
Up until recently Availability Zones were not available within Microsoft Azure, but they have recently just come to the party (Availability Zones are currently not available in Australia, but we have four Azure Regions. The first Australian Region to offer Azure Availability Zones will be Sydney with commissioning of this AZ slated for some time in 2020). Previously Microsoft thought multiple regions was better for their cloud environments over the AWS AZ model, but there are limitations with just using regions. The biggest issue with a region only approach is that the network between each region and the large distance between them would only allow asynchronous replication. This translates to data discrepancies as it was impossible to achieve a recovery point objective of zero which means possible data loss should an Azure region have an outage and you need to fail over your application and services. Now dependent on what business you are in this loss of data maybe not such a big problem, but if for example you are a bank, where a loss of 1 millisecond of data could contain millions of dollars of lost transactions that would be a huge problem. Luckily for us, Microsoft is rapidly building more datacentres and availability zones
Microsoft has currently at the time of writing this article 54 Azure regions available worldwide and is available in 140 countries. An Azure region is very similar to an AWS region, being that they are sets of datacentres that are connected with a low latency network between them. Microsoft do have selected Region pairs, depending on the storage replication you choose, your data will be asynchronously replicated to the closest available region. (For example, if your main Azure Region is Melbourne, your data can be replicated to the Sydney Region).
Microsoft Azure Regions and Availability Zones Overview
Microsoft’s Azure Availability Zones are being rolled out over the next few years, so we can expect them to have the same resiliency as AWS for your cloud Azure VM deployments. The Azure AZs are unique physical locations and have independent power, cooling and networking from each other, with the physical separation providing you with protection from datacentre failure. Azure Regions and Availability Zones will provide you with a reliable, resilient and expanding platform for you to utilise for your cloud virtual machines.
Just focusing on what is discussed above, we can surmise the following;
AWS and Azure Regions Comparison Map
All this alludes to two very competitive cloud vendors both trying to convince you to use their services, we really are spoilt for choice.
In the next blog post in this series, I will delve deeper in to AWS and Azure around the best practices for each vendor and how to ensure the uptime of your Virtual Machines, and since you are here dont forget to check out just some of our software designed specifically for Azure.