VMWare’s products use various versions and variations of VMDK disk images.
We knew we could export some kind of appliance.box package compatible with VirtualBox from Vagrant, but how this related to OVF wasn’t clear. Our build process made use of VeeWee, Vagrant, and Chef.
We quickly determined that an OVF or “Open Virtualization Format”-based approach had the potential to give us the greatest portability, and I set to work figuring out how to implement it. One of the problems we needed to solve for our customer was how to package and distribute the appliance. You may have heard that GitHub has a product called “GitHub Enterprise” that allows a business to deploy their own copy of the GitHub platform within their network GitHub Enterprise is distributed as virtual appliance. Virtual Appliances may or may not have full-blown operating systems supporting the applications, but the key thing is that they are able to run directly on a hypervisor (VMWare ESX, XenServer, Hyper-V, etc.). They have an server application that they would like to distribute to their customers along with some new devices, and a virtual appliance is a good way to do that in a reliable fashion. I recently worked on a project to create a “virtual appliance” for one of our customers.