SlapOS is a distributed cloud computing platform that automates administration tasks like managing computers, deploying software, and collecting usage data. It uses a master-slave architecture where stateful master nodes manage stateless slave nodes. Slave nodes host computer partitions that run software in isolated environments at the request of the master node. The master node provides a web interface to manage the cloud and interfaces with slave nodes using the Slap protocol to control software installation and resource usage reporting.
2. What does SlapOS do actually?
● Managing computers
● Building software
● Deploying software
● Managing processes
● Collecting usage
● Pricing and invoicing
SlapOS automates administration tasks.
SlapOS.org
3. Introduction and
why we develop it?
● We are ERP solution provider.
● Our customers need solid system.
● Setup procedure of our ERP is complex.
● We want to share good configurations with others.
● We must be able to deploy production system any
number of times.
● We may want to change OS.
● Deployment must be done quickly.
● Package maintenance is annoying.
SlapOS.org
4. Master and Slaves
One master node Slave node
Slave node
Slave node Slave node
Slave node
Slave node
SlapOS.org
5. Overview
SlapOS Master
System for managing cloud
Web interface available
A real computer used Master itself is distributed
as a part of cloud Cloud operating tool
Master Client
Slave Slap protocol
Slap protocol slapconsole
slapgrid
Office Slap protocol
Slave Client
slapgrid slapconsole
Slave
Home
slapgrid
Data center
SlapOS.org
6. Overview
Slave Master
What should I be?
You must be...
Slave node is stateless. Master node is statefull.
Slave node asks master Master node knows
node anything. everything about slave
node.
SlapOS.org
8. Master node
●Stateful
●Store various data
●User registration
●Computer registration
●Recipe registration
●Computer usage record
●Web management UI
●Implemented on top of ERP5
SlapOS.org
12. Install software release
My node supports
XWiki and KVM Added software
releases
KVM
XWiki
supervisord
Buildout
SLAPGrid
GNU / Linux
SlapOS.org
13. Install service
Added services
I want 2 KVM and
1 XWiki
KVM
XWiki
supervisord
Buildout
SLAPGrid
GNU / Linux
SlapOS.org
14. Computer Partition
Directory
●Dedicated directory
●Dedicated user
Isolated Runtime environment
Secure container ●Dedicated global Ipv6
●Dedicated local Ipv4
●Dedicated network interface(TAP)
SlapOS.org
15. 3 commands of Slapgrid
Request
SR Node Master
A list of software releases the
slave node must have
Request
CP Node
A list of services the slave
Master
node must have
Resource usage report
Master
UR Node
SlapOS.org
20. What does SlapOS do actually?
● Managing computers
● Building software
● Deploying software
● Managing processes
● Collecting usage
● Pricing and invoicing
SlapOS automates administration tasks.
SlapOS.org
2
21. Introduction and
why we develop it?
● We are ERP solution provider.
● Our customers need solid system.
● Setup procedure of our ERP is complex.
● We want to share good configurations with others.
● We must be able to deploy production system any
number of times.
● We may want to change OS.
● Deployment must be done quickly.
● Package maintenance is annoying.
SlapOS.org
3
22. Master and Slaves
One master node Slave node
Slave node
Slave node Slave node
Slave node
Slave node
SlapOS.org
4
SlapOS is based on a Master and Slave design. We
are going to provide here an overview of SlapOS
architecture. We are going in particular to explain the
role of Master node and Slave nodes, as well as the
software components which they rely on to operate a
Distributed Cloud.
23. Overview
SlapOS Master
System for managing cloud
Web interface available
A real computer used Master itself is distributed
as a part of cloud Cloud operating tool
Master Client
Slave Slap protocol
Slap protocol slapconsole
slapgrid
Office Slap protocol
Slave Client
slapgrid slapconsole
Slave
Home
slapgrid
Data center
SlapOS.org
5
Slave nodes request to Master nodes which software
they should install, which software they show run and
report to Master node how much resources each
running software has been using for a certain period
of time. Master nodes keeps track of available slave
node capacity and available software. Master node
also acts as a Web portal and Web service so that
end users and software bots can request software
instances which are instantiated and run on Slave
nodes. Master nodes are stateful. Slave nodes are
stateless. More precisely, all information required to
rebuild a Slave node is stored in the Master node.
This may include the URL of a backup service which
keeps a online copy of data so that in case of failure
of a Slave node, a replacement Slave node can be
rebuilt with the same data.
It is thus very important to make sure that the state
24. Overview
Slave Master
What should I be?
You must be...
Slave node is stateless. Master node is statefull.
Slave node asks master Master node knows
node anything. everything about slave
node.
SlapOS.org
6
26. Master node
●Stateful
●Store various data
●User registration
●Computer registration
●Recipe registration
●Computer usage record
●Web management UI
●Implemented on top of ERP5
SlapOS.org
8
Let us now review in more detail the role of the SlapOS
master node. SlapOS keeps track of the identity of all
parties which are involved in the process of
requesting Cloud resources, accounting Cloud
resources and billing Cloud resources. This includes
end users (Person) and their company (Organisation
). It includes suppliers of cloud resources as well as
consumers of cloud resources. It also include so-
called computer partitions which may run a software
robot to request Cloud resources without human
intervention. It also includes Slave nodes which need
to request to SlapOS master which resources should
be allocated. SlapOS generated X509 certificates for
each type of identity: X509 certificates for people like
you and me who login, an X509 certificate for each
server which contributes to the resources of SlapOS
and an X509 for each running software instance
which may need to request or notify SlapOS master.
27. Slave Node
1 real computer
POSIX
Architecture independent
Core software
Computer partitions(CP)
Slapgrid
Buildout
CP
Supervisord
CP
Software releases(SR)
CP
XWiki
CP
KVM
SlapOS.org
9
SlapOS Slave nodes are pretty simple compared to the
Master node. Every slave node needs to run
software requested by the Master node. It is thus on
the Slave nodes that software is installed. To save
disk space, Slave nodes only install the software
which they really need.
Each slave node is divided into a certain number of so-
called computer partitions. One may view a computer
partition as a lightweight secure container, based on
Unix users and directories rather than on
virtualization. A typical barebone PC can easily
provide 100 computer partitions and can thus run
100 wordpress blogs or 100 e-commerce sites, each
of which with its own independent database. A larger
server can contain 200 to 500 computer partitions.
SlapOS approach of computer partitions was designed
28. Setup slave node
I want to add a computer
to my cloud.
GNU / Linux
SlapOS.org
10
SlapOS Slave software consists of a POSIX operating
system, SlapGRID, supervisord and buildout.
SlapOS is designed to run on any operating system
which supports GNU's glibc and supervisord. Such
operating systems include for example GNU/Linux,
FreeBSD, MacOS/X, Solaris, AIX, etc. We hope in
the future that Microsoft Windows will also be
supported as a host (Microsoft Windows is already
supported as a guest) through glibc implementation
on windows and a port of supervisord to Windows.
29. Setup slave node
Installation done
supervisord
Buildout
SLAPGrid
GNU / Linux
SlapOS.org
11
SlapOS relies on mature software: buildout and
supervisord. Both software are controlled by
SlapGRID, the only original software of SlapOS.
SlapGRID acts as a glue between SlapOS Master
node (ERP5) and both buildout and supervisord.
SlapGRID requests to SlapOS Master Node which
software should be installed and executed.
SlapGRID uses buildout to install software and
supervisord to start and stop software processes.
SlapGRID also collects accounting data produced by
each running software and sends it back to SlapOS
Master. Let us now study with more detail the role of
supervisord and buildout.
Supervisord is a process control daemon. It can be
used to programmatically start and stop processes
with different users, handle their output, their log
files, their errors, etc. It is a kind of much improved
30. Install software release
My node supports
XWiki and KVM Added software
releases
KVM
XWiki
supervisord
Buildout
SLAPGrid
GNU / Linux
SlapOS.org
12
31. Install service
Added services
I want 2 KVM and
1 XWiki
KVM
XWiki
supervisord
Buildout
SLAPGrid
GNU / Linux
SlapOS.org
13
32. Computer Partition
Directory
●Dedicated directory
Isolated Runtime environment ●Dedicated user
Secure container ●Dedicated global Ipv6
●Dedicated local Ipv4
●Dedicated network interface(TAP)
SlapOS.org
14
Every computer partition consists of a dedicated IPv6
address, a dedicated local IPv4 address, a dedicated
tap interface (slaptapN), a dedicated user (slapuserN
) and a dedicated directory (/srv/slapgrid/slappartN).
Optionnaly, a dedicated block device and routable
IPv4 address can be defined.
SlapOS is usually configured to use IPv6 addresses.
Although use of IPv6 is not a requirement (an IPv4
only SlapOS deployment is possible) it is a strong
recommendation. IPv6 simplifies greatly the
deployment of SlapOS either for public Cloud
applications or for private Cloud applications. In the
case of public Clouds, use of IPv6 helps
interconnecting SlapOS Slave Nodes hosted at
home without having to setup tunnels or complex
port redirections. In the case of private Cloud, IPv6
replaces existing corporate tunnels with a more
33. 3 commands of Slapgrid
Request
SR Node Master
A list of software releases the
slave node must have
Request
CP Node
A list of services the slave
Master
node must have
Resource usage report
Master
UR Node
SlapOS.org
15