Virtualizing the Desktop

 

Can I fit into this box
    
I’ve always been a fan of virtualization. I’ve been running computers in a virtual testing lab for several years now. But, as good as it was, it was never quite fast enough for me to run as my primary development workstation. That is, until now.
For the last month I’ve been running VMWare Fusion 3 on one of the new 27″ iMacs (with the i7 processor and 8 GB RAM.) Windows 7 running in a virtual machine on this computer is quite a bit faster than my previous workstation, which was starting to get long in the tooth. I’m certain that for the same amount of money I could have gotten a computer that would blow them both away. But, what I have now is fast enough and includes some benefits that a dedicated box doesn’t.
  1. Being able to rapidly shift between VMs. I have several VMs, each dedicated to a different project or purpose. These were all shoehorned into a single computer before, now all I need to do is put one to sleep and start up another. I can also, in a pinch, run two side by side. I try not to do this very often, because even with 8 GB of RAM, it sometimes pushes me to swapping.
  2. Sharing files between VMs is easy using MacFUSE and shared folders. This removes much of the need to run two VMs concurrently. 
  3. Sharing files and clipboard between the VMs and the host. I do my e-mail, browsing, and most of the administrative work on my Mac. Because of this, it was always a bit of a pain when I needed to share something between the Mac and my development workstation. Now, it’s a breeze with shared folders, drag and drop, and the shared clipboard. 
  4. Travelling is now much easier. I don’t travel much, but when I do it’s always been quite a bit of work to take my development workstation with me. It would usually entail creating a VM (only for emergencies, I try not to do much development on my five year-old laptop.) Now, though, it’s a breeze. I just need to copy the VMs to an external disk and away I go. Also, I can just start the VMs on a fast machine on the other end.
  5. Snapshots. Being able to take a snapshot, and to rollback is a great help. If I’m installing some software to experiment with, I can just take a snapshot before I install, and rollback after I’m done with it. No need to worry about anything left behind (particularly spyware, which sometimes gets bundled.) I have my VMs set to create an auto-protect snapshot every day. This came in handy after I wanted to retrieve a file that I had deleted accidentally (this was on a “scratch” VM that doesn’t have proper backup or source control, and it saved me the trouble of recreating the file.)
I think that this pretty well sums it up. Virtualization on the desktop has finally come of age for me. I’m sure it’s still not fast enough for most real graphics intensive applications, such as video editing or gaming, but it has finally crossed the bar for my software development.  It’s a day that I’ve been waiting for (with every new release of VMWare Fusion or Parallels I spent a couple days trying to fit in my development only to be disappointed) and I’m glad it’s here now.