I believe virtualization will have a big impact on regular computer users as well as how companies will do their computing. Lately, I've been thinking quite a bit about virtual appliances.
What got me going was the beta 2 release of VMWare Fusion, VMWare's desktop virtualization product for OS X. I made some note about my experience installing Fedora Core 6 in Fusion last week. Overall, I liked the product very much and think it will give Parallels a run for it's money on OSX. A little competition can't hurt.
Clearly, VMWare's thinking about virtual appliances as well. When you fire up Fusion, there's a big button with "VMTN" on it. Clicking that takes you to VMWare's Virtual Appliance Marketplace.
A virtual appliance is a machine image for some virtualization technology that provides a fully pre-installed, pre-configured application coupled with its operating environment. For example, if you wanted to start a wiki, you could set up a server, install the OS, configure Apache, MySQL, and PHP, and then grab MediaWiki and get it set to work with all those other pieces. Or you could download the MediaWiki appliance from rPath and bring it up on Xen. All the pieces would already be configured to work with each other.
If you've spent a lot of time configuring servers to provide just the right environment for some application or another, you'll immediately see the benefit of this. Managing dependencies can be a real headache, even for experienced system administrators. Of course, you've got to have the Xen virtualization monitor running to take advantage of the MediaWiki appliance, but once that's running, you can run any number of Xen-based virtual appliances, resources permitting.
Saturday I spent a little time with a LAMP-stack virtual appliance from VirtualAppliances.net. I grabbed the one that runs on Fusion, but they also offer it for Xen, VirtualPC, and VirtualIron. The whole image was 64Mb, compressed. Configuring the server, Apache, MySQL, and other components is done using a Web interface. You put files in the Web root by mounting it from another machine as an SMB file system. Slick.
I had a few problems with the appliance I downloaded, and that brings up the chief downside of virtual appliances: when something goes wrong, you're debugging someone else's install, at best, and just stuck, at worst. I was just stuck, as it turns out, since VirtualAppliances.net only offer SSH access to their appliances if you pay.
Of course, the real win comes when you move beyond simple LAMP stacks and into applications like telephony or CRM where the configuration and dependencies can be quite difficult. Need a SugarCRM appliance or a Asterisk appliance? Just download them.
Problems, aside, the whole idea is intriguing and will be the basis for some big changes in how enterprises manage their compute resources in the future. I just got done configuring a new Linux server for my blog and while none of it was particularly difficult, it took time I'd would have rather spent somewhere else. If I'd done it as a virtual server, the next time I wanted to update the hardware infrastructure, I could just move the virtual image. Next time, I will.
While, machine image virtual appliances, like the LAMP-stack, will likely remain something that is freely available, I expect the market for specialty virtual appliances to develop. VMWare, for example, "certifies" some of their virtual appliances, providing businesses some assurance that the appliance will work as advertised. We'll also hosting providers that provide virtual environments for the appliance of your choice and computer manufacturers like Dell offering machines with virutal machine monitors pre-installed.
Where is your company in it's use of virtual appliances (and virtualization in general)? Take this poll or leave a comment.[poll id=60]