vCenter Orchestrator: Part 1 - Overview & Architecture
For my first series of posts, I have decided to focus on an unappreciated vSphere product, vCenter Orchestrator a.k.a. vCO. Although vCO is still quite unknown, this product is worth using and a really powerful tool.
VMware vCenter Orchestrator is a workflow software that helps automate your IT service delivery by automating common administrative tasks: to understand how and why vCO can help you in the journey to Infrastructure as a Service, take a seat and let’s read that article!
It seems that VMware wants to rise vCO’s importance: the recent release of the new VCAP-DCA Certification Exam includes a dedicated vCenter Orchestrator section in the blueprint.
—
This is the first post in a series of 6 blogs articles about VMware vCenter Orchestrator (vCO).
-
vCenter Orchestrator: Part 2 - Installation & Configuration
-
vCenter Orchestrator: Part 3 - Discover the Orchestrator Client
-
vCenter Orchestrator: Part 4 - Creating your first vCO Workflow
-
vCenter Orchestrator: Part 5 - How to Launch your vCO Workflows
-
vCenter Orchestrator: Part 6 - Use Cases & Examples
—
Overview
On the road to a fully automated datacenter / cloud, you have multiple steps: usually, you begin first by automating repetitive administrative tasks before going further and creating an autonomous self-healing infrastructure.
VMware vCenter Orchestrator lets you create workflows that automate activities (such as provisioning virtual machine, performing scheduled maintenance, initiating backups, and many others). You can design custom automations based on vCenter Orchestrator out-of-the-box workflows and run them from the workflow engine.
VMware vCenter Orchestrator is a development-and process-automation **platform** that provides a library of extensible **workflows** to allow you to create and run automated, configurable processes to manage the VMware vSphere infrastructure as well as other VMware and **third-party technologies**.Orchestrator exposes every operation in the vCenter Server API, allowing you to integrate all of these operations into your automated processes. Orchestrator also allows you to integrate with other management and administration solutions through its open plug-in architecture.
Besides providing 100% coverage for vSphere and vCloud APIs and a tight integration with VMware portfolio in general, vCO can** integrate functions coming from third-party IT operations software via plug-ins**, meaning that vCO can be used as a vendor-agnostic workflow engine.
Note: you can find the available plug-ins for vCO on VMware Cloud Management Marketplace.
More than 500* pre-built actions and workflows for vSphere and standard protocols (HTTP-REST, SOAP, JDBC, SSH, SNMP, email, etc.) are integrated out-of-the-box with vCO. These pre-built workflows can be run just like that or re-used in your own workflows.
*: I did not count myself, but there are definitely a lot of these. :)
What is even more amazing with vCO is that the product is packaged with vCenter Server, and thus available at no extra cost. The only limitation that applies is the vCenter Orchestrator Mode which depends on vCenter Server License Edition:
-
for Foundation and Essentials versions of vCenter, vCO runs in Player Mode: you can run workflows, but cannot edit them,
-
for Standard version of vCenter, vCO runs in Server Mode: you can run and edit workflows.
For those interested, here is a quick history of vCO:
-
VMware acquired Dunes Technologies back in 2007 including VS-O (Virtual Services - Orchestrator) and VD-O (Virtual Desktop - Orchestrator),
-
vCO is packaged with vCenter Server since vSphere 4.0,
-
At the time of this writing, current version of vCO is 5.5.1 and was released in March 2014.
Note: even if I will focus on the latest version of vCO, the general concept remains the same throughout the different versions.
Architecture
VMware vCenter Orchestrator is composed of 3 distinct layers:
-
the orchestration platform that provides the common features required for an orchestration tool,
-
the plug-in architecture to integrate third-party technologies,
-
a** library of workflow**.
vCO connects to a directory services server to manage user accounts, and to a database to store information from the workflows that it runs. You can access Orchestrator and its workflows through the Orchestrator Client interface, through a browser, through Web Services, etc.
VMware Orchestrator has a lot of benefits, but the key features that I consider most important are the following:
-
persistence: vCO is reliable as the database is used to store the workflow state, by using checkpoints (this avoid any loss of state during server restarts or failures),
-
centralization of processes,
-
pre-built workflow library with common tasks,
-
open plug-in architecture with many existing plug-ins for various vendors/editors: you can run workflows on the objects of different technologies that Orchestrator accesses through a series of plug-ins.
But Orchestrator offers many other benefits: policy-based engine, version control, scripting engine, exceptions handling, plug-in SDK (any vendor/editor can write its own plug-in), debug capabilities, multiple possibilities to launch a workflow, etc.
And what about scalability? You have multiple vCenter Servers ? You think you will have a lot of concurrent running workflows ? You have 20000 running VMs ? Don’t worry, and have a look at the Orchestrator Configuration Maximums:
As you can see, scalability should not be a concern in most infrastructures. However, VMware always provides capabilities to deploy and manage huge infrastructures and vCO is not an exception to that rule: you can deploy vCenter Orchestrator in cluster mode to scale your orchestration capacity along with the growth of your infrastructure.
Orchestrator Cluster Mode
By default, the vCO server runs a single instance in Standalone Mode, but you can set up Orchestrator in Cluster Mode to increase availability or for scalability reasons.
With Orchestrator in cluster mode, multiple active and/or inactive vCO instances with identical configuration share one external database. While the active nodes are vCO instances that run workflows and respond to client requests, the rest of the cluster nodes are inactive and in “waiting mode”. As soon as an active instance becomes unresponsive, one of the inactive instances can take over and complete the workflows that were running on the failed instance without service interruption (by using the checkpointing mechanism of the workflow in the database).
Two different modes are available in cluster mode: Active-Active or Active-Passive.
In order to fulfill the requirement of having similar configuration across all vCO instances in the cluster, you can export/import configuration or simply clone the VM if you are using the virtual appliance.
Constraints of vCO cluster mode:
-
** external database requirement**: PostgreSQL, Oracle 11g and multiple versions of SQL Server are currently supported,
-
in active-active mode, you are not able to edit the workflow and to use the Orchestrator client (to avoid possible configuration deviation if multiple users edit the same object in parallel),
-
external load-balancer.
Automate All The Things
OK, Orchestrator seems to be a nice product, but…for who and what for ? And what are the caveats ?
First, vCO is available at no extra cost, so you don’t have any excuses to not try it ! :)
You do not have to be a developer to create workflows: the workflow designer offers a lot of pre-built actions and workflows, that you can instantiate by drag and drop. However, in the case where those would not be sufficient, **scripting **is available to enhance your workflows (based on javascript).
Furthermore, vCO provides debugging capabilities with the workflow debugger:
Many use cases for vCO are possible (these are only examples):
-
you can start easy and begin by automating (vSphere) common administrative tasks (add disks, ESXi updates, scheduled maintenance, etc.),
-
remediation of infrastructure failures,
-
compliance testing,
-
building blocks configuration,
-
offer self-service portal to users,
-
advanced workflows:
-
self-healing infrastructure,
-
adaptive and automated infrastructure that react to events (planned or unplanned),
-
fabric automation,
-
provide _intelligence _to your infrastructure.
-
Theoretically, your imagination is your unique limit (just as your available time): you could create a fully automated self-healing infrastructure, or define complex processes to interact with the multiple entities/teams of your company if you have enough time and resources.
Just as any other product/solution, some issues arise:
-
possible overhead:
-
resources may be problematic in smaller environments,
-
new expertise is needed for people who will be in charge of vCO,
-
-
you can simplify day-to-day manageability, but with a more complex infrastructure,
-
the abstraction of vCO may be difficult to apprehend,
-
dependencies and compatibility of entities/plug-ins compared to vCO version.
In the next article of this series, I will describe the installation and the configuration of vCenter Orchestrator. Feel free to subscribe to the blog to stay tuned ! ;)