2. What is OpenStack
Provide scalable, elastic cloud
computing for both public and
private clouds, large and small
3. Defining OpenStack
• OpenStack is a virtualization platform
which abstracts out Compute, Storage and
Networking from the underlying Hardware
• All the components are managed through
a central Dashboard
5. Trends : OpenStack vs Other Open
Source Cloud Projects
Source : Google trends
OpenStack has won the
Open Source battle
6. OpenStack Deployments : 2013
Source OpenStack survey Oct 2013
Top 10 countries
13
14
23
24
24
25
39
57
63
336
IT
BR
DE
AU
GB
CA
FR
CN
IN
US
7. Finance 1%
Healthcare 1%
Retail 1%
Manufacturing/Indu
2%
Government / Defen
Film/Media 3%
Unspecified 3%
Other 6%
Telecommunications
7%Academic / Research
11%
Information
Technology
63%
Other
19%
Industries
1-20 employees
26%
21-100
employees
16%
101 to 500
employees
14%
501 to 1,000
employees
5%
1,001 to 5,000
employees
10%
5,001 to 10,000
employees
8%
More than 10,000
employees
21%
Organization size
8. Business Drivers for Adopting
OpenStack
4
48
52
65
86
87
95
95
95
98
Other
Attracting talent
Control
Time to market
Ability to innovate, compete
Flexibility of underlying technology…
Avoiding vendor lock-in
Open technology
Operational efficiency
Cost savings
Source OpenStack survey Oct 2013
10. OpenStack - Components
Component Component Function Definition
Nova Compute Provides virtual servers on demand
Glance Image Service Provides a catalog of images used to
create VMs
Swift Object Storage Provides Object Storage
Horizon Web based UI Provides a way to interact with other
OpenStack services
Neutron Networking Service Provides Network as a Service
Cinder Block Storage
Service
Provides Block Storage Service for guest
VMs
Keystone Identity Services Provides Authorization and
Authentication services for
Ceilometer Monitoring Service Collects metrics from various Open Stack
Components
13. OpenStack – Compute
• Tool to orchestrate cloud.
• Main Functions
– Manage running instances
– Manage access to the cloud through users and
tenants
• OpenStack compute relies in the underlying
hypervisors to spawn actual instances
14. OpenStack Computes
• Hypervisors Supported
Hypervisor
KVM Kernel Virtual Machine
Xen Based on Citrix Xen Server
vSphere 4.1, 5.1 VMWare’s hypervisor
QEMU Quick Emulator
LXC Linux Containers : User Control Packages for Linux
Containers
15. Nova Architecture
• Nova is architected as a distributed application with many components
• Majority of these are custom-written Python daemons of two varieties:
– API Service : Web Server Gateway Interface (WSGI)* applications to
receive and mediate API calls
– nova-compute : Nova Compute Service
– nova-volume : Nova Volume Service
– nova-network : Nova Network service which connects to Neutron
– nova-cert : Manages the x509 certificates
– nova-scheduler : Scheduler to choose the host to run instances on
– nova-conductor : Updates DB on behalf of other APIs like network,
volumes etc
16. Nova Architecture – Service to
Manager Mapping
• Each Service has an associated Manager class which
manages the API calls to the underlying implementation
– API Service :
– nova-compute : nova.compute.ComputeManager
– nova-volume : nova.volume.VolumeManager
– nova-network : nova.network.NetworkManager
– nova-cert : nova.cert.CertManager
– nova-scheduler : nova.scheduler.SchedulerManager
– nova-conductor : nova.conductor.CondutorManager
18. Nova - API Service
• API Service is the entry point for all the REST
service requests
• The API endpoints are basic http REST which
handle authentication, authorization, and
basic command and control functions using
various API interfaces
• Forwards the API requests to
ComputeManager and Scheduler.
19. Nova – RPC Communication
• API uses RPC Messaging to communicate with
various services like Compute, Conductor,
Scheduler
• RPC is currently implemented using AMPQ
messaging
20. Service Workers
• Every Service is associated with one or more
workers.
• Each worker is spawned in a separate process
and helps in scaling out the associated service
21. Nova Scheduler
• Component responsible for scheduling a VM
provisioning call on one the hosts
• It can choose from multiple algorithms to
choose the host.
• Example of some of these algorithms
22. Drivers for Virtualization
• Base class for all the driver implementations is
nova.virt.compute.ComputeDriver
• All the drivers extend this class for implementing
the functionality
26. What is Neutron
• Networking service to virtualize Network
Management
• Neutron is to networking what Nova for
Compute
27. Why Neutron
• Enterprise Networks are complex
• Traditional Open Stack Networking has
limitations
• New Concepts like SDN and Tunneling
protocols need a more extendible model
28. Limitations of Nova-Network
• Single VLAN for all the VMs
• Limited by the number of
VLANs which can be
created – 4096
• Little or No Control
29. Neutron
• Provides tools and control for Enterprise class
Networking
– Services Firewalls, Load Balancers, Virtual Routers
• Provide APIs to build advanced network
Configurations
30. Challenges from Cloud on Networking
• Massive Scale
• Cost Effective
• Vendor Agnostic
• Dynamic and programmatic configuration
31. Neutron Basics
• Provides API for configuration of Virtual
Networks and connecting VMs
• Connect Virtual and Physical Switches
• Provide Pluggin mechanism for different
control components.
32. Neutron Principles
• Implementation Abstraction : Networking
implementation at Physical level is abstracted
• Association of an Interface with a Network is
an explicit step
• Plugins can expose extensions from the core
APIs
36. Neutron Components – neutron
daemon
• Neutron daemon
exposes the REST APIs
for Nova and Horizon
interaction
• Passes on the messages
to the agents running
on Neutron Service
Host as well as Nova
Compute
37. Neutron Components – neutron
daemon
• Neutron daemon
exposes the REST APIs
for Nova and Horizon
interaction
• Passes on the messages
to the agents running
on Neutron Service
Host as well as Nova
Compute
38. Neutron Components –
l3 agent and l3 metering agent
• L3 agent : Provides L3/NAT
forwarding to provide
external network access
for VMs on tenant
networks. Some plug-ins
use this agent.
• L3 metering Agent :
Provides L3 traffic
measurements for tenant
networks.
• Run on the main Neutron
Service
39. Neutron Components –
l3 agent and l3 metering agent
• plugin-in agent : Runs on
each hypervisor to perform
local vswitch configuration.
The agent that runs depends
on the plug-in that you use,
and some plug-ins do not
require an agent.
• dhcp agent: Provides DHCP
services to tenant networks.
• Run on each Nova Compute
Node
41. Plugin Architecture
• Allows Network/Port abstraction with multiple
implementations
– Process All API Calls and pass them to the
underlying Physical Layer
– Manage Virtual Switches – Triggered by Nova
interfaces being attached to a network
46. OpenDaylight
• OpenDaylight is an Open Source Software project
under the Linux Foundation with the goal of
furthering the adoption and innovation of Software
Defined Networking (SDN) through the creation of a
common industry supported platform
50. Key Takeaways
• Open Stack is a SDN agnostic and Hypervisor
Agnostic Open Source Framework
• Open Source also brings its own challenges to
the product in terms of complexity
• Lot of value added services being built around
OpenStack – Trove, Savanna, Solum, Congress