While Cloud Computing is easily one of the biggest trends in the information technology industry today, it can be intimidating for those investigating it for the first time, especially when it comes to the beloved workloads they are looking to possibly move to the cloud. Today we are going to focus on an important aspect of those workloads, which are the virtual machines the workload resides on.
What is a Virtual Machine?
To start, let us review exactly what a virtual machine is. If you are not familiar with virtual machines or virtualization, be sure to check out my article What is VMware? it will give you the foundations for what we are going to discuss.
A virtual machine is nothing more than a collection of resources, which can be broken down into three categories: compute, network, and storage. This is what a virtual machine really looks like.
If you are familiar with any other computing device, such as a desktop confuter, a physical server, or even a cellular phone or tablet, these components should be familiar. All modern computing devices share the same components.
Do you understand this concept? Great! You understand the cloud, and virtual machines in cloud computing.
The Truth About Virtual Machines In The Cloud
The truth about virtual machines in the cloud is that they are no different than the virtual machines in our data center, or even the device you are reading this article on. Fundamentally, it all works the same way.
Things can still get confusing when it comes to virtual machines in the cloud. Each of the major cloud providers calls their virtual machines something slightly different. Three major cloud providers are:
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
Now, we are going to review the anatomy of a virtual machine for each of the major cloud providers. You will notice they all operate on the same principles above, but use slightly different terminology.
Virtual Machines in AWS – AWS Instances
AWS provides compute and storage services using EC2 (Elastic Cloud Compute) instances. Instances are sized according to the family which can be burstable, memory-optimized, CPU-optimized, GPU-optimized and many others. Each family has sizing which can range in naming to represent the size.
Examples would be t2 as the family and they come in t2.nano (1 vCPU and 512 MB RAM) up to t2.2xlarge (8 vCPU and 32 GB of RAM). The sizing is what we often call “t-shirt” sizes because of the naming. Size and type will also determine the price per hour of each instance.
Virtual Machines in Microsoft Azure – Azure VMs
On Azure you will be using Azure Virtual Machines which also get called Azure VMs. The sizing and type of Azure VM is called a SKU which have classifications like General Purpose (e.g. B, Dsv3, Dv3, Dsv2, Dv2, Av2, DC), Compute Optimized (e.g. Fsv2, Fs, F), Memory Optimized (e.g. Esv3, M, GS, G, and others), as well as Storage Optimized, GPU, and High Performance Compute.
Pricing and capability is also relative to the size and SKU within each VM type.
Virtual Machines in Google Cloud Platform (GCP) – Machines
Google calls their compute “machines” and defines their capabilities and sizes as machine types. You will see the machines types separated as Standard, High-CPU, High-Memory Shared-core, and Memory-optimized. Google Compute Engine is different than the other two clouds because they offer a custom machine type where you can define your own virtual hardware assignment at a slightly higher cost than the standard machine types.
There are also GPU options for workloads that need a little GPU boost and a special offering for GCE is the TPU which is designed for Machine Learning and AI by adding TensorFlow optimized hardware to the machine.
Cloud Virtual Machines by Any Other Name
At the end of the day, no matter what it is called, a cloud virtual machine is still similar to the virtual machines you run in your data center today. While the terms may be different, the components are the same, and they still use the same three key resources of compute, network and storage.
This means your current knowledge of IT infrastructure, virtual machines, and applications will translate easily to the cloud. The hardest part is getting used to the terms your cloud provider uses. At the end of the day, if you slip up and call your Amazon EC2 instance a virtual machine, it is not the end of the world.
Stay tuned as we continue to learn more about translating the terms we are used to to the cloud!