Skip to content

klementc/internship_simgrid

 
 

Repository files navigation

Simgrid elasticity

This repo extends the work of sbihel during his internship. Based on this code, we try to add elastic task representation adapted to microservice systems.

Loads used for testing purposes have been generated by LIMBO, a synthetic load generator (LIMBO pesentation).

You can produce jaeger traces if enabled in the cmake config.

Concepts

  • [X] ElasticTaskManager and TaskInstances: abstract representation of a cpu intensive microservice (more on I/O to come in the future)
  • [X] Datasources generate a flow of requests to be sent to a microservice
  • [X] Microservices interaction: a DAG structure can be manually or automatically generated to mimic the behaviour of a real application.
  • [X] Automatic code generation: to obtain more easily your simulator, we propose some tools (see the `script` directory) to transpose the structure of a real application directly into a simulator without having to code it by yourself, which becomes tedious when dependencies are complex). Note that the outputted simulator is a “simplified” representation of the real application.
  • [-] ElasticPolicy: is connected to one or more ElasticTaskManager(s) and is responsible for implementing the elastic policy. None of those have been validated.

Future

  • Validation work
  • Integrate with opentelemetry to allow the export of metrics like cpu usage
  • Use I/Os

About

Simgrid + Microservices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 49.5%
  • Python 36.0%
  • CMake 7.6%
  • Shell 3.4%
  • R 2.9%
  • Awk 0.6%