Abstract
Elasticity is one of the most important characteristics of cloud computing paradigm which enables deployed application to dynamically adapt to a changing demand by acquiring and releasing shared computational resources at runtime. Thus, elasticity is a key enabler for economies of scale in the cloud that enhances utility of cloud services. In practice, elasticity requires an autonomous management to reduce the gaps between the demand and supply of the computing resources at runtime. In this article, we Provide a review of the approaches and techniques from different perspectives. We examine elasticity management aspects from macro and micro economics perspectives to support value-driven elasticity decisions. We analyze the different views for measuring the elasticity of cloud-based systems. Furthermore, we discuss some of the open challenges in this domain.