Versions Compared

Key

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

...

Introduction

Rollout strategies imply to determine procedures how to rollout determining procedures for the rollout of scheduling objects such as JS7 - Workflows, JS7 - CalendarsJS7 - Schedules etc. between scheduling environments, for example from dev -> test -> prod environments.

Applicable strategies are determined by according to:

...

For the sake of simplicity the following explanations assume the use of three tiers for rollout from dev -> test -> prod environments.

...

  • Deployment: The term is used for the step performed with JOC Cockpit to : digitally sign signing and to transfer transferring a scheduling object such as a workflow to a given Controller and Agents, for example a workflow.
  • Rollout: This term suggests to transfer implies transferring a scheduling object within the  same or across different JOC Cockpit inventories.
  • Security Level: The security architecture suggests implies three security levels when it comes to the deployment of scheduling objects:
    • low: a common private key is used for all user accounts when signing objects for deployment,
    • medium: individual private keys are used per user account when signing objects for deployment,
    • high: an individual private key is used per user account and outside of JOC Cockpit when signing objects for deployment.

...

The JS7 - System Architecture offers describes a number of usage scenarios to use:

  • Single JOC Cockpit - Single Controller - Shared Agents
  • Single JOC Cockpit - Dedicated Controllers - Dedicated Agents
  • Dedicated JOC Cockpits - Dedicated Controllers - Dedicated Agents

Strategies imply to consider consideration of the JS7 - Security Architecture and Rollout Procedures.

...

  • System Architecture
    • In this scenario only one JOC Cockpit instance and one Controller is used. Agents are mapped to respective environments.
  • Security Architecture
    • A single JOC Cockpit is used in with a security level low or medium security level.
  • Rollout Procedures

...

  • System Architecture
    • In this scenario a number of Controllers are connected to a single JOC Cockpit instance. Agents are dedicated to respective Controllers.
  • Security Architecture
    • A single JOC Cockpit is used in with a security level low or medium security level.
  • Rollout Procedures
    • Rollout is performed within with the single JOC Cockpit instance. This approach includes:
      • to map mapping environments to separate top-level folders in the JS7 - Inventory,
      • to copy copying scheduling objects between inventory folders, but to retain retaining Agent Assignments as the same Agent Names can be used with each Controller and environment,
      • to deploy deploying scheduling objects individually to the Controller that maps to the respective environment.
    • This approach makes use of Inventory Deployment and denies use of Inventory Export/Import and Inventory Git Integration for rollout.

...

  • System Architecture
    • In this scenario dedicated JOC Cockpit instances are operated per for each environment. Each JOC Cockpit instance is assigned a dedicated Controller with dedicated Agents.
  • Security Architecture
    • Each JOC Cockpit instance can be operated in at any security level: lowmedium. or high.
  • Rollout Procedures
    • Rollout is performed between JOC Cockpit instances using separate inventories. This approach includes:
      • to map mapping environments to separate JOC Cockpit instances with their respective Controllers and Agents,
      • to rollout of scheduling objects from one JOC Cockpit instance to the next and to retain retaining Agent Assignments as the same Agent Names be used with each Controller,
      • to deploy deploying scheduling objects individually from each JOC Cockpit that maps to the respective environment.
    • This approach makes use of Inventory Export/Import or Inventory Git Integration for rollout.

...

The JS7 - Deployment makes use of buildbuilt-in operations available within a single JOC Cockpit instance .

...

Complexity is low as deployment is a one-click operation that is used within carried out with a single JOC Cockpit instance.

...

The JS7 - Inventory Export and Import operations offer a valid strategy to perform for performing rollout operations, for example from dev -> test -> prod environments.

At the same time export/import requires some discipline to consider observe the nature of scheduling objects to be which are local to a specific environment or are to be prepared for rollout across environments.

Complexity is medium as the technical operation to export/import operation is simple. However, however, the selection of objects requires some attention.

...

Complexity is high as this approach suggests to follow following the best practices for software development.

Typically we find:

  • developers: persons who own skills for development in teams to manage branching, merging etc. with Git,
  • engineers: persons who dispose of possess skills in system administration and scripting languages.

...

  • Agents are assigned a Job in a Workflow by use their Agent Name.
  • Agent Names frequently are specified from the host name for which the Agent is operated, such as drx6834. Such practice should be reconsidered as it forces to modify requires the Agent assignment of a Job to be modified when the Workflow is rolled out across environments.
  • During registration with a Controller in addition to the Agent Name Agents , Agents can be assigned one or more Alias Names in addition to the Agent Name.
    • It is good practice to use generic Alias Names, such as accountingAgent, . During rollout the Job's Agent assignment can remain unchanged provided that for each environment we find an Agent with the same Alias Name for each environment.
    • This includes Note that in a dev environment we might find fewer Agent instances than in a prod environment. Using more Alias Names for the same Agents in the dev environment maps to the use of more Agents in the prod environment.

Anchor
rollout_objects_local_objects
rollout_objects_local_objects
Rollout Objects and Local Objects

A number of objects suggest lend themselves to be being rolled out across environments without changes. Most prominently this includes Workflows/Jobs.

However, a number of objects might be specific for an environment, for example JS7 - Job Resources that hold environment variables that can which could be specific for a machine.

Find below suggested categories for Rollout Objects and Local Objects with are categorized in the next section together with their assigned object types.  The suggested classification Note that the classification suggested here does not necessarily apply to all users.

...

This category includes JS7 object types that are independent from of a specific environment (dev, test, prod) and that can be rolled out across environments:

...

Such objects can be managed with JS7 in a way that allows to re-use of objects - without changes - across rollout environments such as dev, test, prod.

...

The following measures are suggested per for each scheduling object type to allow the rollout of scheduling the objects without changes.

Suggested The suggested measures should not be considered a recommendation but a proposition that users might have perfect reasons well choose not to apply.

Workflows

  • JS7 - Workflows should not include hard-wired values such as directories.
  • Workflows can be parameterized:
  • Use of the JS7 - Cycle Instruction requires attention caution as it can be considered a competing though by but far more efficient means to specify of specifying periods for repeated execution. As a rule of thumb:
    • cycles in a workflow should be the same across environments,
    • orders that trigger execution of a cyclic workflow for a specific day can be specific for an environment and are created by Schedules.

...

  • Except for testing purposes with changing capacities of JS7 - Resource Locks there is hardly any reason why for not to use using generic Resource Locks that which can be rolled out across environments.

...

  • JS7 - File Watching is performed for directories that can be specific per environmentto individual environments.
  • Instead of hard-wired directory names some global environment variables can be used that are added to an Agent instance's start script.
    • The following bad example specifies a hard-wired Directory:



    • The following good example makes use of an environment variable and optionally adds a fixed part to the Directory like this:



  • There should be no good reason why to use different Patterns for incoming file names are used across environments.

Notice Boards

The generic nature of JS7 - Notice Boards suggests that no changes when should be required when being rolled out across environments.

Script Includes

The JS7 - Script Includes are added to job scripts.

  • Users can decide to add hard-wired values to the content of Script Includes to make them specific for an environment.
  • Users can make use of global environment variables in Script Includes that, for example, are injected by JS7 - Job Resources.

Job Resources

The The nature of JS7 - Job Resources suggest to be that they are used specifically for an environment.

Calendars

The JS7 - Calendars are a flexible means to determine the days for order execution:

  • Calendars allow to select selection of hard-wired dates.
  • Calendars offer to allow the use of rules for repeated execution such as Monday to Friday, every 2nd Monday, every 3rd day of month etc.

The number of Calendars can be reduced as the JS7 - Schedules offer provide restrictions to for further limit limiting the days for order execution:

...

Users should take a design decision about whether their Calendars are to be generic across environments or to be specific for an environmentparticular environments.

Schedules

The JS7 - Schedules basically can basically be considered to be specific for to an environment:

  • For testing purposes Schedules in a test environment environment Schedules might use more frequent periods for order execution, for . For example a job developer might not want to wait for until the end of month to test a job related to accounting.
  • Control of Schedules and of the JS7 - Daily Plan is a core competency of operators in prod environments. Importing Schedules from a dev or test environment somewhat puts control at riskbrings a degree of risk to the
  • prod environment.