This design document describes the minimum setup and architecture for creating a SlapOS network. It will distinguish between administrative and user layer and their respective hardware and software requirements. It requires at least two computers and at most 1 day to install and setup
For a more detailed overview of SlapOS itself, its concept and system design, please refer to the SlapOS architecture design document.
This section describes the minimal setup required for a SlapOS network.
A SlapOS network can be divided into two conceptual layers:
The administrative layer consists of two nodes - the SlapOS Master (COMP-ROOT) and the first network node (COMP-0) which provides connectivity between nodes via a Re6st Registry and Frontend (Apache).
All other nodes in a network belong to the user layer. They are simple nodes with Re6st and SlapOS installed. They wait for the SlapOS Master to instruct them which software to install and instantiate for users.
Note, that during installation, the SlapOS Master node starts out as a regular (formatted) node with just the SlapOS Kernel. It is only through SlapProxy (a minimal SlapOS Master), which is run during installation of a SlapOS Master, and which installs and instantiates the actual SlapOS Master/ERP5 Cloud Engine along with a Frontend (Apache) for accessing it, that the COMP-ROOT node is created. This means, that SlapOS is used to deploy SlapOS recursively and that there are in fact two networks - the one during installation with SlapProxy acting as Master and the first node being COMP-ROOT and the second actual network of COMP-ROOT and COMP-0,1,2,3....
The following section introduces the administrative layer.
The administrative layer is used to describe the essential services required to deploy and manage any type of SlapOS cloud (edge/home/distributed/datacenter cloud, network management et al).
It consists of a Master node (COMP-ROOT) and a first node (COMP-0) managing and communicating between nodes on the network. At the very minimum a Frontend (Apache) and a Re6st Registry are required. The Registry connects nodes within the network and handles communication between all nodes using IPv6 while the Frontend provides "user-friendly" IPv4 adresses for accessing the network.
The COMP-ROOT should at a minimum have:
The installation is generic, fully automated, and will take ~20 min if installable from cache plus another 20-40 min for running the configurator. It will install SlapOS Proxy and provides 3 access points on ports 80, 443 and 5443.
Note, that this machine must have public IPv4 or private IPv4 reachable from COMP-0 (and users). The above server should be sufficient to run a network of 80-160 actual computers, which then provide instances of software releases called "hosting subscriptions" inside computer partitions to users. Each hosting subscription (for example erp5) is in turn run through several URL-based services. "Several" because complex services tend to require multiple softwares and additional services to provide a final service. For running erp5 for example, a Frontend Apache Process (for HTTP connections), a relational database (Mariadb), an object database (NEO or ZEO), Memcache and Cloudooo are required. Other software solutions might require even more.
As mentioned before initially there are two different types of Masters being used: SlapProxy (minimalist) and the eventual SlapOS Master (ERP5-based). This is done in order to manage the deployment of a SlapOS Master in the same way as managing any other kind of instance, a recursive approach by which a minimalist Master (SlapProxy) can deploy another ERP5-based Master. For smaller use cases, like running only a single node, SlapProxy alone can be sufficient (the Nexedi Webrunner is an example of a SlapProxy being used to deploy a software instance on a single machine for a single user). However, in case of a larger network of nodes and using SlapOS for cloud orchestration and computing, SlapProxy is used at startup only and retired once the actual SlapOS Master is running.
Two softwares will eventually be run on the SlapOS Master - ERP5 Cloud Engine itself for user management, deployment of services, usage accounting and capacity management and a Frontend (Apache) for accessing the Dashboard.
If a valid SSL wildcard (!) certificate and IPv6 are available, deployment will require about an hour. The Frontend (Apache) will communicate over ports 80 and 443 and the registry on port 19201. The minimum requirements for this machine are:
COMP-0 contacts the COMP-ROOT over port 5443 and also requires public IPv4 or private IPv4 reachable by the SlapOS Master and users.
With the above specifications about 8 computers which equates to about 800 partitions (instanciated software services) can be provided through URLs (services in SlapOS are all provided over https).
A standard SlapOS network installation requires to install two softwares on COMP-0.
The Re6st Registry is, a service maintaining a register of nodes on a network that also issues new network access tokens. It also provides IPv6 throughout the network as all internal data exchange and partition access is done over IPv6.
The Frontend (Apache) provides access to "outside" users and services like the monitor. As all connections need to be secured and a network of n nodes will result in issuance of at least n domains and corresponding urls, a wildcard SSL certificate is necessary for the Frontend (Apache) to operate. The Frontend also enables HTTP access to network services running on remote network node partitions accessible via IPv6 besides handling browser limitations when accessing distributed services (eg access HTTPS with valid certificates, access via IPv4, CORS etc).
The user layer is described in the following section. While it is not required for a minimal setup to have any nodes beyond the COMP-0 node, SlapOS is a solution for orchestration of large networks so in a typical SlapOS network, there will always be a user layer providing software instances to users.
All nodes in the user layer are setup in the same way. After installing IPv6, SlapOS is installed during which the node will also be associated with a SlapOS Master. After installation and formatting of a node, the Master can request installation of specific software releases and then provide instances of these releases to users.
Hardware requirements typically depend on the software instances being run on the nodes. For simple services, a machine similar to the one used for COMP-0 will be sufficient whereas more complex softwares running multiple services (such as ERP5) should look more towards the COMP-ROOT requirements as indicator of what will be necessary.
During the installation, a node can (and should) be registered on a network (using the token obtained from the Re6st Registry). Afterwards it is up to the SlapOS Master to decide which software will be installed and to whom it will be provided. For example a network may consist of nodes separated on different continents with a node on each continent providing the same software. The Master could then decide to provide instances of ERP5 using the node closest to the respective user.