The management of cloud deployments is still largely the responsibility of system administrators. Introducing autonomy in cloud management would entail, amongst other things, the ability for automated cloud manager systems to scale up or down the number of deployed virtual machines, and/or deploy machines of different types to meet performance and other SLAs. However, the workload of cloud deployments can exhibit high variability over short time periods. This creates the necessity of introducing autonomic behaviour in the resource management function of the cloud deployment that makes decisions in real time so to optimise cost and/or performance. In this paper, we employ fuzzy logic to design a cloud controller whose scaling policies emulate the reasoning of human cloud operators, and take into account the current system load and the system load rate of change. The fuzzy controller's performance is compared and evaluated against Amazon's AWS auto-scaling policies. Results indicate the ability of the proposed fuzzy controller to adapt better to changing workloads by provisioning virtual machines appropriately to match the rate of system load change. Additionally, fuzzy rules are more intuitive than auto-scaling policies and thus easier to understand and modify by human users.
Read full abstract