Azure versus AWS which is better suited for my development environment?
With cloud adoption increasing exponentially, the role of IT is evolving from simply undertaking infrastructure planning to design and deploying platforms that provide optimal performance. Enterprises today have multiple choices between cloud infrastructure at varying price points and performance levels. To add on to it "Cloud" is no longer about hardware but the question on aspects like performance, security, and redundancy remains. "If my current application is deployed on a VM with 4 CPUs and 32 GB of RAM, which VM should be chosen from the cloud vendor we are looking at migrating our current infrastructure too? Will the VM that is provisioned on vendor A perform similarly with VM on vendor B?" The challenge is this performance variability will only appear during testing, or once the application is in a live environment and the first spike in utilization occurs. In a cloud setup, provisioning for the spike is an easy thing but its impact on cot can be severe, so for example; if the load factor on your cloud server hits its peak the choices are limited to whether to scale up with more virtual machines or build redundancy with on-premise infrastructure.
Cloud providers, in general, follow two strategies to position themselves in a market
- Pricing: A new player in the market may offer lower prices or help its clients lower cost, a strategy successfully adopted by Microsoft Azure by offering per minute pricing when it launched its services in the market
- Unique: Another strategy that can be adopted by a cloud infrastructure service provider is by building some unique functionality, for example, Digital Ocean has made its solution very developer friendly and helps them deploy solution seamlessly.
In terms of market share, there are just a couple of global players in the cloud computing market:
- Amazon: which moved from being one of the world’s largest e-commerce giants to a pioneer in the cloud infrastructure business.
- Microsoft: Nearly a monopoly in office productivity solution and a recent entrant in the cloud computing market which has within a short span emerged as a significant competitor to Amazon and one of the fastest growing cloud infrastructure service provider.
- Google: A name synonymous with search are positioning themselves as a got to a provider in the cloud for small and medium businesses and developer oriented cloud platforms.
Enterprises today must develop their services to address a global market which requires a powerful computing grid to handle peaks and troughs of their operations. Large infrastructure services providers have the scale and elasticity to be able to offer these to enterprises without having them to build additional capabilities.
A few people have suggested that Amazon had built its cloud offering to better leverage its infrastructure. It had the unique advantage to be able to offer its own unused computing infrastructure to enterprises without any investment. AWS’s EC2 (Elastic Compute Cloud) offers Amazon’s core computing platform, allowing users to configure VM’s through either preconfigured or custom Amazon Machine Images. Users could configure quite a few parts of the infrastructure like processing power, memory capacity, number of VM’s, they could also choose from among different geographies and availability zones from which to deploy their services. EC2 also offered its customers features like load balancing and auto-scaling. To ensure better performance Amazon offers Elastic Load Balancing that helped enterprise distribute load across instances this helped them do auto-scaling allowing users to automatically scale available EC2 capacity up or down.
When Microsoft in 2012 launched Azure as a preview, it did not make it generally available until May 2013. Azure users could choose a Virtual Hard Disk which in terms of functionality was like Amazon’s AMI to create a Virtual Machine. The Azure virtual hard disk could be either predefined by Microsoft, be user-defined or by third parties. With each VM, users need to specify the number of cores and amount of memory.
Within this blog, we are going to review two main factors when it comes to comparing AWS with Azure:
- AWS vs Azure: Databases and Storage: Azure offers temporary storage through Page Blobs for VM’s and Block Blobs and Files serve for Object Storage. Similarly, AWS provides similar functionality where an instance is started on the fly and terminated when the requirement is no longer there. The block storage of AWS is like a hard disk which again can be spun up and terminated as required. When it comes to databases AWS supports both relational and NoSQL databases. On the other hand, Azure supports both relational and NoSQL databases, and Big Data, through Windows Azure Table and HDInsight. One advantage that enterprises who have invested heavily on Microsoft tech stack incur is that the licensing for platforms like SQL Server can be easily transferred, when it comes to Azure, and the Microsoft development environment is quite seamlessly integrated into it On the other hand Azure still must mature its capabilities when it comes to tech stack built on Open Source platforms like Linux.
- AWS vs Azure: Networking: Amazon’s Virtual Private Cloud (VPC) and Azure’s Virtual Network (VNET) allow users to cluster VMs into distinct instances in the cloud. By leveraging VPCs and VNETs, users can define a network architecture. There is not much difference between AWS vs Azure when it comes to networking: both of them have a solution to extend an enterprise on-premise infrastructure to cloud. One aspect where Azure has a slight advantage is that it performs better in certain scenarios because of the low latency network that facilitates scaling.
Current generation of cloud infrastructure can deliver high-performance computing systems. With further development in virtualization, for example, container driven development, and improvements in hardware we will see a large-scale shift from on-premises to cloud-based platforms.
Sagar A is a AWS Certified Solution Associate and works on AWS Cloud at Navtech. He is also very experienced in Quality Assurance and Automation.