Towards Cloud Computing Interoperability and Transportability for Services on the Platform As a Service Layer / Tier
Total Page:16
File Type:pdf, Size:1020Kb
Towards Cloud Computing Interoperability and Transportability for Services on the Platform as a Service Layer / Tier DIPLOMA THESIS to confer the academic degree of Magister der Sozial- und Wirtschaftswissenschaften in the Diploma Program WIRTSCHAFTSINFORMATIK Author: Mario Meir-Huber Submission: Institute of Telecooperation Thesis Supervisor: Univ. Prof. Dr. Gabriele Anderst-Kotsis Assistant Thesis Supervisor: Dipl.-Ing. Matthias Steinbauer Linz, April, 2015 Eidesstattliche Erklärung Ich erkläre an Eides statt, dass ich die vorliegende Diplomarbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt bzw. die wörtlich oder sinngemäß entnommenen Stellen als solche kenntlich gemacht habe. Die vorliegende Diplomarbeit ist mit dem elektronisch übermittelten Textdokument identisch. Table of Contents 1 Problem Statement and Approach ...................................................................................... 5 2 Cloud Computing Interoperability ..................................................................................... 6 2.1 What is interoperability? ............................................................................................ 6 2.2 Interoperability challenges for Platform as a Service ................................................ 9 2.3 Interoperability solutions for PaaS ........................................................................... 10 2.3.1 Standard initiatives ........................................................................................... 11 2.3.2 Libraries and Frameworks ................................................................................ 12 2.3.3 Discussion of existing standards and frameworks ........................................... 15 2.3.4 What is necessary to achieve interoperability in the Cloud? ........................... 17 3 Selection of Platform as a Service Providers ................................................................... 20 3.1 List of Platform as a Service Providers .................................................................... 20 3.2 Criteria used for further evaluation .......................................................................... 23 4 Detailed evaluation of selected PaaS Providers ............................................................... 25 4.1 AWS Elastic Beanstalk ............................................................................................ 25 4.2 Google AppEngine ................................................................................................... 27 4.3 IBM BlueMix ........................................................................................................... 29 4.4 Microsoft Windows Azure ....................................................................................... 31 4.5 Services Matrix ........................................................................................................ 34 4.6 Criteria for Services Implementation ....................................................................... 35 5 Services Architecture ....................................................................................................... 37 5.1 Overall Library architecture ..................................................................................... 37 5.2 Messaging ................................................................................................................. 41 5.2.1 Supported Operations and Functionality by Platforms .................................... 41 5.2.2 Service Implementation .................................................................................... 42 5.3 Blob Storage ............................................................................................................. 48 5.3.1 Supported Operations and Functionality by Platforms .................................... 48 5.3.2 Existing Interoperability Libraries ................................................................... 51 5.3.3 Service Implementation .................................................................................... 51 5.4 Key/Value Databases ............................................................................................... 61 5.4.1 Supported Operations and Functionality by Platforms .................................... 61 5.4.2 Service Implementation .................................................................................... 62 6 Evaluation and Conclusions ............................................................................................. 73 6.1 Demo Application .................................................................................................... 73 6.2 Learning’s ................................................................................................................. 78 6.3 Future Work ............................................................................................................. 80 6.3.1 Vertical extensions ........................................................................................... 80 6.3.2 Horizontal extensions ....................................................................................... 80 6.3.3 Further Quality improvements ......................................................................... 82 6.4 Concluding remarks ................................................................................................. 82 1 Problem Statement and Approach Cloud Computing is a new and emerging trend in IT. Many companies adopt this trend and start using a platform of their choice. One major issue often named in the context of cloud computing is interoperability. Research was conducted over the last years on Cloud Computing Interoperability with Infrastructure-as-a-Service (IaaS) solutions [Ste13a], [Ste13b]. A new and emerging trend in Cloud Computing is Platform-as-a-Service (PaaS). However, research is limited in terms of interoperability between different platforms and solutions. This thesis will show how interoperability between different platforms and solutions can be achieved. The Open Data Center Alliance describes some general necessities for PaaS Interoperability [Ope12]. This includes that an application should run on different cloud solutions to ensure interoperability. In this paper, it is also stated that data should be accessed without the need to re-write code when switching to another platform. Data portability is also a necessity by the European Union. In a position paper, the European Commission describes this already in 2012 [Eur12]. Dillon et al. state that there is significant work to be done for IaaS interoperability and some work for SaaS interoperability [Dil10]. However, they outline that there is not that much of work done yet for Platform as a Service (PaaS) interoperability. This work outlines how interoperability for PaaS solutions can be achieved. In chapter 2, an overview of interoperability and its relevance to cloud computing is given. This chapter will also outline relevant work in the domain that aims at achieving interoperability. Chapter 3 will then discuss cloud platforms used in companies. The most popular cloud platforms are then discussed in detail in chapter 4. In chapter 5, OCI, a new interoperability framework will be proposed. The aim of this framework is to enable interoperability on the PaaS layer. The Page 5 of 95 last chapter, chapter 6, will demonstrate the feasibility of PaaS interoperability with OCI. Furthermore, future work is described in this chapter as well. 2 Cloud Computing Interoperability As initially stated, Cloud interoperability is a challenge in the context of cloud as a technology. This section will outline interoperability, it’s challenges and on-going standardization efforts. 2.1 What is interoperability? Interoperability is used in various levels of software and systems. With Cloud Computing, several major interoperability questions arise. First of all, interoperability can be seen as an infrastructure interoperability element. As for infrastructure interoperability, it is basically about the question on how to move virtual instances from one cloud provider to another. Another interoperability question is about software and tools interoperability. This is not on how to transfer software from one provider to another, it is about how different software languages and tools collaborate in one cloud ecosystem or different cloud ecosystems. An example of that is a message-based communication between a Java-based solution and a Microsoft .NET solution. Mayrbäurl et al. described such a scenario on a Microsoft Azure based solution that itself communicates with an on-premise solution that is written in Java, whereas the Cloud service uses .NET [May11]. The third interoperability question is about the services offered by different distributors. When someone builds a cloud solution based on a specific provider and uses a software stack such as J2EE or Microsoft .NET, it is not that difficult to move the application to another instance or Cloud provider. However, when this application consumes platform-specific services such as a distributed storage service, a messaging service, e-mail and alike, migration Page 6 of 95 becomes challenging. Therefore, providing interoperability on the platform services level is another key issue in Cloud computing interoperability. Gonidis et al. defines Interoperability with two different characteristics [Gon11]. According to this paper, interoperability is when two components