Cloud and Multi-cloud Computing: Current Challenges and Future Applications

Computing systems are becoming increasingly virtual. We come from a world where applications were entirely developed by organizations for their own use, possibly exploiting components and/or platforms developed by third parties, but mainly deployed and executed on the organizations own IT facilities. With Service Oriented systems, we moved into a world in which a software application may delegate part of its functionality to already existing software services run by external organizations. Recent advances in Cloud computing are pushing virtuality even further: users can access third party software components, hardware physical resources or full application stacks that support execution and automatic management of Cloud based applications, and pay only for the resources they use. Cloud computing is growing daily, providing a vibrant technical environment where innovative solutions and services can be created. The Cloud promises the capability for cheap and flexible services for end-users and allows small organizations and individuals to host and offer world-scale services, themselves. However, while there has been substantial research in the field already, there still remain open challenges. Specifically, Cloud business models and technologies introduce critical issues, such as proprietary APIs and lack of interoperability [1]. The choice of the application architecture matching and fully exploiting the characteristics of the underlying Cloud environments is also critical [2], [3]. At the infrastructural layer, resource contentions lead to unpredictable performance [4] and additional work for resource management [5], automated VM and service migration [6] is still needed. Also networks are frequently the Cloud bottleneck and data center energy management is very critical [7]. To cope with such challenges the adoption of multi-Clouds [8], has been advocated by many researchers, since deploying software on multiple Clouds overcomes single provider unavailability and allows to build cost efficient follow the sun applications. Moreover, Cloud computing is also becoming a mainstream solution to provide very large clusters in a pay per use basis to support Big data applications [9]. Many cloud providers already include in their offering MapReduce based platforms (i.e., one of the most adopted framework to support large volume unstructured information processing) such as Google MapReduce framework, Microsoft HDinsight, and Amazon Elastic Compute Cloud. IDC estimates that by 2020, nearly 40% of Big Data analyses will be supported by public cloud. To support such challenges a Model-Driven Development (MDD) approach developed within the MODAClouds (www. modaclouds.eu) and DICE (dice-h2020.eu) European projects will be presented. MDD allows shifting the paradigm from code-centric to model-centric. Models are thus the main artefacts of the development process and enable developers to work at a high level of abstraction by focusing on Cloud concerns rather than implementation details [10]. Model transformations help automating the work of going from abstract concepts to implementation. Moreover, models can also be used to reason about the QoS properties of an application [2] and to support design-time exploration in order to identify the Cloud deployment configuration of minimum cost, while satisfying QoS constraints [3]. Finally, models can be kept alive also at runtime to trigger dynamic adaptation [10], [5], providing QoS guarantees even under workload fluctuations, virtualized systems performance degradations, or failures.