Research Article
Runtime Resource Management for Microservices-Based Applications: A Congestion Game Approach (Short Paper)
@INPROCEEDINGS{10.1007/978-3-030-12981-1_47, author={Ruici Luo and Wei Ye and Jinan Sun and Xueyang Liu and Shikun Zhang}, title={Runtime Resource Management for Microservices-Based Applications: A Congestion Game Approach (Short Paper)}, proceedings={Collaborative Computing: Networking, Applications and Worksharing. 14th EAI International Conference, CollaborateCom 2018, Shanghai, China, December 1-3, 2018, Proceedings}, proceedings_a={COLLABORATECOM}, year={2019}, month={2}, keywords={Microservice architecture Resource management Game theory}, doi={10.1007/978-3-030-12981-1_47} }
- Ruici Luo
Wei Ye
Jinan Sun
Xueyang Liu
Shikun Zhang
Year: 2019
Runtime Resource Management for Microservices-Based Applications: A Congestion Game Approach (Short Paper)
COLLABORATECOM
Springer
DOI: 10.1007/978-3-030-12981-1_47
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.