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 2018-02-25 - Nexedi Demonstrates Open Source Network Management System based on SlapOS at MWC 2018 2016-06-03 - SlapOS powers "TeraLab", Institut Mines Télécom's Big Data Platform 2016-05-12 - SlapOS hyperconvergent OS powers "TeraLab", Institut Mines Télécom's Big Data Platform 2015-06-11 - Government Selects SlapOS Decentralized Cloud to Serve 30.000 users 2013-01-22 - Nexedi propose à Cloudwatt de déployer avec SlapOS son Cloud souverain sous 8 jours 2011-07-05 - SlapOS Success in Aerospace, Banking, Transportation, IT and Education 2010-06-14 - ViFiB Wants You to Host Cloud Computing At Home Getting Started Before you try to learn SlapOS, we advice you first to read some documents that introduce the key concepts of SlapOS. 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. Learning Track 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. This learning track (also available here) contains a sequence of tutorials that will teach the setup and use of a SlapOS based system. After finishing this learning track, you should have a ready-to-use network managed by SlapOS and be familiar with providing both existing and custom software to users, monitoring network health as well as software service consumption. The course is split into lectures each introducing a certain component of SlapOS, showing how it is setup and how it fits into the architecture of SlapOS. Each lecture also provides additional materials such as HowTos explaining certain aspects in more detail or outlining how certain prerequisities of a component can be met. Lecture 1: Introduction to SlapOS This lecture introduces SlapOS and the underlying concepts. There are several documents required to be read in order to understand how SlapOS works. The following documents should be read as a primer on SlapOS: Introduction to SlapOS Economic Rationale (optional) SlapOS System Requirements Understanding SlapOS Architecture Understanding SlapOS Buildout Understanding SlapOS Promises (WIP) Lecture 2: Installing SlapOS System This lecture and tutorials will cover setting up and configuring a minimal SlapOS network consisting of a SlapOS Master (COMP-ROOT) and the first network node (COMP-0). The following tutorials cover setup of the SlapOS network: Install a SlapOS Master Configure a SlapOS Master Install SlapOS Node Configure SlapOS Node Most of the steps required for COMP-0 are applicable to generic network nodes COMP-1,2,3..., too. There are some divergences in the sequence of steps, which will be pointed out in the tutorials (for an overview see first slides of installing a SlapOS node). A complete walkthrough of setting up a SlapOS node in a single document can be found in installing and configuring an LTE Box. The following additonal documents are pointed to whenever required in the tutorials: Instantiate Re6st Access Token - getting a token for Re6st installation Instantiate Re6st Registry - configure the Re6st Registry on COMP-0 Instantiate Frontend (Apache) - configure a Frontend Instantiate Frontend Slave - how to get user-friendly urls Instantiate Amarisoft LTE (WIP) Instantiate Simcard DB (WIP) Setup Wildcard SSL Certificate - how to get a wildcard SSL from Letsencrypt Access SlapOS node via SSH - how to ssh into a server Using the SlapOS client - introduction to SlapOS client Format SlapOS node - formatting new SlapOS nodes Register and Create User Account - signing up on a SlapOS Master Register and Create ViFiB User Account - signing up on Vifib Add Re6st to SlapOS node - installing Re6st on a server Add software release to SlapOS Master - add a new software to SlapOS Debug SlapOS node - tips for troubleshooting Classify node in a network - grouping nodes on sites/projects Setting node access permissions - enabling admin rights, et al Install and instantiate LT Box - full walkthrough Retrieve VifiB Re6st Access Token getting a token for Re6st installation from ViFiB Lecture 3: Supplying a Software on a SlapOS Network This lecture will cover working with software release on SlapOS. It will show how to create a new software release and add it to the catalog on SlapOS Master so that it can be installed and instantiated on network nodes. The following tutorials deal with creation and extension of software releases: Extend a Software Release (WIP) Create a Software Release (WIP) The following additonal documents are pointed to whenever required in the tutorials: Add software release to SlapOS Master - add a new software to SlapOS Lecture 4: Managing a SlapOS Network This lecture will cover monitoring a SlapOS network. It will demonstrate the use of the SlapOS Monitor - an autononmous application created to monitor SlapOS deployments. It tutorials will show how to feed the Monitor with the configuration of the network and how to use monitor the status of computers, partitions and the overall network health. The second tutorial will focus on managing network issue, handling tickets created on alarms et al. The following tutorials deal with creation and extension of software releases: Monitor SlapOS Network Manage SlapOS Network (WIP) 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.recipe.template which provides jinja2 templating slapos.libnetworkcache which provides source code and binary code caching slapos.reboostrap which provides reflexive build in buildout slapos.buidout which extends the default buildout language 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 SlapOS Frequently Asked Questions Buildout Frequently Asked Questions How to Upgrade SlapOS How to contribute to Buildout How to release new Software Release Nexedi's recommendation for bootstrap an ERP5 Project on Webrunner 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: SlapOS: a Multi-purpose Distributed Cloud Operating System Based on an ERP Billing Model - Jean-Paul Smets-Solanes, Christophe Cerin and Romain Courteaud - preprint submitted to IEEE 2011 International Workshop on Performance Aspects of Cloud and Service Virtualization [French] Integration des intergiciels de grilles de PC dans le nuage SlapOS : le cas de BOINC Videos: SlapOS, A Python Powered Open Source Cloud Computing System by Yusei Tahara at PyCon Japan 2011. SlapOS - Reduce your sysadmin work by 80% and fly across 36 clouds by Cédric de Saint Martin at Open World Forum for Open Source Developer Conference (OSDC), France 2012. Mioga on SlapOS - A collaborative Extranet rises into the Clouds by Viktor Horvath at Open World Forum for Open Source Developer Conference (OSDC), France 2012. SlapOS, an efficient all-in-one cloud presented at FOSDEM 2013 Presentations: SlapOS, Distributed Cloud Computing by Rafael Monnerat at Python Brasil 2011. (Presentation Mode) Get started with SlapOS, the Distributed Cloud System by Rafael Monnerat and Christophe Cerin at SBAC-PAD'2011 . (Presentation Mode) Licence SlapOS is Free Software, licensed under GNU GPL v3 (or later). For details, please refer to the Nexedi licensing.