In what follows all components are discussed bottom-up.
The System Abstraction Layer (SAL) is a thin abstraction layer making it easy for developers to interact with all system components at the level of a server node.
For more details check the SAL documentation in the GitBook covering JumpScale 8 Core.
In this context a node is a server node typically running the Ubuntu OS or - in the most recent G8 installations - the G8-OS.
On each server node an Agent is responsible for executing jobs received from the Agent Controller. These jobs are actually JumpScripts, which are Python scripts interacting with the system through the System Abstraction Layer.
Logs, errors and statistics collected by the Agent from the running JumpScripts are fed back to the Agent Controller.
Each single-location or multi-location OpenvCloud environment is managed from a Master. This is a collection of virtual machines or Docker containers running in the Master Cloud Space on a remote location, physically separated from OpenvCloud server nodes it orchestrates.
For more details about the Master Cloud Space and how to access it see the How to Connect to an OpenvCloud Environment section.
The Agent Controller acts as a job controller distributing work to the Agents.
Since server nodes are not publicly accessible all communication between the Agents and the Agent Controller happens through HTTP Long Polling initiated by the agents.
Also implemted by JumpScale 8 Core components is the Datacenter Abstraction Layer providing developers an interface to interact with the Agent Controller and thus the server nodes.
Both local and remote interactions with the Datacenter Abstraction Layer happen through REST API.
The portals are created using the JumpScale Portal Framework that features wiki pages that interact with the REST APIs through macros.
End users have access through the End User Portal, which is another portal created using the JumpScale Portal Framework.
The OpenvCloud API permits thirdparty tools like Terraform to make provisioning of VM's automatic and repeatable, so that the raw compute and storage capacity can be consumed in a very easy and tested procedure. Using the API customized portals for end customers can be built as well, as any functionality for creating and managing VM's and cloudspaces is available via the OpenvCloud API.