JAMS Technical Design
The information provided below was created by an existing JAMS customer - a publicly-traded financial services organization. MVP's goal in publishing this document is to provide insight into a typical JAMS project plan. Should you require additional detail, please do not hesitate to email MVP at Support@JAMSSupport.com.
JAMS is the new Windows-based scheduler intended to replace the various other schedulers the company currently employs. This document details the design choices made to balance flexibility with performance and security.
There will be three scheduler environments overall, one for the development/test environment (DEV), one for quality assurance (QA) and one for production (PROD).
Note: JAMS provides the infrastructure to execute jobs and setups. Setups are a collection of one ore more jobs which can be controlled as a whole. Unless specified differently, the term 'jobs' can mean either jobs or setups.
In our environment there will be many different jobs. To be able to manage the jobs efficiently JAMS provides several mechanisms:
- Systems - used to set administrative boundaries;
- Queues and resources - used to control where and how jobs run on machines;
- Parameters and variables - used to generalize jobs as much as possible.
The main objective for the use of systems is to give different departments their own environment while still having the benefits of a single scheduler. The secondary objective is to be able to set system-wide defaults for jobs.
Each system will have several Active Directory groups assigned which will determine the authorization level for anyone using JAMS. The matrices of authorization are found in Appendix A - Authorization Matrices.
Queues and resources
Queues are used to control the execution of jobs on various machines. To provide redundancy and good performance, multiple machines can be part of a single queue. As a rule, instead of targeting a job to a machine, a job should be targeted to a queue so that JAMS can efficiently schedule the jobs.
Resources are used to help JAMS determine how many jobs can be run on a machine simultaneously. There will be two different types of resources, depending on the situation:
- Load resources - the total available resources will be set to 100, each job will specify how much of the resource it requires to run. If a job requests more resources than there are available then the job will be held until enough resources are free;
- Binary resources - the total available resources will be set to 1, ensuring that only one job using this resource can run at any time.
Parameters and variables
With the use of parameters and variables job scripts can be generalized as much as possible. Parameters are used with single jobs and variables can be shared across the scheduler.
All three environments will consist of one or two JAMS Schedulers and two machines as JAMS Agents. The JAMS Agents will run the majority of the jobs. A JAMS Agent will only be installed on an existing server when there are specific needs. Examples of this are jobs for applications that need to run local to the application or when it is needed for performance reasons.
The Development environment will control jobs for both the development and test networks. Its main users will be CORPXOPERATORS, CORPXDEVELOPERS and CORPXADMINISTRATORS for their scheduling needs. The infrastructure will be built with two general job machines (JAMS Agents) and one JAMS Scheduler.
Initially, there will be two systems. One will be used by CORPXOPERATORS and CORPXDEVELOPERS and the other by CORPXADMINISTRATORS.
From a scheduling perspective the Quality Assurance environment (QA) is the most complex of all environments. There are three reasons for this:
- The JAMS Scheduler is used for testing: scripts intended for production use are tested here;
- The JAMS Scheduler is used for 'production' scripts which are needed to actually run this environment
- There are several environments (currently four) catered by one JAMS Scheduler.
The environment itself will be similar to the test environment with a single JAMS Scheduler and two general job machines (JAMS Agents).
Apart from the system shared by CORPXAM and CORPXDEVELOPERS, there will be a separate system for each test environment for Primary Production jobs. The script sources for these jobs will not be directly editable but will be maintained through the existing deployment process.
The Production Environment will be redundant with two JAMS Schedulers and two JAMS Agents. One JAMS Scheduler and one JAMS Agent will be located in New York City, the other two in Newark, NJ for disaster recovery purposes. The database will be placed on an existing server PRODSQL1; disaster recovery here will depend on the existing measures.
There will be one system shared by CORPXAM and CORPXDEVELOPERS, one for CORPXADMINISTRATORS and one for the Primary Production jobs for which the job source will also by maintained through the deployment process.
JAMS has an extensive reporting capability that will be deployed and usable in all environments. No custom report designing or reporting jobs will be delivered as part of the implementation project.
Appendix A - Authorization Matrices
This appendix specifies the job authorization levels for the different systems.
The JAMS system is for jobs internal to JAMS only and will therefore only be used by the JAMS administrators.
For additional information, please visit www.JAMSScheduler.com or call 800 261 5267.