Virtualization is typically discussed in an IT Pro context both by major content publishers as well as software vendors in the virtualization space but I’ve always felt that the developer audience needs more info pointed at them that can provide best practices for test and dev environments as well as ways to take better advantage of virtualization scenarios in their development and test cycles.
I’ve always surmised that the reason Developers aren’t on the radar of some folks in the virtualization space isn’t that they aren’t using Virtualization technologies but that they are just more willing to cobble together solutions that fly under the radar without IT’s direct involvement.
But in order to tackle the subject of Developers and Virtualization here first and foremost I want to put together a short series on the subject. So let’s get started.
Virtualization - The Hardware
The first thing you’ve got realize if you are putting together an environment that you are going to utilize for dev and test that heavily leverages virtualization as part of the mix is you’re going to need more beefy hardware on a single box.
Let’s go through what’s most important first.
Memory
More than anything else memory is going to make or break the bank on your experience. One thing to consider is a laptop that can run with 4GB of memory and run Windows. One good example of this is the new MacBook Pro’s. While Windows can’t utilize all of the 4GB (as 64Bit Vista isn’t supported fully with 64Bit drivers in BootCamp) you can utilize all of that memory to spread around amongst your VM’s. Whether you are running those VM's as Windows VM’s in Parallels and Fusion (like me) or running them in Workstation, Virtual PC, Virtual Server, or WSV depending on your particular hardware setup.
Drive Speed
Drive speed is key here and while size matters in terms of the number of VM’s you can store you will quickly find that having more speed on that spindle is more important than GB’s if you need to make a trade.
Processor
Dual Core matters here of course and even more so if your virtualization platform of choice can actually let you leverage multiple cores (Fusion, WSV for example can whereas Parallels cannot.)
Video Card
Alas while you may be able to leverage that video card in your host OS all you’ll get to use is 64MB of memory at best in a VM and usually with a cruddy driver as well. But considering most of us aren’t game developers out there this isn’t usually a problem except for the after work (we hope) timeframe when you can leverage that graphics card. But the place where it will come in handy is the following point…
Max Resolution
One thing you’ll want very quickly is a high resolution setup and/or an ability to utilize multiple monitors. If you’re working from your laptop one thing you might want to get is the Dual Head or Triple Head setup for monitor output from Matrox that is an external device for your laptop. For example with my MacBook Pro I can take my monitor output (dual link DVI) and spit it out to two monitors (or a 30 inch Monitor if I wanted to put money out for that).
There is more to say here but the above is the basics. More upcoming in Part II.