Download - De 03 Introduction To V Cloud Api V1
![Page 1: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/1.jpg)
Tichomir Tenev
DE-03Introduction to vCloud API
![Page 2: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/2.jpg)
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.
![Page 3: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/3.jpg)
About the Speaker
Tichomir Tenev, Sr. Staff Engineer, vCloudCurrently at VMware’s Cloud Service Mgmt & Automation Group
With VMware since 2001Worked 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.
EducationM.Eng. in Electrical Engineering & Computer Science from MIT
BS in Computer Science and Mathematics from MIT
![Page 4: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/4.jpg)
Agenda
Salient Points
Context
Key concepts
Deep dive
![Page 5: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/5.jpg)
vCloud API Salient Points
StandardizablePlatform independent
Can be used from virtually any platform
Can be implemented on a variety of platforms
Straightforward to use and implement
Powerful and extensible
Standards-based
Pure-virtualResource semantics described independent of physical semantics
Physical infrastructure is hidden
Virtualization features are obscured
Simpler semantics focused on end-use and not on virtualizing
![Page 6: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/6.jpg)
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-basedMulti-tenantSelf-serviceService provider automation
![Page 7: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/7.jpg)
vCloud API and vSphere API
vSphere API –“Under the Hood” API
Used to create virtual resources
Virtualization APIExposes physical<->virtual mapping
Targeted at sys-admins
Product specificExposes vSphere’s capabilities
Tied to a specific implementation
Rich and powerful
VMware’s Cloud OS Platform API
vCloud API –“Driver Seat” API
Uses virtual resources
Pure-virtual APIHides underlying physical resources
Targeted at cloud tenants
Product agnosticStandardizable
Variety of implementations
Simple yet powerful
Implementable on the vSphere API
Does not replace the vSphere API
![Page 8: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/8.jpg)
vCloud Ecosystem
Content ProvidersDevelopers, IT Admins, ISVs, Enthusiasts
ContentVirtualized Software Solutions (vApps)
Existing legacy solutions, or new apps written for the Cloud
Content RespositoriesWeb Servers, Object Stores, Virtual Appliance Marketplace
Cloud Service ProvidersEnterprises
![Page 9: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/9.jpg)
vApp – Next generation VM concept
An uplifting of a virtualized workloadVM = Virtualized Hardware Box
vApp = Virtualized Software Solution
Encapsulation, isolation and mobility higher up the stack
Properties:Comprised of one or more VMs
Encapsulates requirements on the deployment environment
Distributed as an OVF package
My eCommerce SolutionLoad
BalanceIIS OracleTomcatFireWall
Instructions1. Name=eCommerce2. Only port 80 is used
3. 100 ms web response4. VRM: Encrypt w/ SHA-1
5. DR RPO: 1 hour6. Decommission in 1 month
![Page 10: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/10.jpg)
vDC – vApp Deployment Environment
Type of CommodityCompute, Storage and Network SLAs
QuantityMB of RAM, MHz of CPU, GB of Storage
Scope for Over-provisioningOther features
L2 Networks
Persistent vApps
vApp
vDC
bar (isolated)
vApp
VDCNet (fenced)
foo
Trust Network
DMZ Network
![Page 11: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/11.jpg)
Deep Dive
![Page 12: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/12.jpg)
Simple Example: Power On
RequestPOST https://vcloud.example.com/vapp/413/power/action/powerO n
![Page 13: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/13.jpg)
Simple Example: Power On
RequestPOST https://vcloud.example.com/vapp/413/power/action/powerO n
![Page 14: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/14.jpg)
Simple Example: Power On
Response202 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>
![Page 15: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/15.jpg)
Simple Example: Look at a vApp
RequestGET https://vcloud.example.com/vapp/413
Content-type: vnd.vmware.cloud.vapp+xml
![Page 16: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/16.jpg)
Simple Example: Look at a vApp
RequestGET https://vcloud.example.com/vapp/413
Content-type: vnd.vmware.cloud.vapp+xml
![Page 17: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/17.jpg)
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>
![Page 18: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/18.jpg)
Entity Model
UML Notation:“whole-part” relationship“part” is exclusively owned by “whole”
UML Notation:“whole-part” relationship“part” is exclusively owned by “whole”
UML Notation:“group-member” relationship“member” maybe shared between “groups”
UML Notation:“group-member” relationship“member” maybe shared between “groups”
UML Notation:One-way associationUML Notation:One-way association
![Page 19: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/19.jpg)
Entity Model
![Page 20: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/20.jpg)
Entity Model
UML Notation: “general-specific” relationshipUML Notation: “general-specific” relationship
![Page 21: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/21.jpg)
Entity Model
![Page 22: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/22.jpg)
Example Workflow: Instantiating a vApp Template
![Page 23: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/23.jpg)
Finding a vApp Template
RequestGET https://vcloud.example.com/vdc/128
![Page 24: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/24.jpg)
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>
![Page 25: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/25.jpg)
Get Information about a vApp TemplateRequest
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>
![Page 26: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/26.jpg)
Instantiating a vApp Template
RequestPOST https://vcloud.example.com/vdc/128/action/instantiateVAppTemplate
<InstantiateVAppTemplateParamsname="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>
![Page 27: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/27.jpg)
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>
![Page 28: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/28.jpg)
Example Workflow: Upload/Download of a vApp Template
![Page 29: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/29.jpg)
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>
![Page 30: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/30.jpg)
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>
![Page 31: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/31.jpg)
Upload Example: Sending the data
Using simple PUTPUT https://../adfe4..55cbdef/disk0.vmdkContent-length: 1950489088
[disk0 data]
Using ranged PUTPUT https://../adfe4..55cbdef/disk1.vmdkContent-Range: 105639111-205639110/205639111Content-length: 100000000
[disk0 data range]
![Page 32: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/32.jpg)
Download Example: Finding the download URL
RequestGET 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>
![Page 33: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/33.jpg)
Download Example: Getting the dataGetting the OVF descriptorGET 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]
![Page 34: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/34.jpg)
Complete list of operations
vApp
OperationsPOST <vapp‐uri>/action/{deploy, undeploy}POST <vapp‐uri>/power/action/{powerOn, powerOff}POST <vapp‐uri>/power/action/{reset, suspend}POST <vapp‐uri>/power/action/{shutdown, reboot}GET <vapp‐uri>/screenPOST <vapp‐uri>/screen/action/acquireTicket
vApp
Configuration OperationsPOST <vapp‐parent‐element‐uri>DELETE <vapp‐element‐uri>PUT <vapp‐element‐uri>
Inventory ListingGET <vapp‐uri>GET <vdc‐uri>GET <vAppTemplate‐uri>GET <media‐uri>GET <network‐uri>
Catalog ManagementGET <catalog‐uri>POST <catalog‐uri>/catalogItems
Upload/Download/Provisioning OperationsPOST <vdc‐uri>/action/composeVAppPOST <vdc‐uri>/action/instantiateVAppTemplatePOST <vdc‐uri>/action/instantiateOvfPOST <vdc‐uri>/action/annotatePOST <vdc‐uri>/action/uploadVAppTemplatePOST <vdc‐uri>/mediaPUT <upload‐uri>GET <download‐uri>DELETE <resourceEntity‐uri>
Task ManagementGET <tasks‐list‐uri>GET <task‐uri>POST <task‐uri>/action/cancel
Service Provider AutomationCreate/Delete/Update OrgCreate/Delete/Update vDC
for an OrgCreate/Delete/Update an Org NetworkCreate/Delete/Update Org CatalogsCreate/Delete/Update Users, Groups, Roles
![Page 35: De 03 Introduction To V Cloud Api V1](https://reader033.vdocuments.mx/reader033/viewer/2022051513/547a03565906b507358b4619/html5/thumbnails/35.jpg)
Q & A