Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
SlapOS
Distributed Cloud Computing




Yusei Tahara<yusei@nexedi.com>
           Nexedi KK

                            SlapOS.org
What does SlapOS do actually?
●   Managing computers
●   Building software
●   Deploying software
●   Managing processes
●   Collecting usage
●   Pricing and invoicing
SlapOS automates administration tasks.


                                         SlapOS.org
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
Master and Slaves



                     One master node           Slave node
Slave node




    Slave node                                 Slave node


                                  Slave node

                 Slave node




                                                            SlapOS.org
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
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
Overview

I want ERP5




              Here you are.



                              SlapOS.org
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
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
Setup slave node
I want to add a computer
       to my cloud.




                           GNU / Linux




                                         SlapOS.org
Setup slave node

Installation done




                     supervisord

                      Buildout

                      SLAPGrid

                     GNU / Linux




                                   SlapOS.org
Install software release
My node supports
 XWiki and KVM                     Added software
                                   releases
                       KVM
                      XWiki

                    supervisord

                     Buildout

                     SLAPGrid

                    GNU / Linux




                                   SlapOS.org
Install service
                                         Added services
I want 2 KVM and
1 XWiki

                              KVM
                             XWiki

                           supervisord

                            Buildout

                            SLAPGrid

                           GNU / Linux




                                         SlapOS.org
Computer Partition


Directory
                               ●Dedicated directory
                               ●Dedicated user
Isolated Runtime environment
Secure container               ●Dedicated global Ipv6

                               ●Dedicated local Ipv4

                               ●Dedicated network interface(TAP)




                                                     SlapOS.org
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
Demonstration
●   Slapconsole
●   Master node Web UI
●   Slave node
●   Computer partition




                                  SlapOS.org
More information...
●   SlapOS.org
●   ViFiB.net
●   http://git.erp5.org/gitweb/slapos.git
●   https://github.com/SlapOS/slapos




                                            SlapOS.org
Thank you very much




                      SlapOS.org
SlapOS
Distributed Cloud Computing




Yusei Tahara<yusei@nexedi.com>
           Nexedi KK


                               SlapOS.org
                           1
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
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
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.
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
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
Overview

I want ERP5




              Here you are.



                                  SlapOS.org
                              7
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.
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
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.
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
Install software release
My node supports
 XWiki and KVM                         Added software
                                       releases
                       KVM
                      XWiki

                    supervisord

                     Buildout

                     SLAPGrid

                    GNU / Linux




                                       SlapOS.org
                                  12
Install service
                                              Added services
I want 2 KVM and
1 XWiki

                              KVM
                             XWiki

                           supervisord

                            Buildout

                            SLAPGrid

                           GNU / Linux




                                              SlapOS.org
                                         13
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
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
Demonstration
●   Slapconsole
●   Master node Web UI
●   Slave node
●   Computer partition




                                       SlapOS.org
                                  16
More information...
●   SlapOS.org
●   ViFiB.net
●   http://git.erp5.org/gitweb/slapos.git
●   https://github.com/SlapOS/slapos




                                                 SlapOS.org
                                            17
Thank you very much




                           SlapOS.org
                      18

More Related Content

SlapOS Presentation at VW2011 Seoul

  • 1. SlapOS Distributed Cloud Computing Yusei Tahara<yusei@nexedi.com> Nexedi KK SlapOS.org
  • 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
  • 7. Overview I want ERP5 Here you are. 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
  • 9. 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
  • 10. Setup slave node I want to add a computer to my cloud. GNU / Linux SlapOS.org
  • 11. Setup slave node Installation done supervisord Buildout SLAPGrid GNU / Linux 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
  • 16. Demonstration ● Slapconsole ● Master node Web UI ● Slave node ● Computer partition SlapOS.org
  • 17. More information... ● SlapOS.org ● ViFiB.net ● http://git.erp5.org/gitweb/slapos.git ● https://github.com/SlapOS/slapos SlapOS.org
  • 18. Thank you very much SlapOS.org
  • 19. SlapOS Distributed Cloud Computing Yusei Tahara<yusei@nexedi.com> Nexedi KK SlapOS.org 1
  • 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
  • 25. Overview I want ERP5 Here you are. SlapOS.org 7
  • 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
  • 34. Demonstration ● Slapconsole ● Master node Web UI ● Slave node ● Computer partition SlapOS.org 16
  • 35. More information... ● SlapOS.org ● ViFiB.net ● http://git.erp5.org/gitweb/slapos.git ● https://github.com/SlapOS/slapos SlapOS.org 17
  • 36. Thank you very much SlapOS.org 18