Abstract
Infrastructure as a service (IaaS), which provides consumers to rent VMs with different volume and number, allows users to adjust the scale of their application dynamically based on their requirement. Many web service providers have outsourced their application deployment to the IaaS-provided public cloud environment. In a multi-tier web service system, usually there exists both replicable and non-replicable applications. It is relatively simple to perform automatic horizontal scale out for replicable applications. As for non-replicable applications due to the architecture restriction like master database, vertical scaling is required. Nevertheless, replacement is currently the only way to perform vertical scaling in public cloud. This will cause apparent service interruption to the client. Hence, current cloud resource management services do not provide the automation of scale up process. Based on this issue, the web service systems will soon reach their scalability limitation even they adopt the resource management service. In this thesis, to overcome the scalability limitation, we design and implement a multi-objective resource management system for web service deployed in public cloud. We implement a fuzzy logic controller to deal with the provisioning problem. Both horizontal and vertical scaling are developed in our system. We also implement live migration for database, in order to minimize the service down time when performing vertical scaling. Experiments are conducted with a real-world multi-tier web service, KITs Cloud. The result proves our proposed requirement of automatic vertical scaling for multi-tier web service. Comparing to existing auto-scaling service, our system largely improves the scalability as well.