AppScale -- Google App Engine in Open Source

Chandra Krintz (UCSB and AppScale Systems)
Cloud
Location: F150
Average rating: ****.
(4.00, 5 ratings)

Recent advances in cloud platforms (aka platform-as-a-service or PaaS) have significantly simplified cloud use by providing developers with complete software/runtime stacks for execution of their web-accessible applications (apps) and services. PaaS systems offer programmatic access to scalable, distributed, and fault tolerant cloud services which eliminates the need for developers to write or deploy their own and enabling them to focus on their innovation. Key services required by today’s apps typically include key-value, relational, object and/or blob data storage, data caching, e-mail and messaging, authentication, monitoring, background tasking, and data analytics technologies, among others. Extant PaaS systems provide fully or partially automatic configuration, deployment, and scaling of apps and services they require. Unfortunately, given the current state-of-the-art in PaaS (public, private, or open source) systems, a key barrier to their use by a broad developer base remains: lock-in to a particular cloud system, deployment target, or app service.

To address this limitation, we present a new open source runtime system for scalable web app deployment called AppScale. AppScale provides the benefits of PaaS but is unique in that it emulates, using open source technologies, what is arguably the de facto standard of public PaaS: Google App Engine. API-compatibility with App Engine means that any of the one million active App Engine apps today execute over AppScale without modification. This, in combination with the fact that AppScale executes (automatically deploys) anywhere a virtual machine can be instantiated (a laptop, an on-premise cluster, a local data center, Amazon EC2 or other IaaS), means that AppScale gives developers choice across all of the most popular deployment options available today, with no code rewrite.

This lock-in avoidance also extends to the actual services the app uses. AppScale ``plugs in’’ multiple alternatives of the same service (e.g. HBase, Cassandra, Hypertable, MongoDB and others for the NoSQL service) so that developers can compare, contrast, and try them with real apps, data, and workloads, without changing their apps. Whereas other platforms and frameworks require developers to choose a service implementation up front, and then manually stitch their apps to it (and repeat this process if the service ever has to change), AppScale provides a software layer with which developers access service plug-ins. Developers can swap out one service plug-in for another without rewriting their code, effectively ``future-proofing’’ their development and enabling large-scale reuse of their innovations. AppScale enables all of this by leveraging numerous open source technologies that it makes available to developers without imposing on them the burden of configuring, deploying, and scaling each across distributed cluster systems. In this talk, we overview the GAE programming model, the design and implementation of AppScale, and various AppScale use cases from our open source community including test/dev, disaster recovery, offline analytics of app data, and mobile app backends.

Photo of Chandra Krintz

Chandra Krintz

UCSB and AppScale Systems

Chandra Krintz is a Professor of Computer Science at the University of California, Santa Barbara (UCSB). She joined the UCSB faculty in 2001 after receiving her M.S. and Ph.D. degrees in Computer Science from the University of California, San Diego (UCSD). Chandra has led a number of different research projects that have advanced the state-of-the-art in programming systems in ways that improve performance and energy consumption, and that ease development and deployment of software. Recently, her work has targeted distributed and multi-language runtime systems and cloud platforms. Chandra has advised over 60 undergraduate and graduate students, is the author of numerous research articles regarding the implementation of programming languages, participates in efforts to broaden participation in computing, and is the progenitor of the AppScale project. AppScale is an open source implementation of Google’s coud platform: App Engine. Chandra recently spun AppScale out of the university and into a startup company called AppScale Systems in order to support its growing open source community.

Comments on this page are now closed.

Comments

07/25/2013 2:25pm PDT

For what it’s worth, after this presentation, I immediately set out to get AppScale working on my laptop (running LinuxMint 15 Olivia). The only issue I had was the install script for AppScale Tools. I followed the instructions for installing the tools on Ubuntu Lucid. I had to copy the file: appscale_install_lucid.sh to appscale_install_olivia.sh. After this, it appears to have worked! I now have AppScale running in a VirtualBox VM ready to deploy my GAE apps! Cool! Thanks.

Sponsors

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or scordesse@oreilly.com.

Contact Us

View a complete list of OSCON contacts