Virtual appliances deliver focused services in a lightweight package. With all of the talk around virtualization being large system optimization, why single-purpose machines getting so much attention?
The next sound you hear will be the buzz surrounding Virtual Appliances (appliances). However, it isn’t just marketing buzz; this time it’s the real thing. Virtual Appliances are small, specially designed virtual machines that provide a single service or perform a single function. They usually have a significantly smaller operating system footprint than standard virtual machines, a single or very limited number of exposed TCP ports, and a single application. Some appliance examples are mail servers, CMS (Content Management System) servers, web database servers, groupware servers, intrusion detection systems, and dozens more. They provide these focused services in a lightweight and often free package.
So, why all the fuss over small, single-purpose virtual machines? Haven’t we been using these for years? Yes, in fact, we have been using them for years but the difference is that now there are commercial vendors who supply them, support them, and update them as they would any application or proprietary physical appliance. Virtual appliances make the vendor’s job easier in that they no longer have to support several different versions of physical systems in client data centers since virtual machines are hardware and platform independent. Keeping up with BIOS updates, firmware versions, and physical device age (product life cycle), and support issues for hundreds or thousands of client units is painful and costly. Vendor-supplied virtual appliance images available via download are ready-to-deploy and use.
Linux-based appliances have other advantages as well. The operating system is free, most of the applications are free, and it’s easy to maintain locally or remotely. Of its advantages, perhaps the most compelling of all is its customizability including the ability to install a fully functional Linux system within a very small (~500MB) footprint using a system known as JeOS (Just Enough OS)– pronounced “juice.” Most virtual appliance vendors begin with a JeOS system as a base system for a virtual appliance.
Creating a virtual appliance from a standard set of media is time-consuming and requires a high level of system knowledge to remove applications that aren’t necessary for supporting a particular application. To mitigate the need for this high competency level, some vendors (Novell and VMware) provide appliance-building software. Novell’s entry into the virtual appliance-building fray is SUSE Studio: A completely web-based, wizard-driven application (right now in alpha with limited access) that offers several options for a basic appliance (Text only, KDE3, KDE4, Minimal X, and GNOME). Currently, SUSE Studio only creates appliances for VMware or downloadable ISO or USB images but when the product moves to production, you’ll be able to create appliances in Xen, Hyper-V, VMware, OVF, and Amazon EC2 formats. VMware’s VMware Studio is a web-based application built on a virtual appliance. VMware Studio 1.0 is available as a free download from VMware. VMware Studio can be used for individual virtual appliance creation but it’s audience is ISV’s (Independent Software Vendors) or those who build appliances for public or customer consumption.
What about the downside to virtual appliances? Are there issues or concerns that would preclude one from using virtual appliances? As always, there’s a downside to any technology and virtual appliances have few but significant ones. Today, most virtual appliances are VMware only. You rarely find appliances for any other platform. This vendor lock-in may prevent some of you from embracing the idea of virtual appliances until vendor neutral or a more diverse choice for appliances hits the market. Since virtual appliances are small, easy to create, and readily available; their use may lead to virtual machine sprawl which consumes host system resources and storage.
If you’re using licensed applications or a proprietary operating system on your virtual appliances, you may run into licensing issues by deploying unlicensed appliances in your environment. Finally, virtual appliances whose applications are write-intensive, as in the case of some web databases. Disk access and I/O bottlenecks may require rethinking the decision to use virtual appliances for such an application.
Virtualization vendors are all abuzz about virtual appliances and rightly so — they are small, convenient packaged and delivered, function-focused virtual machines that provide enterprise-level service for a fraction of their value.