In an enterprise IT world in which everything seems to change every six months – or faster – virtual machines have had a remarkably long run. Depending on when you count the start date, VM’s have been around some 20 years.
What’s up with virtual machines today? To get a sense of the current state of VM’s, I spoke with Michael Roy, Product Manger at VMware.
In an wide ranging conversation, we covered:
- Virtual machines vs. containers.
- Virtual machine use cases – common and not common.
- The challenges with virtual machine – and how to solve them.
- The future of virtual machines.
See below: transcribed highlights of my discussion with Michael Roy.
The Current State of Virtual Machines
Virtual machines vs. containers
“You can think of a container as an isolated Linux process, you can think of a virtual machine as an implementation of a physical computer. So they're very different.
“At the end of the day, they provide a level of isolation. Generally, you're gonna run some app in it. Apps need an operating system to run and you need to have a way to isolate those processes in a distributed system in a big system, right?
“So virtual machines are a way to isolate each of those processes in a way that is actually bound by this thing called the hypervisor, and the hypervisor talks to the CPU and can coordinate all the different calls between the host operating system and all the different guest operating systems. So virtual machine, the barrier there is the operating system is running, thinks it's inside of real hardware.
“Whereas a container, a container has no notion of the operating system or of the hardware around it. It only knows that, ‘I need a chunk of the Linux kernel.’ And the Linux Kernel has a feature in it that allows the kernel and the threads to be broken up and separated, and those separate threads are isolated in a particular way that is a little different from a virtual machine. So it's like a bunch of processes on a single computer versus a whole bunch of individual computers.”
Virtual Machines Live Side By Side With Containers
“That's actually the best of both worlds, right, because you have the security isolation and the management controls of a virtual machine. And then if you put that virtual machine as a Linux thing that can run containers, now you've got an extra special, double barrier there, so to speak.
“And we've taken that to the next level at VMware. We introduced at VMworld this thing called Project Pacific, it's not shipping yet, but it's a rewriting of our lower level hypervisor so that it runs containers and VMs basically at the same level.
“So there's this really tiny virtualization layer around the container, and then you have your typical VM, which has the bigger stack. It's pretty incredible, the stuff that we can do by baking it in that level, but it gives us the ability to take a small descriptive text file, give it to the host and it'll automatically create this application that wasn't there before.”
Virtual Machines Use Cases
“The thing about virtualization is it's kind of everywhere. So when you think about where it is, any time you open up a webpage, 99.9% of the time, you're hitting a VM running in somebody's data center; some cloud, if you will.
“And really all the cloud is, is just the orchestration of all these different virtual machines and containers, and being able to sort of automatically deploy that stuff for client consumption. Every webpage you've ever been to has a virtual machine. Certainly on the desktop with Fusion and Workstation, you have the ability to run different operating systems, whether you're doing development testing or you want to run a video game from an operating system that's no longer supported, those types of things.
Challenges for Virtual Machines
“One challenge that always comes up is performance. You know, ‘How do I make my VM run faster?’ And depending on where that VM is running, it's generally going to be a give and take between what your host computer is and what you want the virtual machine to do.
So if you take, for example, a laptop and you've got a VM on it, you generally don't wanna give more than like half of your system resources to the VM. You can give more if you're really only living inside of a virtual machine. But you want to leave enough resources on the host so that it does the things that the host needs to do.
“And sometimes it's easy to over-commit, so you apply too many resources to it. And then you have a problem which is called contention, and that happens in the data center a lot where you have all these different VMs fighting for the same resources.
“And there's some really interesting ways of guaranteeing some resources and preventing other things from consuming those resources, and then having extra resources available that are shared. So you can give everybody a certain baseline and then they have this sort of room to share and play.”
Future of Virtual Machines
“Well, it's 20-odd years we've been around, right? It's not yesterday's technology, but it's amazing how fresh we're still able to keep things.
“I know here, there are a lot of very interesting things coming up around very narrow use cases. So I think what you're going to see in the future is very purposeful virtual machine architectures, so things like AI and ML, as an example, right? Those have very special characteristics.
“Like I was mentioning about performance, AI and ML workloads need a ton of disk IO because you're feeding in an incredible amount of data. You need to have generally some sort of GPU-based computational engine that can do different kinds of math that your CPU can't do. And that gets a little different when we're trying to work things into a virtual machine.
“So I think you're gonna see things that gets a little more specialized, especially when you look at things like Edge and IoT. This whole 5G wave, the way that 5G works is you have to have more cell towers and those cell towers have to have infrastructure right at the tower port. And how do you do that?
“Well, virtual machines are a great way to do it. But virtual machines, as they were, when we were saying before, can sometimes be pretty big, so we need to streamline them and make it so that they're appropriate for that use case.”