How to Build
Building a virtual appliance from your existing solution is a small investment compared to the benefits you gain from doing so. There are several decisions you have to make when building a virtual appliance for your solution. These questions usually focus on the typical ‘buy’ versus ‘build’ decision:
- Are there some specific benefits to building your own virtual appliance from scratch?
- Do you want to own and maintain the whole stack?
- Do you have the skills to customize and tailor an OS to specifically match the needs of your application?
- In what format will you package and distribute your virtual appliance?
Many solution providers look to the marketplace to see what options are available for taking a traditional software stack and turning it into a virtual appliance. Depending on how much of the stack you want to take from third parties, you might look to these different players in the virtual appliance ecosystem for some or all of your solution:
- Virtual Appliance Development Services: There are several companies that specialize in taking a commercial software package and custom building a virtual appliance around that package. The benefit to having a third party do all of the work is that they will typically be available to support your virtual appliance if needed (remember, virtual appliances usually don’t need support because the end-users never need to manually install or configure anything inside the virtual appliance!). Usually, ‘support’ will mean keeping the virtual appliance up-to-date as you release new versions of your solution or as patches for the underlying OS need to be applied to your virtual appliance.
- Virtual Appliance Development Tools: This emerging category of development tool specifically allows companies, with little or no experience in building virtual appliances, to take their software and package it up as a virtual appliance. Typically toolkits include the ability to configure an operating system to matches the needs of the application (pulls in any services and dependencies needed), provide an extensible way of controlling the first-boot process, and allow for web-based management and configuration of the virtual appliance (for network settings, log file configuration, security, etc).
- OS Vendors: More and more OS vendors are realizing the importance of supporting the virtual appliance model. As such, they are making light-weight or custom configured versions of their operating systems available to ISVs who wish to build virtual appliances. This approach allows ISVs to leverage the benefits of “Just enough OS” (or JeOS). If you are comfortable building the management and other configuration interfaces for your virtual appliance, using your favorite OS vendor’s JeOS might just be the way to go when building your virtual appliance.
If you decide to tackle the whole virtual appliance development process yourself, be sure to read through the Best Practices Document . This document details the design principles you should adopt when building your own virtual appliance.
Finally, consider the packaging and distribution format for your virtual appliance. The Open Virtualization Format (OVF) is a packaging format and transport mechanism for virtual appliances. OVF formatted virtual appliances can be easily transferred from an ISV to a customer's data center and be deployed on the virtualization platform of the customer's choice. OVF has several key features designed to enable the distribution, installation, and configuration of virtual appliances:
Flexible authoring – Creating an OVF can be done through two simple options. Solution providers can create OVF packages by exporting an existing virtual machine from a virtualization platform into an OVF package and adding to it relevant meta-data. For greater portability, a standard build environment or publicly available virtual appliance building toolkits may be used to create the OVF package. Ease of distribution – the virtual machine images can be compressed to facilitate distribution Support for multi-tier services – OVF directly supports the configuration of multi-tier applications and the composition of virtual appliances to deliver complex services. Package integrity – OVF uses commercially accepted procedures for integrity checking of the contents of the package, through the use of signatures and trusted third parties. This serves to reassure the customer that an appliance has not been modified since signed by the creator of the appliance. Portability – OVF is a packaging technology that enables virtual machines to be concisely interpreted by any virtualization platform. The virtual appliance provider determines how flexible or restrictive the solution is, ensuring that customers have the best possible user experience.
|