MODAClouds: A model-driven approach for the design and execution of applications on multiple Clouds (original) (raw)
Related papers
The MODAClouds Model-Driven Development
SpringerBriefs in Applied Sciences and Technology, 2016
The Cloud computing market encompasses an ever-growing number of providers offering a multitude of infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) solutions. In order to exploit the peculiarities of each Cloud solution as well as to optimize performances, availability, and cost, an emergent need is to run and manage multi-Cloud applications [1] (i.e., applications that can execute on multiple Cloud infrastructures and platforms). However, current stacks, libraries and frameworks lack in software engineering methodologies and tools to design, deploy and maintain multi-Cloud systems as stated in the CORDIS reports on Cloud computing [2, 3], "whilst a distributed data environment (IaaS) cannot be easily moved to any platform provider (PaaS) […], it is also almost impossible to move a service/image/environment between providers on the same level." Model-Driven Development (MDD) [4] techniques are particularly useful to address these challenges. They allow 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, focusing on Cloud concerns rather than implementation details. Model transformations help automating the work of going from abstract concepts to implementation. This approach, which is commonly summarized as "model once, generate anywhere", is thus particularly relevant when it comes to design and management of applications across multiple Clouds,
Towards model-driven provisioning, deployment, monitoring, and adaptation of multi-cloud systems
In the landscape of cloud computing, the competition between providers has led to an ever growing number of cloud solutions offered to consumers. The ability to run and manage multi-cloud systems (i.e., applications on multiple clouds) allows exploiting the peculiarities of each cloud solution and hence optimising the performance, availability, and cost of the applications. However, these cloud solutions are typically heterogeneous and the provided features are often incompatible. This diversity hinders the proper exploitation of the full potential of cloud computing, since it prevents interoperability and promotes vendor lock-in, as well as it increases the complexity of development and administration of multi-cloud systems. This problem needs to be addressed promptly. In this paper, we provide a classification of the state-of-the-art of cloud solutions, and argue for the need for model-driven engineering techniques and methods facilitating the specification of provisioning, deployment, monitoring, and adaptation concerns of multi-cloud systems at design-time and their enactment at run-time.
Model Driven Framework for the Configuration and the Deployment of Applications in the Cloud
2016
Cloud computing offers a distributed computing environment where applications can be deployed and managed. Many companies are seeing substantial interest to extend their technical infrastructure by adopting cloud infrastructures. Although the choice of such an environment may seem advantageous, users are faced with many challenges, especially with regard to deployment and migration of applications in the Cloud. To address some of these challenges, we propose a new approach based on modeldriven engineering techniques (MDE), called MoDAC-Deploy, for the assistance to the configuration and the deployment of applications in the Cloud. This paper focuses on the design and the implementation of our approach. In fact, we developed a model-driven Framework with generative mechanisms to simplify and to automate cloud services deployment process, to overcome APIs heterogeneity, to minimize the vendor lock-in and to enable application portability among different cloud infrastructures by reusin...
Development of Adaptive Multi-cloud Applications - A Model-Driven Approach
Cloud computing is a new paradigm that allows users to access computing resources in a dynamic, flexible and scalable manner. It has drawn the interest of multiple users, and in a short period of time it has experienced a notorious hype. However, its numerous strengths are mitigated by the lack of standardization which the technology suffers from. Different cloud vendors provide and manage similar resources in a different manner, thereby coupling the application to its targeted cloud. Companies that consume cloud services are locked-in to a single cloud vendor due to the high costs of migrating software in the cloud, preventing them from changing their cloud provider or having multiple providers. In this paper we explore a solution to the cloud vendor lock-in problem based on the use of model-driven engineering and software adaptation techniques. The proposed solution is both cloud vendor and user friendly as it allows the former to freely define their own cloud policies, whilst users continue to be free to choose a cloud provider, even after the application has been developed.
Towards Uniform Management of Cloud Services by Applying Model-Driven Development
2014 IEEE 38th Annual Computer Software and Applications Conference, 2014
Popularity of Cloud Computing produced the birth of Everything-as-a-Service (XaaS) concept, where each service can comprise large variety of software and hardware elements. Although having the same concept, each of these services represent complex systems that have to be deployed and managed by a provider using individual tools for almost every element. This usually leads to a combination of different deployment tools that are unable to interact with each another in order to provide an unified and automatic service deployment procedure. Therefore, the tools are usually used manually or specifically intergrated for a single cloud service, which on the other hand requires changing the entire deployment procedure in case the service gets modified. In this paper we utilize Model-driven development (MDD) approach for building and managing arbitrary cloud services. We define a metamodel of a cloud service called CoPS, which describes a cloud service as a composition of software and hardware elements by using three sequential models, namely Component, Product and Service. We also present an architecture of a Cloud Management System (CMS) that is able to manage such services by automatically transforming the service models from the abstract representation to the actual deployment. Finally, we validate our approach by realizing three real world use cases using a prototype implementation of the proposed CMS architecture.
Towards Model-Driven Multi-Cloud Resource Management
2016
Multi-Cloud computing has established itself as a paradigm of choice for acquiring resources from different providers and get the best of each of them to run their applications. However, managing resources in Multi-Cloud remains a challenging task. Several multi-cloud libraries based approaches include Apache Libcloud, Apache jclouds, δ-cloud, Daseincloud, fog, and pkgcloud exist in the cloud market. But these are still low level as Multi-Cloud management tasks must always be programmed. Therefore, application platforms are need to help developers to succeed. In this paper we give a model-driven approach for managing resources of multiple clouds at high level. We illustrate our proposal by providing a prototype of Multi-Cloud Designer for managing resource from multiple clouds.
The CloudMIG Approach: Model-Based Migration of Software Systems to Cloud-Optimized Applications
2011
Cloud computing provides means for reducing over-and under-provisioning through enabling a highly flexible resource allocation. Running an existing software system on a cloud computing basis can involve extensive reengineering activities during the migration. To reduce the correspondent effort, it is often possible to deploy an existing system widely unmodified in IaaS VM instances. However, this simplistic migration approach does not solve the challenge of overand under-provisioning or scalability issues per se, as our experiments using Eucalyptus and the popular open source system Apache OFBiz show. Moreover, current migration approaches suffer from several further shortcomings. For example, they are often limited to specific cloud environments or do not provide automated support for the alignment with a cloud environment. We present our model-based approach CloudMIG which addresses these shortcomings. It aims at supporting SaaS providers to semi-automatically migrate existing enterprise software systems to scalable and resource-efficient PaaS and IaaS-based applications. To facilitate reasoning about the suitability of certain cloud environments for a given system and the degree of alignment during the reengineering process, we introduce the Cloud Suitability and Alignment (CSA) hierarchy. For example, Apache OFBiz used in our experiments is initially categorized "cloud compatible" but not "cloud optimized" as it does not exploit the cloud's advantages.
Enhancing Cloud SAAS Development with Model Driven Architecture
International Journal on Cloud Computing: Services and Architecture, 2011
Cloud computing is a leading edge computing paradigm in which massively scalable and dynamically configured resources are offered remotely as services, over a network. With rapid transitions in hardware and software technologies, as witnessed in the recent years, the biggest challenge posed to the IT industry is technology obsolescence. Consequently, there arises a need for a software development approach that could mitigate the undesirable effects of technology change. The Model Driven Architecture (MDA) approach to software development becomes an obvious choice. In this approach, the models drive the process of software development. These models are specified at different levels of abstraction and automated tools are used for model-to-model and model-to-code transformations between the levels. In this paper, the authors endeavour to explore the MDA approach for developing cloud software applications so that the ensuing software solutions are more robust, flexible and agile, in the wake of constantly evolving technologies.
Cloud SaaS and Model Driven Architecture
Cloud computing is an emerging computing paradigm in which the resources such as processors, storage and software applications are provided as services, remotely over the Internet. The software applications in the cloud may be targeted on different platforms. As is evident, the software technologies are evolving constantly. But, as newer software technologies emerge the existing ones become obsolete and need to be replaced. Therefore, it becomes obligatory to adopt a software development methodology where the impact of technological advancements on software applications is minimal. Model Driven Architecture (MDA) is a software development approach where the models are the prime development artifacts. These models abstract the business functionality of the software system from its implementation on specific platforms. Automated tools are used for model-to-model and model-to-code transformations.
Model-Driven Development and Operation of Multi-Cloud Applications
2017
s the job management operations and interacts with the back-end HTCondor service. The API provides common operations offered by HTCondor as RESTcompliant services. These operations include job submission, data staging, job state notifications, etc. Lastly a flexible core that allows the addition of various schedulers, each with a different feature set, as required by applications. From an architectural point of view the BE is composed of four main subsystems: Batch Engine API: This subsystem is responsible for interacting with the client applications or users. It handles the requests and delegates them to the other subsystems. Batch Engine Cluster Manager API: Based on SCT,it uses the Configuration Management subsystem (mainly Puppet) and theCloud interface for deploying nodes and provisioning the job scheduler (e.g., HTCondor). Batch Engine Execution Manager: Is responsible with the effective job execution and corresponding event handling (interaction with external components). It ...