Today, Internet users expect Web applications to be fast, performant, and always available. With the emergence of Internet of Things (IoT), data collection and the analysis of streams have become more and more challenging. Behind the scenes, application owners and cloud service providers work to meet these expectations, yet, the problem of how to most effectively and efficiently auto-scale a Web application to optimize for performance while reducing costs and energy usage is still a challenge. In particular, this problem has new relevance due to the continued rise of IoT and microservice-based architectures. A key concern, that is often not addressed by current auto-scaling systems, is the decision on which microservice to scale in order to increase performance. Our aim is to design a prototype auto-scaling system for microservice-based Web applications that can learn from the past service experience. The contributions of the work can be divided into two parts: 1) developing a pipeline for microservice auto-scaling and 2) evaluating a hybrid sequence and supervised learning model for recommending scaling actions. The pipeline has proven to be an effective platform for exploring auto-scaling solutions, as we will demonstrate through the evaluation of our proposed hybrid model. The results of the hybrid model show the merit of using a supervised model to identify which microservices should be scaled up more.
- Cloud computing
- Load balancing
- load balancing
- Data and Complex Systems Research Centre