VMware Cloud Community
sacha201110141
Contributor
Contributor

vSphere vs. vCloud API - what to choose?

Hello,

After reading about the numerous VMWare products and API, things are still not clear to me.

First, some definition, just to make sure the foundations are clear to me:

  • vSphere Hypervisor (or ESXi) - the hypervisor ("similar" to a XEN or KVM hypervisor)
  • vSphere - the management layer to manage several VMs on a given machine
  • vCenter - enables the management of multiple vSphere i.e. a cluster/farm of servers
  • vCloud - provides a multi-center/multi-tenant view of resources

Correct?

Now, if I'd like to develop a solution that could be installed both in companies with vCenter installer as well as running on datacenters à la Terremark providing vCloud support. How do I do this? My understanding is that for the former I'd need to use the vCenter API and for the later the vCloud API, but both seems "incompatible" i.e. I cannot "cast" my vCloud API into a reduced vCenter set of APIs, right? Does it really mean I have to implement TWO products: one for hosting providers based on the vCloud API and one on vCenter API for companies (I don't want to force enterprises to buy vCloud if they don't need it).

Thanks for your replies.

Sacha

Tags (2)
0 Kudos
1 Reply
lamw
Community Manager
Community Manager

Hello,

You're pretty much correct on the definitions but here are some additional information regarding those terms:

vSphere is just the name of the platform, in this case it's the 4th generation hence vSphere 4.x. Within vSphere, it is comprised of the hypervisor (ESX or ESXi) and vCenter which is the centralized management system and integration point for both auxiliary VMware products such as CapacityIQ, vCenter Operations, etc. along with 3rd party tools. vCloud Director and it's APIs is another level of abstraction which sits ontop of the vSphere platfom, it's APIs actually make use of the vSphere API. vCloud looks at consuming resources from within a vSphere environment or multiple vSphere environment and instead of dealing with provising a single VM, you're looking at vApps as it's main construct for virtual machines. Instead of provisining storage, networks, cpu and memory, you're consuming virtual datacenters which contains your computes/etc.

So having said that, you may need to leverage both APIs depending on what you're trying to accomplish. If you're managing an internal/external vCloud Director configuration, then you will need to use vCloud API which is REST based. If you're managing vSphere environment within your own datacenter, then you'll want to leverage the vSphere API which is provided as a standard webservices API. If you plan on running both an internal and external vCloud Director setup, then you would only need a single API, remember that vCloud Director can run in both your internal datacenter and can also be offloaded to external providers. Some of the recent tools like vCloud Connector allows you to move an offline vApp from vSphere/vCloud Director environment to both internal and external vSphere/vCloud Director environment.

Here are a few additional links that may also be helpful:

http://www.bythebell.com/2011/03/a-40000-foot-view-of-vmware-vcloud-director.html

http://www.doublecloud.org/2010/09/object-model-of-vmware-vcloud-api-the-big-picture-in-2-minutes/

http://www.doublecloud.org/vmware-vsphere-api-and-sdk-faq/

0 Kudos