Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Agents can be clustered for high-availability and scalability. Motivations The motivation for clustering includeincludes:

  • High-availability: Should a server node in the scheduling environment fail then jobs are executed with the Agents on remaining server nodes.
  • PerformanceScalability: A single Agent can execute thousands of jobs in parallel tasks, however, for a number of use cases it might be is preferable to distribute server load. This applies particularly to applications that require horizontal scaling across a number of server nodes instead of vertical scaling on a more powerful single server node.

Agent Clustering clustering is subject to the agreements of the JS7 - License and :

  • Use of Standalone Agents:
    • is available to Open Source License holders and to commercial license holders.

...

...

    • commercial license holders,
    • Clustered Agents include
      • Agent Director instances that require license keys to be assigned individually, see JS7 - How to apply a JS7 License Key.
      • Subagents that receive license information from a Director Agent and do not need a license key to be added.

Development Status:

  • Subagent Cluster:, see 
    Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJS-1954

    Display feature availability
    StartingFromRelease2.2.0
  • Director Cluster see 
    Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJS-1955

    Display feature availability
    StartingFromRelease2.6.0

Architecture

The architecture is explained with JS7 - Agent Cluster. For the planning of Agent Clusters see JS7 - Strategies for Agent Clustering.

The architecture includes to consider consideration of different aspects of clustering:

  • The Operational Layer covers installation of Cluster Agents that is no different from installation of Standalone Agents. In addition it covers registration of Agents as members of an Agent Cluster.
  • The Functional Layer is situated on top of the Operational Layer and defines a number of logical Agent Subagent Clusters.

Operational Layer

The architecture includes the clustering of Agents in the role of Director Agents for restart capabilities and the clustering of Agents acting as Subagents for high availability and scalability purposes.

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

Functional Layer

The architecture allows to define the definition of any number of of Subagent Clusters that include a Selection and Scheduling Mode of Subagents: 

  • Any number of Subagents can be selected to be part of a Subagent Cluster.
  • The selection includes to specify specification of the Scheduling Mode being one of Mode as either fixed-priority or round-robin:
    • fixed-priority: execute jobs with the first Subagent and switch to the next Subagent only if the first Subagent becomes unavailable (active-passive cluster).
    • round-robin: execute each next job on the next Subagent (active-active cluster).

...

Manage Agent

...

Clusters

The JS7 - Agent Installation On Premises and JS7 - Agent Installation for Docker Containers are Containers articles explain the installation procedure that is the same for Cluster Agents and for Standalone Agents.

The  icon in the JOC Cockpit main menu offers is used to select the Manage Controllers/Agents view:

...

For Cluster Agents the following excerpt from the above list screenshot is used:

  • In a first position the The Primary Director Agent is available. Optionally a listed first. An optional Secondary Director Agent can may also be availablelisted.
  • Below The list of Subagents is listed below the Director Agent entry the list of Subagents is displayed.

Add Agent Cluster

The Agent Cluster is situated in the operational layer and includes specification of Director Agents and Subagents.

To add an Agent Cluster users can start from the Controller's action menu to of the Controller which the Agent Cluster should be added to:


This brings forward the following popup window:

Image RemovedImage Added


Explanation:

  • The first group of input fields specifies the Agent Cluster:
    • Agent ID: A unique identifier of the Agent Cluster. Uniqueness is required for all Standalone Agents and Agent Clusters assigned to a Controller. This identifier cannot be changed later on.
    • Agent Cluster Name: The name of the Agent Cluster as displayed in the JOC Cockpit GUI. The name can be changed at any later point in time.
    • Title: An individual description that later on can be searched for.
    • Alias NameNames: The same Agent Cluster can appear with a number of alias names. This allows to map use of different Agent Clusters, for example is available from a different name. This can be helpful if distinct Agent Names should be assigned the jobs, for example if more Agents are used in a production environment , to use of fewer Agent Cluster using alias names in a test environmentthat map to a smaller number of Agents in a non-production environment.
    • Process Limit: Agents can execute an unlimited number of parallel processes. Users can limit parallel processes to prevent exhausting a server's resources and to make orders wait until the next process will be available.
  • The second group of input fields specifies the Primary Directory Director Agent:
    • Subagent ID: A unique identifier of the Subagent. Uniqueness is applied required for all Director Agents and Subagents in the same Agent Cluster. This identifier cannot be changed later on.
    • Title: An individual description that later on can be searched for.
    • URL: The protocol HTTP or HTTPS, host name or IP address and port by which the Controller can use to access the Director Agent is accessible to the Controller.
  • The third group of input fields specifies the Secondary Directory Director Agent should Directory Director Agents be clustered.

Note:

  • Each Director Agent includes a Subagent that can be used for execution and that is automatically available for use with any Subagent Cluster.

Anchor
add_subagent
add_subagent
Add Subagent

With the Once an Agent Cluster being has been added, users can then add further Subagents from the Agent Cluster's action menu:

...

  • Subagent ID: A unique identifier of the Subagent. Uniqueness is applied required for all Director Agents and Subagents in the same Agent Cluster. This identifier cannot be changed later on.
  • Title: An individual description that later on can be searched for.
  • URL: The protocol HTTP or HTTPS, host name or IP address and port by which the Subagent is accessible to the Director Agent.

Manage Subagent Cluster

  • which the Director Agent can use to access a Subagent.

Anchor
enable_disable_subagent
enable_disable_subagent
Enable/Disable Subagent

Subagents can be disabled and enabled. They are enabled by default.

  • When a Subagent is disabled then it is no longer considered for job execution.
    • At the point in time of disabling the Subagent will continue to complete any tasks running for jobs.
    • No new tasks are added to a disabled Subagent.
    • The remaining Subagent(s) in the cluster will take over the load.
  • When a disabled Subagent is enabled then it is automatically considered for the next job executions.
  • The assignment of Subagent Clusters that include a disabled Subagent to jobs in a workflow remains unchanged.
    • For clusters that include more than one Subagent the remaining Subagents will execute jobs.
    • For Subagent Clusters that hold a single disabled Subagent any orders will wait for the Subagent to become available and enabled. Orders will automatically continue in the workflow, for example after a restart, once the Subagent is up and running and is enabled.
  • Should a Subagent that acts as a Director Agent be disabled, then this will make the Agent Cluster unavailable independently of whether Subagents in the Cluster are enabled or up and running.
    • The Director Agent orchestrates Subagents and is required for a functional Cluster.
    • The Dashboard view displays Agent Clusters with a disabled Director Agent as being failed.

Disabling of Subagents can be used for example to manage maintenance windows on server nodes.

Anchor
reset_subagent
reset_subagent
Reset Subagent

Subagents can be reset in case of problems during initial operation or to re-assign Subagents to a different Subagent Cluster.

  • Reset: Any running tasks in a Subagent can continue. The Subagent does not accept new tasks. Once running tasks have been completed the Subagent will restart.
  • Reset Forced: Any running tasks in a Subagent are killed. The Subagent does not accept new tasks. The Subagent restarts.
  • If the Subagent acts as a Director Agent then the following applies:
    • Dropping the Director Agent's journal means that it looses its memory. This operation can be used to seize an Agent, i.e. to assign it a different Controller.
    • This operation should be used with care, for example, if an Agent that is assigned a Controller in a production environment is taken over by a Controller of a different environment.
    • After restart of a Director Agent that has been reset, the Controller will deploy scheduling objects such as workflows and will submit orders as assigned to the Agent.
  • If the Subagent is not acting as a Director Agent then after restart it will be assigned tasks by the Director Agent.

Anchor
delete_subagent
delete_subagent
Delete Subagent

Subagents can be deleted only if jobs are not assigned to the Subagent Cluster in question.

  • The Search & Replace function can be used for Agent assignments in a workflow. This function is available in the JS7 - Workflow Editor.
  • The JS7 - Inventory Search function can be used to replace Agent assignments across workflows.
  • Modified workflows have to be deployed to a Controller to make changes effective.

Anchor
deploy_agent_cluster
deploy_agent_cluster
Deploy Agent Cluster

When the configuration of an Agent Cluster has been completed the cluster can be deployed to its Controller.

  • An Agent Cluster and its Subagent Clusters can be used only after deployment to a Controller.
  • Changes to an Agent Cluster, for example if the Director Agent's URL is changed or if a Subagent is added or dropped, require that the Cluster deployed.
  • Deployment of an Agent Cluster includes deploying any Subagent Clusters configured for that Agent Cluster. However, Subagent Clusters can be deployed individually, see the Deploy Subagent Cluster section.

Anchor
manage_subagent_cluster
manage_subagent_cluster
Manage Subagent Clusters

Subagent Clusters are The Subagent Cluster is situated in the Functional Layer and includes include specification of logical clusters that make use of Subagents.

To add a Subagent Cluster users can start from the action menu of the Agent Cluster 's action menu to which the Subagent Cluster should be added to:


This brings forward the following view:

  • The view displays the list of available Subagent Clusters.
  • The indicated status signals that Status entry indicates whether or not the Subagent Cluster has been deployed or not not deployed.
  • The indicated synchronization status signals Sync Status entry indicates that the definition of the Subagent Cluster in the JS7 inventory and the version deployed to the Controller are in syncsynchronized.


The  buttons in the right upper corner allow to toggle toggling between the Subagent Cluster list view and the card view of Subagent Clustersviews:

Anchor
bulk_subagent_clusters
bulk_subagent_clusters
Bulk Operations on Subagent Clusters

In the Subagent Cluster list and card views: When the checkboxes available with each Subagent Cluster are checked then buttons for the following bulk operations become available when the checkboxes shown for each Subagent Cluster are checked:

  • Revoke: The Subagent Cluster is revoked from the Controller, i.e. the deployment is undone. The definition of the cluster remains in place and can later on can  be deployed once again later on.
  • Delete: The Subagent Cluster is deleted from the Controller and from the JS7 inventory. This operation cannot be undone.
  • Deploy: The Subagent Cluster configuration is forwarded to the Controller and can be used for assignments assigned to jobs.

Anchor
add_subagent_cluster
add_subagent_cluster
Add Subagent Cluster

To add When adding Subagents the JOC Cockpit can be instructed to automatically create a Subagent Cluster for individual Subagents.

The the Create Subagent Cluster button can be used to add a Subagent Cluster.

This brings up the following popup window:

  • The list of available Subagents is shown In the left panel the list of Subagents is available and -hand panel. These can be dragged & dropped to the middle panel.
  • The middle panel holds a drop area to which a Subagent can be droppedfor adding Subagents by drag & drop.


With the Once a first Subagent being has been added to the cluster the middle panel offers provides additional drag & drop areas:

  • The next Subagent can be dropped to the area above the existing Subagent to specify its role as the first Subagent used with in the fixed-priority scheduling mode.
    • In this mode the first Subagent is used and only if it becomes unavailable then will the next Subagent will be used.
  • The next Subagent can be dropped to the area below the existing Subagent to specify its roles as the next Subagent used with in the fixed-priority scheduling mode.
    • In this mode the next Subagent is used only if the first previous Subagent becomes unavailable.
  • The next Subagent can be dropped to the area right to the existing Subagent to specify use of in the round-robin scheduling mode.
    • In this mode each next task is executed with the next Subagent.


If the next Subagent is dropped to the area below the existing Subagent then a cluster with fixed-priority scheduling mode is created:

...

If the next Subagent is dropped to the area right to the existing Subagent then a cluster with round-robin scheduling mode is created:

Organize Subagent Clusters

Users have a number of options to organize their Subagent Clusters:

  • For each Subagent JOC Cockpit automatically adds a cluster that holds the single Subagent.
    • This allows to assign an individual Subagent to a job should the job be executed with this Subagent only.
    • This Subagent Cluster is not visible and cannot be modified by users.
    • The name of the Subagent Cluster corresponds to the Subagent ID.
  • Any number of Subagents can be added to a cluster.
    • Adding more Subagents to a round-robin cluster allows unlimited horizonal scaling.
    • Some might consider it paranoid to add a larger number of Subagents to a fixed-priority cluster, however, users are free to create a chain of Subagents that can replace each other.
  • Subagents can be added for both fixed-priority and round-robin scheduling modes within the same cluster.

Users can apply different strategies to manage operational Agent Clusters and functional Subagent Clusters.

Anchor
deploy_subagent_cluster
deploy_subagent_cluster
Deploy Subagent Cluster

Once the configuration of a Subagent Cluster has been completed the cluster can be deployed to its Controller.

  • A Subagent Cluster can only be used after deployment to a Controller.
  • Changes to a Subagent Cluster have to be deployed, for example if a Subagent is added or removed from a cluster.
  • Deployment of Subagent Clusters can be performed individually and from bulk operations, see the Bulk Operations on Subagent Clusters section.
  • Deployment of an Agent Cluster includes to deployment of any available Subagent Clusters, see the Deploy Agent Cluster section.

The Deploy button in the right upper corner is used to deploy Subagent Clusters:

Image Added

Anchor
revoke_subagent_cluster
revoke_subagent_cluster
Revoke Subagent Cluster

Subagent Clusters can be revoked, i.e. they can be withdrawn from a Controller. As a result the Subagent Cluster's deployment will be undone.

  • This operation is possible if no jobs are assigned the Subagent Cluster. Otherwise users first have to reassign their jobs different Subagent Clusters.
    • The Search & Replace function can be used to assign a Subagent Cluster to a workflow. This function is available in the JS7 - Workflow Editor.
    • The JS7 - Inventory Search function can be used to replace Subagent Cluster assignment across workflows.
    • Modified workflows have to be deployed to a Controller to make changes effective.
  • Once a Subagent Cluster has been revoked, the Controller will no longer know the Subagent Cluster. However, the Subagent Cluster configuration in the JOC Cockpit inventory remains in place and can be deployed at a later point.

Anchor
delete_subagent_cluster
delete_subagent_cluster
Delete Subagent Cluster

Subagent Clusters can be deleted only if no jobs are assigned to the Subagent Cluster in question.

  • The Search & Replace function which is available in the JS7 - Workflow Editor can be used to assign Subagent clusters in a workflow.
  • The JS7 - Inventory Search function can be used to replace Agent assignments across workflows.
  • Modified workflows have to be deployed to a Controller to make changes effective
  • A single or a few Agent Clusters can be used that each holds a larger number of Subagent Clusters.
    • Each Subagent Cluster selects a number of Subagents.
    • The same Subagents can occur in any number of Subagent Clusters.
    • The same Subagents cannot occur in more than one Agent Cluster.
    • This scenario can be applied for load sharing between server nodes that act for a number of clustered applications.
  • A larger number of Agent Clusters can be used that hold a single or a small number of Subagent Clusters.
  • Agent Clusters are autonomous and are not related to each other. 
  • Each Agent Cluster is assigned an individual Director Agent that is optionally clustered.
  • This scenario is preferably applied in a situation when communication between a Director Agent and Subagents should be limited to a few servers, for example for use of Agent Clusters in separate network zones.

Assign Subagent Cluster to Jobs

Each Subagent Cluster is individually assigned to a job.

  • The property editor can be used to select Subagent Clusters from the list of Agents which can be assigned jobs.
    • This includes Standalone Agents.
    • This includes Subagent Clusters that are grouped by Agent Cluster.
  • Assignment of Subagent Clusters can look like this:

Image Added