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.
At the compute level, we have CPU and Memory. These two things are what actually do the work for us. Next, we have the network. This is what allows a virtual machine to get instructions for the work they are doing, as well as transfer it. Finally we have storage, where the virtual machine can put the work they have performed.
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:
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. AWS 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 a 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) – Virtual Machine Instances
If you’re ever confused on what to call a VM when it comes to Google Cloud Platform, chances are you’ll guess partially right at least.
Google calls their compute Virtual Machine Instances or VM instances. GCP 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.
What is the difference between a VM and the cloud?
The truth of the matter is that there is not a very big difference between a VM in your datacenter and in the cloud. A VM in the cloud is still a collection of resources doing work, just like it was in your datacenter.
The big difference comes in what is underneath the VM. With the cloud, you don’t need to worry about the physical infrastructure underneath, you’re just consuming the virtual machines on top.
Besides the VMs we are all used to, the cloud also offers resources in other ways, such as offering storage alone to be consumed in any number of was, as well as AWS’ relational database service (RDS).
While a VM can exist in the cloud, there is much more to the cloud than just a VMs.
Is VMware cloud computing?
Now this is a question I’m often asked, and there are many different answers. Keep in mind I don’t work for VMware and I never have, so my answer may be a bit different than others.
VMware is cloud computing in a number of ways. First of all, there is our beloved vSphere that we are used to using in our datacenter. This is the private cloud.
VMware also makes it easy to move to the public cloud with their solutions such as VMWare Cloud on AWS. This makes the transition pretty seamless, and puts you in the realm of the hybrid cloud.
Of course along with VMware Cloud on AWS, are Google Cloud VMware Engine and the Azure VMware Solution. These of course can be a fully public cloud play if you’re deployed on one of them. There are also many other cloud providers running VMware under the covers.
As far as I am concerned, VMware paved the way for and invented cloud computing.
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!