September 26, 2012¶
- Hosted at http://dreamhost.com
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¶
Routing
VPN
load balancing
Firewall
Metering system
- Way to monetize OpenStack!
- Ceilometer is an open source version: https://github.com/stackforge/ceilometer
Billing
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
- DevStack - http://devstack.org
- TryStack - http://trystack.org
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.