docker buenos aires - microservices using relocatable docker containers

Download Docker Buenos Aires - microservices using relocatable docker containers

Post on 09-Aug-2015




3 download

Embed Size (px)


  1. 1. Medallia Copyright 2015. 1
  2. 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 2015-05-21 Bienvenidos!!!
  3. 3. Medallia Copyright 2015. 3 Docker 101
  4. 4. Medallia Copyright 2015. 4 Problem: Matrix from Hell
  5. 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. 6. Medallia Copyright 2015. 6 Lightweight Virtual Machine
  7. 7. Medallia Copyright 2015. 7 Docker Containerization for the masses Docker Container Linux cgroups Linux namespaces Images (Layered FS)
  8. 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. 9. Medallia Copyright 2015. 9 Checkout and have fun!
  10. 10. Medallia Copyright 2015. 10 Microservices using relocatable Docker containers Thorvald Natvig ( Mauricio Garavaglia (
  11. 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. 12. Medallia Copyright 2015. 12 Problem to Solve Today Relocating non-movable services DataCenter Firewall Host: Host: nginx Host: zookeeper application
  13. 13. Medallia Copyright 2015. 13 Docker Bridged Networking Model host1 container 1 eth0 docker0 veth0 veth1
  14. 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 via eth0 in container. Adds route to container IP via veth0 in the host. Docker fork new strategy
  15. 15. Medallia Copyright 2015. 15 OSPF Area host1% ip route dev veth0 ... Docker* Routed Networking Model eth0 veth0 container-A % ip route default eth0 eth0 host2 host3 hostN switch
  16. 16. Medallia Copyright 2015. 16 Route to Infrastructure Spine Leaf Server
  17. 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. 18. Medallia Copyright 2015. 18 Running a Container using the routed strategy % docker run -it --net=routed --ip-address= ubuntu (Will likely change to use labels...)
  19. 19. Medallia Copyright 2015. 19 demo!
  20. 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. LibNetwork
  21. 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. 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. 23. Medallia Copyright 2015. 23 Leaf Switch /etc/network/interfaces Server /etc/network/interfaces auto lo iface lo inet loopback address %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 %endfor auto lo iface lo inet loopback auto data0 iface data0 inet static mtu 9000 address netmask gateway How difficult is the network config? To Servers To Spines To Leaf
  24. 24. Medallia Copyright 2015. 24 Leaf/Spine Switch ospfd.conf Server ospfd.conf router ospf ospf router-id network area ! interface swp1 ip ospf network point-to-point ! interface swp2 ip ospf network point-to-point ! . ! Bootstrap Config router ospf ospf router-id redistribute kernel passive-interface default no passive-interface data0 network area ! log syslog ! interface data0 ip ospf network point-to-point ! How difficult is the network config?
  25. 25. Medallia Copyright 2015. 25 Good enough 24-39 Gbit/s (core affinity) 13us ICMP ping Performance
  26. 26. Medallia Copyright 2015. 26 Local Development With Style IP Mobility on Local Laptop Allow for easy and rapid development Boot2Docker
  27. 27. Medallia Copyright 2015. 27 Boot2Docker on OSX My MacBook Boot2Docker VM frontend on 8080 backed (date) on 9999 lo0: backend My Shell
  28. 28. Medallia Copyright 2015. 28 Checkout and have fun!
  29. 29. Medallia Copyright 2015. 29 Questions?
  30. 30. Medallia Copyright 2015. 30 Jueves 28 de Mayo