I find it puzzling whenever I come across any reasonably sized IT infrastructure that has little or no virtualization in place, and my puzzlement turns to amazement if there's no plan to embrace virtualization in the near future. Whether it's due to the "get off my lawn" attitude that eventually killed off many AS/400 admins or simply a budget issue, clinging to a traditional physical infrastructure today is madness.
For one thing, what are these companies buying for servers? If they're replacing old single- and dual-core servers with new quad-core boxes (at minimum) and simply moving the services over, then they've got a whole lot more hardware than they need. Each of their server workloads is running on hardware that could easily handle a half-dozen virtual servers, even with free hypervisors. Are these companies only going to embrace server virtualization when the rest of us have already moved past it?
If we look forward a few years, we can expect to see fundamental changes in the way we manage virtual servers. As if the advent of stem-to-stern enterprise virtualization wasn't already revolutionary, I think there's plenty more to come. The next leap will occur when we start seeing operating systems that were explicitly designed and tuned to run as VMs -- and won't even function on physical hardware due to the lack of meaningful driver support and other attributes of the physical server world. What's the point in carrying a few thousand drivers and hardware-specific functions around in a VM anyway? They're useless.
Eventually we'll start to see widely available OS builds that dispense with a vast majority of today's underpinnings, excising years of fat and bloat in favor of kernels that are highly specific to the hypervisor in use, and with different ideas on how memory, CPU, and I/O resources are worked and managed. We're backing into that now with the advent of introducing CPU and RAM to a VM through the use of hot-plug extensions that were originally conceived to be used for physical RAM and CPU additions.
But this is the long way around -- it's a kludge. When an OS kernel can instantly request, adapt, and use additional compute resources without going through these back alleys, we'll be closer to the concept of true cloud computing: server instances with no concern for underlying hardware, no concept of fixed CPUs, no concept of fixed or static RAM. These will be operating systems that tightly integrate with the hypervisor at the scheduling level, that care not one whit about processor and core affinity, about optimizing for NUMA, or about running out of RAM.
(I should note that Microsoft has already done something like this in the forthcoming Windows Server 8 Hyper-V, enabling the hypervisor to hot-add RAM to a Microsoft OS even as old as Windows Server 2003 R2. It just says, "Oh, more RAM," and goes with it -- good show.)
This will naturally take years to be fully realized, but I'm sure it's coming. The hypervisor will become strong and smart enough to take over these functions for any compliant host OS and essentially turn each VM into an application silo. As the load on the application increases, the kernel is more concerned with communicating the growing resource requirements to the hypervisor, which then makes the lower-level decisions on what physical resources to allow the VM to consume, and transition other instances to different physical servers to make room when necessary.