Saturday, February 12, 2011

VMWare Server : Free Virtualization Solution

Another favorite tool of mine, VMWare Server is not new, (the current version, v2.0.2 was released over a year ago) but is a killer option for running multiple operating systems on one system (even simultaneously) for testing or development purposes.

What does it do?
If you aren't familiar with Virtualization, the basic concept is that your "host" machine can use VMWare Server to simulate one or more "guest" operating systems, which stay entirely separate from your current system.  In other words, it's like running "another computer" in a window. 



Applications for Virtualization (Why do I care?)
Why exactly would this be helpful, you might ask?  If you are a web developer, a software tester, or just your run-of-the-mill geek, the ability to host multiple operating systems can let you keep a bevy of browsers at your immediate disposal, or simulate the interaction between separate client and server machines.  Running Windows 7 but wondering what your web site looks like in FireFox 3 in XP?  Fire up your XP VM and find out.  If you need to try your desktop application on various operating systems (Windows XP, Vista, 7, even various Unix/Linuxes), virtualization is where it's at.  You can start with a clean installation of each OS, and take a "snapshot" of the virtual machine before making any changes.  You can install your desktop application, change settings, alter registry settings or otherwise mangle your VM, and roll back to that snapshot at any time.  Awesome!

Virtualization of Data
For a more advanced example, virtualization is an essential tool when performing automated software testing, or developing data-intensive applications.  Like the example above where we destroyed a clean installation of Windows (and then revived it,) we can do the exact same thing with a database server.  (A complete set of data needed for testing is often referred to as a "Golden Database.")  This allows us to minimize data setup time and avoid corruption or data integrity errors when developing or testing on less-than-perfect code.  When using an automated software testing tool (like HP QuickTest Pro, SmartBear TestComplete, or free and open-source Selenium,) consistent test data is essential for achieving reliable automated test results.

Portability
Finally, virtual machines are far more portable than installing test or development systems directly on actual hardware.  It's easy to copy a VM to another machine, or even to host it on the cloud to boot it up from anywhere at any time.

Requirements
As you could probably imagine, VMWare Server (and Virtualization in general) requires some serious hardware... or at least performs significantly better given more resources to do so.  The host machine I use for Virtualization tasks runs VMWare Server under Windows 7 Ultimate (64-bit) and has 8 gigs of RAM.  I can easily run 2-3 VMs at a time on this setup, but this does vary with the task at hand.
Though the added RAM is vital, when running multiple VMs, the bottleneck is often in disk read performance, so running separate hard drives per system, a RAID setup, or even just an SSD drive, can improve performance significantly.  With the 8gb at my disposal, disk contention is the bottleneck when running multiple VMs simultaneously.

Alternatives and Upgrades 
While we've spent most of our time talking about the advantages of Virtualization in general, there are a few different ways to go about implementing it-- only one of which is VMWare Server.  VMWare Server allows you to manage multiple Virtual Machines on your computer, boot them up, pause them, shut them down, let them interact with each other, and manage snapshots.  However, there are a few limitations-- it is free for non-commercial use, it limits you to one snapshot per Virtual Machine, requires a "host" operating system for use (thereby taking a bit of a performance hit), and is not intended for use for production systems.  

VMWare Player is a simplified variant of the VMWare solution, intended for those users that would only need to make use of a VM without added complexity.

VMWare Workstation, on the other hand, is the more powerful (paid-for) end-user solution-- you can read more about it here.

VMWare's main competitor is Microsoft Virtualization-- and a quick visit to their site shows that they are intently aware of that fact.  As always, the degree to which you'll love the Microsoft alternative is directly proportionate to how committed you are to drinking the Microsoft kool-aid.

But for me, the flexibility, shallow learning curve, and free-ness of VMWare Server wins my vote.  Give it a shot!


Footnote:
Various free operating systems:
Fedora (a la RedHat Linux)

No comments:

Post a Comment