SlideShare a Scribd company logo
by
Mehdi AliSoltani
1
Mehdi.alisoltani@gmil.com
www.linkedin.com/in/mehdi-ali-soltani-315453b7
Agenda
2
• OpenStack Services
• OpenStack Architecture
• Nova Architecture
• Start on Codes
• Messaging in OpenStack
• OpenStack Libraries
• Request Flow in OpenStack
• OpenStack Clients
OpenStack is a cloud operating system that controls
large pools of compute, storage, and networking
resources throughout a datacenter.
What is OpenStack
3
OpenStack Services
Dashboard
Horizon
• web-based portal to
interact with underlying
OpenStack services
NOVA
COMPUTE LAYER
•Manages the compute
instances in an OpenStack
environment.
Responsibilities include
creating , scheduling and
decommissioning of virtual
machines on demand.
KEYSTONE
IDENTITY
• authentication and
authorization service for
other OpenStack services
4
OpenStack Services
CINDER
BLOCK STORAGE
• Provides persistent
block storage to
running instances
SWIFT
OBJECT STORAGE
•Stores and retrieves
arbitrary unstructured data
objects via a RESTful, HTTP
based API
GLANCE
IMAGE MANAGEMENT
• Stores and retrieves
virtual machine disk
images
5
OpenStack Services
NEUTRON
NETWORKING
•Enables Network-
Connectivity-as-a-Service for
other OpenStack services,
such as OpenStack Compute
HEAT
ORCHESTRATION
CEILOMETER
TROVE
SAHARA
6
OpenStack Architecture
7
Why Develop OpenStack
8
OpenStack Hypervisor Support Matrix
First Step
9
You should understand the codes
OpenStack Code Architecture
10
Many Teams and Many Projects
11
NOVA
NOVA
API
12
Nova Architecture
13
Nova Components
Nova-api
supports OpenStack
Compute API, Amazon's
EC2 API
communicated over HTTP,
converts the requests to
components via message
queue
Nova-
conductor
provides coordination
and database query
support for Nova
Nova-
compute
A worker daemon which
takes orders from its
message queue and
perform virtual
machine create/delete tasks
using Hypervisor's API.
14
Nova Components
Nova-
scheduler
decides which Nova
Compute Host to allot for
virtual machine request
Nova-
network
takes network related tasks
from its message queue
and performing those.
OpenStack's neutron
component can be opted
instead of nova-network.
Message
queue
All components of Nova
communicate with each
other in a non-blocking
callback-oriented manner
using AMQP protocol
15
Clone a repository from:
• https://git.openstack.org/openstack/<projectname>
• https://github.com/openstack/<projectname>
For nova :
• https://github.com/openstack/nova
• https://git.openstack.org/openstack/nova
Starting Work on Code
16
OpenStack Programming Language
You Should Know
17
Messaging in OpenStack
How messages transport in
OpenStack ?
18
Two methods:
• OpenStack components such as Nova , Cinder , Neutron communicates
internally via AMQP (Advanced Message Queue Protocol) using
RabbitMQ or Qpid
• Through each other using REST-call.
Messaging in OpenStack
19
The AMQP either RabbitMQ
or Qpid, sits between any two
Nova components and allows
them to communicate using
Remote Procedure Calls (RPC )
Message Queue in Nova
20
Message Queue in Nova
• rpc.cast :don’t wait for result
• rpc.call : wait for result (when
there is something to return)
21
Messaging Between OpenStack Services
22
OpenStack Libraries(oslo)
The Oslo project intends to produce a python library containing infrastructure code shared by
OpenStack projects including :
oslo.config
oslo.concurrency
oslo.utils
oslo.serialization
oslo.messaging
oslo.i18n
23
OpenStack Libraries(oslo.config)
A library for parsing configuration options from the command line and configuration files.
24
Parse the /etc/nova/nova.conf
and convert it to cfg object
oslo.concurrency
managing external processes and task
synchronization.
OpenStack oslo
oslo.utils
a library that provides various low-level utility modules/code, such as fileutils,
timeutils, importutils(import related utilities and helper functions)
oslo.messaging
The Oslo messaging API supports RPC
25
Request Flow for Provisioning Instance
26
OpenStack Clients
• Most OpenStack project provides a command-line client for each service
including:
• python-glanceclient
• python-novaclient
• python-keystoneclient
• …
27
• nova boot (Create new instance)
• nova reboot
• nova flavor-list(Print a list of available flavors (sizes of servers))
• nova resize (Resize the instance to new flavor)
• ….
Nova-client
• Nova client is for the Compute service provides a nova command-line
client
• Nova client is a client for the OpenStack Nova API
Some of nova commands:
28
Write New API in Nova
• If you want to write new API in Nova, you should be familiar
with nova client as well .
• For example nova resize , first shutdown the current
instance, then change the flavor and migrate it to the new
host which is selected by scheduler.
• You should know how to invoke new API by nova client
29
Resize Instance on the Same Host
• Suppose we want to have our own resize instance command
which allows to resize an instance on the same host if it is
possible(enough resources available)
• A solution
Check if possible to resize on place
If OK, Shutdown the instance
Take a snapshot
Create a new instance with the new flavor on the same
host
Boot instance with the snapshot image
Delete the old instance
30
• Many commands in
OpenStack novaclient
following same
process
• Suppose Libvirt is
used as compute
driver
Command Flow
31
• Account Setup: You need a Launchpad account
• Join OpenStack Foundation
• Log Into Gerrit Review System
• Install git
• Clone the codes
• Working on Bugs
How to Contribute in OpenStack
32
33

More Related Content

PPTX
Moving to Nova Cells without Destroying the World
PPTX
OpenStack Nova - Developer Introduction
PDF
Openstack nova
PPTX
OpenStack High Availability
PPTX
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
PDF
Inside Architecture of Neutron
PPTX
Open Stack compute-service-nova
PDF
Openstack architecture for the enterprise (Openstack Ireland Meet-up)
Moving to Nova Cells without Destroying the World
OpenStack Nova - Developer Introduction
Openstack nova
OpenStack High Availability
Securing & Monitoring Your K8s Cluster with RBAC and Prometheus”.
Inside Architecture of Neutron
Open Stack compute-service-nova
Openstack architecture for the enterprise (Openstack Ireland Meet-up)

What's hot (20)

PPTX
Openstack in 10 mins
PDF
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
PPTX
Openstack Overview
ODP
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
PPTX
Cloud Computing Open Stack Compute Node
PPTX
Enhancing OpenStack FWaaS for real world application
PPTX
Open stack ha design & deployment kilo
PDF
OpenStack Super Bootcamp.pdf
PPTX
Openstack Study Nova 1
PPTX
Service Discovery using etcd, Consul and Kubernetes
PPTX
Openstack Fundamentals by CloudZone @Back2School
PDF
Mirantis OpenStack-DC-Meetup 17 Sept 2014
PDF
Cloudfoundry Overview
PDF
Build cloud like Rackspace with OpenStack Ansible
PPTX
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
PPTX
Namos openstack-manager
PPTX
Quick overview of Openstack architecture
PPTX
Introduction to OpenStack Cinder
PDF
What's new in OpenStack Liberty
PPTX
Openstack Architecture
Openstack in 10 mins
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Openstack Overview
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Cloud Computing Open Stack Compute Node
Enhancing OpenStack FWaaS for real world application
Open stack ha design & deployment kilo
OpenStack Super Bootcamp.pdf
Openstack Study Nova 1
Service Discovery using etcd, Consul and Kubernetes
Openstack Fundamentals by CloudZone @Back2School
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Cloudfoundry Overview
Build cloud like Rackspace with OpenStack Ansible
Tối ưu hiệu năng đáp ứng các yêu cầu của hệ thống 4G core
Namos openstack-manager
Quick overview of Openstack architecture
Introduction to OpenStack Cinder
What's new in OpenStack Liberty
Openstack Architecture
Ad

Viewers also liked (20)

PDF
Logging/Request Tracing in Distributed Environment
PDF
오픈스택 멀티노드 설치 후기
PPTX
OpenStack and private cloud
PPTX
OpenStack Architecture and Use Cases
PPTX
The OpenStack Cloud at CERN
PPTX
KVM and docker LXC Benchmarking with OpenStack
PDF
OpenStack Architecture
PPT
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
PPTX
OpenStack Liberty Summit Ops Show & Tell - Go Daddy
PDF
Simplifying the OpenStack and Kubernetes network stack with Romana
PDF
Summit 16: Cengn Experience in Opnfv Projects
PPTX
Monasca 를 이용한 cloud 모니터링 final
PPTX
OpenStack hands-on (All-in-One)
PDF
Apricot2017 Request tracing in distributed environment
PDF
Holistic Security for OpenStack Clouds
PPTX
OpenStack本番環境の作り方 - Interop 2016
PDF
Introduction to OpenStack : Barcamp Bangkhen 2016
PDF
OpenStack networking-sfc flow 분석
PDF
Internet Resource Management (IRM) & Internet Routing Registry (IRR)
PDF
Geek Week 2016 - Deep Dive To Openstack
Logging/Request Tracing in Distributed Environment
오픈스택 멀티노드 설치 후기
OpenStack and private cloud
OpenStack Architecture and Use Cases
The OpenStack Cloud at CERN
KVM and docker LXC Benchmarking with OpenStack
OpenStack Architecture
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
OpenStack Liberty Summit Ops Show & Tell - Go Daddy
Simplifying the OpenStack and Kubernetes network stack with Romana
Summit 16: Cengn Experience in Opnfv Projects
Monasca 를 이용한 cloud 모니터링 final
OpenStack hands-on (All-in-One)
Apricot2017 Request tracing in distributed environment
Holistic Security for OpenStack Clouds
OpenStack本番環境の作り方 - Interop 2016
Introduction to OpenStack : Barcamp Bangkhen 2016
OpenStack networking-sfc flow 분석
Internet Resource Management (IRM) & Internet Routing Registry (IRR)
Geek Week 2016 - Deep Dive To Openstack
Ad

Similar to How to Develop OpenStack (20)

PDF
Gordonh0945deepdive openstackcompute-140417174059-phpapp02
PDF
OpenStack 101 update
PPTX
Openstack meetup-pune-aug22-overview
PPT
Openstack presentation
PPTX
Cloud Foundry and OpenStack – Marriage Made in Heaven !
PDF
Cloud Architect Alliance #15: Openstack
PPTX
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...
PPTX
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...
PPTX
Power of OpenStack & Hadoop
PDF
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
PPT
Introduction to Open stack - An Overview
PPTX
Getting Started with OpenStack, Red Hat Summit 2016
PPTX
Openstack: starter level
PPT
Kafka Explainaton
PPTX
Kubernetes integration with ODL
PDF
Openstack 101
PDF
OpenCloud - A Research Cloud
PPTX
Kubernetes Introduction & Whats new in Kubernetes 1.6
PDF
VMworld 2013: VMware NSX Integration with OpenStack
PPTX
KubernetSADASDASDASDSADASDASDASDASDes.pptx
Gordonh0945deepdive openstackcompute-140417174059-phpapp02
OpenStack 101 update
Openstack meetup-pune-aug22-overview
Openstack presentation
Cloud Foundry and OpenStack – Marriage Made in Heaven !
Cloud Architect Alliance #15: Openstack
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...
Cloud Foundry and OpenStack - A Marriage Made in Heaven! (Cloud Foundry Summi...
Power of OpenStack & Hadoop
Cloud Foundry and OpenStack: How They Fit - Cloud Expo 2014
Introduction to Open stack - An Overview
Getting Started with OpenStack, Red Hat Summit 2016
Openstack: starter level
Kafka Explainaton
Kubernetes integration with ODL
Openstack 101
OpenCloud - A Research Cloud
Kubernetes Introduction & Whats new in Kubernetes 1.6
VMworld 2013: VMware NSX Integration with OpenStack
KubernetSADASDASDASDSADASDASDASDASDes.pptx

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
L1 - Introduction to python Backend.pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Operating system designcfffgfgggggggvggggggggg
PPT
Introduction Database Management System for Course Database
Design an Analysis of Algorithms I-SECS-1021-03
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
2025 Textile ERP Trends: SAP, Odoo & Oracle
L1 - Introduction to python Backend.pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Odoo Companies in India – Driving Business Transformation.pdf
ISO 45001 Occupational Health and Safety Management System
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How to Migrate SBCGlobal Email to Yahoo Easily
Wondershare Filmora 15 Crack With Activation Key [2025
Upgrade and Innovation Strategies for SAP ERP Customers
How Creative Agencies Leverage Project Management Software.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
ManageIQ - Sprint 268 Review - Slide Deck
Operating system designcfffgfgggggggvggggggggg
Introduction Database Management System for Course Database

How to Develop OpenStack

  • 2. Agenda 2 • OpenStack Services • OpenStack Architecture • Nova Architecture • Start on Codes • Messaging in OpenStack • OpenStack Libraries • Request Flow in OpenStack • OpenStack Clients
  • 3. OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter. What is OpenStack 3
  • 4. OpenStack Services Dashboard Horizon • web-based portal to interact with underlying OpenStack services NOVA COMPUTE LAYER •Manages the compute instances in an OpenStack environment. Responsibilities include creating , scheduling and decommissioning of virtual machines on demand. KEYSTONE IDENTITY • authentication and authorization service for other OpenStack services 4
  • 5. OpenStack Services CINDER BLOCK STORAGE • Provides persistent block storage to running instances SWIFT OBJECT STORAGE •Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API GLANCE IMAGE MANAGEMENT • Stores and retrieves virtual machine disk images 5
  • 6. OpenStack Services NEUTRON NETWORKING •Enables Network- Connectivity-as-a-Service for other OpenStack services, such as OpenStack Compute HEAT ORCHESTRATION CEILOMETER TROVE SAHARA 6
  • 8. Why Develop OpenStack 8 OpenStack Hypervisor Support Matrix
  • 9. First Step 9 You should understand the codes
  • 11. Many Teams and Many Projects 11
  • 14. Nova Components Nova-api supports OpenStack Compute API, Amazon's EC2 API communicated over HTTP, converts the requests to components via message queue Nova- conductor provides coordination and database query support for Nova Nova- compute A worker daemon which takes orders from its message queue and perform virtual machine create/delete tasks using Hypervisor's API. 14
  • 15. Nova Components Nova- scheduler decides which Nova Compute Host to allot for virtual machine request Nova- network takes network related tasks from its message queue and performing those. OpenStack's neutron component can be opted instead of nova-network. Message queue All components of Nova communicate with each other in a non-blocking callback-oriented manner using AMQP protocol 15
  • 16. Clone a repository from: • https://git.openstack.org/openstack/<projectname> • https://github.com/openstack/<projectname> For nova : • https://github.com/openstack/nova • https://git.openstack.org/openstack/nova Starting Work on Code 16
  • 18. Messaging in OpenStack How messages transport in OpenStack ? 18
  • 19. Two methods: • OpenStack components such as Nova , Cinder , Neutron communicates internally via AMQP (Advanced Message Queue Protocol) using RabbitMQ or Qpid • Through each other using REST-call. Messaging in OpenStack 19
  • 20. The AMQP either RabbitMQ or Qpid, sits between any two Nova components and allows them to communicate using Remote Procedure Calls (RPC ) Message Queue in Nova 20
  • 21. Message Queue in Nova • rpc.cast :don’t wait for result • rpc.call : wait for result (when there is something to return) 21
  • 23. OpenStack Libraries(oslo) The Oslo project intends to produce a python library containing infrastructure code shared by OpenStack projects including : oslo.config oslo.concurrency oslo.utils oslo.serialization oslo.messaging oslo.i18n 23
  • 24. OpenStack Libraries(oslo.config) A library for parsing configuration options from the command line and configuration files. 24 Parse the /etc/nova/nova.conf and convert it to cfg object
  • 25. oslo.concurrency managing external processes and task synchronization. OpenStack oslo oslo.utils a library that provides various low-level utility modules/code, such as fileutils, timeutils, importutils(import related utilities and helper functions) oslo.messaging The Oslo messaging API supports RPC 25
  • 26. Request Flow for Provisioning Instance 26
  • 27. OpenStack Clients • Most OpenStack project provides a command-line client for each service including: • python-glanceclient • python-novaclient • python-keystoneclient • … 27
  • 28. • nova boot (Create new instance) • nova reboot • nova flavor-list(Print a list of available flavors (sizes of servers)) • nova resize (Resize the instance to new flavor) • …. Nova-client • Nova client is for the Compute service provides a nova command-line client • Nova client is a client for the OpenStack Nova API Some of nova commands: 28
  • 29. Write New API in Nova • If you want to write new API in Nova, you should be familiar with nova client as well . • For example nova resize , first shutdown the current instance, then change the flavor and migrate it to the new host which is selected by scheduler. • You should know how to invoke new API by nova client 29
  • 30. Resize Instance on the Same Host • Suppose we want to have our own resize instance command which allows to resize an instance on the same host if it is possible(enough resources available) • A solution Check if possible to resize on place If OK, Shutdown the instance Take a snapshot Create a new instance with the new flavor on the same host Boot instance with the snapshot image Delete the old instance 30
  • 31. • Many commands in OpenStack novaclient following same process • Suppose Libvirt is used as compute driver Command Flow 31
  • 32. • Account Setup: You need a Launchpad account • Join OpenStack Foundation • Log Into Gerrit Review System • Install git • Clone the codes • Working on Bugs How to Contribute in OpenStack 32
  • 33. 33

Editor's Notes

  • #2: How to develop OpenStack in Deep
  • #4: OpenStack is a cloud Operation System
  • #5: OpenStack Services including Horizon a web-based Interface Nova manages VMs Keystone is a authentication and authorization service
  • #6: Cinder is block storage Swift Stores and retrieves arbitrary unstructured data objects via a RESTful Glance image management
  • #7: Neutron networking management And other OpenStack such as Heat, Ceilometer, Trove, Sahara
  • #8: OpenStack architecture
  • #9: Hypervisor Support Matrix OpenStack Compute (Nova) has an abstraction layer for compute drivers. This is what allows you to choose which hypervisor(s) to use for your Nova deployment. The reality is that the support of each of the options is not equal. They are not tested the same amount. They also do not all support the same features.
  • #11: OpenStack code architecture, each component such as Nova, Keystone, Glance, has an API which is responsible to interact with other OpenStack component. Queue is a service for massage transportation in OpenStack NovaDB store information about virtual machines Horizon /CLI is the way a user can intrract with openStack
  • #12: There are many teams work on many project in OpenStack,
  • #13: We select Nova for work on
  • #14: Nova consists of nova-api, nova-compute, nova-db, nova-scheduler, nova conductor, which communicate over queue
  • #15: Nova-api supports OpenStack Compute API, Amazon's EC2 API Nova-conductor provides coordination and database query support for Nova Nova-compute Manage wvrtual machines
  • #17: Codes of OpenStack exist on git of OpenStack as in github You can clone the nova codes like Git https://github.com/openstack/nova
  • #18: Pre requirements involve Python, JSON, Schell Script
  • #19: Messaging in OpenStack
  • #20: Two methods of message transportation in OpenStack
  • #21: Nova components communicate using RPC
  • #22: Tow types of RPC is used in OpenStack rpc.cast :don’t wait for result rpc.call : wait for result (when there is something to return)
  • #23: Communication between OpenStack services via Restfull
  • #24: Oslo is a collection of libraries used by almost every OpenStack projects including :
  • #25: Oslo.config is a A library for parsing configuration and convert them to cfg objects
  • #27: The request flow for provisioning an Instance goes like this: Dashboard or CLI gets the user credential and does the REST call to Keystone for authentication. Keystone authenticate the credentials and generate & send back auth-token which will be used for sending request to other Components through REST-call. Dashboard or CLI convert the new instance request specified in ‘launch instance’ or ‘nova-boot’ form to REST API request and send it to nova-api. nova-api receive the request and sends the request for validation auth-token and access permission to keystone. Keystone validates the token and sends updated auth headers with roles and permissions. nova-api interacts with nova-database. Creates initial db entry for new instance. nova-api sends the rpc.call request to nova-scheduler excepting to get updated instance entry with host ID specified. nova-scheduler picks the request from the queue. nova-scheduler interacts with nova-database to find an appropriate host via filtering and weighing. Returns the updated instance entry with appropriate host ID after filtering and weighing. nova-scheduler sends the rpc.cast request to nova-compute for ‘launching instance’ on appropriate host . nova-compute picks the request from the queue. nova-compute send the rpc.call request to nova-conductor to fetch the instance information such as host ID and flavor( Ram , CPU ,Disk). nova-conductor picks the request from the queue. nova-conductor interacts with nova-database. Return the instance information. nova-compute picks the instance information from the queue. nova-compute does the REST call by passing auth-token to glance-api to get the Image URI by Image ID from glance and upload image from image storage. glance-api validates the auth-token with keystone. nova-compute get the image metadata. nova-compute does the REST-call by passing auth-token to Network API to allocate and configure the network such that instance gets the IP address. neutron validates the auth-token with keystone. nova-compute get the network info. nova-compute does the REST call by passing auth-token to Volume API to attach volumes to instance. cinder-api validates the auth-token with keystone. nova-compute gets the block storage info. nova-compute generates data for hypervisor driver and executes request on Hypervisor( via libvirt or a
  • #32: Request flow
  • #33: Gerrit provides web based code review and repository management for the Git version control system Launchpad is an open source suite of tools that help people and teams to work together on software projects