The term virtualization is applied in many different contexts these days. What do different virtualization schemes have in common, and how are they different?
They're [all] inserting a level of indirection between the software and the hardware of the system. There is virtualizing at the operating system interface level; VMware is down at the hardware level, and then there are things like WebSphere that are up on top of everything at a Java-level interface.
For each of these different techniques, you have some advantages and some disadvantages: What can it run? What performance does it run with? How confident are you of the isolation of the environment?
I could go with my VMware hat on and say [that] the hardware is the best place to do things; it has the strongest isolation and the most compatibility, and so on. But someone else would say, "Yes, but your virtual machines are quite large now because you have all the software on that compared to a Java applet that runs in a Java virtual machine." It really depends on the need.
The one place I feel very strongly about is when we start talking about security. Security is undermined by just a single bug, and the only way to avoid bugs is by making something very simple. That's one thing that distinguishes the hardware interface from these other virtualization layers that are out there.
Today, the killer application for virtualization in the enterprise is server consolidation. What will the next one be?
If you view [virtualization] as taking a bunch of machines and squeezing them onto a single machine, you're not using the real power of virtualization. A large percentage of the people who use our ESX product also use our VMotion technology to move virtual machines while they're running between physical boxes. The same technology that allowed them to do server consolidation now allows them to do things like load balancing across the different hardware platforms.
Now that I have a virtualization layer, what can it do for me to make IT more manageable and run more securely, more reliably?
Once you have this technology, it will just be so useful for so many things that you won't even remember why you brought it in in the first place.
Virtualization encapsulates a complete, running system environment into a file. How will that affect how software is distributed and installed?
It's definitely going to have a big impact. You can see that already with people shipping virtual machines around which have all the software fully installed to run a service. You can take this collection of bits, and all you do is drop it on a virtualization layer, and suddenly it's a working service. It's a fundamentally different paradigm for distributing software because you no longer buy this software package and prepare the machines for it and install the operating system and applications on it. Looking forward, if you want a service, you'll go grab some bits from a provider you trust, drop it into your virtual environment and suddenly have a service running.