SlideShare a Scribd company logo
DE-03
Introduction to vCloud API


               Tichomir Tenev
Disclaimer


 This session may contain product features that are
 currently under development.

 This session/overview of the new technology represents
 no commitment from VMware to deliver these features in
 any generally available product.

 Features are subject to change, and must not be included in
 contracts, purchase orders, or sales agreements of any kind.

 Technical feasibility and market demand will affect final delivery.

 Pricing and packaging for any new technologies or features
 discussed or presented have not been determined.
About the Speaker


    Tichomir Tenev, Sr. Staff Engineer, vCloud
      Currently at VMware’s Cloud Service Mgmt & Automation Group
      With VMware since 2001
        Worked on Workstation and vCenter
        Helped design the vSphere API and several internal APIs and
        frameworks.
      Prior to VMware, designed and implemented an energy trading
      system for a startup.
      Education
        M.Eng. in Electrical Engineering & Computer Science from MIT
        BS in Computer Science and Mathematics from MIT
Agenda

Salient Points

Context

Key concepts

Deep dive
vCloud API Salient Points



 Standardizable                       Pure-virtual
   Platform independent                 Resource semantics described
     Can be used from virtually any     independent of physical
     platform                           semantics
     Can be implemented on a              Physical infrastructure is hidden
     variety of platforms                 Virtualization features are
   Straightforward to use and             obscured
   implement                            Simpler semantics focused on
   Powerful and extensible              end-use and not on virtualizing

   Standards-based
vCloud API Features


Interface for:
  Providing and consuming resources in the Cloud
  Deploying and managing virtualized workloads in the Cloud
  Migrating virtualized workloads between Clouds.
REST-based
Multi-tenant
Self-service
Service provider automation
vCloud API and vSphere API


vSphere API –                            vCloud API –
“Under the Hood” API                     “Driver Seat” API
  Used to create virtual resources         Uses virtual resources
  Virtualization API                       Pure-virtual API
    Exposes physical<->virtual mapping       Hides underlying physical resources
  Targeted at sys-admins                   Targeted at cloud tenants
  Product specific                         Product agnostic
    Exposes vSphere’s capabilities           Standardizable
    Tied to a specific implementation        Variety of implementations
  Rich and powerful                        Simple yet powerful
  VMware’s Cloud OS Platform API           Implementable on the vSphere API
                                           Does not replace the vSphere API
vCloud Ecosystem


Content Providers
  Developers, IT Admins, ISVs, Enthusiasts
Content
  Virtualized Software Solutions (vApps)
  Existing legacy solutions, or new apps written for the Cloud
Content Respositories
  Web Servers, Object Stores, Virtual Appliance Marketplace
Cloud Service Providers
Enterprises
vApp –
Next generation VM concept

An uplifting of a virtualized
  workload                               Instructions
                                       1. Name=eCommerce
  VM = Virtualized Hardware Box
                                       2. Only port 80 is used
  vApp = Virtualized Software         3. 100 ms web response
  Solution                           4. VRM: Encrypt w/ SHA-1
                                      5. DR RPO: 1 hour
  Encapsulation, isolation and      6.   Decommission in 1 month
  mobility higher up the stack    My eCommerce Solution
Properties:                       Fire
                                  Wall
                                         Tomcat   IIS
                                                         Load
                                                        Balance
                                                                Oracle


  Comprised of one or more VMs
  Encapsulates requirements on
  the deployment environment
  Distributed as an OVF package
vDC –
vApp Deployment Environment

 vDC                          Type of Commodity
                                Compute, Storage and
  vApp           vApp           Network SLAs
                              Quantity
                                MB of RAM, MHz of CPU, GB
  foo                           of Storage
                 VDCNet
                 (fenced)     Scope for Over-provisioning
 bar
 (isolated)                   Other features
 Trust Network                  L2 Networks

 DMZ Network
                                Persistent vApps
Deep Dive
Simple Example:
Power On

Request
 POST
 https://vcloud.example.com/vapp/413/power/action/powerO
 n
Simple Example:
Power On

Request
 POST
 https://vcloud.example.com/vapp/413/power/action/powerO
 n
Simple Example:
Power On

Response
 202 Accepted

 <?xml version="1.0" encoding="UTF-8"?>
 <Task href="https://vcloud.example.com/task/389"
     type="application/vnd.vmware.vcloud.task+xml"
     startTime="2009-7-31T09:30:47Z"
     status="running" ...>

     <Link rel="task:cancel”
       href="htt.../task/389/action/cancel"/>

     <Owner href="https://vcloud.example.com/vapp/413"
       type="application/vnd.vmware.vcloud.vapp+xml“
       name="My vApp"/>
 </Task>
Simple Example:
Look at a vApp
Request
 GET https://vcloud.example.com/vapp/413

 Content-type: vnd.vmware.cloud.vapp+xml
Simple Example:
Look at a vApp
Request
 GET https://vcloud.example.com/vapp/413

 Content-type: vnd.vmware.cloud.vapp+xml
Simple Example:
Look at a vApp

Response
 <VApp name="My vApp"
     status="1"
     href="https://vcloud.example.com/vapp/413" ...>

   <Link rel="up" href= "https://vcloud.example.com/vdc/128"/>
   <NetworkSection>...</NetworkSection>
   <ovf:OperatingSystemSection ...>
      <Link rel="edit" href="http..." ... />
      <Description>Microsoft Windows Server 2003</Description>
   </ovf:OperatingSystemSection>
   <ovf:VirtualHardwareSection ovf:transport="iso">
      <Link rel="edit" href="http..." ... />
      <Item>…</Item>
      …
   </ovf:VirtualHardwareSection>
 </VApp>
Entity Model


             UML Notation:
             “whole-part” relationship
             “part” is exclusively owned by “whole”




                                                UML Notation:
                                                One-way association
 UML Notation:
 “group-member” relationship
 “member” maybe shared between “groups”
Entity Model
Entity Model




               UML Notation:
               “general-specific” relationship
Entity Model
Example Workflow:
Instantiating a vApp Template
Finding a vApp Template

Request
 GET https://vcloud.example.com/vdc/128
Finding a vApp Template

Response
 <Vdc href="https://vcloud.example.com/vdc/128"
     name="Main Vdc" ...>

     <ResourceEntities>
        <ResourceEntity
           href="https://vcloud.example.com/vAppTemplate/111"
           type="application/vnd.vmware.vcloud.vAppTemplate+xml"
           name="Ubuntu Template with vsftpd"/>
        <ResourceEntity href="https://vcloud.example.com/media/112"
           type="application/vnd.vmware.vcloud.media+xml"
           name="Ubuntu Boot Floppy"/>
        <ResourceEntity href="https://vcloud.example.com/media/113"
           type="application/vnd.vmware.vcloud.media+xml"
           name="Ubuntu ISO Image"/>
     </ResourceEntities>
    ...
 </Vdc>
Get Information
about a vApp Template
Request

 GET https://vcloud.example.com/vAppTemplate/111


Response
 <VAppTemplate
 href="https://vcloud.example.com/vAppTemplate/111"
    name="Ubuntu Template with vsftpd"
    status="1"
    ...>
    <Description>Description of Ubuntu Template with
 vsftpd</Description>

 </VAppTemplate>
Instantiating a vApp Template

Request
 POST
 https://vcloud.example.com/vdc/128/action/instantiateVAppTemplate

 <InstantiateVAppTemplateParams
    name="Linux FTP server" ...>
    <VAppTemplate href="https://.../vAppTemplate/111" />
    <InstantiationParams ...>
       <NetworkConfigSection>
          <NetworkConfig name="My vApp Net">
             <Features>
                <vmw:FenceMode>allowInOut</vmw:FenceMode>
                <vmw:Dhcp>true<vmw:Dhcp>
             </Features>
             <NetworkAssociation href="https://.../network/14">
          </NetworkConfig>
       </NetworkConfigSection>
    </InstantiationParams>
 </InstantiateVAppTemplateParams>
Instantiating a vApp Template


Response

<VApp name="Linux FTP server"
      status="0"
      ...>
    <Link rel="up" href="https://vcloud.example.com/vdc/128"
          type="application/vnd.vmware.vcloud.vdc+xml" />
    ...
</VApp>
Example Workflow:
Upload/Download of a vApp Template
Upload Example:
Initiating the upload

Request
 POST https://vcloud.example.com/vdc/128/action/uploadVAppTemplate

 <UploadVAppTemplateParams name="Example Image" ...>
    <Description>Example VApp Template</Description>
    <ovf:Envelope>
       <ovf:References>
           <ovf:File ovf:href="disk0.vmdk"
              ovf:id="file1"
              ovf:size="1950489088"/>
        ...
       </ovf:References>
       ...
   </ovf:Envelope>
 </UploadVAppTemplateParams>
Upload Example:
Initiating the upload

Response
 <VAppTemplate name="Example Image" status="0"
     href="https://vcloud.example.com/vAppTemplate/268"...>
     ...
     <Files>
        <File name="example.mf" bytesTransferred="0" ...>
           <Link rel="upload:default"
              href="https://../adfe4..55cbdef/example.mf"/>
        </File>
        <File name="example-disk0.vmdk" size="1950489088"
              bytesTransferred="0">
           <Link rel="upload:default"
              href="https://../adfe4..55cbdef/disk0.vmdk"/>
        </File>
        ...
     </Files>
 </VAppTemplate>
Upload Example:
Sending the data
Using simple PUT
 PUT https://../adfe4..55cbdef/disk0.vmdk
 Content-length: 1950489088

 [disk0 data]



Using ranged PUT
 PUT https://../adfe4..55cbdef/disk1.vmdk
 Content-Range: 105639111-205639110/205639111
 Content-length: 100000000

 [disk0 data range]
Download Example:
Finding the download URL

Request
 GET https://vcloud.example.com/vAppTemplate/222


Response
 <VAppTemplate name="Ubuntu Image with vsftpd"
    href="https://vcloud.example.com/vAppTemplate/112"
    status="1"...>
    ...
    <Link rel="data"
        href="https://vcloud.example.com/ad3...782a/example.ovf"
        type="application/ovf+xml" />
    <Link rel="data"
        href="https://vcloud.example.com/ad3...782a/example.ova"
        type="application/ova+xml" />
 </VAppTemplate>
Download Example:
Getting the data
Getting the OVF descriptor
GET https://vcloud.example.com/ad3...782a/example.ovf

 Response
  <Envelope ...>
    <ovf:References>
      <ovf:File ovf:href="disks/example.vmdk"
         ovf:id="file1" ovf:size="1950489088"/>
    </ovf:References>
    ...
  </Envelope>


Getting the <References> files
GET https://vcloud.example.com/ad3...782a/disk/example.vmdk

 Response
  [example.vmdk data]
Complete list of operations

vApp Operations                                          Upload/Download/Provisioning Operations
      POST <vapp‐uri>/action/{deploy, undeploy}               POST <vdc‐uri>/action/composeVApp
      POST <vapp‐uri>/power/action/{powerOn, powerOff}        POST <vdc‐uri>/action/instantiateVAppTemplate
      POST <vapp‐uri>/power/action/{reset, suspend}           POST <vdc‐uri>/action/instantiateOvf
      POST <vapp‐uri>/power/action/{shutdown, reboot}         POST <vdc‐uri>/action/annotate
      GET <vapp‐uri>/screen                                   POST <vdc‐uri>/action/uploadVAppTemplate
      POST <vapp‐uri>/screen/action/acquireTicket             POST <vdc‐uri>/media
                                                              PUT <upload‐uri>
vApp Configuration Operations                                 GET <download‐uri>
      POST <vapp‐parent‐element‐uri>                          DELETE <resourceEntity‐uri>
      DELETE <vapp‐element‐uri>
      PUT <vapp‐element‐uri>                             Task Management
                                                              GET <tasks‐list‐uri>
Inventory Listing                                             GET <task‐uri>
      GET <vapp‐uri>                                          POST <task‐uri>/action/cancel
      GET <vdc‐uri>
      GET <vAppTemplate‐uri>                             Service Provider Automation
      GET <media‐uri>                                         Create/Delete/Update Org
      GET <network‐uri>                                       Create/Delete/Update vDC for an Org
                                                              Create/Delete/Update an Org Network
Catalog Management                                            Create/Delete/Update Org Catalogs
      GET <catalog‐uri>                                       Create/Delete/Update Users, Groups, Roles
      POST <catalog‐uri>/catalogItems
Q&A

More Related Content

What's hot

OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
 
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Wars I’ve SeenFrom Java EE to Spring and more, Azure has you coveredWars I’ve SeenFrom Java EE to Spring and more, Azure has you covered
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Edward Burns
 
VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test
Armstrongsmith
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
Ian Robinson
 
VMware vCloud Director 1.5 - What's New
VMware vCloud Director 1.5  - What's NewVMware vCloud Director 1.5  - What's New
VMware vCloud Director 1.5 - What's New
1CloudRoad.com
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
Roman Kharkovski
 
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
ITSpark Community
 
VMware vCloud Director
VMware vCloud DirectorVMware vCloud Director
VMware vCloud Director
Erik Bussink
 
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
Kai Wähner
 
Spring 3 MVC CodeMash 2009
Spring 3 MVC   CodeMash 2009Spring 3 MVC   CodeMash 2009
Spring 3 MVC CodeMash 2009
kensipe
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
David Currie
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
David Currie
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
David Currie
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
ifnu bima
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
Alan Renouf
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
aleyeldean
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
Arun Gupta
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
Hamed Hatami
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
Arun Gupta
 

What's hot (20)

OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Wars I’ve SeenFrom Java EE to Spring and more, Azure has you coveredWars I’ve SeenFrom Java EE to Spring and more, Azure has you covered
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
 
VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test VMware 2V0-21.20 Practice Test
VMware 2V0-21.20 Practice Test
 
IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)IBM WebSphere Application Server Update - Technical University (March 2015)
IBM WebSphere Application Server Update - Technical University (March 2015)
 
VMware vCloud Director 1.5 - What's New
VMware vCloud Director 1.5  - What's NewVMware vCloud Director 1.5  - What's New
VMware vCloud Director 1.5 - What's New
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
 
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
Adrian Stoian - Manage Private and Public Cloud Services with System Center 2...
 
VMware vCloud Director
VMware vCloud DirectorVMware vCloud Director
VMware vCloud Director
 
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
Lessons learned: Use of Modern JVM Languages besides Java - JavaOne 2012
 
Spring 3 MVC CodeMash 2009
Spring 3 MVC   CodeMash 2009Spring 3 MVC   CodeMash 2009
Spring 3 MVC CodeMash 2009
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and MicroservicesScalable, Available and Reliable Cloud Applications with PaaS and Microservices
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 

Similar to De 03 Introduction To V Cloud Api V1

vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
VMware vFabric
 
OSv presentation from Linux Foundation Collaboration Summit
OSv presentation from Linux Foundation Collaboration SummitOSv presentation from Linux Foundation Collaboration Summit
OSv presentation from Linux Foundation Collaboration Summit
Don Marti
 
VMware vCloud Director Technisch Overzicht
VMware vCloud Director Technisch OverzichtVMware vCloud Director Technisch Overzicht
VMware vCloud Director Technisch Overzicht
Arjan Hendriks
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
MariaDB plc
 
Virtualization meisen 042811
Virtualization meisen 042811Virtualization meisen 042811
Virtualization meisen 042811
Morty Eisen
 
Colt Enterprise vCloud
Colt Enterprise vCloudColt Enterprise vCloud
Colt Enterprise vCloud
Verizon Terremark
 
Tudor Damian - Comparing Microsoft Cloud with VMware Cloud
Tudor Damian - Comparing Microsoft Cloud with VMware CloudTudor Damian - Comparing Microsoft Cloud with VMware Cloud
Tudor Damian - Comparing Microsoft Cloud with VMware Cloud
ITSpark Community
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
adesso AG
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
Eberhard Wolff
 
Moonshot-enabled Federated Access to Cloud Infrastructure
Moonshot-enabled Federated Access to Cloud InfrastructureMoonshot-enabled Federated Access to Cloud Infrastructure
Moonshot-enabled Federated Access to Cloud Infrastructure
Eduserv
 
Presentation vmware building “your cloud”
Presentation   vmware building “your cloud”Presentation   vmware building “your cloud”
Presentation vmware building “your cloud”
solarisyourep
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
hokismen
 
V fabric overview
V fabric overviewV fabric overview
V fabric overview
Pronam Chatterjee
 
Harbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 Wrap
HarbourIT
 
Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...
Amazon Web Services
 
Rohit yadav cloud stack internals
Rohit yadav   cloud stack internalsRohit yadav   cloud stack internals
Rohit yadav cloud stack internals
ShapeBlue
 
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
shrutib
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
Amazon Web Services
 
A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...
OVHcloud
 
Gaming across multiple devices
Gaming across multiple devicesGaming across multiple devices
Gaming across multiple devices
Patric Boscolo
 

Similar to De 03 Introduction To V Cloud Api V1 (20)

vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
 
OSv presentation from Linux Foundation Collaboration Summit
OSv presentation from Linux Foundation Collaboration SummitOSv presentation from Linux Foundation Collaboration Summit
OSv presentation from Linux Foundation Collaboration Summit
 
VMware vCloud Director Technisch Overzicht
VMware vCloud Director Technisch OverzichtVMware vCloud Director Technisch Overzicht
VMware vCloud Director Technisch Overzicht
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Virtualization meisen 042811
Virtualization meisen 042811Virtualization meisen 042811
Virtualization meisen 042811
 
Colt Enterprise vCloud
Colt Enterprise vCloudColt Enterprise vCloud
Colt Enterprise vCloud
 
Tudor Damian - Comparing Microsoft Cloud with VMware Cloud
Tudor Damian - Comparing Microsoft Cloud with VMware CloudTudor Damian - Comparing Microsoft Cloud with VMware Cloud
Tudor Damian - Comparing Microsoft Cloud with VMware Cloud
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Moonshot-enabled Federated Access to Cloud Infrastructure
Moonshot-enabled Federated Access to Cloud InfrastructureMoonshot-enabled Federated Access to Cloud Infrastructure
Moonshot-enabled Federated Access to Cloud Infrastructure
 
Presentation vmware building “your cloud”
Presentation   vmware building “your cloud”Presentation   vmware building “your cloud”
Presentation vmware building “your cloud”
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
 
V fabric overview
V fabric overviewV fabric overview
V fabric overview
 
Harbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 WrapHarbour IT & VMware - vForum 2010 Wrap
Harbour IT & VMware - vForum 2010 Wrap
 
Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...
 
Rohit yadav cloud stack internals
Rohit yadav   cloud stack internalsRohit yadav   cloud stack internals
Rohit yadav cloud stack internals
 
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
Destination DevOps: Evolving from VMware lab management to cloud-based agile ...
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
 
A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...A journey to the cloud: Getting started migrating your on-premises service to...
A journey to the cloud: Getting started migrating your on-premises service to...
 
Gaming across multiple devices
Gaming across multiple devicesGaming across multiple devices
Gaming across multiple devices
 

More from ikewu83

Google F1
Google F1Google F1
Google F1
ikewu83
 
《云计算核心技术剖析》Mini书
《云计算核心技术剖析》Mini书《云计算核心技术剖析》Mini书
《云计算核心技术剖析》Mini书
ikewu83
 
云计算与NoSQL
云计算与NoSQL云计算与NoSQL
云计算与NoSQLikewu83
 
Yun table 云时代的数据库
Yun table 云时代的数据库Yun table 云时代的数据库
Yun table 云时代的数据库
ikewu83
 
Pnp
PnpPnp
Pnp
ikewu83
 
Dean keynote-ladis2009
Dean keynote-ladis2009Dean keynote-ladis2009
Dean keynote-ladis2009
ikewu83
 
云计算091124(李德毅院士)
云计算091124(李德毅院士)云计算091124(李德毅院士)
云计算091124(李德毅院士)ikewu83
 
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum  ibm experience 061104 陈良忠ibm cloud forum  ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611ikewu83
 
05 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 061105 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 0611ikewu83
 
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 061103 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611ikewu83
 
Cisco nexus 1000v
Cisco nexus 1000vCisco nexus 1000v
Cisco nexus 1000v
ikewu83
 
OVF 1.0 Whitepaper
OVF 1.0 WhitepaperOVF 1.0 Whitepaper
OVF 1.0 Whitepaper
ikewu83
 
OVF 1.1
OVF 1.1OVF 1.1
OVF 1.1
ikewu83
 

More from ikewu83 (13)

Google F1
Google F1Google F1
Google F1
 
《云计算核心技术剖析》Mini书
《云计算核心技术剖析》Mini书《云计算核心技术剖析》Mini书
《云计算核心技术剖析》Mini书
 
云计算与NoSQL
云计算与NoSQL云计算与NoSQL
云计算与NoSQL
 
Yun table 云时代的数据库
Yun table 云时代的数据库Yun table 云时代的数据库
Yun table 云时代的数据库
 
Pnp
PnpPnp
Pnp
 
Dean keynote-ladis2009
Dean keynote-ladis2009Dean keynote-ladis2009
Dean keynote-ladis2009
 
云计算091124(李德毅院士)
云计算091124(李德毅院士)云计算091124(李德毅院士)
云计算091124(李德毅院士)
 
04 陈良忠ibm cloud forum ibm experience 0611
04 陈良忠ibm cloud forum  ibm experience 061104 陈良忠ibm cloud forum  ibm experience 0611
04 陈良忠ibm cloud forum ibm experience 0611
 
05 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 061105 朱近之 ibm云计算解决方案概览 0611
05 朱近之 ibm云计算解决方案概览 0611
 
03 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 061103 李实恭-乘云之势以智致远 0611
03 李实恭-乘云之势以智致远 0611
 
Cisco nexus 1000v
Cisco nexus 1000vCisco nexus 1000v
Cisco nexus 1000v
 
OVF 1.0 Whitepaper
OVF 1.0 WhitepaperOVF 1.0 Whitepaper
OVF 1.0 Whitepaper
 
OVF 1.1
OVF 1.1OVF 1.1
OVF 1.1
 

De 03 Introduction To V Cloud Api V1

  • 1. DE-03 Introduction to vCloud API Tichomir Tenev
  • 2. Disclaimer This session may contain product features that are currently under development. This session/overview of the new technology represents no commitment from VMware to deliver these features in any generally available product. Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. Technical feasibility and market demand will affect final delivery. Pricing and packaging for any new technologies or features discussed or presented have not been determined.
  • 3. About the Speaker Tichomir Tenev, Sr. Staff Engineer, vCloud Currently at VMware’s Cloud Service Mgmt & Automation Group With VMware since 2001 Worked on Workstation and vCenter Helped design the vSphere API and several internal APIs and frameworks. Prior to VMware, designed and implemented an energy trading system for a startup. Education M.Eng. in Electrical Engineering & Computer Science from MIT BS in Computer Science and Mathematics from MIT
  • 5. vCloud API Salient Points Standardizable Pure-virtual Platform independent Resource semantics described Can be used from virtually any independent of physical platform semantics Can be implemented on a Physical infrastructure is hidden variety of platforms Virtualization features are Straightforward to use and obscured implement Simpler semantics focused on Powerful and extensible end-use and not on virtualizing Standards-based
  • 6. vCloud API Features Interface for: Providing and consuming resources in the Cloud Deploying and managing virtualized workloads in the Cloud Migrating virtualized workloads between Clouds. REST-based Multi-tenant Self-service Service provider automation
  • 7. vCloud API and vSphere API vSphere API – vCloud API – “Under the Hood” API “Driver Seat” API Used to create virtual resources Uses virtual resources Virtualization API Pure-virtual API Exposes physical<->virtual mapping Hides underlying physical resources Targeted at sys-admins Targeted at cloud tenants Product specific Product agnostic Exposes vSphere’s capabilities Standardizable Tied to a specific implementation Variety of implementations Rich and powerful Simple yet powerful VMware’s Cloud OS Platform API Implementable on the vSphere API Does not replace the vSphere API
  • 8. vCloud Ecosystem Content Providers Developers, IT Admins, ISVs, Enthusiasts Content Virtualized Software Solutions (vApps) Existing legacy solutions, or new apps written for the Cloud Content Respositories Web Servers, Object Stores, Virtual Appliance Marketplace Cloud Service Providers Enterprises
  • 9. vApp – Next generation VM concept An uplifting of a virtualized workload Instructions 1. Name=eCommerce VM = Virtualized Hardware Box 2. Only port 80 is used vApp = Virtualized Software 3. 100 ms web response Solution 4. VRM: Encrypt w/ SHA-1 5. DR RPO: 1 hour Encapsulation, isolation and 6. Decommission in 1 month mobility higher up the stack My eCommerce Solution Properties: Fire Wall Tomcat IIS Load Balance Oracle Comprised of one or more VMs Encapsulates requirements on the deployment environment Distributed as an OVF package
  • 10. vDC – vApp Deployment Environment vDC Type of Commodity Compute, Storage and vApp vApp Network SLAs Quantity MB of RAM, MHz of CPU, GB foo of Storage VDCNet (fenced) Scope for Over-provisioning bar (isolated) Other features Trust Network L2 Networks DMZ Network Persistent vApps
  • 12. Simple Example: Power On Request POST https://vcloud.example.com/vapp/413/power/action/powerO n
  • 13. Simple Example: Power On Request POST https://vcloud.example.com/vapp/413/power/action/powerO n
  • 14. Simple Example: Power On Response 202 Accepted <?xml version="1.0" encoding="UTF-8"?> <Task href="https://vcloud.example.com/task/389" type="application/vnd.vmware.vcloud.task+xml" startTime="2009-7-31T09:30:47Z" status="running" ...> <Link rel="task:cancel” href="htt.../task/389/action/cancel"/> <Owner href="https://vcloud.example.com/vapp/413" type="application/vnd.vmware.vcloud.vapp+xml“ name="My vApp"/> </Task>
  • 15. Simple Example: Look at a vApp Request GET https://vcloud.example.com/vapp/413 Content-type: vnd.vmware.cloud.vapp+xml
  • 16. Simple Example: Look at a vApp Request GET https://vcloud.example.com/vapp/413 Content-type: vnd.vmware.cloud.vapp+xml
  • 17. Simple Example: Look at a vApp Response <VApp name="My vApp" status="1" href="https://vcloud.example.com/vapp/413" ...> <Link rel="up" href= "https://vcloud.example.com/vdc/128"/> <NetworkSection>...</NetworkSection> <ovf:OperatingSystemSection ...> <Link rel="edit" href="http..." ... /> <Description>Microsoft Windows Server 2003</Description> </ovf:OperatingSystemSection> <ovf:VirtualHardwareSection ovf:transport="iso"> <Link rel="edit" href="http..." ... /> <Item>…</Item> … </ovf:VirtualHardwareSection> </VApp>
  • 18. Entity Model UML Notation: “whole-part” relationship “part” is exclusively owned by “whole” UML Notation: One-way association UML Notation: “group-member” relationship “member” maybe shared between “groups”
  • 20. Entity Model UML Notation: “general-specific” relationship
  • 23. Finding a vApp Template Request GET https://vcloud.example.com/vdc/128
  • 24. Finding a vApp Template Response <Vdc href="https://vcloud.example.com/vdc/128" name="Main Vdc" ...> <ResourceEntities> <ResourceEntity href="https://vcloud.example.com/vAppTemplate/111" type="application/vnd.vmware.vcloud.vAppTemplate+xml" name="Ubuntu Template with vsftpd"/> <ResourceEntity href="https://vcloud.example.com/media/112" type="application/vnd.vmware.vcloud.media+xml" name="Ubuntu Boot Floppy"/> <ResourceEntity href="https://vcloud.example.com/media/113" type="application/vnd.vmware.vcloud.media+xml" name="Ubuntu ISO Image"/> </ResourceEntities> ... </Vdc>
  • 25. Get Information about a vApp Template Request GET https://vcloud.example.com/vAppTemplate/111 Response <VAppTemplate href="https://vcloud.example.com/vAppTemplate/111" name="Ubuntu Template with vsftpd" status="1" ...> <Description>Description of Ubuntu Template with vsftpd</Description> </VAppTemplate>
  • 26. Instantiating a vApp Template Request POST https://vcloud.example.com/vdc/128/action/instantiateVAppTemplate <InstantiateVAppTemplateParams name="Linux FTP server" ...> <VAppTemplate href="https://.../vAppTemplate/111" /> <InstantiationParams ...> <NetworkConfigSection> <NetworkConfig name="My vApp Net"> <Features> <vmw:FenceMode>allowInOut</vmw:FenceMode> <vmw:Dhcp>true<vmw:Dhcp> </Features> <NetworkAssociation href="https://.../network/14"> </NetworkConfig> </NetworkConfigSection> </InstantiationParams> </InstantiateVAppTemplateParams>
  • 27. Instantiating a vApp Template Response <VApp name="Linux FTP server" status="0" ...> <Link rel="up" href="https://vcloud.example.com/vdc/128" type="application/vnd.vmware.vcloud.vdc+xml" /> ... </VApp>
  • 29. Upload Example: Initiating the upload Request POST https://vcloud.example.com/vdc/128/action/uploadVAppTemplate <UploadVAppTemplateParams name="Example Image" ...> <Description>Example VApp Template</Description> <ovf:Envelope> <ovf:References> <ovf:File ovf:href="disk0.vmdk" ovf:id="file1" ovf:size="1950489088"/> ... </ovf:References> ... </ovf:Envelope> </UploadVAppTemplateParams>
  • 30. Upload Example: Initiating the upload Response <VAppTemplate name="Example Image" status="0" href="https://vcloud.example.com/vAppTemplate/268"...> ... <Files> <File name="example.mf" bytesTransferred="0" ...> <Link rel="upload:default" href="https://../adfe4..55cbdef/example.mf"/> </File> <File name="example-disk0.vmdk" size="1950489088" bytesTransferred="0"> <Link rel="upload:default" href="https://../adfe4..55cbdef/disk0.vmdk"/> </File> ... </Files> </VAppTemplate>
  • 31. Upload Example: Sending the data Using simple PUT PUT https://../adfe4..55cbdef/disk0.vmdk Content-length: 1950489088 [disk0 data] Using ranged PUT PUT https://../adfe4..55cbdef/disk1.vmdk Content-Range: 105639111-205639110/205639111 Content-length: 100000000 [disk0 data range]
  • 32. Download Example: Finding the download URL Request GET https://vcloud.example.com/vAppTemplate/222 Response <VAppTemplate name="Ubuntu Image with vsftpd" href="https://vcloud.example.com/vAppTemplate/112" status="1"...> ... <Link rel="data" href="https://vcloud.example.com/ad3...782a/example.ovf" type="application/ovf+xml" /> <Link rel="data" href="https://vcloud.example.com/ad3...782a/example.ova" type="application/ova+xml" /> </VAppTemplate>
  • 33. Download Example: Getting the data Getting the OVF descriptor GET https://vcloud.example.com/ad3...782a/example.ovf Response <Envelope ...> <ovf:References> <ovf:File ovf:href="disks/example.vmdk" ovf:id="file1" ovf:size="1950489088"/> </ovf:References> ... </Envelope> Getting the <References> files GET https://vcloud.example.com/ad3...782a/disk/example.vmdk Response [example.vmdk data]
  • 34. Complete list of operations vApp Operations Upload/Download/Provisioning Operations POST <vapp‐uri>/action/{deploy, undeploy} POST <vdc‐uri>/action/composeVApp POST <vapp‐uri>/power/action/{powerOn, powerOff} POST <vdc‐uri>/action/instantiateVAppTemplate POST <vapp‐uri>/power/action/{reset, suspend} POST <vdc‐uri>/action/instantiateOvf POST <vapp‐uri>/power/action/{shutdown, reboot} POST <vdc‐uri>/action/annotate GET <vapp‐uri>/screen POST <vdc‐uri>/action/uploadVAppTemplate POST <vapp‐uri>/screen/action/acquireTicket POST <vdc‐uri>/media PUT <upload‐uri> vApp Configuration Operations GET <download‐uri> POST <vapp‐parent‐element‐uri> DELETE <resourceEntity‐uri> DELETE <vapp‐element‐uri> PUT <vapp‐element‐uri> Task Management GET <tasks‐list‐uri> Inventory Listing GET <task‐uri> GET <vapp‐uri> POST <task‐uri>/action/cancel GET <vdc‐uri> GET <vAppTemplate‐uri> Service Provider Automation GET <media‐uri> Create/Delete/Update Org GET <network‐uri> Create/Delete/Update vDC for an Org Create/Delete/Update an Org Network Catalog Management Create/Delete/Update Org Catalogs GET <catalog‐uri> Create/Delete/Update Users, Groups, Roles POST <catalog‐uri>/catalogItems
  • 35. Q&A