The VMware Virtual Infrastructure SDK in Depth
The VMware Virtual Infrastructure SDK in Depth
The VMware Virtual Infrastructure SDK in Depth
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>The</strong> <strong>VMware</strong><strong>Virtual</strong> <strong>Infrastructure</strong> <strong>SDK</strong><strong>in</strong> <strong>Depth</strong>Karl RumelhartSenior Product Manager<strong>VMware</strong>
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
<strong>Virtual</strong> <strong>Infrastructure</strong>ApplicationApplicationApplicationOSOSVMMVMMOS<strong>Virtual</strong> <strong>Infrastructure</strong>HardwareHardwareHardwareHardwareHardwarePhase 1Phase 2<strong>Virtual</strong> Mach<strong>in</strong>esPhase 3<strong>Virtual</strong> <strong>Infrastructure</strong>
<strong>Virtual</strong> <strong>Infrastructure</strong> APIFoundation for Value-add Services• <strong>VMware</strong> partners andcustomers extend virtual<strong>in</strong>frastructure through valueaddservices• <strong>Virtual</strong> <strong>in</strong>frastructure APIprovides common <strong>in</strong>terfaceand access to base services• Incorporate both base andadvanced services <strong>in</strong>to largermanagement frameworkValueaddserviceVI APIESXServerValueaddservice<strong>Virtual</strong>Center(base services)ESXServerValueaddservice<strong>Virtual</strong> <strong>in</strong>frastructure APIVI APIValueaddserviceVI APIESXServer
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
<strong>Virtual</strong>Center Web ServiceApplicationWeb Service<strong>Virtual</strong>Center ServerGSX ServerESXServer2• Open to everyone• Ships with <strong>Virtual</strong>Center• No additional cost or licens<strong>in</strong>g• Exposes <strong>Virtual</strong>Center features• <strong>Virtual</strong> mach<strong>in</strong>e and hostdiscovery and <strong>in</strong>ventory• Performance and eventmonitor<strong>in</strong>g• Power operations• Create and configure virtualmach<strong>in</strong>esESXServer 1• Templates and provision<strong>in</strong>g• Snapshot virtual mach<strong>in</strong>es• Modify resource shares• VMotion
<strong>SDK</strong> Package• Free download from <strong>VMware</strong> Web site• www.vmware.com/support/developer• Contents• WSDL• Reference guide• Programmers guide• Java, C#, Perl, VB samples• Reference applications
Sample Apps• AnswerVM• ChangePermission• CloneVM• CloneCustomize• Create• CreateTemplate• Delete• EventCollector• GetContents• GetInfo• GetUpdates• HostOps• MigrateVM• MoveVM• PerfMonitor• PutUpdates• QueryPerf• Rename• ScheduledTask• SimpleClient• Snapshot• VMPowerOps
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
Monitor<strong>in</strong>g Integration• Integration with system managementproducts was the <strong>in</strong>itial driv<strong>in</strong>g usecase for the <strong>VMware</strong> <strong>SDK</strong>GSX Server<strong>Virtual</strong>Center ServerESXServer2ESXServer 1
Web-Based Extensions to<strong>Virtual</strong> <strong>Infrastructure</strong>• Self-service provision<strong>in</strong>g portal• Desktop host<strong>in</strong>g control server• Report<strong>in</strong>g portal
Web-Based ExtensionsArchitectureBrowser-basedclientsApplicationServer<strong>Virtual</strong><strong>Infrastructure</strong><strong>Virtual</strong>Centerweb service
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
Key Concepts <strong>in</strong> the <strong>Virtual</strong>Center <strong>SDK</strong>• Path/Inventory• Handles• ResolvePath• GetContents• GetUpdates• PutUpdatesHow to identify whichobjects are importantand f<strong>in</strong>d and refer tothemHow to retrieve<strong>in</strong>formation, keep itcurrent and effectchange
Paths/Inventory/customPropertydatastoreeventhostperfscheduletasktemplateunknownVMvcentervmWebservice• Core objects appear <strong>in</strong>path hierarchy• Some objects appear morethan once• /vm/uuid and/vcenter/farmgrp/farm/myVM
Handles and ResolvePath• A handle is an opaque identifier for an object• Valid for the length of a session• Unaffected by object name changes• To access an object get a handle to the objectby call<strong>in</strong>g ResolvePathStr<strong>in</strong>g handle =vma.resolvePath(“/vcenter/farm/group/vm”);
GetUpdates and PutUpdates• GetUpdates returns changes to an object,synchronously or asynchronouslyUpdate delta =vma.getUpdates(vHandle,wait);• PutUpdates applies a change to an object• Example: change resources assigned to a virtual mach<strong>in</strong>eUpdate changes =vma.putUpdates(ChangeReq);
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
New <strong>Virtual</strong> <strong>Infrastructure</strong> API• Complete object model for virtual <strong>in</strong>frastructure• Public API = <strong>in</strong>ternal API• Available at both <strong>Virtual</strong>Center and at ESX Server hosts• Backwards compatibility mode for <strong>Virtual</strong>Center 1.xweb service<strong>VMware</strong> Web Client<strong>VMware</strong> GUI ClientThird-PartyAPIESX Server<strong>Virtual</strong> Center
API CapabilitiesDiscovery and <strong>in</strong>ventorySynch. and asynch. monitor<strong>in</strong>gNetworks and datastoresResource abstractionTasks and alarmsFeature<strong>Virtual</strong> mach<strong>in</strong>e configurationHost configuration<strong>Virtual</strong> mach<strong>in</strong>e and host perf. monitor<strong>in</strong>gVMotion and cold migration<strong>Virtual</strong> mach<strong>in</strong>e create, clone & customizeResource allocation and controlsDistributed resource schedul<strong>in</strong>g and availabilityservicesWhat’s NewMore flexible <strong>in</strong>ventory modelComplete host configurationHigher speed statsPowerful filter<strong>in</strong>g mechanismCustomize decoupled from cloneNow first class objectsResource pools and clustersAbsolute units for CPUAudit trailsControl & configure new features
Host InterfaceApplicationWebServiceESX Server• <strong>Virtual</strong> <strong>Infrastructure</strong> webservice available onESX Server hosts• Same API that <strong>Virtual</strong>Centeruses to talk to ESX Server• <strong>Virtual</strong> <strong>in</strong>frastructureservices not available• E.g., no VMotion• Returns “not supported” fault• All host capabilitiesavailable at <strong>Virtual</strong>Center• Strongly recommendleverag<strong>in</strong>g <strong>Virtual</strong>Center
Backwards Compatibility• <strong>Virtual</strong>Center 2.0 will support two WSDLs• WSDL based on new virtual <strong>in</strong>frastructureobject model• <strong>Virtual</strong>Center 1.x WSDL• No <strong>Virtual</strong>Center 2.0 features• No host <strong>in</strong>terfaceApplicationCurrent API<strong>Virtual</strong>Center1.xApplication“New” API<strong>Virtual</strong>Center2.0
Programm<strong>in</strong>g Model• Compared to Current API:• Less focus on paths and <strong>in</strong>ventory; moreobject-oriented• Hierarchy limited to VC <strong>in</strong>ventory; no /vm, /task, etc.• No resolve path; alternate ways to f<strong>in</strong>d objects• Important objects are called out asManagedObjects• Handles managed object references• GetContents/GetUpdates equivalents let youspecify the subset of properties you are<strong>in</strong>terested <strong>in</strong>
Agenda• <strong>Virtual</strong> <strong>Infrastructure</strong>• <strong>Virtual</strong> <strong>Infrastructure</strong> web service• Typical use cases• Programm<strong>in</strong>g model• Look<strong>in</strong>g ahead• Other APIs
<strong>VMware</strong> CIM <strong>SDK</strong>StorageManagementApplicationCIMOMESX Server• ESX Server <strong>in</strong>cludes PegasusCIMOM• Enables end-to-end storagediscovery and monitor<strong>in</strong>g• ESX Server 3.0: SMI-S –compliant(<strong>in</strong>-band virtualization profile)• DMTF sponsor<strong>in</strong>g CIM-basedwork<strong>in</strong>g group on broadervirtualization standards
<strong>VMware</strong> Guest <strong>SDK</strong>ApplicationOS<strong>Virtual</strong> <strong>Infrastructure</strong>Hardware Hardware• ESX Server 3.0• Simple C <strong>in</strong>terface availablewith<strong>in</strong> guest OS• Initially only very basicmonitor<strong>in</strong>g available• How many resources am I us<strong>in</strong>g?• How much am I configured for?• Have I been migrated or suspended?• Stats updated several timesa second
Conclusion• <strong>VMware</strong> is completely committed to provid<strong>in</strong>gopen <strong>in</strong>terfaces to our technology• Jo<strong>in</strong> the many vendors, consultants andcustomers add<strong>in</strong>g value to virtual <strong>in</strong>frastructurethrough your own <strong>in</strong>novation
PAC491<strong>The</strong> <strong>VMware</strong><strong>Virtual</strong> <strong>Infrastructure</strong> <strong>SDK</strong><strong>in</strong> <strong>Depth</strong>Karl RumelhartSenior Product Manager<strong>VMware</strong>