Planning your OpenStack Cloud
Tom Fifield
tom@openstack.org
@TomFifield
225.07.13
Introduction
 Software Engineering → Particle Physics → Building Clouds
→ OpenStack Community Manager
 Much of this presentation is based on the “OpenStack
Operations Guide”
325.07.13
What is OpenStack?
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
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
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
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
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
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
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
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
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
1325.07.13
1425.07.13
You have selected ….
It’s just another software product, right?DIY
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?
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?
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.
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
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
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
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!
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
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!
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
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!
What you get: Software
Lines of code (ohloh)
What you get: Developers
Contributors per month (ohloh)
What you get: Backup
Participating Companies
Launch Austin Bexar Cactus Diablo Essex 2-year anniversary Grizzly
0
50
100
150
200
250
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
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

OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield

  • 1.
    Planning your OpenStackCloud Tom Fifield tom@openstack.org @TomFifield
  • 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”
  • 3.
  • 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 SystemsIntegration 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 SystemsIntegration 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 SystemsIntegration 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 SystemsIntegration 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 Buya 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 Buya 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 Buya 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 Buya 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
  • 13.
  • 14.
    1425.07.13 You have selected…. It’s just another software product, right?DIY
  • 15.
    1525.07.13 Storage Ephemeral storage Blockstorage 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 vsNeutron  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  Anautomated 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  Establishand 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 RegionsAvailability 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’tquite 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 theCommunity  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 alevel  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!
  • 26.
    What you get:Software Lines of code (ohloh)
  • 27.
    What you get:Developers Contributors per month (ohloh)
  • 28.
    What you get:Backup Participating Companies Launch Austin Bexar Cactus Diablo Essex 2-year anniversary Grizzly 0 50 100 150 200 250
  • 29.
    3125.07.13 See you inHong 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 andimage 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