A virtual appliance (VA) is a virtual machine (VM) image file consisting of a pre-configured operating system (OS) environment and a single application. The purpose of a virtual appliance is to simplify delivery and operation of an application. To this end, only necessary operating system components are included.
A virtual appliance can be deployed as a VM or a subset of a virtual machine running on virtualization technology, such as VMware Workstation. Deploying an application as a virtual appliance can eliminate problems with installation and configuration, such as software or driver compatibility issues. Users can simply download a single file and run the application. Resources required for maintenance are also reduced. Virtual appliances have proven useful in deploying network applications. They are also helpful in grid computing, where they can solve problems introduced by heterogeneous hardware and operating systems, and in the Software as a Service (SaaS) delivery model, where the simplicity of the virtual appliance can help improve economies of scale.
There are two types of virtual appliances, closed and open. A closed VA is always packaged, distributed, maintained, updated and managed as a unit. An open VA is accessible to customers for modifications. Developers can include a Web interface for custom configurations or delivering patches and updates.
Virtual appliances are a subset of the broader class of software appliances.