PODs
The core processes, hosted in Kubernetes as Pods, of the Usage Engine architecture are described below.
Platform
The platform process is the system orchestrator. It orchestrates application specific resources like:
- Scheduling of batch workflows, including complex grouping, dependencies, triggers etc.
- APIs – providing programmatic as well as Web UI access to system resources
- Alarms and Events
- Database connections
Operator
The operator process is the orchestrator and controller of Kubernetes resources. It makes sure that the application state is the same as what is defined in the ECD deployment descriptors. It does this by continuously monitoring the Status section of deployed ECDs. If the status differs from the desired state defined in the Specification section, the Operator will call APIs in the Platform service or in the Kubernetes API Server to update the state accordingly.
Execution Context
The Execution Context (EC) processes are the highly scalable worker processes that are responsible for executing the solution business logic that is deployed in the system. They are the heavy lifters that consumes payload, enriches, aggregates, correlates, loads, forwards, verifies, takes action and provides feedback based on the usage data flowing through the system. The number of ECs in a system can vary between 0 and several hundred depending on the load of the system. They can also be configured in bulk or individually, depending on the granularity used to control the solution.
How ECs are deployed, scaled, and configured is controlled in the ECD custom Kubernetes resource, which is the tool used by operators to control and orchestrate the runtime properties and behavior of solutions.
Desktop Online
The Desktop Online pod is the backend of Usage Engine’s web UIs. It connects the UIs to REST and other APIs in the system.