GPLMT: A Lightweight Experimentation and Testbed ...

24
GPLMT: A Lightweight Experimentation and Testbed Management Framework Chair of Network Architectures and Services TUM Department of Informatics Technical University of Munich (TUM) Matthias Wachs , Nadine Herold , Stephan-A. Posselt, Florian Dold, Georg Carle Heraklion, Greece, March 31, 2016

Transcript of GPLMT: A Lightweight Experimentation and Testbed ...

Page 1: GPLMT: A Lightweight Experimentation and Testbed ...

GPLMT: A Lightweight Experimentation andTestbed Management Framework

Chair of Network Architectures and ServicesTUM Department of InformaticsTechnical University of Munich (TUM)

Matthias Wachs, Nadine Herold, Stephan-A. Posselt, Florian Dold, Georg CarleHeraklion, Greece, March 31, 2016

Page 2: GPLMT: A Lightweight Experimentation and Testbed ...

GPLMTNot yet another testbed control tool . . .

Experiment automation is a valuable tool in research.

Easy deployment

3 simple steps

Easy usage

Experiment description language

Shareable experiments

Encapsulation

Platform independent

SSH connections

GPLMT as a software solution supporting experimentation control flow.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 2

Page 3: GPLMT: A Lightweight Experimentation and Testbed ...

GPLMTNot yet another testbed control tool . . .

Experiment automation is a valuable tool in research.

Easy deployment 3 simple steps

Easy usage Experiment description language

Shareable experiments Encapsulation

Platform independent SSH connections

GPLMT as a software solution supporting experimentation control flow.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 2

Page 4: GPLMT: A Lightweight Experimentation and Testbed ...

Getting started with GPLMTBasic experiment structure

You have to define:

• Who

• is doing what

• and when

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k l i s t s >< / t a s k l i s t s >

<steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 3

Page 5: GPLMT: A Lightweight Experimentation and Testbed ...

Getting started with GPLMTDefining targets

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >

< / t a r g e t s >

< t a s k l i s t s >< / t a s k l i s t s >

<steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 3

Page 6: GPLMT: A Lightweight Experimentation and Testbed ...

Getting started with GPLMTDefining targets

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >

< t a r g e t name= ’A ’ type= ’ ssh ’><user> tes taccoun t< / user><host>A. example< / host>

< / t a r g e t >< / t a r g e t s >

< t a s k l i s t s >< / t a s k l i s t s >

<steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 3

Page 7: GPLMT: A Lightweight Experimentation and Testbed ...

Getting started with GPLMTDefining tasks

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k l i s t s >< t a s k l i s t name= ’ doPing ’>

<seq><run>ping C. example −c 10↪→ < / run>< / seq>

< / t a s k l i s t >< / t a s k l i s t s >

<steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 3

Page 8: GPLMT: A Lightweight Experimentation and Testbed ...

Getting started with GPLMTPutting things together

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >

< t a r g e t name= ’A ’ type= ’ ssh ’>< / t a r g e t s >

< t a s k l i s t s >< t a s k l i s t name= ’ doPing ’>

< / t a s k l i s t s >

<steps><step t a s k l i s t = ’ doPing ’

↪→ t a r g e t s = ’A ’ / >< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 3

Page 9: GPLMT: A Lightweight Experimentation and Testbed ...

Doing some enhancementsA and B are going to ping C at the same time . . .

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >

. . .< / t a r g e t s >

< t a s k s l i s t s >. . .

< / t a s k l i s t s >

<steps><step t a s k l i s t = ’ doPing ’

↪→ t a r g e t s = ’A B ’ / >< / steps>

< / experiment>

• Possible if no other actions are executedtogether and no more ping processes arearound

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 4

Page 10: GPLMT: A Lightweight Experimentation and Testbed ...

Doing some enhancementsA and B are going to ping C at the same time . . .

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >

< t a r g e t name= ’G ’ type= ’ group ’>< t a r g e t r e f = ’A ’ / >< t a r g e t r e f = ’B ’ / >

< / t a r g e t >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><step . . . t a r g e t s = ’G ’ / >

< / steps>< / experiment>

• Better: extend the targets definition with agroup.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 4

Page 11: GPLMT: A Lightweight Experimentation and Testbed ...

Doing some enhancements. . . or one after another in sequence

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><step . . . t a r g e t s = ’A ’ / ><synchonize / ><step . . . t a r g e t s = ’B ’ / >

< / steps>

< / experiment>

• synchronize ’waits’ until all steps arefinished.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 4

Page 12: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowMonitor the experiment

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< t a s k l i s t name= ’ moni tor ’ >

<seq><run>tcpdump − i any↪→ −w t e s t . pcap< / run>< / seq>

< / t a s k l i s t >< / t a s k l i s t s >

<steps><step t a s k l i s t = ’ moni tor ’

↪→ t a r g e t s = ’R ’ / >< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 13: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowHow to collect the results? - Do cleanups!

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>

< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps>< r e g i s t e r−teardown

↪→ t a s k l i s t = ’ x ’ t a r g e t s = ’R ’ / ><step t a s k l i s t = ’ moni tor ’ . . . / >

< / steps>

< / experiment>

• All Teardowns are registered and executeddefinitely at the end.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 14: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowRemember the sychronize?

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps>< r e g i s t e r−teardown . . . / ><step t a s k l i s t = ’ moni tor ’ . . . / ><step . . . t a r g e t s = ’A ’ / ><synchronize t a r g e t s = ’A ’ / ><step . . . t a r g e t s = ’B ’ / >

< / steps>< / experiment>

• Possible: Define Targets to wait for.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 15: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowRemember the sychronize?

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>

< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps>< r e g i s t e r−teardown . . . / ><step t a s k l i s t = ’ moni tor ’

↪→ background= ’ t r ue ’↪→ t a r g e t s = ’R ’ / >

< / steps>< / experiment>

• Better: Define a Background Processexcluded from the Control Flow.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 16: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowMultiple execution of tasks - Do not copy&paste

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><step . . . t a r g e t s = ’A ’ / ><synchronize / ><step . . . t a r g e t s = ’B ’ / ><synchronize / ><step . . . t a r g e t s = ’A ’ / >. . .

< / steps>< / experiment>

• Hopefully, everybody is too lazy to do this.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 17: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowMultiple execution of tasks - Do not copy&paste

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><loop repeat= ’ 5 ’>

<step . . . t a r g e t s = ’A ’ / >

<step . . . t a r g e t s = ’B ’ / >

< / loop>< / steps>

< / experiment>

• All pings are executed in parallel!

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 18: GPLMT: A Lightweight Experimentation and Testbed ...

Having more fun with control flowMultiple execution of tasks - Do not copy&paste

R

Host A

Host B

Host CGPLMT

ping

ping

(1) ping

(2) ping

<experiment>< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><loop repeat= ’ 5 ’>

<step . . . t a r g e t s = ’A ’ / ><synchronize / ><step . . . t a r g e t s = ’B ’ / ><synchronize / >

< / loop>< / steps>

< / experiment>

• The second synchronize is mandatory herebecause of the loop semantic.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 5

Page 19: GPLMT: A Lightweight Experimentation and Testbed ...

For the “lazy” onesUse includes for better modularity and reusability

gplmt

targets

hosts.xml

router.xml

planetLab.xml

tasklists

scan.xml

monitoring.xml

teardowns.xml

experiments

myFirstExperiment.xml

<experiment>< inc lude f i l e = ’ . . / t a r g e t s /

↪→ hosts . xml ’ p r e f i x = ’ h ’ / >< inc lude f i l e = ’ . . / t a s k s l i s t s /

↪→ r o u t e r . xml ’ p r e f i x = ’ r ’ / >< inc lude f i l e = ’ . . / t a s k s l i s t s /

↪→ scan . xml ’ p r e f i x = ’ s ’ / >

< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 6

Page 20: GPLMT: A Lightweight Experimentation and Testbed ...

For the “lazy” onesUse includes for better modularity and reusability

gplmt

targets

hosts.xml

router.xml

planetLab.xml

tasklists

scan.xml

monitoring.xml

teardowns.xml

experiments

myFirstExperiment.xml

<experiment>< inc lude . . . p r e f i x = ’ h ’ / >< inc lude . . . p r e f i x = ’ r ’ / >< inc lude . . . p r e f i x = ’ s ’ / >< t a r g e t s >

< t a r g e t name= ’G ’ type= ’ group ’>< t a r g e t r e f = ’ h .A ’ / >< t a r g e t r e f = ’ h .B ’ / >

< / t a r g e t >< t a r g e t name= ’ a l l ’ type= ’ group ’>

< t a r g e t r e f = ’G ’ / >< t a r g e t r e f = ’ r .R ’ / >

< / t a r g e t >< / t a r g e t s >< t a s k s l i s t s >< / t a s k l i s t s ><steps>< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 6

Page 21: GPLMT: A Lightweight Experimentation and Testbed ...

For the “lazy” onesUse includes for better modularity and reusability

gplmt

targets

hosts.xml

router.xml

planetLab.xml

tasklists

scan.xml

monitoring.xml

teardowns.xml

experiments

myFirstExperiment.xml

<experiment>< inc lude . . . p r e f i x = ’ h ’ / >< inc lude . . . p r e f i x = ’ r ’ / >< inc lude . . . p r e f i x = ’ s ’ / >

< t a r g e t s >< / t a r g e t s >

< t a s k s l i s t s >< / t a s k l i s t s >

<steps><step t a s k l i s t = ’ s . doPing ’

↪→ t a r g e t s = ’ h .A ’ / >< / steps>

< / experiment>

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 6

Page 22: GPLMT: A Lightweight Experimentation and Testbed ...

Additional GPLMT Features in a nutshellA quick and incomplete survey

More on targets:

• Local and PlanetLab targets

• Parametrization via per-target environment variables

More on tasklists:

• Parallel or sequential execution for tasklists

• Error handling strategies for tasklists (stop step, tasklist or experiment)

• Cleanup tasklists are supported

• Timeouts for tasklists

More on steps:

• Time-based loops (during and until)

• Time-triggered step execution (absolute and relative)

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 7

Page 23: GPLMT: A Lightweight Experimentation and Testbed ...

ConclusionWrapping things up

GPLMT is:

• Ready to use

• Open source and free sofware

• Publicly available on GitHub

GPLMT and its experiment definition language provides:

• Easy deployment and usage

• Shareable and reusable experiment definitions

• Platform-independent solutions

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 8

Page 24: GPLMT: A Lightweight Experimentation and Testbed ...

Questions?

Nadine Herold <[email protected]>Matthias Wachs <[email protected]>

What’s next? – Give GPLMT a try:

https://github.com/docmalloc/gplmt/

Feedback, experiences and improvements are welcome!

Acknowledgments: This work has been supported by the German Federal Ministry of Education and Research (BMBF)under support code 16KIS0145, project SURF.

Nadine Herold (TUM) | PAM 2016 | GPLMT: A Lightweight Experimentation and Testbed Management Framework 9