OpenStack growth has been impressive over the last past years. It has now a huge codebase and a large community supporting it. However, with the success comes an increased complexity, and both users and developpers are in great difficulty when testing the impact of individual changes on the overall performance. Diving into complex software such as OpenStack is tedious: reliable tools are necessary to ease the efforts of our community and make science as collaborative as possible.
In this spirit, we developed ENOS [1,2,3,4], an integrated framework that relies on container technologies for deploying and evaluating OpenStack on several testbeds. ENOS allows researchers to easily express different configurations, enabling fine-grained investigations of OpenStack services. ENOS collects performance metrics at runtime and stores them for post-mortem analysis and sharing.
From a highlevel point of view, a typical worklow using ENOS is as simple as the following:
The deployment can target several infrastructures including Chameleon Cloud for large experiments or local deployments for development purposes.
For example, to deploy a basic multiple nodes OpenStack cloud you can install enos from pypi, configure it to use Chameleon and launch `enos deploy`. A lease will be created automatically and the required machines will be provisioned automatically. The above has to be performed from a service node that can be either a dedicated Chameleon machine or your local machine.
ENOS allows for different customizations including changes in the topology of the services, or alternative configurations. Several benchmarking tools are included in ENOS like Rally  for control plane testing, Shaker  for data plane testing and OSProfiler  for profiling. System metrics are collected and exposed and query-able using Grafana  and InfluxDB . Metrics and benchmarks reports are available for post-mortem analysis thanks to the backup performed by ENOS.
ENOS has been used in various evaluation of OpenStack presented in several OpenStack related events [11,12, 13]. Everyone is welcome to contribute by submitting patches, reporting issues or simply come and talk on gitter.
The author would like to thank Adrien Lebre for his contributions to this post and Ronan-Alexandre Cherrueau for his much valued work on EnOS.
Type of contribution: software
Author(s): Ronan-Alexandre Cherrueau / Matthieu Simonin
Link to code/repository: https://github.com/BeyondTheClouds/enos
Link to documentation: https://enos.readthedocs.io/
Dependencies: Ansible / Docker
Support email: firstname.lastname@example.org