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

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.

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

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.

This entry was posted in Virtualization and tagged , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.


  1. Posted April 19, 2010 at 1:34 am | Permalink


    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. Posted April 20, 2010 at 1:47 am | Permalink

    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. Posted April 21, 2010 at 2:15 am | Permalink

    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. Posted April 21, 2010 at 2:22 am | Permalink

    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
    Posted August 3, 2010 at 2:25 am | Permalink

    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. Posted August 3, 2010 at 2:37 am | Permalink

    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.


Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.