As virtualization remains a foundation for infrastructure-as-a-service (IaaS), building a better virtual machine (VM) is still a hook for cloud service providers. It’s no different for the three biggest companies, Google, Microsoft, and Amazon, who despite meteoric advances in other areas, remain focused on improving their VM apparatus along with it.
This article will compare their VM offerings, the three most prominent platforms in virtualization: Amazon’s EC2, Microsoft’s Azure VM, and Google’s Compute Engine. It isn’t intended to say which one you should use since either could serve as a viable backbone, and they aren’t mutually exclusive. This is to present an objective gathering of their features and focuses so you know which is likely to work for your company or project.
Why Are VMs Important?
Virtual machines have been around since the 1960s, and are still a big part of software development and infrastructure six decades later. Consider the logistics of any operation that relies on computers–which is all of them by today’s standards, to some degree–and the necessity for computing resources to handle various tasks. Next, add the challenge of connecting different operating systems, and the inherent challenges of compatibility.
Virtual machines were developed primarily as an answer to these challenges, which eventually evolved into the cloud itself. And while many technologies have extended the concept of replacing physical resources with virtual resources (e.g. containers), VMs remain a pivotal tool for those who must operate in different environments. In fact, it can be said that public clouds exist to pass resources between virtual machines rather than their physical counterparts.
Amazon Elastic Compute Cloud 2 (EC2) was established in 2006, before Google and Microsoft’s offerings, coinciding with Amazon’s first forays into cloud services. The term ‘elastic’ refers to EC2’s pay-as-you-go pricing model, which can scale to meet the volume of a given project. Working with their ‘auto-scaling’ mechanism, Amazon’s focus is on flexibility, particularly for website backends that rely on virtualization across multiple platforms. That their own Amazon.com platform is powered by EC2’s virtual machines and AWS expresses how much volume their infrastructure is capable of handling.
According to their own numbers, AWS–and EC2 by extension–is hosted in 81 zones in 25 worldwide locations. This is as good as coverage can get in terms of cloud infrastructure, and where Amazon’s international business acumen becomes evident. In fact, the retail king has just opened a new region in the United Arab Emirates, to accompany their offices in Dubai and Bahrain.
Azure VMs are priced in an alphabetized series from A to N, where the A-Series is entry-level. Most of the letters in the series are optimized for specific purposes, but the H-Series would be considered the most powerful, providing up to 448 GB of RAM, 120 CPU cores, and 350 GB per second of bandwidth.
Microsoft’s virtual machines are presented as Azure VM for Linux and Windows VM for Windows. Like Amazon’s Auto-Scaling feature, Azure uses Virtual Machine Scale Sets (VMSS) to handle dynamic workloads. It creates application instances to accommodate fluctuations in traffic, supporting up to 1,000 VMs to maintain asset availability. The instances maintain the baseline configuration you set up to work, lessening or eliminating the need for fine-tuned network management beyond minor tweaks for different scenarios.
Azure claims to have over 60 service regions in 140 countries for their cloud operations, which means Azure VM is available in just as many places. The fact that Azure leads the way in this category should come as no surprise, considering that Microsoft was operating internationally before Amazon or Google existed.
Google Compute Engine (GCE)
GCE provides the most affordable spot pricing option with Spot VMs. This offers the same scalable power as a normal Compute Engine instance, except with lenient use contracts for batch jobs at a fraction of the typical costs. It should be noted that both Azure and EC2 have similar options–though not at the 91% savings that GCE claims–and that both have more affordable options for reserving VM instances.
Google’s answer to scaling is Custom Machine Types, which allows users to control how much virtual CPU (vCPU) and RAM is allocated for each instance at will. Straightforward commands to the API can call as much as 8 GB of memory per vCPU, and GCE allows up to 96 of them. Machine types can also come preconfigured, and optimized for different needs, such as general purpose and optimized for memory, though these are not optimized for specific workloads like the custom machine types.
EC2 vs GCE vs Azure
It’s clear that each of the VM offerings presented here are focused on two main objectives: flexibility and scalability. If these sound like broad terms, it’s because they are, which is why there are so many ways Microsoft, Google, and Amazon approach the challenge. Since compatibility only increases the likelihood a business will opt for a service, there’s less point for exclusivity, the ‘Cloud Race’ becomes as much about server availability than feature sets. This doesn’t mean VMs are the same as they were in the 1990s, however. The emulated computing power and availability of virtual machines continues to improve, so small to mid-sized companies can migrate to the cloud much easier.
Finding Cloud and VM Expertise
The beauty of virtual machines and cloud infrastructure is that these platforms can be managed by third parties. CTOs and the like can overcome limitations within their own IT departments by enlisting the help of experts, both in hands-on and consulting capacities.
If you have a need for such expertise, or want to know more about how any of the technologies covered above can help your organization migrate to the cloud or improve spending, consider the following pages: