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

Authors Genc Tato, Marin Bertier, Etienne Rivière, Cédric Tedeschi

Thumbnail PDF


  • Filesize: 0.71 MB
  • 16 pages

Document Identifiers

Author Details

Genc Tato
  • Univ Rennes, Inria, CNRS, IRISA, France
Marin Bertier
  • Univ Rennes, Inria, CNRS, IRISA, France
  • INSA Rennes, France
Etienne Rivière
  • UCLouvain, Belgium
Cédric Tedeschi
  • Univ Rennes, Inria, CNRS, IRISA, France


We thank the anonymous reviewers for their comments. This work was partially funded by the Belgian FNRS project DAPOCA (33694591) and partly supported by the Inria Project Lab program Discovery (http://beyondtheclouds.github.io/).

Cite AsGet BibTex

Genc Tato, Marin Bertier, Etienne Rivière, and Cédric Tedeschi. Split and Migrate: Resource-Driven Placement and Discovery of Microservices at the Edge. In 23rd International Conference on Principles of Distributed Systems (OPODIS 2019). Leibniz International Proceedings in Informatics (LIPIcs), Volume 153, pp. 9:1-9:16, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


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 front-end running on users' machines and a back-end formed of multiple microservices. User-perceived latencies depend on their connection 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.

Subject Classification

ACM Subject Classification
  • Information systems → Distributed storage
  • Information systems → Service discovery and interfaces
  • Computer systems organization → Cloud computing
  • Distributed applications
  • Microservices
  • State management
  • Edge computing


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Locust: An open source load testing tool. URL: https://www.locust.io.
  2. Airbnb. SmartStack Service Discovery in the Cloud. URL: https://bit.ly/2SAvRHn.
  3. Hagit Attiya, Sebastian Burckhardt, Alexey Gotsman, Adam Morrison, Hongseok Yang, and Marek Zawirski. Specification and complexity of collaborative text editing. In ACM Symposium on Principles of Distributed Computing, PODC. ACM, 2016. Google Scholar
  4. Chen Avin, Andreas Loukas, Maciej Pacut, and Stefan Schmid. Online balanced repartitioning. In International Symposium on Distributed Computing, DISC. Springer, 2016. Google Scholar
  5. Daniel Balouek, Alexandra Carpen Amarie, Ghislain Charrier, Frédéric Desprez, Emmanuel Jeannot, Emmanuel Jeanvoine, Adrien Lèbre, David Margery, Nicolas Niclausse, Lucas Nussbaum, Olivier Richard, Christian Pérez, Flavien Quesnel, Cyril Rohr, and Luc Sarzyniec. Adding Virtualization Capabilities to the Grid'5000 Testbed. In Cloud Computing and Services Science, volume 367 of Communications in Computer and Information Science. Springer, 2013. Google Scholar
  6. Raphaël Barazzutti, Thomas Heinze, André Martin, Emanuel Onica, Pascal Felber, Christof Fetzer, Zbigniew Jerzak, Marcelo Pasin, and Etienne Rivière. Elastic scaling of a high-throughput content-based publish/subscribe engine. In 34th International Conference on Distributed Computing Systems, ICDCS. IEEE, 2014. Google Scholar
  7. David Bernstein. Containers and cloud: From LXC to Docker to Kubernetes. IEEE Cloud Computing, 1(3):81-84, 2014. Google Scholar
  8. Dominic Betts, Julian Dominguez, Grigori Melnik, Fernando Simonazzi, and Mani Subramanian. Exploring CQRS and Event Sourcing: A journey into high scalability, availability, and maintainability with Windows Azure. Microsoft patterns & practices, 2013. Google Scholar
  9. Fabienne Boyer, Xavier Etchevers, Noël De Palma, and Xinxiu Tao. Architecture-Based Automated Updates of Distributed Microservices. In International Conference on Service-Oriented Computing, ICSOC. Springer, 2018. Google Scholar
  10. Cloud Native Computing Foundation. Kubernetes. URL: https://kubernetes.io/.
  11. CoreOS. Etcd reliable key-value store. URL: https://coreos.com/etcd/.
  12. Alexandre da Silva Veith, Marcos Dias de Assuncao, and Laurent Lefevre. Latency-Aware Placement of Data Stream Analytics on Edge Computing. In International Conference on Service-Oriented Computing, ICSOC. Springer, 2018. Google Scholar
  13. Frank Dabek, Russ Cox, Frans Kaashoek, and Robert Morris. Vivaldi: A decentralized network coordinate system. In ACM SIGCOMM Computer Communication Review, volume 34, 2004. Google Scholar
  14. Ali Fahs and Guillaume Pierre. Proximity-Aware Traffic Routing in Distributed Fog Computing Platforms. In IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing, CCGrid, 2019. Google Scholar
  15. Yu Gan, Yanqi Zhang, Dailun Cheng, Ankitha Shetty, Priyal Rathi, Nayan Katarki, Ariana Bruno, Justin Hu, Brian Ritchken, Brendon Jackson, et al. An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems. In 24th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS. ACM, 2019. Google Scholar
  16. HashiCorp. Consul. URL: https://www.consul.io/.
  17. Wilhelm Hasselbring and Guido Steinacker. Microservice architectures for scalability, agility and reliability in e-commerce. In Workshops of the Intl. Conf. on Software Architecture, ICSA Workshops. IEEE, 2017. Google Scholar
  18. Patrick Hunt, Mahadev Konar, Flavio P. Junqueira, and Benjamin Reed. ZooKeeper: Wait-free Coordination for Internet-scale Systems. In USENIX Annual Technical Conference, ATC, 2010. Google Scholar
  19. Valérie Issarny, Georgios Bouloukakis, Nikolaos Georgantas, and Benjamin Billet. Revisiting service-oriented architecture for the IoT: a middleware perspective. In International Conference on Service-Oriented Computing, ICSOC. Springer, 2016. Google Scholar
  20. Netflix. Eureka 2.0. URL: https://bit.ly/2Mcexda.
  21. David A Nichols, Pavel Curtis, Michael Dixon, John Lamping, et al. High-latency, low-bandwidth windowing in the Jupiter collaboration system. In ACM Symposium on User Interface Software and Technology, 1995. Google Scholar
  22. Hyun-Gul Roh, Myeongjae Jeon, Jin-Soo Kim, and Joonwon Lee. Replicated abstract data types: Building blocks for collaborative applications. Journal of Parallel and Distributed Computing, 71(3):354-368, 2011. Google Scholar
  23. Sanhaji A. (Orange Labs Networks, France). Private communication, 2019. Google Scholar
  24. Olena Skarlat, Matteo Nardelli, Stefan Schulte, Michael Borkowski, and Philipp Leitner. Optimized IoT service placement in the fog. Service Oriented Computing and Applications, 11(4), 2017. Google Scholar
  25. Genc Tato, Marin Bertier, Etienne Rivière, and Cédric Tedeschi. ShareLatex on the Edge: Evaluation of the Hybrid Core/Edge Deployment of a Microservices-based Application. In 3rd Workshop on Middleware for Edge Clouds & Cloudlets, MECC. ACM, 2018. Google Scholar
  26. Genc Tato, Marin Bertier, and Cédric Tedeschi. Designing Overlay Networks for Decentralized Clouds. In Int. Conf. on Cloud Computing Technology and Science, CloudCom. IEEE, 2017. Google Scholar
  27. Genc Tato, Marin Bertier, and Cédric Tedeschi. Koala: Towards Lazy and Locality-Aware Overlays for Decentralized Clouds. In 2nd IEEE International Conference on Fog and Edge Computing, ICFEC, 2018. Google Scholar
  28. Giovanni Toffetti, Sandro Brunner, Martin Blöchlinger, Florian Dudouet, and Andrew Edmonds. An architecture for self-managing microservices. In AIMC Workshop. ACM, 2015. Google Scholar
  29. Nicolas Viennot, Mathias Lécuyer, Jonathan Bell, Roxana Geambasu, and Jason Nieh. Synapse: A Microservices Architecture for Heterogeneous-database Web Applications. In 10th European Conference on Computer Systems, ACM EuroSys, 2015. Google Scholar
  30. Shiqiang Wang, Rahul Urgaonkar, Ting He, Kevin Chan, Murtaza Zafer, and Kin K Leung. Dynamic service placement for mobile micro-clouds with predicted future costs. IEEE Transactions on Parallel and Distributed Systems, 28(4), 2016. Google Scholar
  31. Shiqiang Wang, Rahul Urgaonkar, Murtaza Zafer, Ting He, Kevin Chan, and Kin K Leung. Dynamic service migration in mobile edge-clouds. In IFIP Networking Conference, 2015. Google Scholar
  32. Hengfeng Wei, Yu Huang, and Jian Lu. Specification and Implementation of Replicated List: The Jupiter Protocol Revisited. In 22nd International Conference on Principles of Distributed Systems, OPODIS, Leibniz International Proceedings in Informatics (LIPIcs), 2018. Google Scholar
  33. Hongyue Wu, Shuiguang Deng, Wei Li, Min Fu, Jianwei Yin, and Albert Y Zomaya. Service selection for composition in mobile edge computing systems. In International Conference on Web Services, ICWS. IEEE, 2018. Google Scholar
  34. Ye Xia, Xavier Etchevers, Loic Letondeur, Adrien Lebre, Thierry Coupaye, and Frédéric Desprez. Combining heuristics to optimize and scale the placement of iot applications in the fog. In IEEE/ACM 11th Int. Conf. on Utility and Cloud Computing, UCC, 2018. Google Scholar
  35. Uwe Zdun, Elena Navarro, and Frank Leymann. Ensuring and assessing architecture conformance to microservice decomposition patterns. In International Conference on Service-Oriented Computing, ICSOC. Springer, 2017. Google Scholar