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.

Jupyter Ready

Control your experiments from Jupyter. Ideal for lab class.

Reproducibility

EnOSlib helps you design reproducible experiments.

Ansible Integration

Conveniently write Ansible code in Python.

Services

EnOSlib is shipped with various facilities for your experiments.

Open Source

EnOSlib is licensed under the GPLv3.

Packages

pip install enoslib

guix install python-enoslib

Community

Come say Hi in our chat room :)

At a glance#

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