Employing open source software for RBEE Regression Benchmarking Execution Environment
We introduce our Regression Benchmarking Execution Environment (RBEE) approach. Based on self-contained systems (SCS), RBEE is separated into several independent systems which can both, be scaled and replaced independently. RBEE requires only a running container infrastructure (Docker) including a cluster manager (Docker Swarm) for operating the corresponding SCSs. Prebuilt container images are provided for each SCS. For collecting monitoring data, we are employing the Kieker Monitoring Framework. Therefor we extended Kieker to store its monitoring data directly in RBEE’s write-optimized storage (Apache Cassandra). Within RBEE itself we are using readoptimized storage (Elasticsearch). Using polyglot persistence as well as polyglot programming, each SCS of the RBEE approach uses data storage and programming languages which best fit to its requirements. In addition, there are transformation processes between read- and write-optimized storage. Communication among the different SCS takes place via a separate communication backend (RabbitMQ, REST) and well-defined communication APIs. Data stored within the SCS is not persistent. Hence, benchmark results are stored within a separate benchmark result repository in a traditional virtual machine detached from the container infrastructure. Each SCS contains an own user interface for system management, but for overall system monitoring and visualization RBEE provides a central control center. RBEE will be published as open source software (rbee.io).