  Web application providers have been migrating their applications to cloud
data centers, attracted by the emerging cloud computing paradigm. One of the
appealing features of the cloud is elasticity. It allows cloud users to acquire
or release computing resources on-demand, which enables web application
providers to automatically scale the resources provisioned to their
applications without human intervention under a dynamic workload to minimize
resource cost while satisfying Quality of Service (QoS) requirements. In this
paper, we comprehensively analyze the challenges that remain in auto-scaling
web applications in clouds and review the developments in this field. We
present a taxonomy of auto-scalers according to the identified challenges and
key properties. We analyze the surveyed works and map them to the taxonomy to
identify the weaknesses in this field. Moreover, based on the analysis, we
propose new future directions that can be explored in this area.
