
Institute of Architecture of Application Systems How to Adapt Applications for the Cloud Environment Challenges and Solutions in Migrating Applications to the Cloud Vasilios Andrikopoulos, Tobias Binz, Frank Leymann, Steve Strauch Institute of Architecture of Application Systems, University of Stuttgart, Germany {firstname.lastname}@iaas.uni-stuttgart.de @ARTICLE{andrikopoulos2013adapt,: author = {Andrikopoulos, Vasilios and Binz, Tobias and Leymann, Frank and Strauch, Steve}, title = {How to Adapt Applications for the Cloud Environment}, journal = {Computing}, publisher = {Springer}, volume = {95}, pages = {493-535}, doi = {10.1007/s00607-012-0248-2}, url = {http://dx.doi.org/10.1007/s00607-012-0248-2}, year = {2013} } © 2013 Springer. The final publication is available at link.springer.com. Noname manuscript No. (will be inserted by the editor) How to Adapt Applications for the Cloud Environment Challenges and Solutions in Migrating Applications to the Cloud Vasilios Andrikopoulos · Tobias Binz · Frank Leymann · Steve Strauch Received: date / Accepted: date Abstract The migration of existing applications to the Cloud requires adapting them to a new computing paradigm. Existing works have focused on migrating the whole application stack by means of virtualization and deployment on the Cloud, delegating the required adaptation effort to the level of resource management. With the prolif- eration of Cloud services allowing for more flexibility and better control over the application migration, the migration of individual application layers, or even indi- vidual architectural components to the Cloud, becomes possible. Towards this goal, in this work we focus on the challenges and solutions for each layer when migrat- ing different parts of the application to the Cloud. We categorize different migration types and identify the potential impact and adaptation needs for each of these types on the application layers based on an exhaustive survey of the State of the Art. We also investigate various cross-cutting concerns that need to be considered for the mi- gration of the application, and position them with respect to the identified migration types. Finally, we present some of the open research issues in the field and position our future work targeting these research questions. Keywords Cloud migration · application adaptation · Cloud-enabled applications · data layer · business layer · migration types 1 Introduction The general motivation for the adaptation of existing applications is to keep and im- prove the past investments in software while reacting to changes in the environment. The advent and steadily increasing domination of Cloud computing in the software market means that existing applications need to adapt for this environment. Cloud V. Andrikopoulos Universitatsstrasse¨ 38, 70569 Stuttgart, Germany Tel.: +49-711-685-88475 Fax: +49-711-685-88472 E-mail: [email protected] 2 Vasilios Andrikopoulos et al. computing has become increasingly popular with the industry due to the clear advan- tage of reducing capital expenditure and transforming it into operational costs [8]. This advantage manifests as the saving of fixed costs by leasing rather than buy- ing infrastructure using the pay-per-use model offered by many Cloud providers. Many applications of course are not ready to be moved to the Cloud because the environment is not mature enough for this type of applications, e.g. safety-critical software [10]. For others, it may not make sense to be migrated at all, e.g. embedded systems. Some software will be implemented specifically for the Cloud (Cloud-native applications), but other systems must be adapted to be suitable for the Cloud, making them Cloud-enabled. The latter category is the focus of this work. The emphasis of the existing work is on migrating the whole application based on virtualization technology1. For a number of works like [39,50,55,86], the focus is on Virtual Machines (VMs) as the means for migration. This focus can be attributed to the prevalence of the Infrastructure as a Service (IaaS) service model, as defined e.g. by the National Institute of Standards and Technology (NIST) [54], and the early market position of Amazon Web Services2 that focused on IaaS. Application adap- tation in this context manifests on the level of how to manage a dynamic amount of computational resources in trade-off with the cost of these resources. It can actually be argued that one of the major forces behind the Cloud computing growth the last years is exactly this combination of: – minimum invasiveness to existing application implementations, i.e. simply off- loading the whole application stack on a VM and hosting it remotely, and – delegation of the adaptation concerns to a different level, that of the application resource management. Beyond this VM-based migration of applications on the IaaS model however, new Platform and Software as a Service (PaaS and SaaS, respectively) offerings of Cloud providers enable alternative migration options for applications. Looking into how applications are usually built, i.e. using the three layers pattern (Presentation, Business logic and Data [26]), as shown in Fig.1, it can be seen that it is possible to migrate only one architectural layer to the Cloud, instead of the whole application. The Google App Engine for example can be used for the business layer and Amazon Relational Database Service for the data layer. Furthermore, a set of architectural components from one or more layers can also be moved to the Cloud, and different deployment models (Private, Public, Community and Hybrid Clouds, see [54]) can be used, resulting into a partial migration of the application. A number of questions therefore arise: what part(s) of the application to migrate? How to adapt the application to operate in this mixed environment? Would, at the end of the day, migrating the whole application be a more efficient (in terms of a cost/benefit analysis) solution? In order to answer these questions we need to under- stand both how applications that are traditionally deployed (i.e. without using any Cloud technologies, as shown in Fig.1) should be adapted for the Cloud, and what the impact of this adaptation is to the way that applications usually operate and are 1 See for example: http://www.xen.org, http://www.vmware.com/products/ and http:// www.flexiant.com/ 2 Amazon Web Services: http://aws.amazon.com/ OverviewHow to Adapt of Cloud Applications Application for the Hosting Cloud Topologies Environment 3 Application Layers Application Presentation Presentation Presentation Presentation Layer Layer Layer Layer Business Business Business Business Layer Layer Layer Layer Data Data Data Data Layer Layer Layer Layer Deployment Traditional Private Public Community Models Cloud Cloud Cloud Hybrid Cloud Fig. 1 Overview of Cloud Deployment Models, Application Layers and Possible Migrations managed. The goal of this work is therefore to identify and discuss research chal- lenges and solutions for adapting existing applications for their migration from the traditional environment of a local data center to the Cloud (i.e. Cloud-enabling them). The framework of this discussion is structured around the three-layered applica- tion architecture pattern as depicted by Fig.1, and addresses the general principles and challenges that arise on a per-layer and cross-layer basis when migrating the ap- plication. In this respect, the challenges arising when considering the migration to a particular service delivery model and/or one specific solution are out of the scope of this work. Furthermore, the focus of the discussion of this article will mostly be the two lower layers of the application architectures (Business and Data). While some of the issues discussed affect also the Presentation layer, we feel that the discussion on how to adapt the Presentation layer of applications has many things in common with transforming applications in services, or at least exposing them as services. This discussion is beyond the scope of this work and has been covered in a better way in the literature, see for example [67]. The contributions of this work can be summarized as follows: 1. an identification and categorization of the various types of application migration to the Cloud, 2. an investigation into how the Business and Data application layer can be migrated to the Cloud, and what type of adaptations are required for this purpose, 3. a survey of cross-cutting concerns that affect both layers, and finally, 4. a systematic positioning of a) the layer-specific challenges and b) the cross- cutting concerns in relation to the identified migration types. The rest of this article is structured as follows: Section2 motivates this work by presenting a scenario for which the mere virtualization of the application is not an option. In Section3 we present our categorization of the various migration types. 4 Vasilios Andrikopoulos et al. Sections4 and5 discuss challenges and solutions for migrating architectural compo- nents from the Data and Business layer, respectively, to the Cloud. Section6 presents a series of concerns that affect both layers. Section7 organizes the findings of the pre- vious sections and positions them with respect to the migration types we identified in Section2. Finally, Section8 concludes the article, summarizing the main points and discussing future work. 2 Motivating Scenario Consider the case of a Health Insurance Company (HIC) in Germany that needs to provide access to its billing data to an External
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages44 Page
-
File Size-