A Reinforcement Learning Based Auto-Scaling Approach for SaaS Providers in Dynamic Cloud Environment

Cloud computing is an emerging paradigm which provides a flexible and diversified trading market for Infrastructure-as-a-Service (IaaS) providers, Software-as-a-Service (SaaS) providers, and cloud-based application customers. Taking the perspective of SaaS providers, they offer various SaaS services using rental cloud resources supplied by IaaS providers to their end users. In order to maximize their utility, the best behavioural strategy is to reduce renting expenses as much as possible while providing sufficient processing capacity to meet customer demands. In reality, public IaaS providers such as Amazon offer different types of virtual machine (VM) instances with different pricing models. Moreover, service requests from customers always change as time goes by. In such heterogeneous and changing environments, how to realize application auto-scaling becomes increasingly significant for SaaS providers. In this paper, we first formulate this problem and then propose a Q-learning based self-adaptive renting plan generation approach to help SaaS providers make efficient IaaS facilities adjustment decisions dynamically. Through a series of experiments and simulation, we evaluate the auto-scaling approach under different market conditions and compare it with two other resource allocation strategies. Experimental results show that our approach could automatically generate optimal renting policies for the SaaS provider in the long run.

[1]  Kevin Lee,et al.  Empirical prediction models for adaptive resource provisioning in the cloud , 2012, Future Gener. Comput. Syst..

[2]  Marco Abundo,et al.  QoS-aware bidding strategies for VM spot instances: A reinforcement learning approach applied to periodic long running jobs , 2015, 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM).

[3]  Shangguang Wang,et al.  Cost-Aware Cloud Service Request Scheduling for SaaS Providers , 2014, Comput. J..

[4]  Imtiaz Ahmad,et al.  Cloud Computing Pricing Models: A Survey , 2013 .

[5]  Moustafa Ghanem,et al.  Lightweight Resource Scaling for Cloud Applications , 2012, 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012).

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

[7]  Peter Dayan,et al.  Q-learning , 1992, Machine Learning.

[8]  Valerio Di Valerio,et al.  Optimal Pricing and Service Provisioning Strategies in Cloud Systems: A Stackelberg Game Approach , 2013, 2013 IEEE Sixth International Conference on Cloud Computing.

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

[10]  Isis Truck,et al.  Using Reinforcement Learning for Autonomic Resource Allocation in Clouds: towards a fully automated workflow , 2011 .

[11]  Marty Humphrey,et al.  Scaling and Scheduling to Maximize Application Performance within Budget Constraints in Cloud Workflows , 2013, 2013 IEEE 27th International Symposium on Parallel and Distributed Processing.

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

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

[14]  Dirk Neumann,et al.  Automated bidding in computational markets: an application in market-based allocation of computing services , 2010, Autonomous Agents and Multi-Agent Systems.

[15]  Barbara Panicucci,et al.  A game theoretic formulation of the service provisioning problem in cloud systems , 2011, WWW.

[16]  Andrew W. Moore,et al.  Reinforcement Learning: A Survey , 1996, J. Artif. Intell. Res..