Elastic computing systems can be described via models that capture their elastic nature.
We seek a way to derive elasticity models using a data-driven and iterative approach: We run experiments to collect data about the behavior of elastic computing systems under different execution conditions, we elaborate on these data to build systems elasticity models, we evaluate the models to find flaws or potential improvement, and we define new experiments to be run. We repeat this process to refine our initial models in an incremental fashion.
Developing high quality elastic computing systems is not an easy job. Specific tools and well tailored development methodologies are at the basis of development processes that result in software with a good quality.
We are investigating new development methodologies and tools that focus on elastic computing systems and are specifically designed for the Cloud.
Systems that exploit Cloud infrastructures to elastically scale in order to provide consistent QoS in front of fluctuating workloads are able to dynamically acquire and release resources.
Testing such systems is challenging because testers may need to generate a time varying (and usually very large) amount of requests to stress them. Moreover, as testers will rely on Cloud infrastructures they need to use the least amount of resources as possible to generate the load, as they will be billed ”by the machine” (that is per virtual machine used). These require new tools to elastically generate the load according to testers need.