Blueprint-uServices / blueprint

Blueprint Microservices Compiler: Flexible and Configurable Open-Source Microservice Benchmark Applications
https://blueprint-uservices.github.io
BSD 3-Clause "New" or "Revised" License
21 stars 5 forks source link

[Replication] Implement replication namespaces #120

Open JonathanMace opened 11 months ago

JonathanMace commented 11 months ago

The ideal way of implementing service replication within Blueprint's compiler is using namespaces, rather than explicitly instantiating service instances. Ultimately, for horizontal auto-scaling, namespaces will be the only way of implementing this within Blueprint's compiler.

We want to add this kind of replication, and probably also make use of it with Kubernetes auto-scaling.

alessandrocornacchia commented 4 months ago

Thanks for your dedication to this project, it's really cool! Is replication / horizontal-autoscaling something currently implemented? The Blueprint paper seems to refer (for UC2) to an experiment with replication. However while playing with the sample applications, I don't find an obvious way/plugin to handle container replication and load balancing across container replicas.

Thanks!

vaastav commented 4 months ago

Hey @alessandrocornacchia, the replication we refer to in the paper is about mongodb replication where there is a primary and a replica for the database. I don't think we have ported that option for the mongodb plugin yet from the previous version of Blueprint.

Currently Blueprint doesn't have a plugin implemented for load balancing or container replication. We are in the process of implementing them via the Kubernetes plugin which could support horizontal scaling + load balancing. We also have a WIP branch for a dedicated replication + load-balancing plugin that is not tied to a specific deployment framework.