IaaS Resilience, which cloud platform is better? Azure or AWS?
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.
Azure and AWS Data Centre Comparison
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.
AWS Availability Zones and Regions
Amazon Web Services Regions
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.
What is an AWS Region?
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 AWS Availability Zone?
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.
Azure Regions and Availability Zones
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 Azure Regions
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 Availability Zones
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.
So what are the differences between Azure and AWS?
Just focusing on what is discussed above, we can surmise the following;
- Microsoft Azure currently has 54 regions versus AWS’s 22. Depending where your user or client base is, and to ensure quick response times of your infrastructure, Microsoft’s Azure maybe the only choice.
- Microsoft have more regions closer to one another than AWS. (In Australia for example, we have four Azure Regions (but not Availability Zones as yet) compared to AWS only having the one). If for example AWS had a major outage that caused an issue to effect their whole Sydney Region, then you could possibly failover to Singapore, but expect lower performance due to the increased distance and latency (could be a problem if you have data sovereignty and need to keep your data within the Australian boundary) compared to Microsoft having four possible regions to utilise should a region have major failure. (should be noted here that two of the Australia Regions (Central 1 and 2) are only approved for use by Defense, Government and Banking, if your business does not fall under this category then you will only be able to use either Melbourne or Sydney)
- AWS has more availability zones per region currently than Microsoft does, but Microsoft plan to roll out the Availability Zones as quickly as they can, so expect them to eventually have the same construct as AWS. Of course they have more regions so eventually they will over take AWS in this number.
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.