Virtual Machines for the Web Worker


Virtualization software has come of age. Using virtualization, you can run an entire second computer (a virtual machine) as an application inside of your primary computer. The technology has caught on in the data center, where virtualization allows IT managers to make more efficient use of hardware resources by combining multiple logical servers into a single physical server, which has benefits for reliability and scalability. But with software like Microsoft Virtual PC and VMware Workstation for Windows, Parallels Desktop and VMware Fusion for the Mac, or VMware Workstation for Linux, this technology is available to the digital Bedouin as well. Here are four ways that I’ve found to incorporate virtual machines into the hectic web worker lifestyle.

Separate Working Environments – Are you doing PHP development for some clients and Rails work for others, with two different preferred ways of setting up your tools, path, and so on? Instead of constantly reconfiguring your machine, set up a VM for each client, and install just the tools you need in each VM. Then it’s a simple matter of working in the VM that you need, without worrying that you’ve forgotten to change some setting. The next step is to keep (and archive) a VM for each major deliverable. If a maintenance issue comes up in 6 months, you can quickly get back to exactly the code and tools you were using when you delivered things.

One Foot in Both Camps – If you’re a Windows developer who wants to switch to the Mac but who can’t afford to give up ASP.NET work (or who doesn’t want to let down existing customers), buy a Mac and run Windows in a VM (the opposite doesn’t work, because nobody is virtualizing OS X…yet). You can have your shiny new Mac toys whenever the pressures of legacy support don’t force you back into the Windows environment. You might even find that there’s a market for smart people who can speak in both dialects.

Virtual Client Server – Just about everything you might want to develop can be done on a single computer these days. But if you’re doing “enterprisey” work you might find yourself wanting to test against a separate server box running your database or web application. Rather than carting two laptops and a hub to the coffeehouse, virtualize that server and run it inside your existing laptop. Sure, it will be a bit slower that way, but you won’t look like the biggest geek on the planet either.

Living Less Dangerously – Do you find yourself forced to install beta software or version 1 releases that are less than perfectly stable? Or perhaps you’re the sort of technophile who just automatically gravitates to the latest and greatest. Living on the cutting edge can be fun, but it’s less fun when you find yourself having to repave and reinstall your entire operating system because you managed to destabilize the whole computer. Set up a VM named “Sandbox” and use it to test out all that cool new stuff. Then you can migrate applications to the real machine after they prove to be both useful and stable.

One tip: if you’re going to load multiple virtual computers into a single physical computer, you want to make sure that the box is loaded for bear. Max out the RAM with as much as you can buy. You’ll also find that there’s a substantial performance improvement to be had by keeping the virtual machine images on a separate hard drive, so it makes sense to buy a fast external FireWire or USB 2.0 drive to hold them.

Have you incorporated virtual machines into your mobile lifestyle? We’d love to hear about any novel uses you’ve come up with!



My boss want me to install the Microsoft Virtual Machine, we want to run database in different version, the MVM can help this… any one can explain the use of MVM and can give example of its applications… pls. email me at or


Dan Moore

A VM environment help immensely help productivity when a new person is joining a team, especially if the project has been around for a while.

Rather than spend the first couple of days setting up a complex environment, a newbie can actually do productive work in an environment set up by someone who knows the wrinkles of the particular architecture, stack, build system, etc.

Bug fixes are my favorite way to get introduced to a new codebase.


Also, are there any good sites for finding pre-built images? I’ve seen some cool stuff like a 30 MB tiny linux / Python image on the VM Ware site.


Any idea if there are “cheaper” Windows/Mac image licenses available?

I’d love to have a Mac image on my computer for crossplatform development testing, but I don’t want to buy a full OS license.

(and yes, I’ve seen the torrents… wondering if there is a legal recourse)


One problem with using the USB 2.0 drives is you’ll find is that it thrashes the drives a little bit too hard, leading to heavy fragmnetation (and in the odd case we’ve found, bad sectors on drives)

It’s OK for sales/pre-sales/mobile developers on laptops, but if it’s a workstation, get a spare decent sized SATA hard drive and install it internally.


Check out Slicehost for virtual servers. They are Xen based and great for web and database servers with the ability to scale as needed. We do all of our Ruby development on them for our web app.

Matt Wiebe

While not everyone’s in love with idea (me included), Microsoft is releasing XP SP2 VPC images for the purpose of testing stuff on IE6 if you’ve installed IE7 on your main rig, or if you’re using Vista and have no other way to test on IE6.

Of course, I’d much rather forget IE6 ever existed… but we don’t have that luxury, do we?


A while back I needed to upgrade my laptop. Much of the software I was using I did not have original installation disks for. So I virtualized my old laptop and created a virtual PC on my new laptop. I can start my virtual PC and operate all of my original laptop software seemlessly. I also was encouraged by my brother, a system security guru, to use a VM machine for security purposes. He preaches that using a virtual machine, especially for surfing, is the best way to protect your host operating system from security breaches. Any unwanted changes to the virtual machine can be undone simply by reverting to its original state.

Comments are closed.