As enterprises move towards VMware-based private, public, and hybrid clouds, independent software vendors (ISVs) will find a fast growing market for cloud-ready applications. VMware lets you deliver on this huge opportunity through the VMware vCloud API, which allows programmatic access to cloud infrastructure, and vApps, which can be easily deployed to interoperable cloud environments.
- Write new applications or adapt existing applications to programmatically leverage a VMware-based cloud infrastructure with the vCloud API.
- Package pre-configured multi-tiered application stacks into vApps, which can be quickly deployed in VMware compatible clouds with no upfront packaging or configuration required of end users.
- Deliver enhanced value to your customers by using VMware resources and expertise when you join the Technology Alliance Partner (TAP) program as a vCloud ISV partner.
Frequently Asked Questions for Developers and ISVs
I want to be part of your vCloud partnership, what do I need to do?
You should become a VMware TAP Member (Technology Alliance Program) if you haven’t already. Once that is complete you will receive further information.
How do I write an application that is enabled in the vCloud?
The beauty of vCloud is that you can take a current software application written in multiple programming languages (Java, C, C++) and running on different OSes (Windows, Solaris, LINUX) and run it on a virtual machine (VM). This can then be run at a data center, corporate cloud or a cloud based service provider in one of three modes:
- Application running within a VM
- Virtual Appliance
If I built a virtual appliance, will you help me promote it to vCloud partners?
Yes. Virtual appliances and vApps are promoted in our VMware Solution Exchange (VSX) and other marketing avenues.
Is there a certification required to be vCloud enabled?
At this time there are no certification requirements, but this may change with time.
How do I make my standalone software application run as a ‘Software as a Service’ (SaaS) mode?
Deploy your application within a VM and host multiple instances of it with a service provider in different VMs. This way each of your customers will be able to access their own instance of the application without you having to recode it.
vCloud API FAQ
What is the vCloud API?
The vCloud API is an interface for providing and consuming virtual resources in the cloud. It enables deploying and managing virtualized workloads in private and public clouds as well as interoperability between clouds.
The vCloud API enables the upload, download, instantiation, deployment and operation of vApps, networks and "virtual datacenters".
There are two major components in vCloud API, the User API focused on vApp provisioning and Admin API focused on platform/tenant administration.
What are networks in this case?
These are virtual L2 networks in the cloud that enable a flexible model for establishing connectivity between vApps in the cloud and connecting them to external networks outside the cloud.
What is a virtual datacenter?
A virtual datacenter (VDC) is a new construct in the VMware vocabulary that contains storage, networking and compute capacity in which vApps are deployed.
What are vApps?
vApps are software solutions optimized for the cloud, consisting of one or more virtual machines, packaged and maintained as a single entity in OVF format. Just like the UPC bar code contains all information about a product, the vApp gives application owners a standard way to describe operational policies for an application which VMware vSphere and VMware vCloud Director can automatically interpret and execute. Therefore, vApps are self-describing to and self-managing on the platform they run.
What is OVF?
Open Virtualization Format (OVF) is a platform independent, efficient, extensible, and open packaging and distribution format for virtual machines. OVF enables efficient, flexible, and secure distribution of software, facilitating the mobility of virtual machines and giving customers vendor and platform independence. Customers can deploy an OVF formatted vApp on the virtualization platform or cloud of choice.
What version of the vCloud API was recently announced?
VMware vCloud API 1.0 was announced at VMWorld 2010
Do I have to pay a royalty to VMware to use the API?
Will implementations of the vCloud API be backward compatible with previous versions?
Backward compatibility will differ from implementation to implementation. vCloud API definition will also differ from version to version. As a rule of thumb: we will increase major version numbers when the new version is not backward compatible with the previous one. Minor versions will be increased when there are additions that will be backward compatible. For example 1.0.1 will be backward compatible with 1.0, while 2.0 will not be backward compatible with both 1.0 and 1.0.1.
vCloud API - Key Features & Technical Details
What are the key characteristics of the API?
The vCloud API is an open, RESTful API. It is a standards-based, platform independent, pure virtual API compatible with a broad and diverse range of applications.
What is REST?
It is very common for a compute cloud to have programmatic control. In working with customers a common request was to use REST. Representational State Transfer (REST) is an architectural style characteristic of programs that rely on the inherent properties of hypermedia and HTTP to create and modify the state of an object that is accessible at a URL.
What do you mean by "pure virtual"?
The API does not expose any aspect of the physical infrastructure (servers, storage, networks) or how the physical infrastructure is virtualized. In a cloud service only virtual forms of the infrastructure can be exposed through the API. The pure virtual nature of the API also helps make the API simple to use and implement.
How does this API support multi-tenancy?
For a cloud service to be multi-tenant, both its API and its implementation must support multi-tenancy. The pure virtual nature of the vCloud API enables it to be multi-tenant. Each cloud customer, or tentant, can only see its own set of virtual resources while having no means to address the shared underlying physical resources. This kind of isolation between tenants is analogous to the isolation between processes in a conventional OS achieved through the use of virtual memory: each process sees a continuous memory address space for its own use, but cannot directly address the underlying physical memory or the virtual memory of another process. Just like the virtual memory sub-system of a conventional OS in cooperation with its platform APIs works to achieve isolation between processes, in the same manner the cloud service implementation together with the vCloud API can support multi-tenancy.
How does the VMware implementation of the vCloud API allow for scalability?
VMware vSphere aggregates industry standard devices, storage and networking systems into unified logical resources to provide the highest level of reliability with the lowest cost of running applications. Such resource pools are managed by vCenter Server. The VMware implementation of the vCloud API spans multiple vCenter Servers to provide available pools of virtual resources. This offers improved scalability needed in a cloud service.
Is the vCloud API extensible?
Yes, it is possible for implementers to add links to new features and functions as well as extend the request and response schemas for defined API functions.
Is the vCloud API an extension of the vSphere/VIM API?
No, the vCloud API is not an extension, replacement or a subset of the vSphere/VIM API. The VIM API remains unchanged. The two APIs serve different roles. While the VIM API focuses on providing programmatic control for the creation and configuration of virtual resources based on physical resources, the vCloud API is focused on the use of these virtual resources while completely hiding the underlying physical resources. In other words, while the VIM API is a virtualization API, the vCloud API is a pure-virtual API. The two do not mix: each represents a different plane of abstraction onto which subject entities are projected. However vCloud Admin API will provide VMware specific extensions to deal with VIM specific objects
What documentation is currently available?
The API Programming Guide, API Specification and schema definition files are available for download from the vCloud API Developer Community. These documents will enable developers to write code to the API specification.
What licensing terms govern usage of the vCloud API?
The vCloud API Specification and schema definition files are being released under a permissive (MIT like) license. Developers and service providers are free to make use of the API under a royalty free license that allows for extension. For specific details on the license terms please reference the document itself.
Who is the vCloud API targeted towards?
The vCloud API is targeted towards developers across our service provider, ISV, end customer and cloud communities.
What are some key distinguishing characteristics of the vCloud API?
- Pure virtual nature makes it very easy to use and implement
- Supports the industry standard OVF 1.0 format
- It is designed to support existing customers as well as enterprise still running applications on physical hardware to move their legacy applications into the cloud
- Developing an application to the vCloud API makes it compatible with a large number of VMware-based private clouds or public service provider clouds
How do service providers use the API?
As part of their public cloud offerings, Service Providers can build “Infrastructure as a Service” portals with a standard, consistent programmatic interface. They can also use existing portals to orchestrate cloud functions through the API.
How do ISVs use the API?
ISVs can extend their existing software to make use of cloud services that present the vCloud API or build entirely new applications that make use of the API.
How do enterprises use the API?
The vCloud API enables enterprises to build private clouds based on the VMware technology stack. They can extend their workflow automation and provisioning to make use of vCloud services that implement the vCloud API.