vCloud API General Description
><![if gte mso 9]><![endif] ><![if gte mso 9]>
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 construct in the
VMware vocabulary that contains storage, networking and compute capacity in
which vApps are deployed.
What are 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. To learn more about vApps, click here < http://www.vmware.com/appliances/learn/vmware_studio.html>
What is OVF?
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. To learn more about OVF, click here here
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?
implementations of the vCloud API be backward compatible with previous versions?*
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
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, extensible, 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
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?
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
*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 site <link to vmware.com/go/vcloudapi>. 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.
Audience use cases
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
virtual nature makes it very easy to use and implement
the industry standard OVF 1.0 format.
is designed to support existing customers as well as enterprise still running
applications on physical hardware to move their legacy applications into the
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.