Your SlideShare is downloading. ×
vCenter Orchestrator APIs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

vCenter Orchestrator APIs

8,302

Published on

Sia Y. PM for vCenter Orchestrator provides overview of product and examples of using the APIs.

Sia Y. PM for vCenter Orchestrator provides overview of product and examples of using the APIs.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,302
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
194
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • VMware recognizes the critical role our partners play in analyzing, recommending and delivering customer solutions.Last year, based on feedback we received from customers, partners and our own sales teams, we re-structured our overall partner program, now called VMware Partner Network. We did this to ensure we not only provided customers with world-class solutions, but that we provided partners with one of the best partner programs in the industry. We believe the tools, education and incentives available to you will help you increase your profitability as you solve your customers’ business challenges through VMware virtualization solutions.The VMware Partner Network provides programs to support many different partner business models. This presentation will be focused on Solution Providers. If you’re interested in learning more about the other partner types, please go to vmware.com/partners for more information.
  • VIVEK TO COVER
  • Transcript

    • 1. Integrating with vCenter Orchestrator
      TEXMGT0900
      SiaYiu, VMware, Inc.
    • 2. 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.
      Disclaimer
      “These features are representative of feature areas under development. Feature commitments 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.”
    • 3. Follow Us
      Facebook Search for VMware Partner Network
      TwitterSearch for VMware_Partners
      http://blogs.vmware.com/powerofpartnership/
      Linkedin Search for VMware Partner Network
      t
      Join the conversationGet the latest scoopBe a part of the network
      Subscribe to RSS
      Follow this event LIVE!
      #VMwarePEX2010
      Help us help you! Please fill out the survey at the end of the course.
    • 4. Agenda
      What is Orchestration?
      Product overview
      Web Service API
      Plug-in API
      Q&A
    • 5. How’s vCO distributed?
      • Every vSphere customer has vCO
      Installed by default with every VC
      Services disabled
      Require configuration
      • vCO comes in two “flavors”
      vSphere Essential and Foundation
      vCO set in player mode: workflow execution only
      No workflow creation capability
      Import of new workflows is allowed
      vSphere Standard
      vCO set in server mode: workflow creation and execution
    • 6. What is Orchestration?
    • 7. Defining Automation and Orchestration
      • Automation
      A way to perform frequently repeated process without manual intervention.
      Basic building block: a shell script, a Perl script, a PowerShell script
      Example: given a list of hostnames, add ESX to VC.
      Orchestration
      A way to manage multiple automated processes across and among heterogeneous systems.
      Example - Add ESX hosts from a list to VC, update CMDB with successfully added ESX hosts, then send email notification.
    • 8. What is Orchestration?
    • 9. What is Orchestration?
      Talk to all sorts of devices
    • 10. What is Orchestration?
      P
      P
      P
      P
      Talk to all sorts of devices
      Configure for devices
      P
      P
    • 11. What is Orchestration?
      Watch DVD
      TV: turn on
      Amp: turn on
      DVD: turn on
      TV: AUX input
      Talk to all sorts of devices
      Configure for devices
      Program Activities
      Amp: DVD input
    • 12. What is Orchestration?
      Talk to all sorts of devices
      Configure for devices
      Program Activities
      Use
    • 13. What is Orchestration?
      The developer: “Talk to all sorts of devices”
      • Creating plug-ins and other means of integration
      • 14. Creating the library of “pre-canned” actions and workflows
      The IT Admin: “Configure for devices”
      • Setting up the orchestrator for his environment
      Everyone: “Program Activities”
      • Creating new processes
      • 15. Customizing existing ones
      The User “Use”
      • Run processes
    • Another Analogy: The Orchestra Director
      • Orchestrator: Director
      • 16. Partition: Workflows
      • 17. Musicians: connected products & solutions
    • Rules of Engagement
      Bad
      • High CPU / memory
      • 18. High throughput (network / data)
      • 19. Real time
      • 20. Good
      • 21. Sequencing
      • 22. Talking to multiple product / solutions
      • 23. “Human” time scale
      • 24. Customization
    • What do Orchestrator Workflows Look Like?
      If a datastore on a host is more than 95% utilized,
      open a change control ticket then perform s-vMotion and send email notification
    • 25. Integrating with vCO: It’s About Choices
      • Things to consider:
      More key features and functionality from VMware solutions will be available as workflow building blocks in vCO.
      For workflow oriented tasks, instead of performing integration with VC and each individual VMware solutions, integrate with vCO.
      Benefit: one integration to VMware
      Would mean integration using web service
    • 26. Two Ways to Integrate with Orchestrator
      • Use Orchestrator as a gateway for integration with vSphere
      Workflows are vCenter-upgrade resistant
      Shorten learning curve in vSpehere API – workflows are written in Javascript
      Write workflows and call them using web service
      • Provide customers an easy to way to integrate your management features with vCenter Server functionality•
      Allow customers to merge automation of vSphere with your product.
      Make your product features available as workflow components in vCO
      Provide VMware engineers easy access to your management functionality
      Deliverable: a plugin with a set of sample workflows
    • 27. Product Overview
    • 28. Architecture – vCO Server: Execution Platform
      Access control (LDAP, rights)
      PKI
      SSL certificates
      Directory
      Services
      Workflow
      Trigger Rules
      Scripting
      vCO
      Database
    • 36. vCOServer: Client Interface
      Browser
      Access
      Client Application
      Access
      Directory
      Services
      Web Service
      Access
      vCO
      Database
    • 37. vCOServer: Plugins for TechnologyInterfaces
      Browser
      Access
      Client Application
      Access
      Directory
      Services
      Web Service
      Access
      vCO
      Database
    • 46. vCOServer: Library of Workflows
      Browser
      Access
      Client Application
      Access
      Directory
      Services
      Web Service
      Access
      Workflow Library
      vCO
      Database
    • 47. vCOServer: Provision for 3rd Party Extensions
      Browser
      Access
      Client Application
      Access
      Web Service
      Access
      3rd party custom
      3rd party Webview
      3rd party Workflow
      Workflow Library
      3rd party
      Plug-in
    • 48. WebService API
      Remote workflow execution, status, cancelation
      Plugin API
      Written in Java
      surface up external system functionality for use in workflows
      • Workflow - Javascript “API”
      Workflow authoring
      Integration Points
      Browser
      Access
      Client Application
      Access
      Directory
      Services
      Web Service
      Access
      1
      Workflow Library
      3
      2
      VCO
      Database
    • 49. Web Service API
    • 50. Authoring in Orchestrator has Several Benefits
    • 51. Authoring Using the Integrated Workflow Environment
      Drag and drop interface to workflow building
      400 Out-of-box workflows & building blocks
      All VI and ESX functions available in API, CLI, and VC UI.
      SSH
      WMI
      SMTP
      SNMP
      Databases
      Service desk and change control systems
      Ability to export and share workflows
      Schedule workflows
    • 52. Web Service API
    • 53. Web Service API - Introduction
      Defined by a WSDL file.
      Downloadable from:
      • http://<Orchestrator_server>:8280/vmware-vmo-webcontrol/webservice?WSDL
      Accessible at:
      • http://<Orchestrator_server>:8280/vmware-vmo-webcontrol/webservice
      Compile the WSDL with your favorite framework.
      Supported:
      Will generate about 13 classes
    • 55. Web Service API – Main Objects
      VSOWebControl:
      • The WSDL control port through which you access Orchestrator operations.
      Main operations:
      • executeWorkflow(…): WorkflowToken
      • 56. getWorkflowForId(…): Workflow
      • 57. find(…): FinderResult
    • Web Service API – Main Objects
      Other important Objects:
      • Workflow: An Orchestrator workflow.
      • 58. WorkflowToken: An instance of a workflow (running, waiting, canceled, completed, or failed).
      • 59. WorkflowParameter: An input, output or attribute description of a workflow. (name, type)
      • 60. WorkflowTokenAttribute: An input, output of a workflow instance (WorkflowToken). (name, type, value)
      • 61. FinderResult: Generic inventory object (type, id, properties)
    • Web Service API – Typical Flow
      Instantiate a VSOWebControl
      Find Workflow
      Find Input parameters
      Start workflow (returns Token)
      Check Token (wait completion)
      Get results (outputs)
    • 62. Examples - Java
      Run a workflow with no inputs
      private static final String username = “xxx”;
      private static final String password = “yyy”;
      private static final String workflowID =
      "9C808080808080808080808080808080D18080800124022711707067fa027b2e8";
      private static final String endpoint =
      “http://vco:8280/vmware-vmo-webcontrol/webservice”;
      // vCO Web Service control
      VSOWebControl vco = new VSOWebControlProxy(endpoint);
      // Start workflow
      WorkflowToken token = vco.executeWorkflow(workflowID, username, password, null);
      // Wait for completion
      while (token.getGlobalState().equals("running")) {
      Thread.sleep(100);
      token = vco.getWorkflowTokenForId(token.getId(), username, password);
      }
      // Status is in getGlobalState()
      // Output parameters
      WorkflowTokenAttribute[] attributes =
      vco.getWorkflowTokenResult(token.getId(), username, password);
    • 63. Examples - Java
      Run a workflow with a String as input
      private static final String username = “xxx”;
      private static final String password = “yyy”;
      private static final String workflowID =
      "9C808080808080808080808080808080D18080800124022711707067fa027b2e8";
      private static final String endpoint =
      “http://vco:8280/vmware-vmo-webcontrol/webservice”;
      // vCO Web Service control
      VSOWebControlvco = new VSOWebControlProxy(endpoint);
      // Input parameters
      WorkflowTokenAttribute[] inputParameters = new WorkflowTokenAttribute[1];
      inputParameters[0] = new WorkflowTokenAttribute();
      inputParameters[0].setName(“text”);
      inputParameters[0].setType(“String”);
      inputParameters[0].setValue(”Hello World!");
      // Start workflow
      WorkflowToken token =
      vco.executeWorkflow(workflowID, username, password, inputParameters);
      // Wait for completion

    • 64. Examples - Java
      Run a workflow with a String as input – get types from workflow
      private static final String username = “xxx”;
      private static final String password = “yyy”;
      private static final String workflowID =
      "9C808080808080808080808080808080D18080800124022711707067fa027b2e8";
      private static final String endpoint =
      “http://vco:8280/vmware-vmo-webcontrol/webservice”;
      // vCO Web Service control
      VSOWebControlvco = new VSOWebControlProxy(endpoint);
      // Workflow
      Workflow wf = vco.getWorkflowForId(workflowID, username, password);
      // Input parameters descriptions
      WorkflowParameter[] params = wf.getInParameters();
      // Input parameters
      WorkflowTokenAttribute[] inputParameters = new WorkflowTokenAttribute[1];
      inputParameters[0] = new WorkflowTokenAttribute();
      inputParameters[0].setName(params[0].getName());
      inputParameters[0].setType(params[0].getType());
      inputParameters[0].setValue(”Hello World!");
      // Start workflow
      WorkflowToken token =
      vco.executeWorkflow(workflowID, username, password, inputParameters);
      // Wait for completion

    • 65. Web Service API: Conclusion
      Allows to run workflows
      Allows to find inventory objects used as input to workflows
      Standard WSDL 1.1 definition
      Supports Java and .Net bindings
      Java bindings provided as part of the samples documentation pack
    • 66. Plug-in API
    • 67. Overview
      • Exposes an external product API to the Orchestrator
      • 68. Example: Take the solar system and turn it into a plugin so we can orchestrate various objects in the solar system
      • 69. Extends the scripting engine with new prototypes: moon, planet, star
      • 70. Extend the inventory with new objects: Mars
      • 71. Provide a library of workflows and other objects to use against the exposed API: add planet, destroy planet
      • 72. Define triggers: wait for flare event and run the “destroy planet” workflow
    • What Can You do in a Plugin?
      Expose external system functionality
      Extend vCO inventory with external objects
      Define triggers
      Import workflows at plugin installation
      Define user configuration
    • 73. Structure
      Artifact is a zipped folder with “.dar” extension
      • Example: vmware-vmosdk-solarsystem.dar
      Located in the “plugin” folder:
      • $INSTALL_DIR/app-server/server/vmo/plugins
      Internal structure:
    • 74. Hitchhiker’s Guide to the Solar System
      Creating plugins in a few steps
      Create the vso.xml
      Create the lpluginAdaptor
      Create the IpluginFactory
      Map scripting objects to your Java classes
      Optionally create the configuration adaptors for use configuration such as the name of vSphere server- (IConfigurationAdapter & WebConfigurationAdaptor)
      Optionally create trigger events
      Create the plug-in package file (*.dar)
      Load the plugin
      Write workflows that demonstrate the functionality of your plugin and provide users with building blocks to their custom workflows
      Re-package the plugin with the workflow
    • 75. Structure – VSO.XML File
      The VSO.XML file
      • Describes the plugin structure to the vCO server
      • 76. Conforms to schema:
      http://www.vmware.com/support/orchestrator/plugin-4-0.xsd
      • Content:
    • Structure – VSO.XML File
      Plug-in name, version and description
      Library of workflows
      Inventory
      Scripting extensions
    • 77. Structure – VSO.XML File
      Java vCO plugin API
      Mapping between scripting object prototypes and Java classes
    • 78. Plug-in API - Adaptor
      Main Interface:
      • Create the plugin factory, loading and unloading of the plugin.
      • 79. Set name
      • 80. Interface for events (both Policy and Triggers)
      Plug-in developer can:
      • Implement Interface directly
      • 81. Use or subclass one of the existing implementations:
      • 82. DatabasePluginAdaptor
    • Policy and Trigger Events
      Policies react on events
      Plugins can declare new events
      • Event types:
      • 83. Trigger (single event)
      • 84. Gauge (change of value event)
      Workflow can wait for Triggers
      Plugins can declare new triggers
      • Policy-Event-Triggers and Workflows-Triggers are different implementations, will merge in a future implementation
    • Plug-in API - Factory
      A factory object is instantiated for each user session.
      Define methods to find objects exposed by the plugin
      • Used in Inventory
      • 85. Used in pickers and choosers
    • Configuration
      <configuration
      adaptor-class="com.vmware.orchestrator.api.sample.solarsystem.config.SolarSystemConfigurationAdaptor"
      validation="enabled"
      />
      The “adaptor-calls” attribute of the configuration tag in vso.xml points to the proper implementation of IConfigurationAdaptor
      Implementation provides control over loading, validating and saving the plugin configuration.
      • A helper class SDKHelper provides methods to load and save configuration files from standard locations
      If the plugin requires a configuration UI, getWebAppContext should return the war name
      The war is loaded by the Configure web server and gives a UI access to the ConfigureAdapter
    • 86. Conclusion
      Not covered in this presentation:
      • Database plugin adapters (see documentation)
      Explained how plugins extend Orchestrator capabilities
      Described the main APIs
      • vso.xml file and schema
      • 87. IPluginAdaptor & IPluginFactory
      • 88. IConfigurationAdapter & WebConfigurationAdaptor
      Demonstrated a sample implementation
    • 89. Links and Further References
      Orchestrator communities:
      Web service & plugin API
      • http://communities.vmware.com/community/developer/forums/orchestrator
      • 90. Workflows
      • 91. http://communities.vmware.com/community/vmtn/mgmt/orchestrator
      vCenter Orchestrator:
      • http://www.vmware.com/products/vcenter-orchestrator/
      vCO Documentation:
      • http://www.vmware.com/support/pubs/orchestrator_pubs.html
      • 92. vCenter Orchestrator Developer's Guide
      • 93. Web service
      • 94. Developing plugins
      • 95. Solaris plugin source: VMware vCenter Orchestrator Example Applications
    • Thank you
    • 96. Ready. Set. Go! Take Action
      GO! Get Educated
      Visit Partner University for information on partner programs and resources
      Access to VMware Partner Exchange presentations
      GO! Get Competent
      Enroll in training and certification that counts toward earning competencies
      GO! Register Your Deals to Earn More Margin
      Visit Partner Central to learn about VMware’s registration programs
    • 97. Any Questions?

    ×