supporting docker in emulab-based network …...supporting docker in emulab-based network testbeds...

73
Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah

Upload: others

Post on 20-May-2020

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Supporting Docker inEmulab-Based Network Testbeds

DavidJohnson,ElijahGrubb,EricEideUniversityofUtah

Page 2: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�2

Page 3: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�2

Page 4: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�2

Page 5: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�2

Page 6: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 7: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 8: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 9: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 10: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 11: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

• overthecourseofastudy…

• prototypeonlaptop

• networktestbed

• commercialcloud

• needtomoveexperimental artifactsaround

�3

Page 12: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

This talk

• extendedEmulabsouserscancreateexperimentsinwhichsomeorallnodesareDockercontainers

• challenges• preservingusers’“testbedexperience”• meshingwithEmulab’sinfrastructure

• results• justworks:52/60topDockerHubimagesautomaticallyadapted• supportslarge(5K-node)experiments

�4

Page 13: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Docker

�5

Page 14: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Docker

• basedoncontainers

• filesystemspopulatedviaimages

�5

PhysicalHostHostOSDocker

Container

Filesystem

App

Page 15: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Docker

• basedoncontainers

• filesystemspopulatedviaimages

• imagescreatedviaDockerfiles

�5

PhysicalHostHostOSDocker

Container

Filesystem

App

ImageDockerfile

Page 16: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Emulab

• testbedmanagementsoftware

• allocatesphysicaland virtualresourcestousers

• configuresresources

• isolatesusersfromeach other

�6

Page 17: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Emulab

�7

Page 18: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Emulab

• organizedaroundprofiles

• profilesareinstantiated tomakeexperiments

�7

Profile

Page 19: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Emulab

• organizedaroundprofiles

• profilesareinstantiated tomakeexperiments

• nodes’diskspopulatedviadiskimages

�7

Profile

Page 20: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Emulab

• organizedaroundprofiles

• profilesareinstantiated tomakeexperiments

• nodes’diskspopulatedviadiskimages

• in-experimentservices

�7

Profile Diskimages

Page 21: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Goal: Emulab + Docker should “just work”

�8

Page 22: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Goal: Emulab + Docker should “just work”

• containersinEmulabarejustanotherkind ofvirtualnode

�8

Dockerimages

Page 23: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Goal: Emulab + Docker should “just work”

• containersinEmulabarejustanotherkind ofvirtualnode• EmulabusercanchooseanyDockerimage

• preserveEmulab’sexperimenterservices• e.g.,SSH,local/remotestorageaccess,…

�8

Dockerimages

Page 24: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Goal: Emulab + Docker should “just work”

• containersinEmulabarejustanotherkind ofvirtualnode• EmulabusercanchooseanyDockerimage

• preserveEmulab’sexperimenterservices• e.g.,SSH,local/remotestorageaccess,…

• preserveEmulab’snetworkservices• e.g.,controlnetwork,trafficshaping,…

�8

Dockerimages

Page 25: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Goal: Emulab + Docker should “just work”

• containersinEmulabarejustanotherkind ofvirtualnode• EmulabusercanchooseanyDockerimage

• preserveEmulab’sexperimenterservices• e.g.,SSH,local/remotestorageaccess,…

• preserveEmulab’snetworkservices• e.g.,controlnetwork,trafficshaping,…

• preserveDockeruserexperience• e.g.,“dockercommit”

�8

Dockerimages

Page 26: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�9

httpd:latest

Page 27: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Preserving Emulab’s experimenter services

• shellaccesstonodes

• remoteandlocalstorage

• networkconfiguration• addressing,routing,shaping

• startupprograms

�10

Page 28: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Preserving Emulab’s experimenter services

• shellaccesstonodes

• remoteandlocalstorage

• networkconfiguration• addressing,routing,shaping

• startupprograms

• typicalDockerimagesareminimalappliances

• runtheapplicationonly• notpreparedtohostotherservices

�10

httpd:latest

Page 29: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

augmentation

generateanewDockerfile,startingfromtheuser’schosenimage,

andaddingtestbedsoftware

Page 30: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

�12

httpd:latest

Page 31: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer

�12

httpd:latest

Container

Page 32: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain

�12

httpd:latest

Containerbuildtools

Page 33: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit

�12

httpd:latest

Containerbuildtools

runit

Page 34: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit

�12

httpd:latest

Containerbuildtools

runit

runit

Page 35: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit

�12

httpd:latest

runit

Page 36: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit

�12

httpd:latest

runit

FROMhttpd:latest

COPY…runit…RUN…runit-setup…

Page 37: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit• addDockerfileinstructionstoinstallrunit

�12

httpd:latest

runit

FROMhttpd:latest

COPY…runit…RUN…runit-setup…

Page 38: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit• addDockerfileinstructionstoinstallrunit• configurerunittoruntheoriginalENTRYPOINT

�12

httpd:latest

runit

FROMhttpd:latest

COPY…runit…RUN…runit-setup…

Page 39: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Augment the startup

• maketemporarycontainer• addbuildtoolchain• compileandpackagerunit• addDockerfileinstructionstoinstallrunit• configurerunittoruntheoriginalENTRYPOINT• whenaugmentedimageisused,setENTRYPOINTtorunit

�12

httpd:latest

runit

FROMhttpd:latest

COPY…runit…RUN…runit-setup…

Page 40: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Add the Emulab “client-side” software

• maketemporarycontainer• compileandpackageEmulabclient-sidesoftware• addDockerfileinstructionstoinstallthesoftware

• user-selectablelevelsofaugmentation

�13

FROMhttpd:latest

COPY…RUN…runit-setup…&&…emulab-setup…

Page 41: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Local registry

�14

Dockerregistry

Page 42: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Local registry

• cacheaugmentedimagesinatestbed-localDockerregistry

• speedssubsequentexperimentcreation

• integratedwithEmulab’suserauthentication&authorizationmodel

�14

Dockerregistry

httpd:latest perl:5.28

redis:4.0 node:8.11.3

mysql:5.7 erlang:21.0

Page 43: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Preserving Emulab’s network services

• separatecontrolnetwork

• experimenttrafficshaping

• control-networkfirewalls

• DNS

�15

Page 44: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Preserving Emulab’s network services

• separatecontrolnetwork

• experimenttrafficshaping

• control-networkfirewalls

• DNS

• Docker’sContainerNetworkModel(CNM)ismismatchedtodemandsofanetworktestbed

• tooabstract

• triestocontroltoomuch

• missingfeatures

�15

Page 45: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

leverage the physical host

managenetworkservicesonthephysical-hostsideof

containers’virtualnetworkinterfaces

Page 46: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Control network

�17

PhysicalHost

physicalcontrolnetwork

Page 47: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Control network

• atphysical-hostboot• createdockercnetvirtualnetwork

• bridgetothephysicalcontrolnetwork

�17

PhysicalHost

dockercnet

physicalcontrolnetwork

Page 48: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Control network

• atphysical-hostboot• createdockercnetvirtualnetwork

• bridgetothephysicalcontrolnetwork

• atcontainerstartup• connecttodockercnet• setupNATtoexposeSSHoverthephysicalhost’spublicIPaddress

�17

PhysicalHost

Container Container Container

dockercnet

physicalcontrolnetwork

Page 49: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Traffic shaping and firewalls

�18

PhysicalHost

dockercnet

controlnetwork

experimentnetworks

Page 50: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Traffic shaping and firewalls

• Emulabsubscribestolife-cycleeventsofeachcontainer

• atcontainerstartup• installtcrulesforexpt.-networktrafficshaping

• installiptablesrulesforcontrol-networkfirewalling

�18

PhysicalHost

dockercnet

controlnetwork

experimentnetworks

Page 51: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Traffic shaping and firewalls

• Emulabsubscribestolife-cycleeventsofeachcontainer

• atcontainerstartup• installtcrulesforexpt.-networktrafficshaping

• installiptablesrulesforcontrol-networkfirewalling

• atcontainershutdown• removetherules

�18

PhysicalHost

Container Container Container

dockercnet

controlnetwork

experimentnetworks

firewall

shaping

Page 52: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Dedicated and shared modes

�19

PhysicalHost

Container Container Container

experimentnetworks

Page 53: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Dedicated and shared modes

• dedicated—containersrunonphysicalmachinereservedtooneexperiment

�19

PhysicalHost

Experiment

Container Container Container

experimentnetworks

Page 54: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Dedicated and shared modes

• dedicated—containersrunonphysicalmachinereservedtooneexperiment• shared—physicalmachinemayhostcontainersfromseveralexperiments

�19

PhysicalHost

Expt.1 Expt.2

Container Container Container

experimentnetworks

Page 55: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Dedicated and shared modes

• dedicated—containersrunonphysicalmachinereservedtooneexperiment• shared—physicalmachinemayhostcontainersfromseveralexperiments

�19

PhysicalHost

Expt.1 Expt.2

Container Container Container

experimentnetworks

192.168

.1.1

192.168

.1.1

Page 56: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Dedicated and shared modes

• dedicated—containersrunonphysicalmachinereservedtooneexperiment• shared—physicalmachinemayhostcontainersfromseveralexperiments

• wemodifiedDockertosupportmultiple,isolatedlayer2netsonasinglephysicalhost

�19

PhysicalHost

Expt.1 Expt.2

Container Container Container

experimentnetworks

192.168

.1.1

192.168

.1.1

Page 57: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Implemented & deployed

• supportedOSes• AlpineLinux3.6,3.7,3.8• CentOS7• Debian8,9,sid• Ubuntu14.04,16.04,18.04

• registriesat

�20

Page 58: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

evaluation•60mostpopularimagesfromDockerHub

•fourresearchDockerimages•timetoaugmentDockerimages•timetocreatelargeexperiments

Page 59: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�22

Category DockerImages

Linuxdistro alpine,centos,debian,ubuntu,amazonlinux,busybox,fedora

Debian buildpack-deps,cassandra,chronograf,drupal,elasticsearch,ghost,golang,gradle,groovy,haproxy,httpd,influxdb,java,jenkins,jruby,kibana,logstash,mariadb,maven,memcached,mongo,mysql,nextcloud,nginx,node,openjdk,owncloud,percona,perl,php,postgres,python,rabbitmq,redis,rethinkdb,rocket.chat,ruby,sentry,solr,sonarqube,tomcat,wordpress,telegraf

Alpine consul,docker,kong,neo4j,vault,registry

Scratch hello-world,nats,swarm,traefik

Page 60: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�22

Category DockerImages

Linuxdistro alpine,centos,debian,ubuntu,amazonlinux,busybox,fedora

Debian buildpack-deps,cassandra,chronograf,drupal,elasticsearch,ghost,golang,gradle,groovy,haproxy,httpd,influxdb,java,jenkins,jruby,kibana,logstash,mariadb,maven,memcached,mongo,mysql,nextcloud,nginx,node,openjdk,owncloud,percona,perl,php,postgres,python,rabbitmq,redis,rethinkdb,rocket.chat,ruby,sentry,solr,sonarqube,tomcat,wordpress,telegraf

Alpine consul,docker,kong,neo4j,vault,registry

Scratch hello-world,nats,swarm,traefik

fullysupportedpartiallysupportednotsupported

Page 61: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�23

Category DockerImages

Linuxdistro alpine,centos,debian,ubuntu,amazonlinux,busybox,fedora

Debian buildpack-deps,cassandra,chronograf,drupal,elasticsearch,ghost,golang,gradle,groovy,haproxy,httpd,influxdb,java,jenkins,jruby,kibana,logstash,mariadb,maven,memcached,mongo,mysql,nextcloud,nginx,node,openjdk,owncloud,percona,perl,php,postgres,python,rabbitmq,redis,rethinkdb,rocket.chat,ruby,sentry,solr,sonarqube,tomcat,wordpress,telegraf

Alpine consul,docker,kong,neo4j,vault,registry

Scratch hello-world,nats,swarm,traefik

fullysupportedpartiallysupportednotsupported

Page 62: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�23

Category DockerImages

Linuxdistro alpine,centos,debian,ubuntu,amazonlinux,busybox,fedora

Debian buildpack-deps,cassandra,chronograf,drupal,elasticsearch,ghost,golang,gradle,groovy,haproxy,httpd,influxdb,java,jenkins,jruby,kibana,logstash,mariadb,maven,memcached,mongo,mysql,nextcloud,nginx,node,openjdk,owncloud,percona,perl,php,postgres,python,rabbitmq,redis,rethinkdb,rocket.chat,ruby,sentry,solr,sonarqube,tomcat,wordpress,telegraf

Alpine consul,docker,kong,neo4j,vault,registry

Scratch hello-world,nats,swarm,traefik

fullysupportedpartiallysupportednotsupported

Emulabautomaticallyadapted52/60imagesintothetestbedenvironmentandinstantiatedcontainersfromthem.

Page 63: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Scalability

• createlargeexperimentswithDockercontainers

• ineachtrial• 200containersperphysicalhost• eachcontainerrunsaugmentedubuntu:14.04imagefromtestbed’slocalregistry

• allcontainersattachedtoaLAN

• physicalhosts:CloudLabxl170nodesrunningUbuntu16.04

�24

Page 64: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Scalability

• createlargeexperimentswithDockercontainers

• ineachtrial• 200containersperphysicalhost• eachcontainerrunsaugmentedubuntu:14.04imagefromtestbed’slocalregistry

• allcontainersattachedtoaLAN

• physicalhosts:CloudLabxl170nodesrunningUbuntu16.04

• 1–25physicalhosts• yielding200–5,000containers

�24

Page 65: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Scalability

• createlargeexperimentswithDockercontainers

• ineachtrial• 200containersperphysicalhost• eachcontainerrunsaugmentedubuntu:14.04imagefromtestbed’slocalregistry

• allcontainersattachedtoaLAN

• physicalhosts:CloudLabxl170nodesrunningUbuntu16.04

• 1–25physicalhosts• yielding200–5,000containers

• measure• elapsedtimetofirstcontainer• avg.creationtimeforeachcontainerafterthefirst

• elapsedtimetocreateallcontainersoneachphysicalhost

• elapsedtimetocreatefullexpt.

�24

Page 66: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Scalability

• createlargeexperimentswithDockercontainers

• ineachtrial• 200containersperphysicalhost• eachcontainerrunsaugmentedubuntu:14.04imagefromtestbed’slocalregistry

• allcontainersattachedtoaLAN

• physicalhosts:CloudLabxl170nodesrunningUbuntu16.04

• 1–25physicalhosts• yielding200–5,000containers

• measure• elapsedtimetofirstcontainer• avg.creationtimeforeachcontainerafterthefirst

• elapsedtimetocreateallcontainersoneachphysicalhost

• elapsedtimetocreatefullexpt.

• repeateachtrial3×,reportavgs.

�24

Page 67: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

Page 68: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

200containers 14minutes

Page 69: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

200containers 14minutes

5,000containers 1.87hours

Page 70: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

200containers 14minutes

5,000containers 1.87hours

Conclusion:acceptableperformance,butmoreserver-sideoptimizationwillbeneededforlargeexperiments.

Page 71: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

parallelized

Page 72: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

�25

one-timesetup

Page 73: Supporting Docker in Emulab-Based Network …...Supporting Docker in Emulab-Based Network Testbeds David Johnson, Elijah Grubb, Eric Eide University of Utah 2 2 2 2 • over the course

Conclusion

• Emulab+Docker“justworks”• experimenterservices—automaticaugmentation• networkservices—physicalhostcontrol&minorDockermods

• supportsexistingDockerimages• promotesartifactportability• promotesresearchrepeatability

• availableinEmulab-basedtestbedsnow!

�26

EricEidewww.cs.utah.edu/~eeide/email:[email protected]:@eeide