SeMoDe is a research prototype investigating different aspects of Serverless computing. The idea is the combination between a simulation and benchmarking environment as already published. Also further research interests, like performance measurement etc., are integrated in this tool to provide a cli tool for different purposes and platforms.
The tool itself is in an early stage and needs feedback and participation of the GitHub community. Feel free to contribute :)
- Install Docker on your machine to be able to use the simulation and benchmarking facility.
- For AWS Lambda, create an AWS account and install the CLI.
- Run
npm install
insrc/main/resources/static/js
- Run
docker-compose up
to start the PostgreSQL database - Run
gradlew bootRun
to start the prototype and access the front page via `http://localhost:8080/setups
introduced in V0.4.
This feature computes a linear regression of your used hardware when working on Linux OS. To run the hardware calibration go to the root directory of this project and execute the following commands.
./gradlew bootJar
java -jar -Dspring.main.web-application-type=NONE build/libs/SeMoDe-*.jar hardwareCalibration
This will run the Spring Boot application in CLI mode without starting a web server.
You can configure the calibration via the following properties, default configuration is also specified here:
-Dsemode.hardware.runs=3 # default is 1 - number how often the calibration is executed before computing a linear regression
-Dsemode.hardware.steps=0.4 # default is 0.1 - increments (cpus) which are used to invoke the LINPACK benchmark
Introduced in V1.1.
Since we use a custom response object to generate data about the VM identification in the cloud, the executing machine
and other metadata, we included templates
in the corresponding folder for AWS lambda functions implemented in Java and
JS. When using these templates, a user can benefit from the data collection process and is able to get the most our of
their data.
- Simulation idea applied to open source platforms (tag v1.2)
Manner, J., Wirtz, G.: Resource Scaling Strategies for Open-Source FaaS Platforms compared to Commercial Cloud Offerings Proceedings of the IEEE International Conference on Cloud Computing (CLOUD), Barcelona, Spain, July 11 - July 16 2022. - Major contribution to reach the simulation goal (tag v0.3)
Manner, J., Endreß, M., Böhm, S. and Wirtz, G.: Optimizing Cloud Function Configuration via Local Simulations Proceedings of the IEEE International Conference on Cloud Computing (CLOUD), online virtual congress, 5-10 September 2021 - Interesting work on the CPU frequency scaling on modern Intel CPUs and their Impact on the system's performance (
tag v0.4)
Manner, J. and Wirtz, G.: Why Many Benchmarks Might Be Compromised Proceedings of the 15th IEEE International Conference on Service-Oriented System Engineering, Oxford, UK (online), 23-26 August 2021 - Overall idea of the research prototype and roadmap:
Manner, J.: Towards Performance and Cost Simulation in Function as a Service Proceedings of the 11th Central European Workshop on Services and their Composition (ZEUS), Bayreuth, Germany, February, 15, 2019. - Related Work for Application Load and their potential impact on FaaS (tag summersoc13):
Manner, J. and Wirtz, G.: Impact of Application Load in Function as a Service Proceedings of the 13th Symposium and Summer School On Service-Oriented Computing (SummerSoC), Crete, Greece, June, 17-21, 2019. - Cold Start Investigation on AWS Lambda and Micorsoft Azure for Java and Javascript (tag wosc4):
Manner, J., Endreß, M., Heckel, T., Wirtz, G.: Cold Start Influencing Factors in Function as a Service Proceedings of the 4th Workshop on Serverless Computing (WoSC), Zurich, Switzerland, December, 20, 2018. - A first contribution to Monitoring and Debugging (intrusive approach)
Manner, J., Kolb, S., Wirtz, G.: Troubeshooting Serverless Functions: A Combined Monitoring and Debugging Approach Proceedings of the 12th Summer School on Service Oriented Computing, Crete, Greece, June 25 - June 29, 2018.