The flexibility of OpenStack is a dual-edged sword, giving you unprecedented control over your infrastructure, but potentially becoming a nightmare for the indecisive manager, architect or sysadmin!
In this presentation, Tom Fifield – co-author of the OpenStack Operations Guide, and Community Manager at the OpenStack Foundation – takes you through some of the decisions you will face when planning your OpenStack cloud. In addition to a brief introduction on OpenStack and advice on how to interact with the community, he will cover topics such as:
How to approach your deployment, ranging from DIY to a turn-key solution from the ecosystem
Storage and networking decisions, including plugin options
Automating deployment and configuration with popular tools like Puppet and Chef
Through discussion of the ecosystem, customization and scaling, you’ll walk away with an understanding of ‘what it takes’ to build your OpenStack cloud.
2. 225.07.13
Introduction
Software Engineering → Particle Physics → Building Clouds
→ OpenStack Community Manager
Much of this presentation is based on the “OpenStack
Operations Guide”
4. 425.07.13
What is OpenStack? Technology Platform
Compute Provision and manage large pools of on-demand computing
resources
Object Storage Petabytes of reliable storage on standard gear
Block Storage Volumes on commodity storage gear, and drivers for more vendor
systems
Networking Software defined networking automation with pluggable backends
Dashboard Self-service, role-based web interface for users and administrators
Shared Services Multi-tenant authentication system that ties to existing stores (e.g.
LDAP), Image Service
5. 525.07.13
Choose your level
DIY
Training
Systems Integration
Appliance
Software
Support
Public Cloud
POC
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
6. 625.07.13
Choose your level
DIY
Training
Systems Integration
Appliance
Software
Support
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
7. 725.07.13
Choose your level
DIY
Training
Systems Integration
Software
Support
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
Appliance
8. 825.07.13
Choose your level
DIY
Training
Systems Integration
Support
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
Appliance
Software
9. 925.07.13
Choose your level
DIY
Training
Support
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
Appliance
Software
Systems Integration
10. 1025.07.13
Choose your level
DIY
Training
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
Appliance
Software
Systems Integration
Support
11. 1125.07.13
Choose your level
DIY
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
Appliance
Systems Integration
Support
Software
Training
12. 1225.07.13
Choose your level
Buy a box. Unwrap it. Plug in power and network. Have cloud.
Purchase hardware. Purchase software. Install. Have cloud.
Please add feature X. Make it work with my billing system.
Where did we go wrong?
Train Staff. …. Have Cloud
It’s just another software product, right?
Swipe creditcard. Have cloud.
Make a new VM, cd devstack && ./stack.sh
Public Cloud
POC
DIY
Appliance
Software
Systems Integration
Support
Training
15. 1525.07.13
Storage
Ephemeral storage Block storage Object storage
Used to… Run operating system
and scratch space
Add additional persistent
storage to a virtual
machine (VM)
Store data, including VM
images
Accessed
through…
A file system A block device that can
be partitioned, formatted
and mounted (such
as, /dev/vdc)
REST API
Accessible
from…
Within a VM Within a VM Anywhere
Managed
by…
OpenStack Compute
(Nova)
OpenStack Block
Storage (Cinder)
OpenStack Object
Storage (Swift)
Persists
until…
VM is terminated Deleted by user Deleted by user
Sizing
determined
by…
Administrator configures
size settings, known as
flavors
Specified by user in
initial request
Amount of available
physical storage
Example of
usage…
10 GB first disk, 30GB
second disk
1 TB disk 10s of TBs of dataset
storage
want this?which plugin?
16. 1625.07.13
Network
Nova-network vs Neutron
How many networks? Addressing?
Open vSwitch, CISCO Nexus, Linux Bridge, Nicira NCP, Ryu,
NEC, Big Switch, Hyper-V, MidoNet, Brocade, PLUMGrid,
Extreme, Ruijiu, Mellanix or Juniper?
17. 1725.07.13
Cloud ‘controller’ design ...
Consideration Ramification
How many instances
will run at once?
Size your database server accordingly, and scale out beyond one
cloud controller if many instances will report status at the same time
and scheduling where a new instance starts up needs computing
power.
How many compute
nodes will run at
once?
Ensure that your messaging queue handles requests successfully and
size accordingly.
How many users will
access the API?
If many users will make multiple requests, make sure that the CPU
load for the cloud controller can handle. it.
How many users will
access the
dashboard?
The dashboard makes many requests, even more than the API
access, so add even more CPU if your dashboard is the main
interface for your users.
How many nova-api
to run?
You need to size the controller with a core per service.
How long does a
single instance run?
Starting instances and deleting instances is demanding on the
compute node but also demanding on the controller node because of
all the API queries and scheduling needs.
Does your auth
system also verify
externally?
Ensure network connectivity between the cloud controller and external
authentication system are good and that the cloud controller has the
CPU power to keep up with requests.
18. 1825.07.13
Automated Deployment
An automated deployment system installs and configures
operating systems on new servers, without intervention, after
the absolute minimum amount of manual work.
However, consider disk partitioning and network
configuration
Many ways of doing this – see what is working for your distro
Remote management
19. 1925.07.13
Automated Configuration
Establish and maintain the consistency of a system with no
human intervention.
Change managers love this – can test and roll back
Plan your configuration items
Puppet, Chef, Ansible, SaltStack recipes provided by the
community
20. 2125.07.13
Scaling Up
Cells Regions Availability
Zones
Host Aggregates
Use when
you need
A single API
endpoint for
compute, or you
require a second
level of
scheduling.
Discrete regions
with separate API
endpoints and no
coordination
between regions.
Logical separation
within your nova
deployment for
physical isolation
or redundancy.
To schedule a
group of hosts with
common features.
Example A cloud with
multiple sites
where you can
schedule VMs
"anywhere" or on
a particular site.
A cloud with
multiple sites,
where you
schedule VMs to a
particular site and
you want a shared
infrastructure.
A single site cloud
with equipment fed
by separate power
supplies.
Scheduling to
hosts with trusted
hardware support.
Overhead A new service,
nova-cells
Each cell has a full
nova installation
except nova-api
A different API
endpoint for every
region.
Each region has a
full nova
installation.
Configuration
changes to
nova.conf
Configuration
changes to
nova.conf
Shared
services
Keystone
nova-api
Keystone Keystone
All nova services
Keystone
All nova services
Not pictured: Object Storage, which scales very easily by
adding machines as needed, or through global clusters
21. 2325.07.13
Customisation
OpenStack doesn’t quite do what you need?
Add it, but contribute back if possible
Many things are pluggable
Eg Object Storage middleware pipeline
Eg Compute Scheduler
Eg Dashboard
Get a DevStack running and play!
22. 2425.07.13
Interacting with the Community
All development is Open
Etherpad →Blueprint → Coded → Reviewed → Released
Collaboratively design features
Competitors working together
Every line of code reviewed by at least two people
An extensive continuous integration and testing infrastructure
Documentation, Translation, Infrastructure is all collaborative
23. 2525.07.13
When it fails “Oh, it was just the firewall
to the queue server again.”
C
heck
outTales
From
the
C
ryp^H
^H
^H
^H
C
loud!
24. 2625.07.13
When it fails: you are not alone
Ask OpenStack! (http://ask.openstack.org)
https://wiki.openstack.org/wiki/MailingLists
https://wiki.openstack.org/IRC
Your local user group
The comments section on that almost-related blog
25. 2725.07.13
Recap
Choose a level
Look at your Storage options
Plan your network
Get some metrics to design your cloud controller
Automate, Automate, Automate
Scale up
Customise
Join the community!
29. 3125.07.13
See you in Hong Kong
November 5-8, register now!
Call for speakers closes July 31st
Design Sessions: not a classic track with speakers and
presentations - generally an open brainstorming discussion
on a given subject
Conference Sessions: Keynotes, Case Studies, Ecosystem,
Operations, Strategy, Workshops
openstack.org/summit
30. 3225.07.13
All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License
(unless otherwise specified). "OpenStack" is a registered trademark and respective logos and icons are subject to
international copyright laws. The use of these therefore is subject to the brand policy.
Thank you …
… for supporting OpenStack!
Ask Questions at ask.openstack.org
@TomFifield
tom@openstack.org