ScOrch - Orchestration

ScOrch - What is it?

When all you have is a hammer, then everything looks like a nail. 

ScOrch is Orchestration Software that gives you the freedom the use the right tool for the right job, perhaps you use Puppet to manage the infrastructure, Ansible to manage the middleware and scripts to manage the applications and database?

ScOrch pipelines provide:

  • parallel runs
  • branching
  • synchronous and asynchronous runs
  • restarts
  • checkpoints
  • manual input
  • audited break glass solutions

ScOrch dynamically creates run time autonomous scripts from a simple template. The scripts can then be triggered manually or automatically and can orchestrate anything from the following as well as managing the workflow between them:

  • Infrastructure (spinning up hardware and creating virtual machines)
  • Software Configuration Management (configuration audit control, software packaging and application release note generation)
  • Documentation (creating live documents for and given system configuration)
  • Release and Deployment Management (deploying application and database code)
  • Test Management (running test cycles and generating defect tickets and signing off artefacts and applications)
  • Performance Management (Metrics capturing)
  • Support Services (restarting systems and application, monitoring, housekeeping, reporting)
  • Middleware Deployments
  • Application Deployments

ScOrch was first created to fill a tools gap in the relatively new but rapidly growing release and deployment management discipline. Other teams either side of the deployment team, like release management and test management, soon wondered how the deployment team could be so consistent and reliable at delivery. How they were able to adapt so quickly and complete 10 times more deployments with no increase in headcount.

Being so simple to use, so easy to customise with plugins and so powerful in its delivery, it was quickly adopted by those teams and so the adoption continued in both directions through the release life cycle and promotional model. It is now used to orchestrate the development (DEV) to operations (OPS) life cycle. From spinning up tin, installing and configuring the OS, installing and configuring application servers and database servers, managing source control system, treating config as version controlled code, packing releases, deploying applications, loading SQL data, running tests, generating reports, releasing code, auto immune systems, and creating production team documentation.

ScOrch can be implemented in many ways depending on the requirements. 

  • One instance per team or per user
  • Same version or different version
  • Shared job or individual job directory states
  • Shared plugins, individual plugins or combination of both
  • Restricted access plugins based on environments, projects or specific plugins
  • One instance per user, different versions per user, personal jobs, shared plugins and individual plugins

Sublime screen shot and ScOrch

When run using the CLI, ScOrch can be triggered from tools such as Jenkins, Ansible or Puppet.

scorch -a JBOSS -o "RELEASE:6.4" -o "ENVIRONMENT:PROD-STG" -s

ScOrch keeps a jobs.csv file of completed jobs that can be queried using scorchdb CMDB tool:

# CSV as a database - list the columns defined

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv

# -requesttime -responsetime -starttime -endtime -job -time -tasks -failure -who

# See all the JBOSS deployments

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv   JBOSS

# See all the successful JBOSS deployments run by user marc

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv   JBOSS.*0,marc

# Only show the jobname, number of tasks, time taken and failure count of JBOSS jobs

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv -job -tasks -time -failure JBOSS

# Sort on the Job ID

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv -job -tasks -time -failure JBOSS | sort

# Show the results of a specific job number

scorchdb -f ${DEPLOY_HOME}/var/log/jobs.csv Job_ID-100