Slide 1

Slide 1 text

OpenStack  architecture:     a  high-­‐level  view   Lorin  Hochstein   Nimbis  Services   [email protected]   @lhochstein  

Slide 2

Slide 2 text

Where  we’re  going  today   •  What  is  OpenStack?   •  What  does  the  architecture  look  like?   •  How  do  I  get  access  to  an  OpenStack  cloud?   •  How  do  I  get  involved  with  the  project?  

Slide 3

Slide 3 text

What  is  OpenStack?  

Slide 4

Slide 4 text

OpenStack  provides  users  access  to   compute,  networking  and  storage  

Slide 5

Slide 5 text

Access  compute  resources   Start 5 servers, each with: • 2 CPUs • 4 GB of RAM • 20 GB of storage User Suspend server "X" Snapshot server "X"

Slide 6

Slide 6 text

Access  networking  resources   Create private network with subnet 10.2.12.0/24 User Attach IP address 203.0.113.19 to server "X" Allow access to ports 80 and 443 for the "web" group

Slide 7

Slide 7 text

Access  block  storage  resources,     which  aGach  to  servers  like  disks   Create a 100 GB data volume and attach it to server "X" User Take a snapshot of volume "Q"

Slide 8

Slide 8 text

Access  object  storage  resources,   which  are  accessed  over  HTTP   Store file family.png in container "photos" User Make file logo.png in container "acme" visible to everyone

Slide 9

Slide 9 text

OpenStack  includes  a  web-­‐based   Dashboard  service   Credit:  OpenStack  Compute  Admin  Guide  

Slide 10

Slide 10 text

Users  can  also  make  requests  with   command-­‐line  tools  or  REST  API   $ nova boot --image precise --flavor m1.small myinstance Client HTTP POST /servers { "server": { "imageRef": ... "flavorRef": ... "name": "myinstance", } }

Slide 11

Slide 11 text

Also...  Python  APIs!   import novaclient.v1_1.client as nvclient creds = ... nova = nvclient.Client(**creds) image = nova.images.find(name="precise") flavor = nova.flavors.find(name="m1.small") nova.servers.create(image=image, flavor=flavor, name="myinstance")

Slide 12

Slide 12 text

ECOSYSTEM SIZE 
 (Members + Sponsors + Supporters) CUMULATIVE 
 CONTRIBUTORS AVERAGE MONTHLY 
 CONTRIBUTORS PATCHES
 MERGED 998 230 7,260 (Grizzly Release Cycle – Six Months) 209
 Companies Members: 24 Total
 Sponsors: 35 Total Supporters: 150 Total TOP 10 Countries 1) United States
 2) China
 3) India
 4) Great Britain
 5) Australia 9,511 6) France
 7) Russia
 8) Canada
 9) Ireland
 10) Germany INDIVIDUAL MEMBERS Project  is  very  acRve  with  many   contributors   Credit:  hGp://www.openstack.org/assets/markeRng/presentaRons/GenericPlaTormDeckMay-­‐23-­‐2013.pptx   Data  from  May  2013  

Slide 13

Slide 13 text

Large  industry  players  among   OpenStack  plaRnum  &  gold  members   8 Credit:  hGp://www.openstack.org/assets/markeRng/presentaRons/GenericPlaTormDeckMay-­‐23-­‐2013.pptx  

Slide 14

Slide 14 text

No  single  company  dominates  the   project   Credit:  stackalyRcs.com   Metric:  lines  of  code   Release:  Havana   Projects:  all  

Slide 15

Slide 15 text

What  does  the  architecture  look   like?  

Slide 16

Slide 16 text

System  is  implemented  as  a  collecRon   of  RESTful  web  services   Credit:  hGp://www.solinea.com/2013/06/15/   openstack-­‐grizzly-­‐architecture-­‐revisited/  

Slide 17

Slide 17 text

Compute  service  manages  virtual   machines  on  compute  nodes  

Slide 18

Slide 18 text

Image  service  provides  a  catalog  of   virtual  machine  images  

Slide 19

Slide 19 text

IdenRty  service  handles  authenRcaRon   and  maintains  a  catalog  of  all  services  

Slide 20

Slide 20 text

Network  service  manages  network   connecRvity  for  virtual  machines  

Slide 21

Slide 21 text

Block  storage  service  manages  block   devices  that  aGach  to  virtual  machines  

Slide 22

Slide 22 text

Object  storage  service  manages  binary   objects  (files)  accessed  via  HTTP  

Slide 23

Slide 23 text

Dashboard  service  provides  web   interface  for  end-­‐users  &  admins  

Slide 24

Slide 24 text

Let’s  look  at  an  example  

Slide 25

Slide 25 text

Alice  is  a  web  dev  who  needs  an  Ubuntu   server  to  deploy  her  app  for  tesRng  

Slide 26

Slide 26 text

Start  a  server  using  the  ‘ubuntu12.04’   image    and  a8ach  it  to  network  ‘mynet’  

Slide 27

Slide 27 text

1.  Get  the  compute  endpoint  and  an   authenRcaRon  token  

Slide 28

Slide 28 text

2.  Start  a  new  compute  server  

Slide 29

Slide 29 text

3.  Download  the  ubuntu12.04  image  

Slide 30

Slide 30 text

4.  Retrieve  the  image  from  the  object   store  

Slide 31

Slide 31 text

5.  Get  info  to  determine  how  to  connect   the  virtual  machine  to  the  ‘mynet’  network  

Slide 32

Slide 32 text

6.  Start  the  virtual  machine  

Slide 33

Slide 33 text

Alice  sees  that  her  server  is  now   running  and  connects  to  it  via  ssh.  

Slide 34

Slide 34 text

Each  OpenStack  service  is   implemented  as  Linux  daemons     Example:     Compute  Service  

Slide 35

Slide 35 text

Daemons  use  non-­‐blocking  I/O  with   eventlet  to  handle  mulRple  requests   OpenStack daemon Eventlet

Slide 36

Slide 36 text

Daemons  maintain  persistent  state   using  an  SQL  database  via  SQLAlchemy   OpenStack daemon SQLAlchemy

Slide 37

Slide 37 text

Daemons  communicate  using  remote   procedure  call  over  message  queue   OpenStack daemon kombu eventlet. green. zmq qpid message queue

Slide 38

Slide 38 text

Let’s  go  back  to  the  earlier  example,   and  zoom  in  on  the  Compute  service   Credit:  hGp://www.solinea.com/2013/06/   15/openstack-­‐grizzly-­‐architecture-­‐revisited/  

Slide 39

Slide 39 text

“Start  a  new  compute  server”  request   comes  in  to  the  nova-­‐api  daemon  

Slide 40

Slide 40 text

Ask  nova-­‐scheduler  to  find  a  compute   node  that  can  fulfill  the  request  

Slide 41

Slide 41 text

Dispatch  the  request  to  nova-­‐compute   on  a  node  that  has  enough  resources  

Slide 42

Slide 42 text

Download  the  image  from  the  Image   service  

Slide 43

Slide 43 text

Get  network  connecRon  info  from   Networking  service  

Slide 44

Slide 44 text

Ask  the  hypervisor  to  start  the  virtual   machine  

Slide 45

Slide 45 text

OpenStack  is  a  toolkit  for  building   clouds  using  third-­‐party  technologies   Compute   Storage   Network  

Slide 46

Slide 46 text

OpenStack  uses  driver-­‐based   architecture  to  support  different  techs   compute_driver=xenapi.XenAPIDriver volume_driver=cinder.volume.drivers.glusterfs.
 GlusterfsDriver core_plugin=neutron.plugins.ryu.
 ryu_neutron_plugin. RyuNeutronPluginV2 Compute  service:  Xen  driver   Block  storage  service:  Gluster  driver   Networking  service:  Ryu  plugin  

Slide 47

Slide 47 text

How  do  I  get  access  to  an   OpenStack  cloud?  

Slide 48

Slide 48 text

There  are  several  public  clouds  built   on  OpenStack  

Slide 49

Slide 49 text

TryStack.org  is  a  free  OpenStack   sandbox  for  community  use  

Slide 50

Slide 50 text

DevStack:  shell  scripts  to  deploy   OpenStack  on  a  single  node  

Slide 51

Slide 51 text

How  do  I  get  involved  with  the   project?  

Slide 52

Slide 52 text

Community  help  is  available  via     web,  email  &  IRC   •  DocumentaRon:  hGp://docs.openstack.org   •  Mailing  lists:  hGp://lists.openstack.org   – [email protected]     – openstack-­‐[email protected]     •  QA  site:  hGp://ask.openstack.org   •  IRC:  #openstack  on  irc.freenode.net    

Slide 53

Slide 53 text

Project  is  very  open  to  new   contributors   •  hGps://wiki.openstack.org/wiki/ How_To_Contribute   •  #openstack-­‐101  on  irc.freenode.net:     help  for  new  contributors   •  Developer  mailing  list:   – openstack-­‐[email protected]   – hGp://lists.openstack.org/cgi-­‐bin/mailman/ lisRnfo/openstack-­‐dev  

Slide 54

Slide 54 text

Q:  Where  do  I  start?   A:  Log  a  bug  against  the  documentaRon  when   you  find  something  unclear  or  incorrect     1.  Create  an  account  on  launchpad.net   2.  Go  to  hGps://bugs.launchpad.net/                        openstack-­‐manuals/+bugs   3.  Click  on  “Report  a  bug”  in  the  top-­‐right  

Slide 55

Slide 55 text

Fin