2009-08-31

Cloud API Technology Preview

This was from an announcement from John Troyer

I saw a demo of a plug-in that utilizes this a while ago

The forum is now live

http://communities.vmware.com/community/developer/forums/vcloudapi

From the Q&A

vCloud API General Description
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 internal and external clouds as well as interoperability between clouds. The vCloud API enables the upload, download, instantiation, deployment and operation of vApps, networks and Virtual Datacenters.

What are networks in this case?
These are virtual L2 networks in the cloud that enable 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 (cloud OS) 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. Learn more about OVF.

What version of the vCloud API was announced at VMWorld 2009?
This is the alpha version (0.8) – Technology Preview - of the API

Do I have to pay a royalty to VMware to use the API?
No.

If I build a product using this API is there some claim I can make about being VMware compatible?
Not at this time.

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 resource pools 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 virtual resources. This offers improved scalability needed  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 vSphere API remains unchanged. The two APIs serve different roles. While the vSphere 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 vSphere 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.

Documentation and Availability
What is currently available as part of the vCloud API launch?
At VMWorld 2009, VMware released the API as a Technology Preview. 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.

When will the vCloud API be available?
VMware is working towards releasing the API in beta form.  We will inform interested developers and IT Admins as we approach our beta availability. We look forward to receiving your feedback. Share your thoughts and comments.

How can I participate in the vCloud API beta?
If you are interested in participating in the vCloud beta and wish to be informed on updates.

Audience use cases
Who is the vCloud API targeted towards?

The vCloud API is targeted towards developers and IT Admins across our service provider, ISV and enterprise customer community

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 internal clouds or external service provider clouds à broad application compatibility and choice of SPs (no lock in)

How can service providers use the API?
As part of their external 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 can 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 can enterprises use the API?
The vCloud API enables enterprises to build internal 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.

Licensing, Implementations
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.  See specific details on the license terms.