13.07.2015 Views

The VMware Virtual Infrastructure SDK in Depth

The VMware Virtual Infrastructure SDK in Depth

The VMware Virtual Infrastructure SDK in Depth

SHOW MORE
SHOW LESS

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>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!