SlapOS Home SlapOS

    SlapOS is a general purpose overlay operating system for distributed POSIX infrastructures (Linux, xBSD, etc.) with a strong focus on service management. It is a published as Free Software under fairly permissive licensing.

    SlapOS can be used to build:

    • public or private cloud computing infrastructure (IaaS, PaaS, SaaS, DraaS) ;
    • hyperconverged infrastructure (virtualisation of compute, storage and network) ;
    • edge computing infrastructure (CDN, IoT gateway, AI offloading, cache, buffering) ;
    • 4G/5G network management system (eNodeB, locale core network) ;
    • resilient low latency network as a service (IPv4, IPv6, RINA) ;
    • tactical cloud bubble.

    SlapOS provides a compact and unified solution to automate provisioning, orchestration, monitoring, accounting, disaster recovery, invoicing, issue tracking and preventive maintenance of software services that can be deployed in data centers, edge nodes, user terminals or embedded systems, either on bare metal, container or virtual machine.

    SlapOS was inspired by the ideas of convergence by Prof. Mark Burgess and of grid coordination by Prof. Christophe Cérin. Its simple recursive architecture consists of only two components:

    • SlapOS Master which is installed on at least one node of the infrastructure and defines the common state shared by all nodes.
    • SlapOS Node which is installed on each node of the infrastructure and ensures that node's state autonomously converges towards shared state defined in SlapOS Master.

    SlapOS is part of Nexedi's software stack.

    Latest News

    Getting Started

    Before you try to learn SlapOS, we advice you first to read some documents that introduce the key concepts of SlapOS:

    Next, we advice you to get an account on a SlapOS service provider such as:

    • VIFIB - reference provider of SlapOS, part of Nexedi group
    • Teralab - provider of SlapOS services for big data research in France

    This will help you a lot to learn how to use SlapOS before creating your own SlapOS service provider based on SlapOS master or slapproxy.

    There are several tutorials showing you how to get started and achieving specific objectives with SlapOS. All tutorials are already part of a SlapOS lecture that is given every year at Telecom Paris school of engineering. More than 200 students have already been trained with this lecture, the follow-up lecture based on Web Runner and the cloud and after cloud lecture.

    Learning Track

    To setup your own SlapOS-based network including creation, deployment and extention of custom software releases you can follow the learning track below.

    Prerequisites

    Make sure you have read the following documents to familiarize yourself with SlapOS before starting:

    • SlapOS Introduction (XXX WIP XXX)
    • SlapOS Architecture
    • Understanding SlapOS and Buildout (XXX WIP XXX)

    Session 1: Setup SlapOS Node

    The following HowTo documents will be relevant for the above tutorials:

    Session 2: Setup SlapOS Master

    The following HowTo documents will be helpful for working with the SlapOS master:

    • HowTo: Register with Vifib - in case you don't want to use your own master
    • slapos-HowTo.Classify.Servers.In.A.Network (XXX WIP XXX)

    Session 3: Extend a Software Release

    (XXX WIP XXX)

    Session 4: Deploy Custom Software Release

    (XXX WIP XXX)

    Session 5: Manage Complex SlapOS Master

    (XXX WIP XXX)

    Use Cases

    The following use cases describe how SlapOS is used for various deployment scenarios:

    Documentation

    Aside from the above tutorials, a number of additional documentation provides insights into certain topics.

    • Forum - is where you can ask questions.
    • Design Documents - explaining concepts behind SlapOS
    • Guidelines - rules for developing with and contributing to SlapOS
    • Tutorials - lectures explaining how to use SlapOS (coming soon)
    • HowTos - step by step explanation of certain topics (coming soon)
    • Technical Notes - important informaton on certain aspects (coming soon)
    • Faq - common questions about SlapOS

    You may also refer to documention of certain components which SlapOS depends on:

    • buildout is the community-driven, open source build technology which is used by SlapOS to specifiy software stacks which are then deployed on the Cloud. More informations at the Why Buildout page.
    • supervisord is the community-drive, open source process control technology which slapgrid relies on.
    • ERP5 is the open source Zope-based ERP which powers SlapOS Master to provide accounting, provisionning and billing.
    • NEO is a distributed transactional NoSQL object database which provides scalability to SlapOS master.
    • IPv6, while not a "open source" technology, is in the core of SlapOS. [french] Here (mirror link) is a state of the art of IPv6
    • re6st is the IPv6 overlay network used by SlapOS to ensure that the graph of SlapOS nodes is alway connected.

    Source Code

    SlapOS source code is split into multiple repositories:

    • slapos.core written in python language provides all libraries, buildout recipes and tools (slapgrid, slapproxy) to run a SlapOS Node as well as additional buildout recipes:
    • slapos.toolbox written in python language provides additional services to SlapOS Node (monitoring, web runner, etc.) that are not required in the core
    • software profiles written in buildout language describes how to build and run vairous services (qemu, mariadb, ERP5, apache, etc.) on a SlapOS Node
    • slapos.package written in shell script, python and various languages that defines how to build automatically SlapOS packages for various GNU/Linux distributions
    • slapos.core/bt5 contains all additional python code and XML configuration files to create a SlapOS Master based on ERP5 source code

    Requirements

    SlapOS should only only require a POSIX compatible operating system (Linux, xBSD) with a recent C/C++ compiler and python 2.7 interpreter.

    Currently, SlapOS has been deployed and tested on the following operating systems:

    Production Experimental Not tested

    Debian
    Ubuntu
    CentOS
    Red Hat
    SuSE

    Android (Termux)
    Windows (Cygwin)
    ArchLinux
    Gentoo
    ChromiumOS
    NayuOS

    OpenBSD
    FreeBSD
    NetBSD
    AIX
    Solaris

    The Windows with Cygwin port will not be pursued because of inherent instabilities in how Cygwin maps shared libraries to DLL.

    The Android port will be pursued.

    Other ports will be considered based on market needs.

    Tests

    All SlapOS tests are published on SlapOS Project Tests page. 

    FAQ

    History

    We provide here a list of legacy documents that may no longer apply yet are useful to understand the history of SlapOS.

    Research papers:

    Videos:

    Presentations:

    Licence

    SlapOS is Free Software, licensed under GNU GPL v3 (or later). For details, please refer to the Nexedi licensing.