In this paper, we overview the motivation, design, and implementation behind AppScale, an open source distributed software system that implements cloud platform as-a-service (PaaS). Our goal with AppScale is to simplify cloud application (app) development and deployment and by doing so to broaden the population of developers who are able to innovate using cloud systems. We enable this by targeting the problem of app portability across clouds and app service/library implementations (functionality common across apps such as data management, search, messaging, tasking, etc.). In particular, AppScale defines a simple, unifying, and open set of APIs based on the de facto public cloud standard of Google App Engine, i.e. apps that execute using Google’s public cloud also do so over AppScale without modification. AppScale then “plugs in” and automatically configures and deploys a number of alternative implementations of the different app services. Moreover, since we make AppScale available as a virtual machine image and a set of deployment tools, users can execute AppScale on-premise or over public cloud infrastructures. Developers can take advantage of the portability AppScale offers to simplify development and deployment of cloud apps, to compare/contrast different cloud services and fabrics without changing their apps or becoming an expert with the constituent technologies, and to investigate and evaluate new cloud platform advances using a rich application and service ecosystem.
The paper will appear in the February/March issue of IEEE Internet Computing.
/Chandra