Vous êtes sur la page 1sur 55

OpenStack

architecture:
a high-level view
Lorin Hochstein
Nimbis Services
lorin@nimbisservices.com
@lhochstein

Where were 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?

What is OpenStack?

OpenStack provides users access to


compute, networking and storage

Access compute resources

Start 5 servers, each with:


2 CPUs
4 GB of RAM
20 GB of storage

Suspend
server "X"

User

Snapshot
server "X"

Access networking resources


Attach IP address
203.0.113.19 to server "X"
Allow access to ports
80 and 443 for the
"web" group
User

Create private network with


subnet 10.2.12.0/24

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"

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

OpenStack includes a web-based


Dashboard service

Credit: OpenStack Compute Admin Guide

Users can also make requests with


command-line tools or REST API
$ nova boot --image precise
--flavor m1.small
myinstance
HTTP POST
/servers
Client

{
"server": {
"imageRef": ...
"flavorRef": ...
"name": "myinstance",
}
}

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")

209
Companies

CUMULATIVE
CONTRIBUTORS

998

Members: 24 Total
Sponsors: 35 Total
Supporters: 150 Total

AVERAGE MONTHLY
CONTRIBUTORS

230

INDIVIDUAL MEMBERS

ECOSYSTEM SIZE

(Members + Sponsors + Supporters)

Project is very acRve with many


contributors

9,511
TOP 10 Countries
1)
2)
3)
4)
5)

United States
China
India
Great Britain
Australia

6) France
7) Russia
8) Canada
9) Ireland
10) Germany

PATCHES
MERGED

7,260

(Grizzly Release Cycle Six Months)

Data from May 2013


Credit: hGp://www.openstack.org/assets/markeRng/presentaRons/GenericPlaTormDeckMay-23-2013.pptx

Large industry players among


OpenStack plaRnum & gold members
8

Credit: hGp://www.openstack.org/assets/markeRng/presentaRons/GenericPlaTormDeckMay-23-2013.pptx

No single company dominates the


project
Metric: lines of code
Release: Havana
Projects: all

Credit: stackalyRcs.com

What does the architecture look


like?

System is implemented as a collecRon


of RESTful web services

Credit: hGp://www.solinea.com/2013/06/15/
openstack-grizzly-architecture-revisited/

Compute service manages virtual


machines on compute nodes

Image service provides a catalog of


virtual machine images

IdenRty service handles authenRcaRon


and maintains a catalog of all services

Network service manages network


connecRvity for virtual machines

Block storage service manages block


devices that aGach to virtual machines

Object storage service manages binary


objects (les) accessed via HTTP

Dashboard service provides web


interface for end-users & admins

Lets look at an example

Alice is a web dev who needs an Ubuntu


server to deploy her app for tesRng

Start a server using the ubuntu12.04


image and a8ach it to network mynet

1. Get the compute endpoint and an


authenRcaRon token

2. Start a new compute server

3. Download the ubuntu12.04 image

4. Retrieve the image from the object


store

5. Get info to determine how to connect


the virtual machine to the mynet network

6. Start the virtual machine

Alice sees that her server is now


running and connects to it via ssh.

Each OpenStack service is


implemented as Linux daemons
Example:
Compute Service

Daemons use non-blocking I/O with


eventlet to handle mulRple requests

OpenStack
daemon

Eventlet

Daemons maintain persistent state


using an SQL database via SQLAlchemy

OpenStack
daemon

SQLAlchemy

Daemons communicate using remote


procedure call over message queue

kombu

OpenStack
daemon

qpid
eventlet.
green.
zmq

message
queue

Lets 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/

Start a new compute server request


comes in to the nova-api daemon

Ask nova-scheduler to nd a compute


node that can fulll the request

Dispatch the request to nova-compute


on a node that has enough resources

Download the image from the Image


service

Get network connecRon info from


Networking service

Ask the hypervisor to start the virtual


machine

OpenStack is a toolkit for building


clouds using third-party technologies
Compute
Storage

Network

OpenStack uses driver-based


architecture to support dierent techs
Compute service: Xen driver
compute_driver=xenapi.XenAPIDriver
Block storage service: Gluster driver
volume_driver=cinder.volume.drivers.glusterfs.
GlusterfsDriver

Networking service: Ryu plugin


core_plugin=neutron.plugins.ryu.
ryu_neutron_plugin.
RyuNeutronPluginV2

How do I get access to an


OpenStack cloud?

There are several public clouds built


on OpenStack

TryStack.org is a free OpenStack


sandbox for community use

DevStack: shell scripts to deploy


OpenStack on a single node

How do I get involved with the


project?

Community help is available via


web, email & IRC
DocumentaRon: hGp://docs.openstack.org
Mailing lists: hGp://lists.openstack.org
openstack@lists.openstack.org
openstack-operators@lists.openstack.org

QA site: hGp://ask.openstack.org
IRC: #openstack on irc.freenode.net

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-dev@lists.openstack.org
hGp://lists.openstack.org/cgi-bin/mailman/
lisRnfo/openstack-dev

Q: Where do I start?
A: Log a bug against the documentaRon when
you nd 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

Fin

Vous aimerez peut-être aussi