|Thesis abstract: |
Cloud computing is an emerging technology that is changing the way applications are delivered to users. This new paradigm offers great advantages in terms of reduction of costs and flexibility to application providers. The main idea that behind Cloud computing is to offer IT ¿as a Serice¿, in particular three main ways of offering IT have emerged:
¿ Infrastructure as a Service offers on-demand access to computational resources in the form of virtual machines.
¿ Platform as a Service offers a runtime environment for applications in which the underlying infrastructure is automatically managed.
¿ Software as a Service offers a fully functional, usually browser based, applications to end users.
This new way of providing software, platform and infrastructure comes in to conflict with methodologies and tools developed in order to build software systems on standard infrastructures (e.g. in house servers, databases, private datacenters). This lack of methodologies and tools to build applications that efficiently make use of all the characteristics unique of the Cloud is one of the main factors limiting the spreading of this technology.
The main goal of this work is to provide methods and tools, in form of an IDE, for the high-level design, early prototyping and automatic deployment of applications on multi-Clouds.
Model-driven development enriched with novel quality prediction approaches specific for the Cloud environment will enable developers to specify the architecture of their application using Cloud independent models. Those models can then be further specified with quality parameters in order to predict the performance of the application under design.
A semi automatic tool will then help the application administrator to fully specify the models in order to get a the optimal deployment configuration according to QoS requirements expresses in term of availability and response times minimizing operational costs. This work is performed in the context of the MODAClouds European project.