SUPPORTING USERS IN CLOUD PLAN SELECTION
Creators: name: ARMAN, ALA
Publisher: name: Universit� degli Studi di Milano
Year: 2018

description: Cloud computing is a reference paradigm for deploying applications and for storing, managing, and processing large amounts of data. Today, thanks to significant efforts made on optimizing the technological and business aspects of Cloud computing, Cloud providers available on the market provide a broad range of cost-effective services over the Internet, characterized by availability, scalability, and reliability. Therefore, individuals and organizations, ranging from small to large enterprises, can move their IT asset to the Cloud for benefiting from the significant advantages of Cloud computing technology. Moving applications to the Cloud, however, requires addressing different problems. First, applications should be assessed to see to what extent they are ready to be moved to the Cloud, considering the specific properties (e.g., dynamic, distributed) of such environments. Outsourcing applications that cannot be efficiently moved to the Cloud could limit the use of Cloud computing. Also, Cloud providers offer their services through plans that differ in terms of their characteristics. This variety ensures great advantages for users, enabling them to choose the plan that better suits their needs and economical availability. However, considering the different characteristics of Cloud plans and the heterogeneous requirements of applications (e.g., the number of replicas, CPU rates, security features), choosing a Cloud plan, among those offered by a (set of) Cloud provider(s), is a hard challenge. The situation can get more complicated when users wish to move multiple applications, at the same time, to the Cloud because each application can have different (and even contrasting) requirements. Therefore, in this scenario, it is necessary to properly combine the requirements of applications and choose the Cloud plan that satisfies them in the best possible way. In this thesis, we provide models and tools to help users in evaluating applications that are moved to the Cloud and in selecting the most suitable Cloud plans among the available ones on the market. Considering the problems mentioned above, we provide two main contributions in this thesis. The first contribution focuses on evaluating applications by assessing their modularity. The dynamic nature of Cloud environments implies that Cloud resources usually undergo frequent changes (e.g., resource join/leave/failure). Therefore, applications with poor modular design, due to high coupling and low cohesion among their components, cannot suitably adapt themselves to dynamic changes, and as a result, are not able to run effectively on the Cloud. Likewise, such applications cannot be broken down into components and usually are not efficient when they are distributed across Cloud environments. In this thesis, we then propose an approach aimed at estimating the modularity of applications to examine to what degree they can be easily moved to the Cloud. The second contribution concerns plan selection. First, we propose a consensus-based plan selection approach aimed at choosing the plan that best balances the preferences of all the applications by reaching a trade-off among their requirements. Next, we focus on plan selection under uncertainty, by considering a scenario where a group of users with low technical skills and a limited budget wish to outsource multiple applications to the Cloud. In this respect, we propose an approach aimed at selecting a Cloud plan that respects budget limits according to the preferences, even imprecise, of applications provided by a set of users. Finally, we focus on supporting the business objectives of users when they move their applications to the Cloud. To do so, we consider a multiple-application scheduling scenario, where a virtual machine is selected for each application. Then, we propose an approach aimed at maximizing financial profit that is estimated for each application when it is executed on the Cloud, considering compensation mechanisms offered by service providers in their service level agreements (SLAs).