Over the last years, the utilization of cloud resources has been steadily rising and an increasing number of enterprises are moving applications to the cloud. A leading trend is the adoption of Platform as a Service to support rapid application deployment. By providing a managed environment, cloud platforms take away a lot of complex configuration effort required to build scalable applications. However, application migrations to and between clouds cost development effort and open up new risks of vendor lock-in. This is problematic because frequent migrations may be necessary in the dynamic and fast changing cloud market. So far, the effort of application migration in PaaS environments and typical issues experienced in this task are hardly understood. To improve this situation, we present a cloud-to-cloud migration of a real-world application to seven representative cloud platforms. In this case study, we analyze the feasibility of the migrations in terms of portability and the effort of the migrations. We present a Docker-based deployment system that provides the ability of isolated and reproducible measurements of deployments to platform vendors, thus enabling the comparison of platforms for a particular application. Using this system, the study identifies key problems during migrations and quantifies these differences by distinctive metrics.
RQ 1: Is it possible to move a real-world application between different cloud platforms? RQ 2: What is the development effort involved in porting a cloud-native application between cloud platforms?The use case application, Blinkist, is a Ruby on Rails web application developed by Blinks Labs GmbH. The set of selected PaaS vendors includes IBM Bluemix, cloudControl, AWS Elastic Beanstalk, EngineYard, Heroku, OpenShift, and Pivotal Web Services. We analyze the feasibility of the migration in terms of portability and the effort for this task. Besides, we present a Docker-based deployment system that provides the ability of isolated and reproducible measurements of deployments to platform vendors, thus enabling the comparison of platforms for a particular application. Using this system, the study identifies key problems during migrations and quantifies these differences by distinctive metrics. In this study, we target implementation portability [3], [10] of the migration execution, i.e., the application transformation and the deployment. We focus on functional portability of the application. Data portability must be investigated separately, especially since popular NoSQL technologies impose substantial lock-in problems. With our results, we are able to compare migration effort between different cloud platforms and to identify existing portability problems.The remainder of the paper is structured as follows. In Section II, we describe our research methodology including 1 See the twelve-factor methodology at http://12factor.net.