Server microservices

The HCL Universal Orchestrator architecture is based on microservices, which communicate over Rest APIs and Kafka topics. These are independent services that serve specific purposes.

Each microservice covers specific roles, provides specific functionalities and persists data in a noSQL database. All microservices are active/active and can scale indefinitely horizontally (also with the auto scale feature) to dynamically adjust to the current workload. This makes HCL Universal Orchestrator always available, easy to scale, fast in running workloads and with a very low maintenance.

You can find the following information about microservices:

In addition to microservices, you can also integrate HCL UnO agent with HCL Universal Orchestrator to enhance the functionality and streamline operations.

Agent manager

Agent Manager microservice is the communication endpoint used by Cloud task launcher and agents to communicate with HCL Universal Orchestrator. The agent manager communicates via HTTPS and uses JWT tokens for authentication. The Cloud task launcher/agent communicates with agent manager to retrieve the task submissions, user commands and send back the changes in task status and command results.

The agents need to be configured via gateway to communicate with the Agent manager. When the Agent or Cloud task launcher is not connected, the Agent Manager keeps the pending commands and task submissions for that Agent or Cloud task launcher in the database, until they can reconnect and retrieve them.

Audit

In microservice architecture, it is critical to monitor the actions performed on items and different microservices. To ensure the security of data, Audit microservice will store the records of all the events and activities that are performed in HCL Universal Orchestrator. All the operations, such as create, read, update, and delete that are performed on the items are recorded. There is one exception, the internal activities that are performed by HCL Universal Orchestrator are not recorded.

Audit microservice helps to track all the versions of the items by navigating through the history and enables the user to analyse the changes made over time. The data stored in databases can be analysed to determine if any policies or security measures are violated.

The records are stored for a specific time period that can be customized using the uno.audit.max.retention.duration variable. The default value is 400 days. You can also set a value higher than the default and it is recommended not to set a value higher than 500 days. You can add this key-value pair as a variable under audit.retenionDays property in the values.yaml file.

Cloud task launcher

The Cloud task launcher executes tasks that call external systems, like RESTful APIs, web services and databases, directly from the engine, without using an external machine. It supports auto-scaling and the high availability features of other microservices.

Differently from a HCL Workload Automation dynamic agent, the Cloud task launcher runs on a separate microservice pod and does not affect server functionalities like planning, and even more importantly it does not impact the HCL Universal Orchestrator engine performances. This results in a sensible improvement on the average task execution timing.

Almost all plug-ins that run on a HCL Workload Automation dynamic agent can run on the Cloud task launcher. Some of the most notable examples include:
  • RESTful APIs
  • Remote Command
  • Kubernetes
Plug-ins with access to the filesystem have that functionality removed when running on the Cloud task launcher, increasing the system security.

Executable plug-ins and native plug-ins are not supported.

Event manager

In HCL Universal Orchestrator, both external and internal events are overseen and managed by event manager. When a workflow with event triggers are created, the relevant information is conveyed to the event manager. By continuously monitoring external event sources and internal events, the event manager ensures that it initiates relevant operations, such triggering the submission of a workflow, when the specified event conditions are met or satisfied. Thus event manager plays a crucial role in coordinating and responding to events, ensuring that associated workflows are run in response to the fulfillment or predefined conditions. The role of event manager in coordinating and responding to events is instrumental in transforming HCL Universal Orchestrator into an event driven architecture.

Gateway

Gateway is the single entry point where you can provide the request to initiate the workstream. It acts as a bridge between you and a collection of microservices. The gateway will redirect the request to call up the required microservices and deliver the response back to you. It standardizes and centralizes the delivery of services through microservices.

HCL UnO agent

The on premise agent that enhances reliability and efficiency through tailored customization, robust encryption for data security, and zero downtime updates. For more information, see HCL UnO agent.

Identification, Authentication and Authorization (IAA)

The IAA microservice authenticates or authorizes the actions you can perform in HCL Universal Orchestrator and stores security related resources. The microservice stores information such as permissions or roles assigned to each ID and information of API keys and resource folders. When you log into HCL Universal Orchestrator with valid credentials, the microservice identifies the permissions associated with that ID and let you perform the actions accordingly.

Notification

The Notification microservice is a component responsible for sending notifications to the UnO AI Pilot. When a user runs tasks and workflows, the UnO AI Pilot asks the user if he wants to monitor such tasks and workflows. In this way, whenever there is a change in the status of tasks and workflows, the UnO AI Pilot receives a notification that is therefore shown to the user.

Orchestrator

The Orchestrator microservice is a component that manages the workstream management. The microservice stores the task definitions and workflow definitions, then plan and drive the workstream. Orchestrator is also responsible for organizing the completion of different tasks. It is designed to distribute the work between multiple nodes, to ensure high availability.

As the name suggests, it orchestrates the timing to complete the workstream and resolve dependencies. The orchestrator also stores tasks and workflows that are in progress.

Scheduler

The scheduler microservice organize the submission of tasks and workflows by assigning the available resources. The microservice identifies the agents that are down and re-initiate the workstream when they are up and running again. When the agents are down, the data about tasks and workflows are stored by the scheduler temporarily. When the agents are back online, the scheduler notifies the agent manager to re-initiate the workstream.

Storage

In HCL Universal Orchestrator, it is the storage microservice which manages the files that are required by other microservices. The task plug-ins (jar files) that are used by the Agent manager and API gateway are stored by this microservice. The plug-in jar files are then distributed to all components/microservices that requires them. With this microservice, you can run a service without any persistent storage in Kubernetes.

Timer

The timer microservice acts as a clock in Maestro. The microservice sends messages to other microservices, to start the tasks or workflows as scheduled.

Toolbox

The toolbox microservice is used to store information about calendars and variable tables that you create or update. The microservice allow all types of operations on calendars and variable tables, such as create, read, update, and delete.

UnO UI

The UnO UI microservice is the graphical interface of HCL Universal Orchestrator. From the interface you can create, edit and deploy your environment, having everything you need to orchestrate your environment at your fingertips.