  An effective auto-scaling framework is essential for microservices to ensure
performance stability and resource efficiency under dynamic workloads. As
revealed by many prior studies, the key to efficient auto-scaling lies in
accurately learning performance patterns, i.e., the relationship between
performance metrics and workloads in data-driven schemes. However, we notice
that there are two significant challenges in characterizing performance
patterns for large-scale microservices. Firstly, diverse microservices
demonstrate varying sensitivities to heterogeneous machines, causing difficulty
in quantifying the performance difference in a fixed manner. Secondly, frequent
version upgrades of microservices result in uncertain changes in performance
patterns, known as pattern drifts, leading to imprecise resource capacity
estimation issues. To address these challenges, we propose Humas, a
heterogeneity- and upgrade-aware auto-scaling framework for large-scale
microservices. Firstly, Humas quantifies the difference in resource efficiency
among heterogeneous machines for various microservices online and normalizes
their resources in standard units. Additionally, Humas develops a least squares
density-difference (LSDD) based algorithm to identify pattern drifts caused by
upgrades. Lastly, Humas generates capacity adjustment plans for microservices
based on the latest performance patterns and predicted workloads. The
experiment results conducted on 50 real microservices with over 11,000
containers demonstrate that Humas improves resource efficiency and performance
stability by approximately 30.4% and 48.0%, respectively, compared to
state-of-the-art approaches.
