September 26, 2012

Note

I’m speaking at this event but can’t take notes on myself. :P

Introduction to OpenStack

By Jonathon LaCour

  • Experienced 15 years with Python
  • Dreamhost lead developer
  • Teaches high level Python classes too

Let’s talk about cloud

  • The term cloud has been ruined

  • ground rules:

    • Cloud - elastic infrastructure providing compute, network, and storage via well-defined APIs

    • Public cloud - A multi-tenant, publicly available cloud where resources are metered and billed as a utility, and any entity can place workloads.

      • Often makes money by charging monthly or service fees
    • Private cloud - A privately owned cloud generally used by a single organization for one or more applications

What is OpenStack?

  • OpenStack is a cloud operating system or cloud management system

  • Use it to build public or private clouds

    • VMs
    • Volumes
    • Multi-tenancy
    • APIS - well defined and documented

History of OpenStack

  • 2008 - NASA creates Nebula
  • 2009 - Rackspace creates Swift
  • 2010 - OpenStack is born!

Note

My last few months at NASA we were begging and pleading for the right to use Nebula so we didn’t have to deal with standard NASA server provisioning which is both time intensive

Components of OpenStack

Nova

  • OpenStack’s Compute controller, originally created by NASA
  • Communicates with the hypervisor to create/destroy VMs
  • “Schedules”where VMs are created
  • Originally handled network and storage allocation
  • RESTful API

Swift

  • Object storage system created by Rackspace
  • Highly available, distributed, and eventually consistent
  • RESTful APIs - S3 and Swift
  • Can be swapped out for Ceph, a unified distributed storage system created at Dreamhost

Cinder

  • OpenStack’s block storage as a service platform
  • Enables the creation of block devices via API that can be attached to VMs
  • Spun out from Nova during the latest release cycle
  • RESTful APIs

Glance

  • OpenStack’s image service
  • Provides services for discovering, registering, and retrieving VM images
  • Integrates with Ceph to enable Copy-on-write (COW) for fast VM creation
  • RESTful APIs

Quantum

  • OpenStack’s networking-as-a-service layer
  • Replaces the networking services originally in Nova
  • Supports the concepts of complex virtual networks, including isolation from other tenants in the cloud
  • L2 services currently supported and some L3 services currently deployed

Keystone

  • General identify framework for OpenStack

Horizon

  • Django based user interface
  • Provides web based interface to all the above components

Parts you may want to add to OpenStack

Commercial options are available - and open source options are being authored:

How does OpenStack work?

  • Components in designed to be loosely coupled

  • Several methods of communication

    • REST APIs - simple HTTP services used to communicate between components
    • Messaging - messages sent via AMQP to a message broker, generally RabbitMQ

Getting involved

  • OpenStack is implemented in Python using standard processes

    • Familiar frameworks and tools (Django, SQLAlchemy, boto, lxml, etc)
    • Github + Gerrit + Jenkins for management and CI
  • OpenStack is a community

    • Mailing lists
    • Governance moved to the newly formed OpenStack foundation. Thousands of members, including 170 companies.
    • Key members of OpenStack just joined the PSF for more community crossover
  • Documentation

  • Getting started

Dreamhost’s OpenStack Deployment

TODO - Get the image displayed here.

PaaS implementations on top of OpenStack

  • OpenShift
  • CloudFoundry

Note

Why I like OpenStack is that you have good control over your server provisioning. If a vendor doesn’t play nice, you can move your stack or deploy on your own servers.