General Q&A: vCloud API

Version 7

    vCloud API General Description

    <![endif]><![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 &lt;>



    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

    “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?




    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 &lt;link to;. 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



    • 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

    • 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.