platform
platform copied to clipboard
Make it possible to run benchmarks in local / custom environments
At present, it is difficult if not impossible to run a benchmark and/or reuse its components outside of the platform.
The essential concept to facilitate this issue is to use dependency injection.
Although a solution to this issue must be:
- compatible with all existing benchmarks
- guarantee that any new component written to these practices is compatible with the platform
At a minimum the following parts have to be revised in order to achieve this goal:
- The documentation on how to create benchmarks and benchmark components has to be revised with the best practices about how benchmark implementers
- The hobbit-core project must provide the appropriate abstractions and building blocks
In https://github.com/hobbit-project/sml-benchmark there is a bunch of code, which emulates the online-platform behavior (dockerizes rabbitMq, benchmarkController and systemController) and allows to debug benchmark/system locally. RabbitMqDockerizer.java, Dockerizer.java may be helpful, others duplicates platformController logic I suppose.
I believe https://github.com/hobbit-project/java-sdk and https://github.com/hobbit-project/java-sdk-example are results of that. I would like to see a more templateable example, however, maybe even as a Maven Archetype.
https://github.com/dice-group/orca is another example of java-sdk usage.