14. 03. 2022
SOS Berlin JobScheduler – JS7
As is by now almost a tradition, this year I am again writing a blog post about the SOS JobScheduler. In this blog I’d like to introduce you to some major changes and improvements to the SOS Berlin JobScheduler.
As has already been officially announced on the SOS Berlin website, beginning with Release 2.0.0 the JobScheduler will be rebranded as JS7 JobScheduler. JS7 is the next generation Open Source JobScheduler, designed for performance, resilience and security.
But what does this release jump with its new naming entail?
JS7 is designed for performance. There are no hard-wired limits.
Performance Factors are:
- A Controller and Agents make use of any available cores to parallelize threads. A larger number of cores allows for better parallelism.
- Memory usage of the Controller and Agents must be adjusted to the expected amount of parallelism. As a general rule of thumb, running 5,000 parallel tasks suggests a minimum of 8 GB main memory for each Controller and Agent.
- Disk speed is relevant to the Controller and Agent journal that holds any events for JS7 – Order State Transitions.
JS7 implements resilience at the following levels:
- Architecture: All components can be clustered for high availability, implementing an active-passive cluster architecture with automated fail-over.
- Communication: Components communicate asynchronously. Practically, this means that any component can be shut down or can be subject to an outage without breaking the availability of any other component. Components reconcile after restart and synchronize state information to catch up with the latest processing results.
- Programming: The programming model is based on the handling of asynchronous events that are raised for state transitions.
- Connection Management: Network connections between JS7 components can be secured by SSL certificates for mutual authentication via HTTPS. A built-in Certificate Authority allows for the creation of SSL certificates and supports simplified rollout to Controller and Agent instances.
- Access Management: JOC Cockpit offers authentication both by its built-in account management and by integration with LDAP Directory Services such as Microsoft Active Directory. Permissions are available for all operations with the JS7 – Browser User Interface and the JS7 – REST Web Service API.
- Deployment Management: Deployment of workflows and jobs is secured through the use of digital signatures.
- Secure Operation: Measures for secure operation include management of secure defaults for system settings, management of credentials, and replacement of passwords, e.g. by certificates where applicable.
As you can tell, there are significant improvements with the JobScheduler JS7.
Many of you are now probably wondering how an update from a version 1.x to 2.x works.
JS7 is a complete rewrite from scratch of the JobScheduler components. The motivation for the new JS7 is not to improve the existing branch 1.x (JS1), but to create something better.
For this reason it’s not possible to upgrade your installation in place. In order to upgrade a system from version 1.x to 2.x, it has to be migrated, especially because the configuration files are no longer stored in XML format but rather as JSON.
The improvements in JS7 are necessary and conform to today’s standards of information technology. They therefore meet the current security requirements.
As a negative point I’ll rate the necessary migration, which unfortunately is the only way to go from a 1.x to a 2.x environment. This is probably not only a headache for me, but for many JobScheduler users as well.
Latest posts by Tobias Goller