You are on page 1of 31

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 Open source

NovaCC 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. 2. 3. 4. 5. 6. 7. 8. Scalabilityandelasticityare our main goals Any feature that limits our main goals must be optional Everything should be asynchronous. If you can't do something asynchronously, see #2 All required components must be horizontally scalable Always use Shared Nothing architectureorSharding If you can't Share Nothing/Shard, see #2 Distribute everything, especially logic. Move logic to where state naturally exists. Accept eventual consistency and use it where it is appropriate. Test everything. We require tests with submitted code.

HTTP

Auth Client

EC2 Open Stack API

HTTP

Auth Client Network

Volume

EC2 Open Stack API Host Compute

Host Compute

HTTP DB/LDAP auth plugin Auth Client Flat, FlatDHCP, Vlan IPv4 / IPv6

Network

Local LVM volume groups iSCSI Sheepdog HP/Lefthand SANs

Volume

EC2 Open Stack

API

Host Compute

WSGI+Paste middleware EC2/OpenStack API

Libvirt: QEMU, KVM, UML, LXC Host Xen and XenServer Compute Hyper-V VMware vSphere

HTTP

RabbitMQ Queues

Auth Client Network

Volume

EC2 Open Stack API Host Compute

Host Compute

HTTP

RabbitMQ Queues

Auth Client Scheduler Scheduler API Stubs Network

Network Network API Stubs EC2 Open Stack API Volume Volume API Stubs

Volume

Host Compute

Compute Glance API Stubs

Host Compute

HTTP

RabbitMQ Queues Scheduler

Auth Client Scheduler Scheduler API Stubs

Network

Network Network API Stubs EC2 Open Stack API Volume Volume API Stubs

Volume

Host Compute

Compute Glance API Stubs

Host Compute

HTTP

RabbitMQ Queues Scheduler

Auth Client Scheduler Scheduler API Stubs

Network

Network Network API Stubs EC2 Open Stack API Volume Volume API Stubs

Volume

Host Compute

Compute Glance API Stubs

Host Compute

PubSubHubBub

Notifications

Zone
Scheduler

Scheduler API Stubs

Network

EC2 Open Stack API

Network API Stubs

Volume

Volume API Stubs

Host Compute

Compute API Stubs Host PubSubHubBub Notifications Compute

Auth

North America

West Coast

East Coast

Do not reveal Child Zone/Service architecture outside Zone

Bursting
Private Public Internet Public

Zone A

Zone X

Zone Z Zone B

Zone Y

Zone W

Demo Architecture

DomU

Guest

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