SlideShare a Scribd company logo
Medallia © Copyright 2015. 1
Medallia © Copyright 2015. 2
Docker Buenos Aires
• Medallia
○ “Software to improve the customer experience”
○ “Aggregating 1 Billion documents in 1 second or less”
• Mauricio Garavaglia
○ Software Engineer
○ mauricio@medallia.com
• 2015-05-21
Bienvenidos!!!
Medallia © Copyright 2015. 3
Docker 101
Medallia © Copyright 2015. 4
Problem: Matrix from Hell
Medallia © Copyright 2015. 5
Problem: Efficient use of Resources
Solution But...
Time Sharing! - Your library 2.0 clashes with my library 1.0
- Increase attack vectors
Virtualization! - Isolation but too much overhead!
- Seriously, overhead!
Containers! ...
Medallia © Copyright 2015. 6
“Lightweight Virtual Machine”
Medallia © Copyright 2015. 7
Docker
Containerization for the masses
Docker
Container
Linux cgroups
Linux
namespaces
Images
(Layered FS)
Medallia © Copyright 2015. 8
Server
Docker Architecture
Docker Client Docker Daemon
container 1
container 2
container 3
container 4
Rest API
Docker
HubImages
Medallia © Copyright 2015. 9
Checkout and have fun!
https://www.docker.com/tryit/
Medallia © Copyright 2015. 10
Microservices using relocatable
Docker containers
Thorvald Natvig (thorvald@medallia.com)
Mauricio Garavaglia (mauricio@medallia.com)
Medallia © Copyright 2015. 11
• Docker for everything!
• Docker for applications!
• Docker for load-balancers!
• Docker for zookeeper! And DNS!
• Docker for databases!
Problem to solve
Want a reliable, flexible data-center
Medallia © Copyright 2015. 12
Problem to Solve Today
Relocating non-movable services
DataCenter Firewall
Host: 10.1.2.3:80
Host: 10.1.2.5:80
172.17.0.3:80 nginx
Host: 10.1.2.4:2181
172.17.1.0:2181 zookeeper
172.17.1.2:80 application
Medallia © Copyright 2015. 13
Docker Bridged Networking Model
host1
container 1
eth0
10.1.2.3/24
172.16.1.1
172.16.1.2
docker0
veth0 veth1
Medallia © Copyright 2015. 14
Default (Bridged) Strategy
● Creates a pair of veth.
● Moves one to the container
namespace.
● Renames the container veth to
eth0
● Attaches the host veth to the
docker0 bridge
● Configures port forwarding in
iptables
Routed Strategy
● Creates a pair of veth.
● Moves one to the container
namespace.
● Renames the container veth to
eth0.
● Adds route to 0.0.0.0/0 via
eth0 in container.
● Adds route to container IP via
veth0 in the host.
Docker fork new strategy
Medallia © Copyright 2015. 15
OSPF Area
host1% ip route
10.4.5.6 dev veth0
...
Docker* Routed Networking Model
eth0
10.1.2.3/24
veth0
container-A
% ip route
default eth0
10.4.5.6/32
eth0
host2
host3
hostN
switch
Medallia © Copyright 2015. 16
Route to 10.1.2.3/32
Infrastructure
Spine
Leaf
Server
10.1.2.3/32
10.1.2.3/32
Medallia © Copyright 2015. 17
OSPF: 1998
• Open Shortest Path First
○ Propagated Link State Database
○ Supported by every vendor
• OSPF is computationally expensive
○ On a 1998-style embedded controller: Yes
○ On a 2015-style Intel Atom 64-bit: No
• Everything is point-to-point L3 links
• Switches and Servers run OSPF (Quagga)
• Cumulus! OSPF unnumbered
Old and boring is the new sexy
Medallia © Copyright 2015. 18
Running a Container
using the routed strategy
% docker run -it --net=routed --ip-address=10.2.3.4/32 ubuntu
(Will likely change to use labels...)
Medallia © Copyright 2015. 19
demo!
Medallia © Copyright 2015. 20
bright future ahead!
• Extract networking logic into a reusable library.
• Replace the networking subsystem of Docker.
• Docker 1.7 (libnetwork 0.3)
• Docker 1.8 (libnetwork 1.0)
• Get rid of our patch and wrap it as an extension/plugin.
• https://github.com/docker/libnetwork
LibNetwork
Medallia © Copyright 2015. 21
Pros and Cons
Awesomeness Sucksies
IP Mobility
Quick failover
No special snowflakes
Everything in docker
Future: CRIU?
T2 routing limit: 128K entries
Medallia © Copyright 2015. 22
How difficult is this?
Welcome to the network revolution!
● 40GbE “white-box” Switches
○ Cumulus: Debian-based Switch OS
○ x86-64 Linux server with 32 network interfaces
● Want to inspect network traffic?
○ sudo apt-get install tcpdump
● Technically possible to run remote xterm on the switch
● Currently waiting for Cumulus to update kernel version
○ Docker on the switches!
Medallia © Copyright 2015. 23
Leaf Switch /etc/network/interfaces Server /etc/network/interfaces
auto lo
iface lo inet loopback
address 10.225.10.245/32
%for v in range(1,17):
auto swp${v}
iface swp${v}
mtu 9000
address 10.225.10.${v*8+1}/30
%endfor
%for v in range(17,33):
auto swp${v}
iface swp${v}
mtu 9000
address 10.225.10.245/32
%endfor
auto lo
iface lo inet loopback
auto data0
iface data0 inet static
mtu 9000
address 10.225.10.10
netmask 255.255.255.252
gateway 10.225.10.9
How difficult is the network config?
To Servers
To Spines
To Leaf
Medallia © Copyright 2015. 24
Leaf/Spine Switch ospfd.conf Server ospfd.conf
router ospf
ospf router-id 10.225.10.245
network 10.224.0.0/12 area 0.0.0.0
!
interface swp1
ip ospf network point-to-point
!
interface swp2
ip ospf network point-to-point
!
….
! Bootstrap Config
router ospf
ospf router-id 10.225.10.10
redistribute kernel
passive-interface default
no passive-interface data0
network 10.224.0.0/12 area 0.0.0.0
!
log syslog
!
interface data0
ip ospf network point-to-point
!
How difficult is the network config?
Medallia © Copyright 2015. 25
“Good enough”
• 24-39 Gbit/s (core affinity)
• 13us ICMP ping
Performance
Medallia © Copyright 2015. 26
Local Development With Style
IP Mobility on Local Laptop
Allow for easy and rapid development
Boot2Docker
Medallia © Copyright 2015. 27
Boot2Docker on OSX
My MacBook
Boot2Docker VM
10.10.0.0/16
10.10.0.0/16
10.10.2.1/32 frontend on 8080
10.10.2.2/32 backed (date) on 9999
lo0: 10.10.2.2/32
backend
My Shell
Medallia © Copyright 2015. 28
Checkout and have fun!
www.github.com/medallia/docker
www.github.com/medallia/boot2docker-iso
docker@medallia.com
Medallia © Copyright 2015. 29
Questions?
Medallia © Copyright 2015. 30
Jueves 28 de Mayo
http://tinyurl.com/ioextendedba

More Related Content

PPT
Docker, a new LINUX container technology based light weight virtualization
PDF
Docker based-pipelines
PDF
Docker in pratice -chenyifei
PPTX
Docker 101 - High level introduction to docker
PDF
PPTX
Introduction to Docker
PDF
Docker HK Meetup - 201707
PDF
Docker Overview - Rise of the Containers
Docker, a new LINUX container technology based light weight virtualization
Docker based-pipelines
Docker in pratice -chenyifei
Docker 101 - High level introduction to docker
Introduction to Docker
Docker HK Meetup - 201707
Docker Overview - Rise of the Containers

What's hot (20)

PPTX
Start your adventure with docker
PPTX
Docker - 15 great Tutorials
PDF
Docker - introduction
PDF
Basic docker for developer
PPTX
Dockerize the World - presentation from Hradec Kralove
PDF
Docker worshop @Twitter - How to use your own private registry
PDF
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
PPTX
Why Docker
PPTX
PDF
Docker workshop
PDF
Learning Docker with Thomas
PDF
Introduction to Docker
PPTX
Docker and containers - For Boston Docker Meetup Workshop in March 2015
PDF
Introduction to Docker - VIT Campus
PDF
Wordcamp Bratislava 2017 - Docker! Why?
PDF
Introduction to Containers - SQL Server and Docker
PPTX
Intro to Docker at the 2016 Evans Developer relations conference
PDF
Docker and containers : Disrupting the virtual machine(VM)
PPTX
Hypervisor "versus" Linux Containers with Docker !
PDF
Docker and the Linux Kernel
Start your adventure with docker
Docker - 15 great Tutorials
Docker - introduction
Basic docker for developer
Dockerize the World - presentation from Hradec Kralove
Docker worshop @Twitter - How to use your own private registry
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Why Docker
Docker workshop
Learning Docker with Thomas
Introduction to Docker
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Introduction to Docker - VIT Campus
Wordcamp Bratislava 2017 - Docker! Why?
Introduction to Containers - SQL Server and Docker
Intro to Docker at the 2016 Evans Developer relations conference
Docker and containers : Disrupting the virtual machine(VM)
Hypervisor "versus" Linux Containers with Docker !
Docker and the Linux Kernel
Ad

Viewers also liked (20)

PDF
Introduction to Docker
PDF
Orchestrating Distributed Apps with Docker
PDF
TAP-Harness + friends
PDF
Barcelona MeetUp - Kontena Intro
PPTX
Beginners Guide To Kontena
PPTX
Introduction to Docker - What is it and how is it compared to VM's
PPTX
Recruiting Optimization Roadshow - Mike Podobnik, Medallia
PDF
Deprogramming Gender Bias
PPTX
Demystifying Networking Webinar Series- Routing on the Host
PPTX
Taking a look under the hood of Apache Flink's relational APIs.
PPTX
Docker Swarm Introduction
PDF
認識那條鯨魚 Docker 初探
PDF
Docker初识
PDF
PDF
Docker 初探,實驗室中的運貨鯨
PPTX
JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...
PPTX
Running Docker in Production - The Good, the Bad and The Ugly
PDF
Docker Swarm: Docker Native Clustering
PDF
Docker Swarm 0.2.0
PDF
Virtualization and cloud Computing
Introduction to Docker
Orchestrating Distributed Apps with Docker
TAP-Harness + friends
Barcelona MeetUp - Kontena Intro
Beginners Guide To Kontena
Introduction to Docker - What is it and how is it compared to VM's
Recruiting Optimization Roadshow - Mike Podobnik, Medallia
Deprogramming Gender Bias
Demystifying Networking Webinar Series- Routing on the Host
Taking a look under the hood of Apache Flink's relational APIs.
Docker Swarm Introduction
認識那條鯨魚 Docker 初探
Docker初识
Docker 初探,實驗室中的運貨鯨
JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...
Running Docker in Production - The Good, the Bad and The Ugly
Docker Swarm: Docker Native Clustering
Docker Swarm 0.2.0
Virtualization and cloud Computing
Ad

Similar to Microservices using relocatable Docker containers (20)

PPTX
Docker networking Tutorial 101
PPTX
DCUS17 : Docker networking deep dive
PPTX
State of the Container Ecosystem
PDF
Dockerffm meetup 20150113_networking
PPT
Docker Multi Host Networking, Rachit Arora, IBM
PDF
2016-JAN-28 -- High Performance Production Databases on Ceph
PPTX
Docker SDN (software-defined-networking) JUG
PPTX
Microservices Network Architecture 101
PPTX
Docker networking tutorial 102
PDF
Docker Networking Deep Dive
PDF
Docker 1.12 networking deep dive
PPTX
Networking in Docker Containers
PDF
Docker-OVS
PDF
Deeper Dive in Docker Overlay Networks
PDF
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
PDF
A Gentle Introduction To Docker And All Things Containers
PDF
Practical Design Patterns in Docker Networking
PPTX
Network Design patters with Docker
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
PPTX
Deep-Dive on Container Networking Architectures - Frans van Rooyen - Dell EMC...
Docker networking Tutorial 101
DCUS17 : Docker networking deep dive
State of the Container Ecosystem
Dockerffm meetup 20150113_networking
Docker Multi Host Networking, Rachit Arora, IBM
2016-JAN-28 -- High Performance Production Databases on Ceph
Docker SDN (software-defined-networking) JUG
Microservices Network Architecture 101
Docker networking tutorial 102
Docker Networking Deep Dive
Docker 1.12 networking deep dive
Networking in Docker Containers
Docker-OVS
Deeper Dive in Docker Overlay Networks
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
A Gentle Introduction To Docker And All Things Containers
Practical Design Patterns in Docker Networking
Network Design patters with Docker
Docker 0.11 at MaxCDN meetup in Los Angeles
Deep-Dive on Container Networking Architectures - Frans van Rooyen - Dell EMC...

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PDF
Approach and Philosophy of On baking technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
KodekX | Application Modernization Development
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Modernizing your data center with Dell and AMD
Approach and Philosophy of On baking technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
A Presentation on Artificial Intelligence
Building Integrated photovoltaic BIPV_UPV.pdf
KodekX | Application Modernization Development
Advanced methodologies resolving dimensionality complications for autism neur...
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
20250228 LYD VKU AI Blended-Learning.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Microservices using relocatable Docker containers

  • 2. Medallia © Copyright 2015. 2 Docker Buenos Aires • Medallia ○ “Software to improve the customer experience” ○ “Aggregating 1 Billion documents in 1 second or less” • Mauricio Garavaglia ○ Software Engineer ○ mauricio@medallia.com • 2015-05-21 Bienvenidos!!!
  • 3. Medallia © Copyright 2015. 3 Docker 101
  • 4. Medallia © Copyright 2015. 4 Problem: Matrix from Hell
  • 5. Medallia © Copyright 2015. 5 Problem: Efficient use of Resources Solution But... Time Sharing! - Your library 2.0 clashes with my library 1.0 - Increase attack vectors Virtualization! - Isolation but too much overhead! - Seriously, overhead! Containers! ...
  • 6. Medallia © Copyright 2015. 6 “Lightweight Virtual Machine”
  • 7. Medallia © Copyright 2015. 7 Docker Containerization for the masses Docker Container Linux cgroups Linux namespaces Images (Layered FS)
  • 8. Medallia © Copyright 2015. 8 Server Docker Architecture Docker Client Docker Daemon container 1 container 2 container 3 container 4 Rest API Docker HubImages
  • 9. Medallia © Copyright 2015. 9 Checkout and have fun! https://www.docker.com/tryit/
  • 10. Medallia © Copyright 2015. 10 Microservices using relocatable Docker containers Thorvald Natvig (thorvald@medallia.com) Mauricio Garavaglia (mauricio@medallia.com)
  • 11. Medallia © Copyright 2015. 11 • Docker for everything! • Docker for applications! • Docker for load-balancers! • Docker for zookeeper! And DNS! • Docker for databases! Problem to solve Want a reliable, flexible data-center
  • 12. Medallia © Copyright 2015. 12 Problem to Solve Today Relocating non-movable services DataCenter Firewall Host: 10.1.2.3:80 Host: 10.1.2.5:80 172.17.0.3:80 nginx Host: 10.1.2.4:2181 172.17.1.0:2181 zookeeper 172.17.1.2:80 application
  • 13. Medallia © Copyright 2015. 13 Docker Bridged Networking Model host1 container 1 eth0 10.1.2.3/24 172.16.1.1 172.16.1.2 docker0 veth0 veth1
  • 14. Medallia © Copyright 2015. 14 Default (Bridged) Strategy ● Creates a pair of veth. ● Moves one to the container namespace. ● Renames the container veth to eth0 ● Attaches the host veth to the docker0 bridge ● Configures port forwarding in iptables Routed Strategy ● Creates a pair of veth. ● Moves one to the container namespace. ● Renames the container veth to eth0. ● Adds route to 0.0.0.0/0 via eth0 in container. ● Adds route to container IP via veth0 in the host. Docker fork new strategy
  • 15. Medallia © Copyright 2015. 15 OSPF Area host1% ip route 10.4.5.6 dev veth0 ... Docker* Routed Networking Model eth0 10.1.2.3/24 veth0 container-A % ip route default eth0 10.4.5.6/32 eth0 host2 host3 hostN switch
  • 16. Medallia © Copyright 2015. 16 Route to 10.1.2.3/32 Infrastructure Spine Leaf Server 10.1.2.3/32 10.1.2.3/32
  • 17. Medallia © Copyright 2015. 17 OSPF: 1998 • Open Shortest Path First ○ Propagated Link State Database ○ Supported by every vendor • OSPF is computationally expensive ○ On a 1998-style embedded controller: Yes ○ On a 2015-style Intel Atom 64-bit: No • Everything is point-to-point L3 links • Switches and Servers run OSPF (Quagga) • Cumulus! OSPF unnumbered Old and boring is the new sexy
  • 18. Medallia © Copyright 2015. 18 Running a Container using the routed strategy % docker run -it --net=routed --ip-address=10.2.3.4/32 ubuntu (Will likely change to use labels...)
  • 19. Medallia © Copyright 2015. 19 demo!
  • 20. Medallia © Copyright 2015. 20 bright future ahead! • Extract networking logic into a reusable library. • Replace the networking subsystem of Docker. • Docker 1.7 (libnetwork 0.3) • Docker 1.8 (libnetwork 1.0) • Get rid of our patch and wrap it as an extension/plugin. • https://github.com/docker/libnetwork LibNetwork
  • 21. Medallia © Copyright 2015. 21 Pros and Cons Awesomeness Sucksies IP Mobility Quick failover No special snowflakes Everything in docker Future: CRIU? T2 routing limit: 128K entries
  • 22. Medallia © Copyright 2015. 22 How difficult is this? Welcome to the network revolution! ● 40GbE “white-box” Switches ○ Cumulus: Debian-based Switch OS ○ x86-64 Linux server with 32 network interfaces ● Want to inspect network traffic? ○ sudo apt-get install tcpdump ● Technically possible to run remote xterm on the switch ● Currently waiting for Cumulus to update kernel version ○ Docker on the switches!
  • 23. Medallia © Copyright 2015. 23 Leaf Switch /etc/network/interfaces Server /etc/network/interfaces auto lo iface lo inet loopback address 10.225.10.245/32 %for v in range(1,17): auto swp${v} iface swp${v} mtu 9000 address 10.225.10.${v*8+1}/30 %endfor %for v in range(17,33): auto swp${v} iface swp${v} mtu 9000 address 10.225.10.245/32 %endfor auto lo iface lo inet loopback auto data0 iface data0 inet static mtu 9000 address 10.225.10.10 netmask 255.255.255.252 gateway 10.225.10.9 How difficult is the network config? To Servers To Spines To Leaf
  • 24. Medallia © Copyright 2015. 24 Leaf/Spine Switch ospfd.conf Server ospfd.conf router ospf ospf router-id 10.225.10.245 network 10.224.0.0/12 area 0.0.0.0 ! interface swp1 ip ospf network point-to-point ! interface swp2 ip ospf network point-to-point ! …. ! Bootstrap Config router ospf ospf router-id 10.225.10.10 redistribute kernel passive-interface default no passive-interface data0 network 10.224.0.0/12 area 0.0.0.0 ! log syslog ! interface data0 ip ospf network point-to-point ! How difficult is the network config?
  • 25. Medallia © Copyright 2015. 25 “Good enough” • 24-39 Gbit/s (core affinity) • 13us ICMP ping Performance
  • 26. Medallia © Copyright 2015. 26 Local Development With Style IP Mobility on Local Laptop Allow for easy and rapid development Boot2Docker
  • 27. Medallia © Copyright 2015. 27 Boot2Docker on OSX My MacBook Boot2Docker VM 10.10.0.0/16 10.10.0.0/16 10.10.2.1/32 frontend on 8080 10.10.2.2/32 backed (date) on 9999 lo0: 10.10.2.2/32 backend My Shell
  • 28. Medallia © Copyright 2015. 28 Checkout and have fun! www.github.com/medallia/docker www.github.com/medallia/boot2docker-iso docker@medallia.com
  • 29. Medallia © Copyright 2015. 29 Questions?
  • 30. Medallia © Copyright 2015. 30 Jueves 28 de Mayo http://tinyurl.com/ioextendedba