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 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
pip install enoslib[jupyter]
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.