New Job Scheduling Architecture
The following diagram illustrates the architecture of a CloudShell deployment with the new New Job Scheduling, including the different components, interconnections and ports.
- Components with a green frame denote components related to the New Job Scheduling. For details about existing CloudShell components, see CloudShell Component Architecture.
Note: The New Job Scheduling services are installed on Kubernetes. These include Job Scheduling Service, Identity Service, Test Discovery Service, Test Execution Service and Sandbox Service. However, Sandbox Service can be installed externally as part of the Quali Server installation.
Component |
Description |
---|---|
ELK |
ELK (Elasticsearch, Logstash and Kibana) is an out-of-the-box 3rd party tool that is used to store CloudShell logs. These logs can then be used to investigate deployment issues and bugs, and trace their causes. |
External Test Repository |
Online test repository that contains tests of a specific type. |
Identity Service |
Identity Service is our authentication engine for the Job Scheduling Service and creates users based on Quali’s identity management mechanism, allowing these users to access and use the Job Scheduling Portal and REST API clients. |
Job Scheduling Portal |
REST API-driven UI client that is used to interact with Job Scheduling Service. Job Scheduling Portal is separate from CloudShell Portal. |
Job Scheduling Service |
Job Scheduling Service is a high-performance test automation framework that allows organizations to create, manage and execute test batches. The service is hosted on a Docker container and uses Quali Server to extract user, blueprint and sandbox data. |
MongoDB |
Open source database used to store New Job Scheduling-related data (suites, jobs, tests, reports, etc.) as well as permitted user identity information. MongoDB is installed as part of the Quali Server installation. There's also an option to use an existing MongoDB. |
RabbitMQ |
Open source message queuing tool used by Sandbox Service to manage sandbox creation requests coming from the Job Scheduling Portal and APIs. If needed, RabbitMQ is installed as part of the Quali Server. |
Sandbox Service |
Sandbox Service is a Python service that comes in two flavors: Windows service (embedded) delivered as part of Quali Server and Linux service included with the New Job Scheduling on Kubernetes (this second flavor supports extremely large deployments, up to hundreds of new sandboxes every few minutes). This service performs two key functions:
For upgrades in CloudShell environments that have Docker, Sandbox Service will be installed externally on Docker and the |
Test Discovery Service |
Test Discovery Service is responsible for discovering tests of a specific type. A Test Discovery Service can only discover tests of a specific type in a specific repository. For more information, see Test Discovery Service. |
Test Execution Service |
Test Execution Service is responsible for running tests discovered by the Test Discovery Service. For more information, see Test Execution Service. Important: Test Execution Service does not handle shell and script commands. CloudShell Execution Servers are required to handle such operations (e.g. setup, teardown, resource commands and sandbox commands). |