2
About Me
• OpenStack Community Member
• Developer in Neutron
• Maintainer of PLUMgrid Neutron Plugin
(networking-plumgrid)
• How to contact and follow me
– @fawadkhaliq
– irc:fawadkhaliq
3
Agenda
• Docker Background
– The Rapid Adoption
– Use Cases
– Nova-Docker and Magnum
• Docker Networking
– Progress Report
– Magnum Networking
– Unified VM and Docker Networking with PLUMgrid
– Demo Time!
• Key Takeaways
4
Introduction to Docker
• A common packaging format for
cloud applications.
• A high-level API to provide
lightweight containers that run
processes in isolation.
• 100+ million Docker Engine
downloads
• 45,000+ applications in Docker Hub
5
Why The Explosion? It’s Lightweight
Server Hardware
Host Operating System
Hypervisor
Guest
OS
Guest
OSGuest OS
bins/libs bins/libs bins/libs
App A App A* App B
VMs
Server Hardware
Host Operating System
Docker Engine
bins/libs bins/libs
App A App A* App BContainers
6
Docker Use Cases
• Easy Application Deployment
• Continuous Integration
• Application Lifecycle
• Continuous Delivery
• Platform-as-a-Service (PaaS)
• Distributed Applications
Composition
Server Hardware
Host Operating System
Docker Engine
Load
BalancerDatabase
Applicatio
n Servers
https://www.docker.com/resources/usecases/
7
• Nova Compute
– driver for launching Docker containers as Nova instances
– Offers an overlap of features between Nova and Docker
– stackforge/nova-docker
• Heat
• Magnum
8
Docker Networking Options – Circa 2013-14
container B
1
container A
Docker Proxy
iptables
Docker0
Linux Bridge
container A container B
Unix domain sockets2
container A
Host
network3
9
Docker Networking Today – libnetwork
http://blog.docker.com/2015/04/docker-networking-takes-a-step-in-the-right-direction-2/
https://github.com/docker/libnetwork
10
OpenStack Networking Today - Neutron
PLUMgrid Neutron Plugin
Neutron API
PLUMgrid ONS Backend
Neutron Server
PLUMgrid ONS
100% Software
On Demand NetworksPluggable and API Driven
12
Why? VMs and Containers Must CommunicateWith Each Other!
12
nova-compute
Docker Engine
nova-compute
Libvirt
VM1 VM2Container1 Container2
nova-api
network 1
network 2
13
How It Works
Initiate
Create Port
Bind VIF
PLUMgrid
Neutron
Plugin
Neutron API
Nova APINova
Compute
Nova
Docker
PLUMgrid ONS Backend
Launch
Docker
16
Demo Setup
Kilo DevStack
Neutron with PLUMgrid ONS Plugin
Compute
Nova Libvirt Driver
PLUMgrid Edge
Controller +
Compute
Nova Docker Driver
PLUMgrid Director PLUMgrid Gateway
PLUMgrid Edge
Unpublished Work of SUSE. All Rights Reserved.
This work is an unpublished work and contains confidential, proprietary, and trade secret information of SUSE.
Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of
their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated,
abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE.
Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.
General Disclaimer
This document is not to be construed as a promise by any participating company to develop, deliver, or market a
product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document,
and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose.
The development, release, and timing of features or functionality described for SUSE products remains at the sole
discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at
any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in
this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All
third-party trademarks are the property of their respective owners.