4.7 Article

Microscaler: Cost-Effective Scaling for Microservice Applications in the Cloud With an Online Learning Approach

Journal

IEEE TRANSACTIONS ON CLOUD COMPUTING
Volume 10, Issue 2, Pages 1100-1116

Publisher

IEEE-INST ELECTRICAL ELECTRONICS ENGINEERS INC
DOI: 10.1109/TCC.2020.2985352

Keywords

Auto-scaling; microservice; service mesh; Bayesian optimization; cloud computing

Funding

  1. National Key R&D Program of China [2019YFB1804002]
  2. National Science Foundation of China [61802448, 61722214, U1811462]
  3. National Science Foundation of Guangdong [2019A1515012229]

Ask authors/readers for more resources

Microservices have gained popularity in constructing cloud native systems due to their agility. However, determining and evaluating resource requirements for scaling is a challenging task in microservice applications due to their complexity. In this article, the authors present a novel system called Microscaler that automatically identifies scaling-needed services in microservice applications and scales them to meet SLA requirements with optimal cost. Microscaler collects QoS metrics and uses a service dependency graph to determine under- or over-provisioned service instances. By combining online learning and a heuristic approach, Microscaler achieves precise scaling meeting SLA requirements faster than other methods.
Recently, the microservice becomes a popular architecture to construct cloud native systems due to its agility. In cloud native systems, autoscaling is a key enabling technique to adapt to workload changes by acquiring or releasing the right amount of computing resources. However, it becomes a challenging problem in microservice applications, since such an application usually comprises a large number of different microservices with complex interactions. When the performance decreases due to an unpredictable workload peak, it is difficult to pinpoint the scaling-needed services which need to scale out and evaluate how many resources they need. In this article, we present a novel system named Microscaler to automatically identify the scaling-needed services and scale them to meet the Service Level Agreement (SLA) with an optimal cost for microservice applications. Microscaler first collects the quality of service (QoS) metrics in the service mesh enabled microservice infrastructure. Then, it determines under-provisioning or over-provisioning service instances along the service dependency graph with a novel scaling-needed service criterion named service power. The service dependency graph could be obtained by correlating each request flow in the service mesh. By combining an online learning approach and a step-by-step heuristic approach, Microscaler can precisely reach the optimal service scale meeting the SLA requirements. The experimental evaluations in a microservice benchmark show that Microscaler achieves an average 93 percent precision in scaling-needed service determination and converges to the optimal service scale faster than several state-of-the-art methods. Moreover, Microscaler is lightweight and flexible enough to work in a large-scale microservice system.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.7
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available