Scalability and Performance Management of Internet Applications in the Cloud
Cloud computing is a model for enabling on-demand access to a shared pool of computing resources. With virtually limitless on-demand resources, cloud environments enable the hosted Internet applications to quickly cope with the spikes in workload. However, the overhead caused by the dynamic resource provisioning exposes the Internet applications to periods of under-provisioning and performance degradation. Moreover, the performance interference, due to the consolidation in cloud environments, complicates the performance management of Internet applications.
In this dissertation, I propose two approaches to mitigate the impact of the resource provisioning overhead. The first approach employs control theory to scale resources vertically and cope fast with workload. This approach assumes that the provider has knowledge and control over the platform running in the virtual machines (VMs), which limits it to Platform as a Service (PaaS) and Software as a Service (SaaS) models. The second approach is a customer-oriented one that deals with the horizontal scalability in an Infrastructure as a Service (IaaS) model. It addresses the trade-off problem between cost and performance with a multi-goal optimization solution. This approach finds the scale thresholds that achieve the highest performance with the lowest increase in the cost. Moreover, the second approach employs a proposed time series forecasting algorithm to scale the application proactively and avoid under-utilization periods. Furthermore, to mitigate the interference impact on the Internet application performance, I developed a system which finds and eliminates the VMs suffering from performance interference. The developed system is a light-weight solution that does not imply provider involvement.
To evaluate my approaches and the designed algorithms at large-scale level, I developed a simulator called (ScaleSim). In the simulator, I implemented scalability components acting as the scalability components of Amazon EC2. The current scalability implementation in Amazon EC2 is used as a reference point for evaluating the improvement in the scalable application performance. ScaleSim is fed with realistic models of the RUBiS benchmark extracted from the real environment. The workload is generated from the access logs of the official website of 1998 world cup. The results showed that optimizing the scalability thresholds and adopting proactive scalability can mitigate 88% of the resources provisioning overhead impact with only a 9% increase in the cost.