Have you ever read about some nice open-source package, decided that you wanted to try it, yet never followed through because you lacked the time to do so? I have lost count of the number of times I have heard that lament from clients who are trapped in a catch-22. They just don't have enough free time and resources to explore the packages that would save them the time and resources necessary to explore the packages....
This problem is compounded if you aren't familiar with the open-source operating system and support packages upon which the package you want to explore is based. In many cases, you have the double whammy of having to find the time to load and configure the environment before you ever get to evaluate the software. It's no wonder that many IT professionals have little choice but to pick a well-known proprietary solution, reach for the checkbook, and let someone else get it running for them.
However, there is another option that cuts the heavy lifting and allows you to get right to the fun part: using the software. That option, known as the "virtual appliance," is the topic for this month.
Tweak the Settings
In general, the term "appliance" has been adopted by the technical community to refer to a computer loaded with software to perform a specific task. Common examples include the DSL/cable routers everyone buys for their home networks, SPAM and virus filters that sit between the Internet and the corporate SMTP servers, and Google's indexing appliance, which does for your corporate intranet what Google proper does for the Internet.
The beauty of an appliance is that everything is preloaded and configured at the factory. All you need to do is plug it in and tweak its settings, and you're good to go.
The term "virtual appliance" has been coined by VMware, Inc. to refer to an instance of a virtual machine that was generated via their flagship product and then loaded and configured with everything needed to fulfill a specific function. Since it's a virtual device, you can think of it as an appliance without the hardware. Let me take a moment to explain the technology further.
First off, I'm not going to go into a sales pitch for VMware. They have great technology and can certainly be a player in your server consolidation strategy. While some upcoming technologies (such as Xen) can provide virtualization, VMware was one of the first companies to provide the technology on the Intel platform. For those unfamiliar with VMware, it performs the same function as IBM's LPAR technology (allowing you to split up a single machine into multiple logical machines), but it does so with a CPU that wasn't really designed for the purpose (the Intel processor). If you study VMware, you'll agree that it's quite impressive and works very well.
VMware's products are available for Linux, Windows, or bare hardware. The litany of operating systems that can run as a guest on VMware includes the various DOS and Windows flavors, the Linux and BSD UNIX clones and work-alikes, Novell NetWare, Sun Solaris, and many other OSes that run on the Intel platform.
The simplest way to create a VMware virtual machine is to use the "wizard," during which you specify the RAM and hardware devices that you want the finished machine to have. A virtual machine can share its host's NIC address (via NAT) or can receive its own IP address (via proxy ARP) and can have almost as much disk space and memory as you have available. (You do have to be careful not to over-commit your memory. It will cause your host OS to start swapping, with the associated performance implications).
Having completed the new virtual machine wizard, you can install your desired operating system into the virtual machine in exactly the same manner as you would if you were installing onto bare metal: Insert the installation CD and hit the power switch (which in this case is done by clicking the "power on" button). The operating system will not know that it is being loaded into a virtual environment.
Once the OS is installed, you'll find the files that comprise your newly-minted virtual machine stored as a single directory (specified in a dialog with the wizard). You can bundle this directory using your favorite tool (zip, tar, etc.) and move the resulting package around at will. A virtual machine created on a Linux-hosted VMware instance runs identically on a Windows-hosted VMware instance, thanks to the fact that all of the hardware that the virtual machine "sees" is virtual, too. Differences in host physical hardware have no bearing on the virtual hardware; thus, a virtual machine is not tied to a specific hardware configuration. This is what makes the virtual appliance possible.
A Real Time-Saver
At first glance, using virtualization doesn't seem to be a real time-saver. You still have to take the time to load the operating system and application software on a virtual machine. If someone else does that work for you, however, using virtualization can definitely be a real time-saver.
If you browse to VMware's site, you'll find a list of applications that have been rolled up into a virtual appliance awaiting your download. Have you ever wanted to try Nagios? It's there. Interested in Linux? There are a number of different distributions represented for both servers and desktops, including the BSD flavors, too. All you need to run one of these appliances is the free-for-download VMware Player software and a machine that has enough horsepower and resources to run both your normal applications and whatever is loaded in the appliance.
At the time of this writing, the list of available appliances extends over nine pages, two of which were added in the past week alone. I predict that even more open-source projects will appear as appliances, now that both VMware player and VMware server are available as free downloads.
What that means to you is that there is no longer a lot of up-front work to do prior to evaluating an open-source software package. You can easily download VMware player and an appliance for whatever package interests you (assuming that it has been made into an appliance) and get right into the testing stage. It can't get any easier than that! A side benefit to this scheme is that you don't have to worry about polluting your desktop environment with a bunch of test software. Once you're done evaluating a system, you can make the whole thing go away by simply deleting the appliance, while your host system maintains its pristine form.
Not Just for Evaluation
While ease of application evaluation is a great benefit of the virtual appliance concept, you certainly aren't limited to using it just for evaluation. VMware's technology is perfectly acceptable for deployment, too. The appliances that you download are preloaded and ready to go. Any configuration tweaks, software customizations, or updates that you do to it are persistent. Once you have completed your evaluation and are satisfied with your virtual appliance, you can move it on to another VMware-equipped machine to put it into production. Need more than one of the appliance you made? Use the "clone" feature to make additional copies. You can move your clones to completely independent boxes; or, if you have beefy enough hardware, you can deploy the clones to the same box to gain full advantage of virtualization.
One Less Excuse
I have been exploring open-source software for over a decade now, and I really love it. I've been fortunate to have the time to experiment to see what works and what doesn't. Many people don't have this luxury; the time constraints imposed by family demands and shrinking IT budgets (and a desire to have a life!) keep many from exhaustively investigating the realm of open-source software. I hope that by introducing you to the virtual appliance I have given you one less excuse for not diving headfirst into the open-source waters. There are some really outstanding products out there, and now they are being bundled in an easy-to-use form that makes them even more compelling. Enjoy!