One of the things that me mate Dave has written a good bit about recently is virtualization.  Although I'm not an infrastructure expert, I find using virtual machines tremendously useful, for three reasons:


1. Managing my (Mini)-Infrastructure

My life at home is virtualized: I use the free Virtual Server 2005 to manage my humble server "infrastructure."  I run 3 different virtual machines on a low-powered server box which is sitting in the corner. Distributed between those 3 virtual machines are my domain controller (and other router-y bits), my Team Foundation Server, and my media server, which streams tunes on demand to my XBox360.  [More in this setup in the comments below.]

I find the setup extremely flexible, easy to manage and maintain.  As and when I need to upgrade my hardware, I will simply move those virtual PC images to a new box, fire them up, and away we go.


2. Demos that require elaborate setup

I also sometimes use virtual machines for demos.  Because it's easy to "freeze dry" a machine in a demo configuration (my terminology, not theirs), I can prep a virtual machine image until it's "just right," and then repeatedly restore it to that exact state for a number of demos.


3. Evaluating Software without hassle

The third thing I use virtual machines for is evaluating software. 

What's great about evaluating software via a virtual machine is that you don't have to bother with configuring or installing anything.  Instead, you just copy in the monstrous VHD (virtual hard drive) file, fire it up, and jump straight into walkthroughs and hands-on labs, or just mess around.  And there's no need to clean up, because you didn't install any software (beta or released) on your PC - just the self-contained sandbox that is the virtual drive image.

We've had a great Team System / Team Foundation Server virtual machine image available through MSDN Subscriptions for quite a while now.

Some great recent news is that Microsoft has launched the VHD (Virtual Hard Drive) Test Drive Program, which will enable customers and partners to evaluate even more mainstream enterprise software from Microsoft and partners.  As this program launches, we have pre-configured VHDs of Windows Server 2003 R2 and key Microsoft applications such as SQL Server, ISA Server, and Exchange Server + Live Communication Server. 

"With the VHD Test Drive Program, we will also enable our partners for the first time to now be able to distribute their applications and solutions as a pre-configured VHD built on top of Windows Server 2003 R2 and leveraging other Microsoft applications."

Here's more information about Microsoft's VHD Test Drive program


For now, I leave you with this thought: You know that episode of Star Trek when yer man from the holodeck realizes he's living in a virtual world and wishes he could be out in the real world?  Do you think programs on a virtual machine ever realize they're on a virtual machine... and wish they were out running on a real machine?