Why build your own virtual machine when someone else has already done the work for you? In this post, Scott Lowe introduces virtual appliances, prebuilt virtual machines that can reduce service deployment time to minutes.
I've been on a virtualization kick lately in my blog postings. It's common knowledge now that virtualization can be used to solve all sorts of problems from server sprawl to availability to world peace. However, virtual machines have the pesky drawback that you still need to do actual work to get them up and running. You still need an OS. You still need apps. You still need general configuration. Traditionally, with a virtual machine, you'd just mount an ISO image of your favorite operating system and get started, just as if you were working on a physical machine.
But, you know, some enterprising folks decided that was simply too much work. After all, at the end of the day, a lot of very similar virtual machines are being created for a lot of very similar purposes. Why not harness the portable nature of a virtual machine and share freely with all?
Enter the virtual appliance. Wikipedia defines a virtual appliance thusly:
"A virtual appliance is a minimalist virtual machine image designed to run under Parallels, VMware, Xen, Microsoft Virtual PC, QEMU, Usermode Linux, CoLinux, Virtual Iron, VirtualBox or other virtualization technology."
Me, I define a virtual appliance as a lazy person's dream.
Seriously, though, a virtual appliance is simply a completely prebuilt virtual machine designed to perform a specific task. VMware hosts a massive virtual appliance marketplace, but there are a variety of places on the web from which virtual appliances can be obtained.
I'll start with the VMware Virtual Appliance Marketplace, though. There are hundreds of ready-to-go virtual machine images just waiting to be downloaded from this site. The Marketplace, shown below, is broken down into a number of categories to make your solution a little easier to find.
Beyond VMware's marketplace, there are other sites making available ready-to-go virtual machines. Another site, virtualappliances.net, builds Ubuntu Linux-based virtual machines for specific purposes. For example, virtualappliances.net has available for download a prebuilt LAMP server for web needs as well as a prebuilt Cacti appliance for network monitoring. VirtualAppliance makes appliances that run under VMware, Virtual PC, and Virtual Iron. Last week, I downloaded the Virtual PC-based Cacti appliance for testing, and getting it up and running couldn't have been easier. I simply had to open the appliance's virtual machine configuration file from within Virtual PC 2007 and, voila, instant base network monitoring system. For VMware, I would follow the exact same steps. From within the VMware management console, simply open the virtual appliances VMX file after downloading and unzipping the appliance.
Quite honestly, and I'm almost reluctant to admit it, I had a heck of a time getting Cacti going on my own and discovered the Cacti virtual appliance during a frustrated search for a solution to an installation problem. It saved the day and reduced the deployment time from days or hours to minutes.
You'll see more and more vendors going this route as time goes on, I think, especially as virtualization takes hold in more organizations. From a support perspective, what could be better for a vendor? The customer gets a machine that is ready to go and that is configured to the vendor's specifications. For now, though, I'm happy to see that some common tools are easier to work with.