|Thesis abstract: |
Cloud Computing is assuming a relevant role in the world of web applications and web services. On the one hand, Cloud technologies allow realizing dynamic systems which are able to adapt their performance to workload fluctuations. On the other hand, these technologies allow to eliminate the burden related to the purchase of the infrastructure, allowing more flexible pricing models based on the actual resource utilization. Last, but not least, developers can completely delegate intensive tasks such as the management and the maintenance of the underlying infrastructure to the Cloud Provider.
However, most companies are still unwilling to move their business to a Cloud environment. One of the major issues is the lack of exclusive access to the IT infrastructure. The Quality of Service (QoS) is not under companies direct control. It is Cloud providers responsibility to guarantee a certain level of performances through a Service Level Agreement (SLA). Many Cloud providers offer an availability SLA of 99.95%. Experimental analysis show that the availability that Cloud users experience from their providers is much lower and in the order of 95%. Such a low value of availability can not be accepted when dealing with critical applications, usually requiring a much higher availability.
Given the elasticity of the Cloud, developers may overcome this shortcoming by deploying the same application on several Clouds and reallocate resources at runtime based on the QoS and prices each provider is offering and the workload profile. However, the lack of technology standards among Clouds, leads to the so called lock-in effect. Customers become dependent on one vendor and unable to migrate to another vendor¿s offer without substantial switching costs.
This research is focused on studying problems related to the deployment of applications on multiple Clouds, identifying main criticalities. The objective is to facilitate the development process saving developers from, or at least deferring, binding to specific Clouds and experimenting several self-adaptive approaches to allow multi-Cloud applications to work.