Why should people care about this?What’s in it for me?
OS, EC2, Admin APIsREST Based (xml/json)
Hardware Virtualization - osdoesn’t know its virutalizedParavirtualized – os knows its virtualized (has info about host)Container – operating system virtualization, shares the real hardware, jails off a user to the environment like chroot
Story timeDidn’t used to have a way of “trying out” openstackEasy to setupFree and Open sourced!Give a stick away here for a question.
OpenStack Founding Principles‣ Apache 2.0 license (OSI), open development process‣ Open design process, 2x year public Design Summits‣ Publically 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
OpenStack Community‣ User groups across the world‣ Events ‣ Design Summit, Conference, and Meetups‣ Contribute ‣ Documentation, Design, or Code‣ Over 180 Companies
OpenStack Contributions‣ Launchpad.net (Bugs/Blueprints)‣ Code reviews (gerrit)‣ Unit Tests‣ Integration Tests‣ Jenkins jobs with gates
Benefits of a Common Platform‣ Common API contract for public/private cloud‣ Easy to migrate to public when needed‣ No vendor lock in with a single provider‣ Run on commodity hardware
OpenStack Platform‣ Python‣ Did I mention open source? ‣ github.com/openstack
Keystone Identity Service‣ Provides Identity, Token, Catalog, and Policy Services‣ Authentication / Authorization‣ Validation‣ User management‣ Project / Tenant management‣ Service management
Glance Service‣ VM Image Service for nova-compute‣ Manage and deploy images‣ Backend storage of images can be anything ‣ File based ‣ Swift ‣ S3‣ Multiple Image Formats ‣ AMI / raw / iso / qcow / etc.
Nova APIs‣ Rest based ‣ json/xml‣ OpenStack Compute API‣ Management API‣ EC2 API‣ Dashboard (Horizon)
Message Bus‣ Backbone of system‣ Message routing between services‣ Generic API to send messages‣ Multiple drivers supported ‣ RabbitMQ ‣ ZeroMQ ‣ Qpid
Nova Database‣ MySQL Server‣ Stores all OS system data ‣ Instance info ‣ Network info ‣ Node info‣ Python library SQL-Alchemy ORM‣ SQLite for unit testing‣ Other relational databases
Nova-Scheduler Service‣ Determines the placement of new resources requested via the API‣ Modular architecture to allow for optimization‣ Base Schedulers include ‣ Round Robin ‣ Filter Scheduler ‣ Spread First ‣ Fill First ‣ Chance (random)
Nova-Network Service (Quantum)‣ Provides network connectivity as a service‣ Programmable networking ‣ Open vSwitch ‣ Nicira Network Virtualization Platform (NVP) ‣ Linux Bridge ‣ Ryu OpenFlow Controller‣ On Demand creation of rich L2 + L3 topologies‣ Quantum is the core project that came from this service
Nova-Volume Service (Cinder)‣ Provide a Block Storage Service‣ Create / Delete / Connect volumes to running instances via iSCSI‣ Drivers available ‣ LVM / iSCSI ‣ Multiple SAN drivers ‣ Ceph‣ Cinder is newly formed core project
Guest Agent (Sneaky-Pete)‣ Reference Agent (python)‣ Listens on the Message Bus‣ Updates MySQL Status to DB‣ Sets up and secures the MySQL instance‣ Controls and manages the MySQL instance‣ Low memory footprint