Split and Migrate: Resource-Driven Placement and Discovery of Microservices at the Edge

Genc Tato, Marin Bertier, Etienne Rivière, Cédric Tedeschi, Michael Wagner
2020 International Conference on Principles of Distributed Systems  
Microservices architectures combine the use of fine-grained and independently-scalable services with lightweight communication protocols, such as REST calls over HTTP. Microservices bring flexibility to the development and deployment of application back-ends in the cloud. Applications such as collaborative editing tools require frequent interactions between the frontend running on users' machines and a back-end formed of multiple microservices. User-perceived latencies depend on their
more » ... to microservices, but also on the interaction patterns between these services and their databases. Placing services at the edge of the network, closer to the users, is necessary to reduce user-perceived latencies. It is however difficult to decide on the placement of complete stateful microservices at one specific core or edge location without trading between a latency reduction for some users and a latency increase for the others. We present how to dynamically deploy microservices on a combination of core and edge resources to systematically reduce user-perceived latencies. Our approach enables the split of stateful microservices, and the placement of the resulting splits on appropriate core and edge sites. Koala, a decentralized and resource-driven service discovery middleware, enables REST calls to reach and use the appropriate split, with only minimal changes to a legacy microservices application. Locality awareness using network coordinates further enables to automatically migrate services split and follow the location of the users. We confirm the effectiveness of our approach with a full prototype and an application to ShareLatex, a microservices-based collaborative editing application.
doi:10.4230/lipics.opodis.2019.9 dblp:conf/opodis/TatoBRT19 fatcat:oeeok4xbwjc7zcq56qortowrsi