Abstract
Cloud computing is a new wave in computing that allows users to utilise dynamic,
virtualised and scalable computing resources provided as services over a network such
as the Internet. The key benefit of cloud computing is elasticity - the ability for
users to add or remove resources on-demand through a self-serve interface. Users
are only required to pay for the time the resources are in use. Elasticity coupled
with the pay-as-you-go model has led to cloud computing becoming very popular in
industry for hosting publicly-accessed applications and services.
Elasticity enables users to avoid over-provisioning resources to handle potential
peaks in demand, which may cause idle computing resources in periods of low-
demand, and consequently increase the cost of infrastructure. On the other hand,
cloud computing prevents users from under-provisioning that can lead to poor performance of services during periods of heavy workload. Therefore, computing resources
are utilised more efficiently by meeting performance requirements as well as saving
on expenses.
Nevertheless, in order to achieve elasticity in cloud, we need to constantly monitor the performance of services and resource utilisation, and take appropriate re-
source management actions to ensure that sufficient computing resources are employed so that the Service Level Agreements (SLA) for the services are met. Monitoring and reconfiguring a system requires detailed knowledge about the system
behaviour, incoming workload, and also the type of actions that can maintain the
performance of applications against the changes of workload. Therefore, many research efforts have been made in order to automated this process and minimise the
role of human administration to reduce the management cost and also increase the
efficiency of resource management systems. However, a study of the literature shows
that most of these depend on accurately modelling service and system behaviours
using historical data to achieve the best results.
This thesis concentrates on model-free dynamic resource allocation in cloud.
Model-free approach refers to resource management systems that are not required
to have prior knowledge about a system. This is an advantage for a distributed and
highly complex system where it is nearly impossible, as well as expensive and time
consuming, to design accurate models that describe its behaviour under different
workloads. Towards this objective, this thesis presents the design and implementation of a distributed and learning-based elastic controller in cloud to overcome this
limitation. We have compared our controller with other similar resource provisioning
through experiments that have been performed on Amazon EC2.