OpenStack Introduction November 4, 2015
Application Platforms Undergoing A Major Shift
What is OpenStack Open Source Cloud Software Launched by NASA and Rackspace in 2010 Massively scalable Managed by the OpenStack Foundation Rapidly taking over the Cloud world!
Overview of Rackspace Founded in 1998 Publicly traded on NYSE: RAX 120,000+ customers $628m revenue in 2009 across two major businesses Dedicated Managed Hosting Cloud Infrastructure & Apps (Servers, Files, Sites, Email) Primary focus on customer service ("Fanatical Support") 3,000+ employees 9 datacenters in the US, UK and Hong Kong 65,000+ physical servers
Rackspace Cloud: 3 Products with Solid Traction Compute: Cloud Servers Virtualized, API-accessible servers with root access Windows & Linux (many distros) Sold by the hour (CPU/RAM/HDD) with persistent storage Launched 2009 Based on Slicehost Xen & XenServer HVs Storage: Cloud Files Launched 2008 Object file store v2.0 in May 2010 PaaS: Cloud Sites Launched 2006 Formally Mosso Code it & Load it:.net, PHP, Python apps autoscaled
OpenStack: The Mission "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."
OpenStack Founding Principles Apache 2.0 license (OSI), open development process Open design process, 2x year public Design Summits Publicly available open source code repository Open community processes documented and transparent Commitment to drive and adopt open standards Modular design for deployment flexibility via APIs
Community with Broad Commercial Support
OpenStack: The Open Source Cloud Operation System
High Level Architecture
What is OpenStack? An Open Source Set of Cloud Technologies Compute (codenamed Nova ) provides virtual serves upon demand Image (codenamed Glance ) provides a catalog and repository for virtual disk images. These disk images are mostly commonly used in OpenStack Compute Dashboard (codenamed Horizon ) provides a modular web-based user interface for all the OpenStack services. Used to perform most operations like launching an instance, assigning IP addresses and set access controls Identity (codenamed Keystone ) provides authentication and authorization for all the OpenStack services. Object Store (codenamed Swift ) provides object storage Block Storage (codenamed Cinder ) provides persistent block storage to guest VMs. Network (codenamed Quantum ) provides network connectivity as a service between interface devices managed by other OpenStack services.
OpenStack - Compute
OpenStack Nova Compute - Introduction OpenStack Compute is a tool to orchestrate a cloud, including running instances, managing networks, and controlling access to the cloud through users and projects. The underlying open source project s name is Nova, and it provides the software that can control an Infrastructure as a Service (IaaS) cloud computing platform. It is similar in scope to Amazon EC2 and Rackspace Cloud Servers OpenStack Compute does not include any virtualization software; rather it defines drivers that interact with underlying virtualization mechanisms that run on a host operating system, and exposes functionality over a webbased API
OpenStack Nova Compute Message Queue Nova-compute is a worker daemon, which primarily creates and terminates VMs via hypervisor API
OpenStack Nova Compute Message Queue Nova-compute is a worker daemon, which primarily creates and terminates VMs via hypervisor API
OpenStack Nova Compute Supported Hypervisors The process for selecting a hypervisor usually means prioritizing and making decisions based on budget and resource constraints as well as the list of supported features and required technical specifications Most development is done on KVM and Xen-based hypervisors With OpenStack Compute, you can orchestrate clouds using multiple hypervisors in different zones. KVM LXC QEMU UML VMWare ESX/ESXi Xen Bare Metal
OpenStack Image Store
OpenStack Glance - Introduction The Glance project provides services for discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image Basically a database and some tools VM images made available through Glance can be stored in a variety of locations: Simple filesystems like ZFS, LVM, etc Direct attached Storage Object-storage systems like OpenStack Swift project or S3 Block storage like OpenStack Cinder project
OpneStack Glance Reference Architecture
OpenStack - Dashboard
OpenStack Horizon Dashboard - Introduction Provides a baseline user interface for managing OpenStack Services Stateless Error handling is delegated to backend Does not support all API functions Can use memcached or databased to store sessions Gets updated via nova-api polling
OpenStack Horizon Dashboard Reference Architecture
OpenStack Horizon Dashboard - Example
OpenStack - Security
OpenStack Security Keystone - Introduction Keystone provides a single point of integration for OpenStack policy, catalog, token and authentication Keystone handles API requests as well as providing configurable catalog, policy, token and identify services Communications via OpenStack Identify API Each Keystone function has a pluggable backend which allows different ways to use the particular service Standard backends include LDAP or SQL, as well as Key Value Stores Most commonly used in delegated authorization deployments Most people will use this as a point of customization for their current authentication services.
Keystone relationship to other OpenStack Elements
OpenStack Keystone Basic Concepts The identify service has two primary functions User management: keep track of users and what they are permitted to do Service catalog: Provide a catalog of what services are available and where their API endpoints are located User management Users Represents a human user, and has associated information such as username, password and email Tenants A project, group, or organization. Must specify a tenant to make requests to OpenStack services Roles Captures what operations a user is permitted to perform in a given tenant
OpenStack Storage
OpenStack - Introduction
OpenStack Storage - Uses The two common use cases for providing object storage in a compute cloud are To provide users with a persistent storage mechanism As a scalable, reliable data store for virtual machine images
OpenStack Storage Swift Key Features
OpenStack Storage Swift Architecture
OpenStack Storage Swift System Components The Ring Maps names to entities on disk Uses MD5 hashing for object tags Stores data on zones, devices, nodes and replicas Weights can be used to balance the distribution of partitions and nodes Used by proxy server and storage nodes Proxy Server Expose the public API Make routing requests: read, write, modify, etc. Object Server Blob storage server Uses xattrs, binary format Object location based on path from name hash and timestamp
OpenStack Storage Cinder Architecture
OpenStack Storage Cinder - Introduction Cinder separates out the persistent block storage functionality that was previously part of OpenStack Compute into its own service The OpenStack Block Storage API allows for manipulation of volumes, volume types and volume snapshots Cinder deployments will also make use of a messaging queue to route information between the cinder processes as well as a database to store volume state Like Quantum, Cinder will mainly interact with Nova, providing volumes for its instances
OpenStack Network
OpenStack Network Quantum - Introduction Quantum is an OpenStack project to provide networking as a service between interface devices (e.g., vnics) managed by other OpenStack services (e.g., nova) Start in the Folsom release, Quantum is a core and supported part of the OpenStack platform
OpenStack Network Quantum Deployment
Reference http://www.slideshare.net/kamesh001/open-stack-101 http://www.slideshare.net/openstackindia/openstack-introduction- 14761434?from_action=save http://www.slideshare.net/openstack/intro-grizzlyarchv1-19109550?related=1 http://docs.openstack.org/developer/nova/nova.concepts.html http://docs.openstack.org/developer/swift/overview_architecture.html
Thank you Q & A