[3][4] In the world of distributed systems, there are several definitions according to the authors, some considering the concepts of scalability a sub-part of elasticity, others as being distinct.
Let us illustrate elasticity through a simple example of a service provider who wants to run a website on an IaaS cloud.
, the website suddenly becomes popular, for example, as a result of a flash crowd, and a single machine is no longer sufficient to serve all users.
An elastic system should immediately detect this condition and provision nine additional machines from the cloud, so as to serve all web users responsively.
Web users eventually give up on accessing it, thus, the service provider loses customers.
[7] This in turn generates other problems, such as how to aggregate data from multiple VMs towards extracting the behavior of the application component running on top of those VMs, as different metrics might need to be aggregated differently (e.g., cpu usage could be averaged, network transfer might be summed up).
When deploying applications in cloud infrastructures (IaaS/PaaS), requirements of the stakeholder need to be considered in order to ensure proper elasticity behavior.
Even though traditionally one would try to find the optimal trade-off between cost and quality or performance, for real world cloud users requirements regarding the behavior are more complex and target multiple dimensions of elasticity (e.g., SYBL[8]).
Cloud applications can be of varying types and complexities, with multiple levels of artifacts deployed in layers.
Controlling such structures must take into consideration a variety of issues, an approach in this sense being rSYBL.