A Holistic Machine Learning-based Autoscaling Approach for Microservice Applications

Microservice architecture is the mainstream pattern for developing large-scale cloud applications as it allows for scaling application components on demand and independently. By designing and utilizing autoscalers for microservice applications, it is possible to improve their availability and reduce the cost when the traffic load is low. In this paper, we propose a novel predictive autoscaling approach for microservice applications which leverages machine learning models to predict the number of required replicas for each microservice and the effect of scaling a microservice on other microservices under a given workload. Our experimental results show that the proposed approach in this work offers better performance in terms of response time and throughput than HPA, the state-of-the-art autoscaler in the industry, and it takes fewer actions to maintain a desirable performance and quality of service level for the target application.

[1]  Anshul Gandhi,et al.  MLscale: A machine learning based application-agnostic autoscaler , 2017, Sustain. Comput. Informatics Syst..

[2]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[3]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[4]  Rami Bahsoon,et al.  Self-Adaptive Trade-off Decision Making for Autoscaling Cloud-Based Services , 2016, IEEE Transactions on Services Computing.

[5]  Thilo Kielmann,et al.  Autoscaling Web Applications in Heterogeneous Cloud Infrastructures , 2014, 2014 IEEE International Conference on Cloud Engineering.

[6]  Nik Bessis,et al.  Adaptive Microservice Scaling for Elastic Applications , 2020, IEEE Internet of Things Journal.

[7]  Hans-Arno Jacobsen,et al.  HyScale: Hybrid and Network Scaling of Dockerized Microservices in Cloud Data Centres , 2019, 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS).

[8]  Jürgen Schmidhuber,et al.  Long Short-Term Memory , 1997, Neural Computation.

[9]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[10]  Rodrigo N. Calheiros,et al.  Auto-scaling Web Applications in Clouds: A Taxonomy and Survey , 2016 .

[11]  Alim Ul Gias,et al.  ATOM: Model-Driven Autoscaling for Microservices , 2019, 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS).

[12]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[13]  Mike Amundsen,et al.  Microservice Architecture: Aligning Principles, Practices, and Culture , 2016 .

[14]  Abdelkarim Erradi,et al.  Predictive Autoscaling of Microservices Hosted in Fog Microdata Center , 2020, IEEE Systems Journal.

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

[16]  Michael Gerndt,et al.  Performance Modeling for Cloud Microservice Applications , 2019, ICPE.

[17]  Felix Lösch,et al.  Investigating Performance Metrics for Scaling Microservices in CloudIoT-Environments , 2018, ICPE.

[18]  Samuel Kounev,et al.  TeaStore: A Micro-Service Reference Application for Benchmarking, Modeling and Resource Management Research , 2018, 2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS).

[19]  José Antonio Lozano,et al.  A Review of Auto-scaling Techniques for Elastic Applications in Cloud Environments , 2014, Journal of Grid Computing.

[20]  Shang-Pin Ma,et al.  Using Service Dependency Graph to Analyze and Test Microservices , 2018, 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC).