Autonomic and Intelligent Auto-Scaling for Cloud Applications
By Pooyan Jamshidi, Claus Pahl - Irish Centre for Cloud Computing and Commerce (IC4)
In our first attempts at auto-scaling in the cloud, we designed and implemented an autonomic solution based on fuzzy theory to enable decision making for scaling up and down cloud resources at runtime. The key design decision was to enable user-specified auto-scaling rules more easily with the help of linguistic variables such as “high” or “low” instead of precise threshold values such as “1000 msec”. The main artefact of this attempt was a knowledge based controller where the detail of its design is described here  and the implementation of the fuzzy controller is described here .
In our second attempt to improve the first solution, we tried to tackle the problem that any input from users might be error prone due to uncertainties. The main design decision was to enable users to only provide their priorities instead of auto-scaling rules. For instance, the user only needs to provide weights for the main parameters such as throughput and
response time, instead of specifying specific auto-scaling rules. We used fuzzy learning to dynamically determine auto-scaling rules based on the reinforcement signal that the controller will receive at runtime based on the decision that it takes. The main artefact of this attempt was a learning mechanisms where the detail of its design is described here 
and the implementation of the learning algorithm is described here .
Throughput extensive experiments that we conducted in this line of research, we demonstrated that such autonomic controllers can help public cloud providers and private cloud platforms to take away the burden of elasticity rules from the end user. Furthermore, they offer a solution that enhances the throughput, response time and reliability of the
cloud applications. We specifically demonstrated that such controllers can reduce cloud infrastructure requirements by up to 10%, when compared with native auto-scaling on state-of-the-art public cloud platforms. This offers a considerable cost reduction opportunity for both cloud service providers and cloud consumers.
Please contact IC4 for further information on, or a demonstration of, the cloud auto-scaling
 Pooyan Jamshidi, Aakash Ahmad, Claus Pahl, "Autonomic Resource Provisioning for Cloud-Based Software",
 RobusT2Scale, https://github.com/pooyanjamshidi/RobusT2Scale
 Pooyan Jamshidi, Amir Sharifloo, Claus Pahl, Andreas Metzger, Giovani Estrada, "Self-Learning Cloud
Controllers: Fuzzy Q-Learning for Knowledge Evolution", arXiv:1507.00567, 2015.
 FQL4KE, https://github.com/pooyanjamshidi/Fuzzy-Q-Learning