Home > Virtualization > Virtual Appliance: Is It a Virtual Machine or an Application?

Virtual Appliance: Is It a Virtual Machine or an Application?

April 19th, 2010 Leave a comment Go to comments

With the growth of virtualization, a new term “virtual appliance” has been coined for a special type of virtual machines that are used like applications. What does it really mean?

First, a virtual appliance is still a virtual machine. When seen in vSphere Client, the virtual appliance does not look much different from other typical virtual machines. Secondly, the functionality of the virtual machine is limited to that of an application. More often than not, the virtual machine is installed with one application. Because of this, the underlying OS is stripped down only to the minimum required to support that application. This type of OS is also called Just Enough OS (JEOS). All the existence of the JEOS is to support the application in the virtual appliance.

Time to learn how to "Google" and manage your VMware and clouds in a fast and secure


Now, is it a VM or an application? It could be either, depending how you look at it. For ESX/vCenter, a virtual appliance is a virtual machine. You can manage it just like any other virtual machine. For application users, it’s an application, a special one that is different from a normal application.

Users’ expectations for an application include:

  • Lifecycle management. Users can install an application and delete it with full control. It’s of course within the limitation of the system resources like the size of hard disks. They can also start and stop it.
  • A user interface that allows interaction. The user interface could be command line interface, graphical user interface, or web interface that can be rendered in a browser.
  • Configuration management. The application should be customizable so that it addresses the uniqueness of different user’s requirement.
  • Get a particular type of work done. The nature of the work could vary dramatically, from productivity tools to the scalable server applications. Most applications persist data either to file system or database.
  • Interoperability with other applications. One very simple one is the clipboard on almost all the OS that allows pass information between different applications easily.
  • Patch and upgrade. When there is a hot fix or new version, it should be easy to upgrade the application.

Given what it is today, the virtual appliance normally has limitation on the user interaction. To save space, the appliance does not include a window system, making interactions not that straight forward. Interoperability wise, there is no simple, standardized way. For patch and upgrade, it’s mostly done within the OS, therefore not as easy as normal applications. Still the appliance is good for server type of applications, for example, a MySQL server, Tomcat server, etc.

In general, a virtual appliance is used like an application but managed like a virtual machine. This hurts usability. To make the virtual appliance widely adopted, we need a better way to manage the virtual appliance in a way closer to the traditional way we manage the applications. It means we need an application centric workspace for users that list all of his virtual appliances, let’s called it AppCenter, as well as a standardized way to manage and the virtual appliances.

  1. April 19th, 2010 at 01:34 | #1


    isnt that just the enterprise sight of this issue? Why we need this already on virtualisation layer, why not doing this on software development layer? (like we do it already?)
    This is already more flexible and more granular so the maintenance is a lot easier



  2. April 20th, 2010 at 01:47 | #2

    Steve, I have few questions about virtual appliances.

    1) What is the difference between virtual machine template & a virtual appliance. I know that, we cant import or export the templates using vSphere client unlike virtual appliances. But, apart from this what are the other major differences ?.

    2) I have done some experiments with vApps recently, So I have some amount of knowledge on vApps. My question is, If I include just one VM as part of a vApp, will that not be equivalent to a virtual appliance. If yes, why do we need separate concept like virtual appliance, when we can achieve the same purpose using vApp itself.

  3. April 21st, 2010 at 02:15 | #3

    Virtual appliance has its unique value in delivering applications that require extensive configuration after being installed or may have conflicts with other applications. You can use the virtual appliance pretty much as it is after uploading it to the ESX server.

  4. April 21st, 2010 at 02:22 | #4

    Good questions Prasanna,
    1. Virtual machine template is a “golden” image from which you can clone other virtual machines. Before converting a VM template to a VM, you cannot power it on. Virtual appliance is essentially a VM, mostly a small VM for a special purpose.
    2. vApp is a confusing term in my opinion. It should have been named as VMGroup or vSolution. You can include multiple VMs in a vApp. Although you can include only one VM in a vApp, it’s not typical case for vApp.

  5. Tabish
    August 3rd, 2010 at 02:25 | #5

    Hi Steve,
    I am new to this….what i wanna ask is (also need a little brief reply) Vapplaince isn’t more likely to be the image of VM or a VM without the operating system is Vapplaice? which one is true or i m wrong in both ways….it might be not an appropriate question but as i have already had mentioned i m new to this and can u plz also mention any book through which i can get it more explained?
    Thnx and Regards,

  6. August 3rd, 2010 at 02:37 | #6

    Hi Tabish,

    A virtual appliance is a special purpose virtual machine that comes with OS and an application. It’s not much different from a typical virtual machine technically, but how it’s used.

    In terms of book, you can find some at Amazon. VMware website is also a good resource.


  1. No trackbacks yet.