Microscaler: Automatic Scaling for Microservices with an Online Learning Approach

Recently, the microservice becomes a popular architecture to construct cloud native systems due to its agility. In cloud native systems, autoscaling is a core enabling technique to adapt to workload changes by scaling out/in. However, it becomes a challenging problem in a microservice system, since such a system usually comprises a large number of different micro services with complex interactions. When bursty and unpredictable workloads arrive, it is difficult to pinpoint the scaling-needed services which need to scale and evaluate how much resource they need. In this paper, 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 micro-service systems. Microscaler collects the quality of service metrics (QoS) with the help of the service mesh enabled infrastructure. Then, it determines the under-provisioning or over-provisioning services with a novel criterion named service power. By combining an online learning approach and a step-by-step heuristic approach, Microscaler could achieve the optimal service scale satisfying the SLA requirements. The experimental evaluations in a micro-service benchmark show that Microscaler converges to the optimal service scale faster than several state-of-the-art methods.

[1]  Anees Shaikh,et al.  A Cost-Aware Elasticity Provisioning System for the Cloud , 2011, 2011 31st International Conference on Distributed Computing Systems.

[2]  Nathan L. Clarke,et al.  Cloud QoS Scaling by Fuzzy Logic , 2014, 2014 IEEE International Conference on Cloud Engineering.

[3]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

[4]  Wei Jin,et al.  USENIX Association Proceedings of USITS ’ 03 : 4 th USENIX Symposium on Internet Technologies and Systems , 2003 .

[5]  Guillaume Pierre,et al.  Resource Provisioning of Web Applications in Heterogeneous Clouds , 2011, WebApps.

[6]  Samuel Kounev,et al.  Mapping of Service Level Objectives to Performance Queries , 2017, ICPE Companion.

[7]  Zibin Zheng,et al.  Microscope: Pinpoint Performance Issues with Causal Graphs in Micro-service Environments , 2018, ICSOC.

[8]  D. Mackay,et al.  Introduction to Gaussian processes , 1998 .

[9]  Parijat Dube,et al.  Adaptive, Model-driven Autoscaling for Cloud Applications , 2014, ICAC.

[10]  Rajkumar Buyya,et al.  A Fuzzy-Based Auto-scaler for Web Applications in Cloud Computing Environments , 2018, ICSOC.

[11]  Nando de Freitas,et al.  A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning , 2010, ArXiv.

[12]  Enda Barrett,et al.  Applying reinforcement learning towards automating resource allocation and application scalability in the cloud , 2013, Concurr. Comput. Pract. Exp..

[13]  Hiranya Jayathilaka,et al.  Performance Monitoring and Root Cause Analysis for Cloud-hosted Web Applications , 2017, WWW.

[14]  Waheed Iqbal,et al.  Unsupervised Learning of Dynamic Resource Provisioning Policies for Cloud-Hosted Multitier Web Applications , 2016, IEEE Systems Journal.

[15]  Domenico Grimaldi,et al.  A Feedback-Control Approach for Resource Management in Public Clouds , 2014, 2015 IEEE Global Communications Conference (GLOBECOM).

[16]  Rajkumar Buyya,et al.  Auto-Scaling Web Applications in Clouds , 2018, ACM Comput. Surv..

[17]  Minlan Yu,et al.  CherryPick: Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics , 2017, NSDI.

[18]  Jasper Snoek,et al.  Practical Bayesian Optimization of Machine Learning Algorithms , 2012, NIPS.

[19]  Suman Nath,et al.  Energy-Aware Server Provisioning and Load Dispatching for Connection-Intensive Internet Services , 2008, NSDI.

[20]  Shane Legg,et al.  Human-level control through deep reinforcement learning , 2015, Nature.