Runtime Resource Management for Microservices-Based Applications: A Congestion Game Approach (Short Paper)

Ruici Luo,Wei Ye,Jinan Sun,Xueyang Liu,Shikun Zhang
DOI: https://doi.org/10.1007/978-3-030-12981-1_47
2018-01-01
Abstract:The term “Microservice Architecture” has sprung up in recent years as a new style of software design that gains popularity as cloud computing prospers. In microservice-based applications, different microservices collaborate with one another via interface calls, but they may also compete for resources when an increase of users’ need renders the resources insufficient. This poses new challenges for allocating resources efficiently during runtime. To tackle the problem, we propose a novel approach based on Congestion Game in this paper. Firstly, we use a weighted directed acyclic graph to model the inter-relationship of the microservices that compose an application. Then we use M/G/1 Queue in Queue Theory to describe the arrival process of access requests, and combine it with the above graph to calculate the arrival rate of access requests to each microservice, which in turn is used to estimate response time in a newly-designed microservice revenue function. Finally, we define resources competing problem as a congestion game where each microservice is a player aiming to maximize its revenue, and propose an algorithm to find Nash equilibrium in polynomial time. Experiment results show that our approach can effectively improve the overall performance of the system with limited resources, and outperform Binpack and Spread, two scheduling strategies used in Docker Swarm.
What problem does this paper attempt to address?