a presentation of the openstack project - europython

43
Snakes on a cloud A presentation of the OpenStack project Thierry Carrez Release Manager, OpenStack

Upload: others

Post on 12-Sep-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Presentation Of The OpenStack Project - EuroPython

Snakes on a cloud

A presentation ofthe OpenStack project

Thierry CarrezRelease Manager, OpenStack

Page 2: A Presentation Of The OpenStack Project - EuroPython

Cloud ?

Page 3: A Presentation Of The OpenStack Project - EuroPython

Buzzword

Page 4: A Presentation Of The OpenStack Project - EuroPython

End-user services

Software as a Service (SaaS)

Page 5: A Presentation Of The OpenStack Project - EuroPython

End-user services

Online storage / streaming

Page 6: A Presentation Of The OpenStack Project - EuroPython

Backend services

Raw compute / storage resources (IaaS)

Page 7: A Presentation Of The OpenStack Project - EuroPython

Backend services

Deployment platforms (PaaS)

Page 8: A Presentation Of The OpenStack Project - EuroPython
Page 9: A Presentation Of The OpenStack Project - EuroPython

Open source cloud

Page 10: A Presentation Of The OpenStack Project - EuroPython

OpenStack project genesis

Cloud servers Cloud files Open source

Page 11: A Presentation Of The OpenStack Project - EuroPython

NovaCC Open source

OpenStack project genesis

Page 12: A Presentation Of The OpenStack Project - EuroPython

Cloud servers Cloud files Open source

Nova (compute) Swift (storage)

NovaCC Open source

OpenStack project genesis

Page 13: A Presentation Of The OpenStack Project - EuroPython

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.”

Page 14: A Presentation Of The OpenStack Project - EuroPython

Open

Open source Open design Open development Open community

Page 15: A Presentation Of The OpenStack Project - EuroPython

A young project

03 05 06 07 10 02 04 2010 2011

Decision to open source Rackspace Cloud

NASA open sources Nebula platform

OpenStack formed

First design summit in Austin

First release (codenamed « Austin »)

« Bexar » released

« Cactus » released

Page 16: A Presentation Of The OpenStack Project - EuroPython

100 developers

Page 17: A Presentation Of The OpenStack Project - EuroPython

Design and coding standards

Scalability and elasticity Asynchronous Horizontally scalable Share-nothing (or sharding) Distribute everything Accept eventual consistency Test everything Enforce PEP-8

Page 18: A Presentation Of The OpenStack Project - EuroPython

OpenStack projects

Nova (compute) Glance (image service) Swift (storage)Core

Incubation

Related

Keystone (common authentication) Dashboard (django-based web UI) Burrow (queue service) ...

Page 19: A Presentation Of The OpenStack Project - EuroPython

Release cycle

diablo-1 diablo-2 diablo-3 diablo-4 2011.3

1.4.0 1.4.1 1.4.2 1.5.0 1.5.1

nova

glance

swift

6 months

Page 20: A Presentation Of The OpenStack Project - EuroPython

Swift (Cloud Storage)

Object storage RESTful interface No object size limit Stable and deployed in production Scales massively

Page 21: A Presentation Of The OpenStack Project - EuroPython

Objects, containers, accounts

Account

Container

Object Object Object

Container

Object Object

Account

Container

Object Object Object

Container

Object

Container

Object Object

Object Object Object

Page 22: A Presentation Of The OpenStack Project - EuroPython

Rings

000...1ff

200...3ff

400...5ff

600...7ff800...8ff

a00...bff

c00...dff

e00...fff

Page 23: A Presentation Of The OpenStack Project - EuroPython

The objects ringPUT /<api version>/<account>/<container>/<object>

ecb25d1facd7c6760f7663e394dbeddb

Partition 482 located on: zoneAsrv73

zoneCsrv35 zoneBsrv98

Page 24: A Presentation Of The OpenStack Project - EuroPython

Container serverObject server

Container server

Swift request

Proxy server

A

Object server

Object server

Object server

B

Object server

Object server

Object server

C

Object server

Object server

Object server

Page 25: A Presentation Of The OpenStack Project - EuroPython

Listing objects in a container

GET /<api version>/<account>/<container>/

cfb02ba07109d95e3091227b34641472

Partition 68 address queries to: zoneBsrv12

zoneAsrv92 zoneCsrv44

Containers

Page 26: A Presentation Of The OpenStack Project - EuroPython

Listing containers in an account

GET /<api version>/<account>/

b779f644c96a61c240de9d5bfa431824

Partition 11 address queries to: zoneBsrv42

zoneCsrv09 zoneAsrv63

Accounts

Page 27: A Presentation Of The OpenStack Project - EuroPython

Container server

Container server

Container server

Object serverContainer server

Container server

Object server

Object server

Object server

Container server

Object server

Object server

Object server

Object server

Object server

Account server

Container server

Account server

Container server

Container server

Object server

Swift components

Proxy server

Proxy server

Proxy server

Object server

Object server

Object server

Object server

Object serverAccount server

Container server

Account server

Container server

Container server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Account server

Container server

Account server

Container server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Container serverAccount server

Container server

Account server

Container server

Container server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Object server

Horizontal scaling Commodity hardware (no RAID)

Updater

Auditor

Account reaper

Auditor

Page 28: A Presentation Of The OpenStack Project - EuroPython

Glance (Image service)

Disk images and associated metadata Discover, register and retrieve Multiple disk formats : raw, VHD, vmdk, vdi, ISO, qcow2, aki, ari, ami Multiple container formats : ovf, bare, aki, ari, ami

Page 29: A Presentation Of The OpenStack Project - EuroPython

Glance architecture

glance-apiGlance API

glanceCLI tool

glance.clientPython library Filesystem

HTTP

Swift

S3

Reg

istry AP

I

glance-registry

...

...

...

SQL

Page 30: A Presentation Of The OpenStack Project - EuroPython

Nova (Cloud Compute)

« VMs one API call away » Highly-modular framework Under heavy development Used in production in NASA Nebula cloud

Page 31: A Presentation Of The OpenStack Project - EuroPython

Object server

Nova components

Network node

RabbitMQAPI node

Scheduler node

Network node

Compute node

Volume node

Page 32: A Presentation Of The OpenStack Project - EuroPython

Object server

Creating a new server

Network node

RabbitMQ

Network node

Volume node

Scheduler node

Compute node

API node

Glance

Page 33: A Presentation Of The OpenStack Project - EuroPython

Object server

Share nothing ? Not yet

Network node

RabbitMQAPI node

Scheduler node

Network node

Compute node

Volume node

Datastore

Page 34: A Presentation Of The OpenStack Project - EuroPython

Object server

Nova modularity

Datastore

API node

Scheduler node

Network node

Compute node

Volume node

WSGI middleware EC2/OpenStack API DB/LDAP auth plugin

Pluggable Chance Zone-aware

AMQP

Sqlite MySQL Postgres

Flat, FlatDHCP, Vlan IPv4 / IPv6

QEMU, KVM, UML, LXC Xen and XenServer Hyper-V VMware vSphere

Local LVM volume groups iSCSI Sheepdog HP/Lefthand SANs

Page 35: A Presentation Of The OpenStack Project - EuroPython

Coming up in Diablo...

Separate block storage service (LunR)

Separate network services : Quantum (network API for cloud compute) Melange (network resources registry)

Donabe (complex network containers)

Use common authentication (Keystone)

Page 36: A Presentation Of The OpenStack Project - EuroPython

Coming up in Diablo...

Snapshot, clone and boot from volumes Distributed scheduling OpenStack API 1.1 Configuration drive

Page 37: A Presentation Of The OpenStack Project - EuroPython
Page 38: A Presentation Of The OpenStack Project - EuroPython

What we are using

Page 39: A Presentation Of The OpenStack Project - EuroPython

What we are using

EventletPaste.deploy

webobroutes

http://www.flickr.com/photos/urtica/2354829631/

Page 40: A Presentation Of The OpenStack Project - EuroPython

What we are using

& sqlalchemy­migrate

Carrot / AMQPlib (Kombu ?)

http://www.flickr.com/photos/sapphir3blu3/3235526282/

Page 41: A Presentation Of The OpenStack Project - EuroPython

What we are using

boto

M2Crypto

http://www.flickr.com/photos/cgt/4592048715/

gflags

Page 42: A Presentation Of The OpenStack Project - EuroPython

Come and join the fun

http://launchpad.net/openstackhttp://wiki.openstack.orghttp://planet.openstack.org

IRC (Freenode)#openstack#openstack-dev

Mailing-listhttps://launchpad.net/~openstack

Page 43: A Presentation Of The OpenStack Project - EuroPython

Questions ?

[email protected]://fnords.wordpress.comFollow @tcarrez