SlideShare a Scribd company logo
1 of 30
Download to read offline
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

What's hot

Start your adventure with docker
Start your adventure with dockerStart your adventure with docker
Start your adventure with dockerSagar Dash
 
Docker - 15 great Tutorials
Docker - 15 great TutorialsDocker - 15 great Tutorials
Docker - 15 great TutorialsJulien Barbier
 
Basic docker for developer
Basic docker for developerBasic docker for developer
Basic docker for developerWeerayut Hongsa
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralovedamovsky
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registrydotCloud
 
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...dotCloud
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Adam Štipák
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerChris Taylor
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceMano Marks
 
Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Rama Krishna B
 
Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Hypervisor "versus" Linux Containers with Docker !
Hypervisor "versus" Linux Containers with Docker !Francisco Gonçalves
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux KernelDocker, Inc.
 

What's hot (20)

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

Viewers also liked

Orchestrating Distributed Apps with Docker
Orchestrating Distributed Apps with DockerOrchestrating Distributed Apps with Docker
Orchestrating Distributed Apps with DockerCarl Su
 
TAP-Harness + friends
TAP-Harness + friendsTAP-Harness + friends
TAP-Harness + friendsSteve Purkis
 
Barcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena IntroBarcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena IntroKontena, Inc.
 
Beginners Guide To Kontena
Beginners Guide To KontenaBeginners Guide To Kontena
Beginners Guide To KontenaKontena, Inc.
 
Introduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM'sIntroduction to Docker - What is it and how is it compared to VM's
Introduction to Docker - What is it and how is it compared to VM'sJeremy Haas
 
Recruiting Optimization Roadshow - Mike Podobnik, Medallia
Recruiting Optimization Roadshow - Mike Podobnik, MedalliaRecruiting Optimization Roadshow - Mike Podobnik, Medallia
Recruiting Optimization Roadshow - Mike Podobnik, MedalliaGreenhouseSoftware
 
Deprogramming Gender Bias
Deprogramming Gender Bias Deprogramming Gender Bias
Deprogramming Gender Bias Lauren Jackman
 
Demystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostDemystifying Networking Webinar Series- Routing on the Host
Demystifying Networking Webinar Series- Routing on the HostCumulus Networks
 
Taking a look under the hood of Apache Flink's relational APIs.
Taking a look under the hood of Apache Flink's relational APIs.Taking a look under the hood of Apache Flink's relational APIs.
Taking a look under the hood of Apache Flink's relational APIs.Fabian Hueske
 
Docker Swarm Introduction
Docker Swarm IntroductionDocker Swarm Introduction
Docker Swarm Introductionrajdeep
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 
Docker初识
Docker初识Docker初识
Docker初识hubugui
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Ruoshi Ling
 
JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...
JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...
JavaOne 2016: Code Generation with JavaCompiler for Fun, Speed and Business P...Juan Cruz Nores
 
Running Docker in Production - The Good, the Bad and The Ugly
Running Docker in Production - The Good, the Bad and The UglyRunning Docker in Production - The Good, the Bad and The Ugly
Running Docker in Production - The Good, the Bad and The UglyKontena, Inc.
 
Docker Swarm: Docker Native Clustering
Docker Swarm: Docker Native ClusteringDocker Swarm: Docker Native Clustering
Docker Swarm: Docker Native ClusteringDocker, Inc.
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Virtualization and cloud Computing
Virtualization and cloud ComputingVirtualization and cloud Computing
Virtualization and cloud ComputingRishikese MR
 

Viewers also liked (20)

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

Similar to Microservices using relocatable Docker containers

FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker建澄 吳
 
Networking in Docker Containers
Networking in Docker ContainersNetworking in Docker Containers
Networking in Docker ContainersAttila Kanto
 
NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus Hirofumi Ichihara
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesAdam Hamsik
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetesJuraj Hantak
 
"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016Phil Estes
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingSreenivas Makam
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Matias Lespiau
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksAdrien Blind
 
Kubernetes20151017a
Kubernetes20151017aKubernetes20151017a
Kubernetes20151017aRichard Kuo
 
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...Guillaume Morini
 
Kubernetes networking - basics
Kubernetes networking - basicsKubernetes networking - basics
Kubernetes networking - basicsJuraj Hantak
 
Meetup docker using software defined networks
Meetup docker   using software defined networksMeetup docker   using software defined networks
Meetup docker using software defined networksOCTO Technology
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateJulien Maitrehenry
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingCohesive Networks
 

Similar to Microservices using relocatable Docker containers (20)

FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
FreeSWITCH on Docker
FreeSWITCH on DockerFreeSWITCH on Docker
FreeSWITCH on Docker
 
Networking in Docker Containers
Networking in Docker ContainersNetworking in Docker Containers
Networking in Docker Containers
 
NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus NFV Infrastructure Manager with High Performance Software Switch Lagopus
NFV Infrastructure Manager with High Performance Software Switch Lagopus
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetes
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 
"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016"One network to rule them all" - OpenStack Summit Austin 2016
"One network to rule them all" - OpenStack Summit Austin 2016
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental Networking
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017
 
Introduction to istio
Introduction to istioIntroduction to istio
Introduction to istio
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 
Cont0519
Cont0519Cont0519
Cont0519
 
Kubernetes20151017a
Kubernetes20151017aKubernetes20151017a
Kubernetes20151017a
 
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
DockerCon EU 2018 Workshop: Container Networking for Swarm and Kubernetes in ...
 
Kubernetes networking - basics
Kubernetes networking - basicsKubernetes networking - basics
Kubernetes networking - basics
 
Meetup docker using software defined networks
Meetup docker   using software defined networksMeetup docker   using software defined networks
Meetup docker using software defined networks
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-template
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networking
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.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