Skip to end of metadata
Go to start of metadata

Introduction

  • The Agent Cluster brings horizontal scalability and fail-over capabilities for Agents.
    • A number of Subagents operated for different servers share the job execution load in an Agent Cluster (active-active clustering).
    • Automated fail-over guarantees high-availability and restart capabilities of an Agent Cluster (active-passive cluster).
  • The Agent Cluster is subject to the agreements of the JS7 - License.
  • For instructions about how to set up Agent Clusters see the JS7 - Management of Agent Clusters article.
  • Development Status:
    • Subagent Cluster:, see  JS-1954 - Getting issue details... STATUS
      FEATURE AVAILABILITY STARTING FROM RELEASE 2.3.0
    • Director Cluster see  JS-1955 - Getting issue details... STATUS
      FEATURE AVAILABILITY STARTING FROM RELEASE 2.5.0

Operational Layer

The architecture applies to the clustering of Director Agents and the clustering of Subagents for high-availability and scalability purposes.

  • The components involved in an Agent Cluster are considered by the Controller to be a single Agent.
  • A Controller can manage any number of Agents from different Agent Clusters or as a number of Standalone Agents.


Director Agent

The Director Agent ships with an Integrated Subagent which runs inside the Director Agent.

  • The Subagent inside the Director can be used to execute jobs (not recommended).
  • The Director's Subagent can be disabled in order to have the Director only perform orchestration and not execute jobs with its Subagent (recommended).

The Director Agent is contacted by the Controller for deployment of scheduling objects, for commands that change an order's state such as suspend, resume and cancel, and for reporting back the results of executing JS7 - Workflow Instructions if the Director Agent is not available.

Director Journal

The Director Agent holds a journal for storing:

  • scheduling objects such as workflows and jobs that are deployed via a Controller,
  • events about JS7 - Order State Transitions and log output reported from Subagents executing jobs.

The journal is essential for the restarting capabilities of the Director Agent.

Director Cluster

The Director Agent can be operated as a single instance and as a member in a passive Director Cluster of two Director Agents.

  • JS-1955 - Getting issue details... STATUS
  • FEATURE AVAILABILITY STARTING FROM RELEASE 2.5.0

In a Director Cluster one Director Agent holds the active role and the second Director Agent holds the passive role.

If the Director Agent is operated as a cluster then the active Director Agent synchronizes its journal with the standby Director Agent. If the journals of both active and standby Director Agents are in sync then a fail-over (automatically) or switch-over (caused by user intervention) can occur and the Director Agents will switch active and standby roles.

Subagent

Subagents come in two shapes: they they can be operated as Standalone instances and they ship inside a Director Agent.

  • Subagents are lightweight and do not operate a journal.
  • Subagents are deployed to any number of servers in a network.
  • Subagents are closely monitored by Director Agents using bi-directional heartbeats.

Job Execution

Subagents execute jobs and report back execution results.

  • Subagents execute jobs on behalf of the active Director Agent.
  • They report back log output and the execution results of jobs to the active Director Agent.
  • If a Subagent fails then the active Director Agent will hand-over the job execution request to the next Subagent.
  • A Subagent kills running jobs if the connection from the active Director Agent is lost or if it is instructed by the active Director Agent to suspend/kill or to cancel/kill an order.
    • This behavior is intended to prevent double job execution by more than one Subagent.
    • If the connection from the active Director Agent can be re-established within a given timeout then the Subagent will continue to execute jobs.

Subagent Cluster

Subagents can be grouped into clusters.

  • A Subagent Cluster is specified by a Selection and Scheduling Mode:
    • The cluster can include a single Subagent, a number of Subagents or all Subagents.
    • The Scheduling Mode is one of fixed-priority or round-robin.
  • Any number of Subagent Clusters can be configured.

Functional Layer

Jobs in workflows are assigned a Subagent Cluster that includes a Selection and Scheduling Mode of Subagents: 


Subagent Cluster

Jobs in workflows are assigned a Subagent Cluster that includes a Selection and Scheduling Mode of Subagents: 

  • Subagent Clusters present a logical view of the way a given number of Subagents co-operate for job execution. 
    • Any number of Subagent Clusters can be configured using the same Subagents.
  • The Selection makes use of one or more Subagents.
    • Subagents are used for job execution according to their ordering in the Selection.
    • A Subagent can be a member in one or more Subagent Clusters.
    • The configuration of Subagent Clusters is performed using the JOC Cockpit and is forwarded to the Controller and to the active Director Agent.
  • The Scheduling Mode is one of:
    • fixed-priority: execute jobs with the first Subagent and switch to the next Subagent only if the first Subagent becomes unavailable (active-passive clustering).
    • round-robin: execute each next job on the next Subagent (active-active clustering).

Network Connections

Network connections use the HTTP protocol and can be secured using TLS/SSL certificates.

Connections are unidirectional and are established:

  • by the Controller to the Director Agent,
  • by the Director Agent to the Subagent.

Workflow Execution

Workflows are deployed from the JOC Cockpit to a Controller and are forwarded to the Director Agent. Similarly, orders are submitted to a Controller and to the relevant Director Agent.

Orders are scheduled for a given date and time at which the Director Agent will start the workflow.

  • The Director Agent will execute a number of JS7 - Workflow Instructions, for example Retry, Try/Catch, Fork, which are in the scope of the Director Agent.
  • The Director Agent will request execution of jobs as available from the JS7 - Job Instruction with a Subagent. When choosing the Subagent the Director Agent considers the Selection of Subagents and Scheduling Mode of the Subagent Cluster that is assigned the job. For example, a specific Subagent will be selected for a fixed-priority Scheduling Mode.
  • The Director Agent will hand back the order to the Controller if it meets an instruction that is out of the scope of a single Agent, for example in case of a JS7 - Lock Instruction.


  • No labels