Virtualization Viewpoints is a semi-monthly column that discusses current VMware- and virtualization-related trends, news and topics. Here we offer opinions and viewpoints on the competitive, quickly growing and ever-changing virtualization industry with a focus on VMware, the current virtualization market leader, which is in an ongoing battle to remain on top and distance itself from its competitors.
Taking advantage of the fact that more and more companies are virtualizing their servers, software developers have begun to design and deliver their applications as preconfigured virtual appliances. A virtual appliance is simply a pre-built virtual machine that exists as a set of files that includes configuration files and a virtual disk file that can easily be imported to a virtual host. Here's an example of a typical virtual appliance from HyTrust that includes the following files:
- HTA-20GB.vmdk – This is one of the virtual disks for the appliance and is approximately 450 MB in size. Once this disk is imported on to a virtual host it will be 20 GB in size.
- HTA-Log-10GB.vmdk – Another smaller virtual disk for the appliance approximately 2 MB in size. Once this disk is imported to a virtual host it will be 10 GB in size.
- HyTrust-Appliance.ovf – This is a text file in .xml format that contains the virtual hardware configuration for the appliance and tells the host how to create the new virtual machine.
When you deploy an appliance to a virtual host, a new virtual machine (VM) is created using virtual hardware specifications specified in the Open Virtualization Format (OVF) file. This includes the amount of memory, CPU and network interface cards (NICs) for the VM and additional configuration and settings. The virtual disks are usually shrunk for packaging (i.e. packaged as thin disks) and all unused disk blocks are removed. Once the VM is unpackaged, the virtual disks are copied to the virtual host and their sizes are increased to whatever is specified in the OVF file. Finally, the virtual disks are attached to the new VM and the VM is ready to be powered on.
The OVF standard
Most virtual appliances use the OVF. The OVF was created by a consortium of vendors including VMware, XenSource (which was acquired by Citrix) and Microsoft. OVF is intended for use as a method to universally package and distribute virtual machines.
While the OVF format is universal and can be used by any of the major virtualization vendors (Hyper-V will support it in an upcoming release), currently there is not a universal virtual disk file standard, so virtual disks need to be converted if they are not in the native format of the hypervisor that is being used. VMware uses its proprietary VMDK format disk files, Citrix and Microsoft both use VHD format disk files that are interchangeable with each other.
Before the OVF standard was created and embraced, virtual appliances typically consisted of a virtual disk file and a configuration file (.vmx) that could be copied to a host server and registered as a virtual machine. VMware has simplified this by integrating the ability to import and export virtual machines directly into vCenter Server from an OVF file so new appliances can be imported to a host and ready to use in minutes.
So why would you want to use virtual appliances instead of manually creating virtual machines and installing an operating system and applications?
- Operating system costs/size – Most appliances use a variant of one of the many Linux distributions to avoid paying OS license fees and to reduce the size of the appliance as many Linux variants have very small disk requirements. Appliances typically do not utilize graphical user interfaces (GUIs) like Microsoft Windows does, and they rely on Web browser interfaces for management. Companies that use Windows servers for their applications can save money this way since there is no need to use a Windows license for the application.
- Ease of deployment – Deploying an appliance is as simple as downloading it, importing it and powering it on. No need to install, configure and secure an OS and no need to install and configure an application. Potential time savings is huge for complex applications as there is a lesser chance of making configuration mistakes.
- Decreased complexity – Because everything is preassembled there is no need to optimize the OS and applications to work with each other. Very little knowledge of the OSis required as the appliance is essentially a sealed unit that only needs basic administration and maintenance.
- Simpler packaging – It's much simpler for vendors to package and deliver their applications as virtual appliances which should help reduce costs due to the reduced need to test software on multiple OSes and fewer support calls. These reduced costs could help reduce the purchase price and maintenance costs of the application.
While there are many advantages to using virtual appliances, there are, however, be a few disadvantages as well.
- You're limited in how much you can customize the appliance OS and applications. The appliances are already preconfigured and optimized to work in most environments, and making changes can cause the appliance to malfunction or cause degraded performance.
- Because appliances are prebuilt they can be more complicated to troubleshoot by administrators who are unfamiliar with the operating system that they are running. For example a Windows system administrator may be unfamiliar with using Linux commands that are used by the appliance's operating system.
- You can't typically patch appliances using traditional patching methods following your own patching schedule. Therefore you must wait to the appliance vendor releases an update before you can protect the appliance from known vulnerabilities.
Overall, the advantages outweigh the disadvantages, making virtual appliances an attractive option for most users. I'll give you some real world examples of the benefits of using virtual appliances.
How virtual appliances can save you time
In addition to being a VMware administrator I also do server and application administration, which includes installing and configuring WebSphere Application Servers. Each release of WebSphere seems to get more complicated and I spend a lot of time installing and configuring it to get it ready for use. Much of that time is spent trying to figure out the many configuration steps, troubleshooting configuration and integration with the many components and tuning performance.
As an alternative to the many hours I spend building a WebSphere server I could instead use IBM's new WebSphere Application Server Hypervisor Edition. This virtual appliance has an OS that is optimized for WebSphere and is configured to follow the standard WebSphere performance tuning best practices. It comes in OVF format, so you simply import it to a virtual host, power it on, perform some basic set up steps, and you are ready to turn it over to your developers and have saved yourself many hours of work.
There are many other virtual appliances available. VMware has a large appliance marketplace that has over 1,000 appliances in it that do everything from network security to systems monitoring. Many are free to download and use as they are built with open source software. Other commercial appliances must be purchased from vendors. Appliances are easily interchangeable amongst virtualization vendors using standard converter programs that support virtual-to-virtual conversions, so an appliance that you are using today on a VMware ESX Server can easily be moved to a Citrix XenServer if needed.
Virtual appliances are great; they're plug-and-play devices that simplify and speed up application deployment. As more and more companies embrace virtualization we will start to see more software vendors delivering applications as virtual appliances which further extends the benefit of using virtualization; you get the benefits of using a prepackaged application appliance without the additional hardware costs associated with using a physical appliance.
Eric Siebert is a 25-year IT veteran with experience in programming, networking, telecom and systems administration. He is a guru-status moderator on the VMware community VMTN forums and maintains VMware-land.com, a VI3 information site.