  As more and more application providers transition to the cloud and deliver
their services on a Software as a Service (SaaS) basis, cloud providers need to
make their provisioning systems agile enough to meet Service Level Agreements.
At the same time they should guard against over-provisioning which limits their
capacity to accommodate more tenants. To this end we propose SQLR, a dynamic
provisioning system employing a customized model-free reinforcement learning
algorithm that is capable of reusing contextual knowledge learned from one
workload to optimize resource provisioning for other workload patterns. SQLR
achieves results comparable to those where resources are unconstrained, with
minimal overhead. Our experiments show that we can reduce the amount of
provisioned resources by almost 25% with less than 1% overall service
unavailability (due to blocking) while delivering similar response times as
those of an over-provisioned system.
