You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

Rollout strategies imply to determine procedures how to rollout 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 

Environments

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

  • Users might apply different wordings such as staging, user acceptance, integration etc.
  • Users might use fewer environments (such as test -> prod) or more environments (such as dev -> int -> uat -> prod).

Terminology

  • Deployment: The term is used for the step performed with JOC Cockpit to digitally sign and to transfer a scheduling object to a given Controller and Agents, for example a workflow.
  • Rollout: This term suggests to transfer a scheduling object within the  same or different JOC Cockpit inventories.
  • Security Level: The security architecture suggests three security levels when it comes to 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.

Rollout Strategies

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

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

Single JOC Cockpit, Single Controller, Shared Agents



Explanation:

  • 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 a security level low or medium.
  • Rollout
    • Rollout is performed within the single JOC Cockpit. This approach includes
      • to map environments to separate top-level folders in the JS7 - Inventory,
      • to copy scheduling objects between inventory folders and to modify Agent assignment for consideration of environments.
      • to deploy modified scheduling objects.
    • This approach denies use of Import/Export and use of Git Integration for rollout.

Single JOC Cockpit, Dedicated Controllers, Dedicated Agents



Explanation:

  • 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 a security level low or medium.
  • Rollout
    • Rollout is performed within the single JOC Cockpit. This approach includes
      • to map environments to separate top-level folders in the JS7 - Inventory,
      • to copy scheduling objects between inventory folders, but to retain Agent assignment as the same Agent Names can be used with each Controller and environment,
      • to deploy scheduling objects individually to the Controller that maps to the respective environment.
    • This approach denies use of Import/Export and use of Git Integration for rollout.

Dedicated JOC Cockpits, Dedicated Controllers, Dedicated Agents



Explanation:

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

Rollout Tools

Deployment

This approach makes use of build-in operations available within a single JOC Cockpit instance.

Copying folder contents, selecting objects for deployment and knowing which object to deploy to which Controller and environment requires some discipline.

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

Inventory Export/Import

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

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

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

Git Integration

The JS7 - Inventory Git Integration offers a number of options for rollout by use of the JS7 - Git Repository Interface.

Complexity is high as this approach suggests to follow 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 skills in system administration and scripting languages.

The Git approach will work fine with engineers being ready to acquire skills for Git repository management.

Rollout Considerations

Determine Rollout Objects and Local Objects

A number of objects suggest to be rolled out across environments without any 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 are specific for a machine.

Find below suggested categories for Rollout Objects and Local Objects with assigned object types. The suggested assignment does not necessarily apply to all users.

Rollout Objects

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

  • Workflows
  • Resource Locks
  • File Order Sources
  • Notice Boards
  • Script Includes

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

Local Objects

The following object types typically hold values that are specific for an individual environment (dev, test, prod). Such objects are not rolled out across environments.

  • Job Resources
  • Calendars
  • Schedules

Prepare Objects for Rollout

The following measures are suggested per object type to allow rollout of a scheduling object without changes.

Workflows

Resource Locks

  • Except for testing purposes with changing Resource Lock capacities there is no reason why not to use generic Resource Locks that can be rolled out across environments.

File Order Sources

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



    • The 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 across environments.

Notice Boards

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

Script Includes

x




  • No labels