EnOSlib: Surviving the ☆homoterogeneous☆ world#

Code Doc Build Status License Pypi Pepy Chat SW

What the ☆homoterogeneous☆ ?#

Distributed systems practitioners on bare-metal testbeds know it: resources (e.g. computes, networks) on a bare-metal infrastructure may have these slight differences between each other that experimental code can become hairy. For such code, achieving practical portability (e.g changing the infrastructure parameters) is thus a tedious time consuming task.

☆Homoterogeneous☆ has been coined to express the gap between the idea we have of a computing infrastructure, where resources have static/predictable setup, and the reality of interacting with them on a daily basis.

In this context, EnOSlib smoothes the experimental code and can

  • deal with various platforms (e.g. local machine, scientific testbed, virtualized environments)

  • interact programmatically with different remote resources: compute (servers, containers) and networks (ipv4, ipv6)

  • deploy ready-to-use experimentation services (e.g instrumentation, observability tools).

  • emulate complex network topologies (e.g for your FOG experiments)

  • integrate your code with interactive development environment like Jupyter.

Multi Testbeds

Make your experiment span one or more testbeds like Grid’5000, IOTlab, Chameleon.

tutorials/index.html

Jupyter Ready

Control your experiments from Jupyter. Ideal for lab class.

jupyter/index.html

Reproducibility

EnOSlib helps you design reproducible experiments.

tutorials/reproducibility.html

Ansible Integration

Conveniently write Ansible code in Python.

tutorials/ansible-integration.html

Services

EnOSlib is shipped with various facilities for your experiments.

apidoc/netem.html

Open Source

EnOSlib is licensed under the GPLv3.

https://gitlab.inria.fr/discovery/enoslib/

Packages

pip install enoslib

pip install enoslib[jupyter]

guix install python-enoslib

https://pypi.org/project/enoslib/

Community

Come say Hi in our chat room :)

https://framateam.org/enoslib

At a glance#

The tip of the Iceberg featuring Grid’5000 testbed and a dummy benchmark.