Intelligent container reallocation at Microsoft 365
- Bo Qiao ,
- Fangkai Yang ,
- Chuan Luo ,
- Yanan Wang ,
- Johnny Li ,
- Qingwei Lin 林庆维 ,
- Hongyu Zhang ,
- Mohit Datta ,
- Andrew Zhou ,
- Thomas Moscibroda ,
- Saravanakumar Rajmohan ,
- Dongmei Zhang
2021 Foundations of Software Engineering |
Published by ACM
The use of containers in microservices has gained popularity as it facilitates agile development, resource governance, and software maintenance. Container reallocation aims to achieve workload balance via reallocating containers over physical machines. It affects the overall performance of microservice-based systems. However, container scheduling and reallocation remain an open issue due to their complexity in real-world scenarios. In this paper, we propose a novel Multi-Phase Local Search (MPLS) algorithm to optimize container reallocation. The experimental results show that our optimization algorithm outperforms state-of-the-art methods. In practice, it has been successfully applied to Microsoft 365 system to mitigate hotspot machines and balance workloads across the entire system.