OpenStack 101
     Technical Overview



Sandy Walsh
OpenStack Core Developer, Rackspace

@TheSandyWalsh
www.sandywalsh.com
Project genesis

  
    Cloud servers
  
    Cloud files
  
    Open source
Project genesis


                  
                    NovaCC
                  
                    Open source
Project genesis

  
    Cloud servers
  
    Cloud files           
                            NovaCC
  
    Open source           
                            Open source



                    
                      Nova (compute)
                    
                      Swift (storage)
June 2010
Mission statement

“To produce the ubiquitous open source
cloud computing platform that will meet the
needs of public and private cloud providers
regardless of size, by being simple to
implement and massively scalable.”
Open
 
   Open source (apache)
 
   Open design (blueprints)
 
   Open development (branches)
 
   Open community (tech leads)
90 developers
OpenStack projects
 Core projects
  OpenStack Object storage (Swift)
  OpenStack Image registry and delivery (Glance)
  OpenStack Compute (Nova)

 FutureStack
  Burrow (queue service)
  Dashboard (Web UI)
  Keystone (common authentication)
  Quantum / Melange / Donabe (network)
  LunR (block storage)
  RedDwarf (database as a service)
  ...
OpenStack Basic Design Tenets
http://wiki.openstack.org/BasicDesignTenets
1.   Scalability and elasticity are our main goals

2.   Any feature that limits our main goals must be optional

3.   Everything should be asynchronous.
     If you can't do something asynchronously, see #2

4.   All required components must be horizontally scalable

5.   Always use Shared Nothing architecture or Sharding
     If you can't Share Nothing/Shard, see #2

6.   Distribute everything, especially logic. Move logic to where state
     naturally exists.

7.   Accept eventual consistency and use it where it is appropriate.

8.   Test everything.
     We require tests with submitted code.
HTTP



                   Auth
Client




                EC2
                        API
                Open
                Stack
HTTP



                   Auth
Client
                                 Network



                                 Volume


                EC2
                        API   Host
                Open
                Stack           Compute



                              Host

                                Compute
HTTP
                DB/LDAP auth plugin

                   Auth
Client                                
                                        Flat, FlatDHCP, Vlan
                                      
                                        IPv4 / IPv6               Network
                                      
                                        Local LVM volume groups
                                      
                                        iSCSI
                                      
                                        Sheepdog                   Volume
                                      
                                        HP/Lefthand SANs

                 EC2
                        API                                    Host
                Open
                Stack                                             Compute
           
             WSGI+Paste middleware
           
             EC2/OpenStack API
                                      
                                        Libvirt :
                                        QEMU, KVM, UML, LXC Host
                                      
                                        Xen and XenServer
                                      
                                        Hyper-V               Compute
                                      
                                        VMware vSphere
HTTP                 RabbitMQ Queues



                   Auth
Client
                                                Network



                                                 Volume


                EC2
                        API                Host
                Open
                Stack                           Compute



                                           Host

                                                Compute
HTTP                             RabbitMQ Queues



                   Auth
Client
                              Scheduler                     Network
                              Scheduler
                              API Stubs


                              Network                        Volume
                              Network
                              API Stubs

                EC2
                        API    Volume                  Host
                               Volume
                Open          API Stubs
                Stack                                       Compute

                              Compute
                               Glance
                              API Stubs
                                                       Host

                                                            Compute
HTTP                             RabbitMQ Queues


                                                            Scheduler
                   Auth
Client
                              Scheduler                     Network
                              Scheduler
                              API Stubs


                              Network                        Volume
                              Network
                              API Stubs

                EC2
                        API    Volume                  Host
                               Volume
                Open          API Stubs
                Stack                                       Compute

                              Compute
                               Glance
                              API Stubs
                                                       Host

                                                            Compute
HTTP                              RabbitMQ Queues


                                                             Scheduler
                   Auth
Client
                               Scheduler                     Network
                               Scheduler
                               API Stubs


                               Network                        Volume
                               Network
                               API Stubs

                EC2
                        API     Volume                  Host
                                Volume
                Open           API Stubs
                Stack                                        Compute

                               Compute
                                Glance
                               API Stubs
                                                        Host

            PubSubHubBub                                     Compute
                              Notifications
Zone
                                          Scheduler


                         Scheduler         Network
                         API Stubs


                         Network           Volume
                         API Stubs
         EC2
                 API
         Open
         Stack            Volume
                                         Host
                         API Stubs
                                          Compute

                         Compute
                         API Stubs
                                         Host

          PubSubHubBub                    Compute
                         Notifications




  Auth
North
        America



West               East
Coast             Coast
Do not reveal Child Zone/Service architecture outside Zone
Bursting

  Private    Public               Public
            Internet



  Zone A                        Zone X



                       Zone Z              Zone Y


  Zone B                        Zone W
Demo
                   DomU        Guest



Architecture       DomU        Guest


                   DomU    Nova + Glance


                           Dom0


                          XenServer



       i5 Mobile
       8G ram
       500G disk
The Future

New release schedule
 
     Each project releases ~monthly milestones
 
     Coordinated core projects release every 6 months

« Diablo » release
 
     Release planned on September 22
 
     Distributed scheduling, boot from volumes,
     external volumes/network APIs, OpenVZ support...
Come and join the fun
  http://launchpad.net/openstack
  http://wiki.openstack.org
  http://planet.openstack.org


 IRC (Freenode)
  #openstack
  #openstack-dev


 Mailing-list
  https://launchpad.net/~openstack
Sandy Walsh
OpenStack Core Developer, Rackspace

        @TheSandyWalsh
       www.sandywalsh.com

OpenStack 101 Technical Overview

  • 1.
    OpenStack 101 Technical Overview Sandy Walsh OpenStack Core Developer, Rackspace @TheSandyWalsh www.sandywalsh.com
  • 7.
    Project genesis  Cloud servers  Cloud files  Open source
  • 8.
    Project genesis  NovaCC  Open source
  • 9.
    Project genesis  Cloud servers  Cloud files  NovaCC  Open source  Open source  Nova (compute)  Swift (storage)
  • 10.
  • 11.
    Mission statement “To producethe ubiquitous open source cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable.”
  • 12.
    Open  Open source (apache)  Open design (blueprints)  Open development (branches)  Open community (tech leads)
  • 13.
  • 14.
    OpenStack projects Coreprojects OpenStack Object storage (Swift) OpenStack Image registry and delivery (Glance) OpenStack Compute (Nova) FutureStack Burrow (queue service) Dashboard (Web UI) Keystone (common authentication) Quantum / Melange / Donabe (network) LunR (block storage) RedDwarf (database as a service) ...
  • 15.
    OpenStack Basic DesignTenets http://wiki.openstack.org/BasicDesignTenets 1. Scalability and elasticity are our main goals 2. Any feature that limits our main goals must be optional 3. Everything should be asynchronous. If you can't do something asynchronously, see #2 4. All required components must be horizontally scalable 5. Always use Shared Nothing architecture or Sharding If you can't Share Nothing/Shard, see #2 6. Distribute everything, especially logic. Move logic to where state naturally exists. 7. Accept eventual consistency and use it where it is appropriate. 8. Test everything. We require tests with submitted code.
  • 16.
    HTTP Auth Client EC2 API Open Stack
  • 17.
    HTTP Auth Client Network Volume EC2 API Host Open Stack Compute Host Compute
  • 18.
    HTTP DB/LDAP auth plugin Auth Client  Flat, FlatDHCP, Vlan  IPv4 / IPv6 Network  Local LVM volume groups  iSCSI  Sheepdog Volume  HP/Lefthand SANs EC2 API Host Open Stack Compute  WSGI+Paste middleware  EC2/OpenStack API  Libvirt : QEMU, KVM, UML, LXC Host  Xen and XenServer  Hyper-V Compute  VMware vSphere
  • 19.
    HTTP RabbitMQ Queues Auth Client Network Volume EC2 API Host Open Stack Compute Host Compute
  • 20.
    HTTP RabbitMQ Queues Auth Client Scheduler Network Scheduler API Stubs Network Volume Network API Stubs EC2 API Volume Host Volume Open API Stubs Stack Compute Compute Glance API Stubs Host Compute
  • 21.
    HTTP RabbitMQ Queues Scheduler Auth Client Scheduler Network Scheduler API Stubs Network Volume Network API Stubs EC2 API Volume Host Volume Open API Stubs Stack Compute Compute Glance API Stubs Host Compute
  • 22.
    HTTP RabbitMQ Queues Scheduler Auth Client Scheduler Network Scheduler API Stubs Network Volume Network API Stubs EC2 API Volume Host Volume Open API Stubs Stack Compute Compute Glance API Stubs Host PubSubHubBub Compute Notifications
  • 23.
    Zone Scheduler Scheduler Network API Stubs Network Volume API Stubs EC2 API Open Stack Volume Host API Stubs Compute Compute API Stubs Host PubSubHubBub Compute Notifications Auth
  • 24.
    North America West East Coast Coast
  • 25.
    Do not revealChild Zone/Service architecture outside Zone
  • 26.
    Bursting Private Public Public Internet Zone A Zone X Zone Z Zone Y Zone B Zone W
  • 28.
    Demo DomU Guest Architecture DomU Guest DomU Nova + Glance Dom0 XenServer i5 Mobile 8G ram 500G disk
  • 29.
    The Future New releaseschedule  Each project releases ~monthly milestones  Coordinated core projects release every 6 months « Diablo » release  Release planned on September 22  Distributed scheduling, boot from volumes, external volumes/network APIs, OpenVZ support...
  • 30.
    Come and jointhe fun http://launchpad.net/openstack http://wiki.openstack.org http://planet.openstack.org IRC (Freenode) #openstack #openstack-dev Mailing-list https://launchpad.net/~openstack
  • 31.
    Sandy Walsh OpenStack CoreDeveloper, Rackspace @TheSandyWalsh www.sandywalsh.com