Abstraction Driven Application and Data Portability in Cloud Computing

Document Type

Dissertation

Publication Date

2012

Abstract

Cloud computing has changed the way organizations create, manage, and evolve their applications. While many organizations are eager to use the cloud, tempted by substantial cost savings and convenience, the implications of using clouds are still not well understood. One of the major concerns in cloud adoption is the vendor lock-in of applications, caused by the heterogeneity of the numerous cloud service offerings. Vendor locked applications are difficult, if not impossible to port from one cloud system to another, forcing cloud service consumers to use undesired or suboptimal solutions.

This dissertation investigates a complete and comprehensive solution to address the issue of application lock-in in cloud computing. The primary philosophy is the use of carefully defined abstractions in a manner that makes the heterogeneity in the clouds invisible.

The first part of this dissertation focuses on the development of cloud applications using abstract specifications. Given the domain specific nature of many cloud workloads, we focused on using Domain Specific Languages (DSLs). We applied DSL based development techniques to two domains with different characteristics and learnt that abstract driven methods are indeed viable and results in significant savings in cost and effort. We also showcase two publicly hosted Web-based application developments tools, pertaining to the two domains. These tools use abstractions in every step of the application life-cycle and allow domain experts to conveniently create applications and deploy them to clouds, irrespective of the target cloud system.

The second part of this dissertation presents the use of process abstractions for application deployment and management in clouds. Many cloud service consumers are focused on specific application oriented tasks, thus we provided abstractions for the most useful cloud interactions via a middleware layer. Our middleware system not only provided the independence from the various process differences, but also provided the means to reuse known best practices. The success of this middleware system also influenced a commercial product.


Share

COinS