Versions Compared

Key

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

...

Each environment dev, test, prod makes use of an individual JS7 instance using JOC Cockpit and database, Controller and Agents. Any operations are performed by the JS7 REST Web Service API and are offered by the JOC Cockpit GUI.

  • Job Development in a dev environment JOC Cockpit Operations
    • A number of configuration objects, e.g. workflows, are created or changed by a job developer.
    • On completion of the change the job developer deploys the workflows to Controller and Agents to perform functional tests in the dev environment.
    • With functional tests being successful the developer
      • stores changes of workflows and related rollout objects to the local dev-rollout repository, commits changes and pushes changes to the remote dev-rollout repository.
      • optionally stores changes of local objects such as job resources to the local dev-local repository, commits changes and pushes changes to the remote dev-local repository.
  • Integration Testing in a test environment:
      Git Operations
    • A tester with access to the job developer's remote dev-rollout repository adopts the current change:
        changes. 
      • The tester copies changes from the job developer's remote performs a checkout operation of the remote dev-rollout repository (source) to the remote test repository to a local dev-rollout repository (target) by Git operations that are performed with a Git Client outside of JOC Cockpit.
      JOC Cockpit Operations
      • The tester is offered the list of recent commits to the dev-rollout repository. From this list the tester filters by date, author or message the commits related to the change. Typically the change is assigned an identifier (Issue Key or similar) that is available with the messages of any commits related to this change.
      • From the selected commits the tester receives the list of changed files and launches the operation to copy the files in this list from the local dev pulls changes from the remote test-rollout repository to the local test-rollout repository.
      • The tester and updates the JOC Cockpit instance from the local test-rollout repository.
    • The tester adjusts local objects such as job resources as required by the change.
    • The tester deploys changed workflows and related local objects to Controller and Agents to perform integration testing.
    • On completion of integration tests with changes being approved the tester
      • optionally tags the latest commit in the remote test-rollout repository with a label, e.g. v2.3-approved.
        • Should the tester modify workflows then the tester commits changes to the local test-rollout repository and pushes changes to the remote test-rollout repository before tagging.
        • Some users might deny object modifications to be performed in a test environment and instead prefer to apply modifications in dev environments only.
      • optionally stores changes of local objects to the local test-local repository, commits changes and pushes changes to the remote test-local repository.
  • Production Rollout to a prod environment
      Git Operations
    • An operator with access to the tester's test-rollout repository adopts the current change:
      • The operator performs a checkout operation of the remote test-rollout repository to a local test-rollout repository. Optionally the checkout is performed for changes and checks out the tag v2.3-approved should the tester have tagged the change accordingly.
      • The operator copies changes from the remote test-rollout repository (source) to the remote prod-rollout repository (target) by Git operations that are performed with a Git Client outside of JOC Cockpit.
      • The operator tags changes in the remote prod-rollout repository with a label, e.g. v2.3.
      JOC Cockpit Operations
      • is offered the list of recent commits to the test-rollout repository. From this list the operator filters by date, author or message the commits related to the change. Typically the change is assigned an identifier (Issue Key or similar) that is available with the messages of any commits related to this change.
      • From the selected commits the operator receives the list of changed files and launches the operation to copy the files in this list from the local test-rollout repository
      • The operator pulls changes from the remote prod-rollout repository tag v2.3 to the local prod-rollout repository and .
      • The operator updates the JOC Cockpit instance from the local prod-rollout repository.
    • The operator adjusts local objects such as job resources as required by the change. 
    • The operator deploys changed workflows and local objects to Controller and Agents for production use.
    • On completion of deployment the operator
      • stores changes to the local prod-rollout repository, commits changes and pushes changes to the remote prod-rollout repository.
      • optionally tags changes in the remote prod-rollout repository with a label, e.g. v2.3.
      • required by the change. The operator optionally stores changes of local objects to the local prod-local repository, commits changes and pushes changes to the remote prod-local repository.The operator deploys changed workflows and local objects to Controller and Agents for production use.

References

  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJOC-1213
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJOC-1214

...

Each environment dev, test, prod makes use of an individual JS7 instance using JOC Cockpit and database, Controller and Agents. Any operations are performed by the JS7 REST Web Service API

  • Job Development and Integration Testing are explained from the above use case: Lifecycle Support for Workflow Changes.Changes.
  • Production Rollout
    • Checkout remote test-rollout repository to local test-rollout repository, optionally based on use of a tag such as v2.3-approved.
    • Filter commits relevant to a change by an identifier available from the commit message and create the list of files affected by resulting commits.
    • Copy files in this list from the local test-rollout repository to the local prod-rollout repository.
    • Update the JOC Cockpit instance from the local
    Production Rollout
    • Operations performed by a Git Client external to JOC Cockpit
    • Copy changes from the remote test-rollout repository (source) to the remote prod-rollout repository (target).
    • Tag changes with a label in the prod-rollout repository.
    • Deploy changed workflows to Controller and Agents for production use.
    • Store changes to the local Operations performed by use of the JS7 REST Web Service APIPull changes from the remote prod-rollout repository identified by the respective tag , commit changes and push changes to the local remote prod-rollout repository.Update the JOC Cockpit instance from the local
    • optionally tags changes in the remote prod-rollout repository.Deploy changed workflows to Controller and Agents for production use repository with a label, e.g. v2.3.

Automation

Automation of the CI/CD pipeline can be achieved by scripting :

...

  • The indicated Git operations can be performed on any platform, no access to the JS7 production environment is required.

...

using the JS7 REST Web Service API

...

:

  • from the JS7 - PowerShell Module,
  • from any scripting language that supports a REST Client, executing curl from a shell script might be sufficient.
  • Operations can be performed on any platform, no direct access to the JS7 production environment is required, however, credentials have to be provided to connect to the JS7 REST Web Service API.

References

  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJOC-1215

...