A virtual appliance is a pre-integrated, self contained system that is made by combining a software application (e.g., server software) with just enough operating system for it to run optimally on industry standard hardware or a virtual machine (e.g., VMWare, VirtualBox, Xen HVM, KVM).
Packaging a solution as a virtual appliance can be incredibly useful because it allows you to leverage guru integration skills to build ready to use systems (I.e., turn key solutions) that just work out of the box or in the cloud with little to no setup.
A virtual appliance reduces unnecessary friction by streamlining previously complicated, labor intensive processes. They offer several benefits over traditional software applications that are installed on top of an operating system:
- Simplified deployment: A software appliance encapsulates an application's dependencies in a pre-integrated, self-contained unit. This can dramatically simplify software deployment by freeing users from having to worry about resolving potentially complex OS compatibility issues, library dependencies or undesirable interactions with other applications.
- Improved isolation: virtual appliances are typically used to run applications in isolation from one another. If the security of a virtual appliance is compromised, or if the virtual appliance crashes, other isolated virtual appliances will not be affected.