VMware vRealize Orchestrator (vRO) is a powerful workflow engine that can be used in versatile ways to automate tasks and complex processes. Its open APIs and plugins for many protocols and systems also make it a flexible integration tool. vCloud Director (vCD) provides different APIs and mechanisms that can be used to extend the service offerings, integrate it with external systems, and automate configuration and consumption tasks. The complete Extensibility Framework of vCloud Director is layed out in this article: https://blogs.vmware.com/vcloud/2018/03/breaking-cloud-silos-deploying-new-extensibility-framework-provided-vcd-9-1.html
There are different scenarios in which vRealize Orchestrator can be used in combination with vCloud Director. This article shows these scenarios, and explains the APIs, tools and techniques used for the integration. It is the first of a series of articles, which will explain more details about how to use, operate and develop scalable and reliable vRealize Orchestrator workflows in a vCloud Director context.
Automating vCloud Director using the vCD Plugin for vRealize Orchestrator
vCloud Director provides a comprehensive REST API, on both, provider and tenant level. This API can be used to automate tasks that otherwise would have to be done manually using the web-based UI of vCloud Director. The vCloud Director Plugin for vRealize Orchestrator builds a wrapper around this REST API, and exposes inventory objects and their attributes and methods into the workflows. It also comes with a huge library of workflows for individual tasks, which either can be used as they are, or as building blocks for more complex custom workflows. The images below show the vCloud Director inventory in vRealize Orchestrator and the workflow library.
Workflows can be built to automate complex processes, like an end-to-end onboarding of a new tenant as provider. It is also possible to use vRealize Orchestrator and its own REST API or other plugins to integrate and consume vCloud Director services automatically. For example, a workflow to automatically provision a new vApp from the catalog could be triggered from a Continous Integration / Continous Delivery pipeline.
The vCD Plugin for vRealize Orchestrator takes care of the authentication against vCD, and the mapping of inventory objects to the REST API. So workflows in vRO can be used to simplify the integration with external systems, to add additional logic, or integrate other external systems into the overall process.
vCloud Director triggers vRO Workflows during Blocking Tasks and Notifications
A powerful extensiblity mechanism of vCloud Director is it’s ability to send and receive AMQP messages, as part of blocking tasks or notifications. Blocking Tasks let vCloud Director pause a process at a certain state, send a message to the AMQP bus, and wait for a response message before continuing. An example could be an additional approval step before deploying a new vApp. Notifications message are just send to the message bus, without any impact on the process in vCD. These can be used for example to call a workflow that adds a newly deployed vApp to a monitoring system.
vRealize Orchestrator ships with an AMQP Plugin that can send and receive messages, and provides trigger that can start workflows when a message is received. In combination with the vCloud Director plugin this is a powerful solution to use vRO workflows being triggered by vCD, then facilitate external integration, and (in case of blocking tasks), send a response back to vCloud Director.
vCloud Director API Extensions powered by vRO Workflows
With the API Extensions it is possible to publish additional service offerings into the vCloud Director REST API. These services then can be consumed by tenants by calling the REST API. The API call in background will again send AMQP messages to the message bus, which makes vRealize Orchestrator a perfect recipient component. A detailed description of the vCloud Director API Extensions can be found in this whitepaper: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/vcat/vmware-vcloud-api-extension-whitepaper.pdf
vCloud Director 9 Service Library Extension
vCloud Director 9 introduced a new mechanism to extend the service library for tenant. It’s possible to publish vRealize Orchestrator workflows as services into the library. When a user requests a service backed by a vRO workflow, the UI will automatically create a form based on the input parameters of the workflow. This is a very powerful extensibility mechanism, because it enables service providers to offer all sorts of services, even beyond typical Infrastructure-as-a-Service functionality. A nice example on how to use the service catalog extension to offer tenants a self-service password reset capability can be found here: https://fojta.wordpress.com/2018/06/28/vcloud-director-service-library-change-ad-password/
vRealize Orchestrator is an important component in every vCloud Director environment. Its rich automation capabilities combined with the close out-of-the-box integration with vCloud Director make them a perfect combination to extend and automate vCloud Director with less development effort. The vCloud Director and AMQP Plugins for vRealize Orchestrator make it easy to implement automation of vCloud Director tasks, integrating external systems during blocking tasks and extending the service library.
The articles of this series:
- Extend and Automate vCloud Director using vRealize Orchestrator (this article)
- How to start vRealize Orchestrator Workflows from vCloud Director