EnOSlib: Surviving the ☆homoterogeneous☆ world#
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 your 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.
EnOSlib has been initially developed in the context of the Discovery initiative and is released under the GPLv3 licence. It’s a library written in Python: you are free to import it in your code and cherry-pick any of its functions.
You can install EnOSlib with pip:
pip install enoslib # If you are a Jupyter User pip install enoslib[jupyter]
For developping EnOSlib or get the in development version:
git clone https://gitlab.inria.fr/discovery/enoslib.git cd enoslib && pip install -U -e .
At a glance#
The tip of the Iceberg featuring Grid’5000 testbed and a dummy benchmark.