The Appscale Cloud Platform Enabling Portable, Scalable Web Application Deployment

The Appscale Cloud Platform Enabling Portable, Scalable Web Application Deployment

View from the Cloud Editor: George Pallis • [email protected] The AppScale Cloud Platform Enabling Portable, Scalable Web Application Deployment Chandra Krintz • University of California, Santa Barbara AppScale is an open source distributed software system that implements a cloud platform as a service (PaaS). AppScale makes cloud applications easy to deploy and scale over disparate cloud fabrics, implementing a set of APIs and architecture that also makes apps portable across the services they employ. AppScale is API-compatible with Google App Engine (GAE) and thus executes GAE applications on-premise or over other cloud infrastructures, without modification. s compute power, disk storage, and high- key barrier to their widespread use remains: end network communication costs plum- lock-in to a particular cloud system or app ser- A met, cloud computing has emerged to vice implementation. We can address this porta- provide intuitive, utility-style access to vast bility problem with a new cloud platform called pools of resources (compute, storage, network- AppScale. ing, and software services). Although such pro- cessing power is cheap and readily available, The Portability Problem accessing it from cloud infrastructure providers Public PaaS systems such as Google App via infrastructure as a service (IaaS) currently Engine (GAE), Microsoft Azure, Amazon Elastic requires significant expertise, experience, and Beanstalk, and VMWare CloudFoundry all offer time to customize, configure, deploy, and man- similar cloud service ecosystems for app use. age virtual machines (VMs). Unfortunately, they do so via different APIs and Recent advances in platform-level cloud language bindings, scale and service-level guar- computing (platform as a service, or PaaS) have antees, performance levels, pricing models, and significantly simplified cloud use by giving standards, rules, and restrictions to which apps developers complete software/runtime stacks must comply. The sheer multitude of offerings (versus the self-service VMs of IaaS) on which to and options makes it challenging for new and execute their Web-accessible applications (apps) expert software developers to determine which and services. PaaS systems offer programmatic set of services is best for their apps, for some access to scalable, distributed, and fault-tolerant definition of “best” (price, performance, scale, cloud services, which eliminates the need for configurability, familiarity, ease of use, and so developers to write or deploy their own, and on). Moreover, once users choose a platform, lets them focus on innovation. Cloud platform code their app to its service interfaces, and con- application services typically include key-value, figure it for that system, they become locked in relational, object, or blob data storage, data cach- to both the public cloud fabric and to the service ing, email and messaging, authentication, moni- implementation the platform chooses to export. toring, resource/service acquisition, background This lock-in occurs because changing, even to a tasking, and data analytics technologies, among similar service or platform from a different pro- others. Extant PaaS systems automatically fully vider, requires the developer to exert significant or partially configure, deploy, and scale the apps porting effort (that is, code changes in the app). and services they execute. Unfortunately, given Surprisingly, this lack of portability across the current state of the art in PaaS systems, a popular app services also occurs even for open 72 Published by the IEEE Computer Society 1089-7801/13/$31.00 © 2013 IEEE IEEE INTERNET COMPUTING IC-17-02-VftC.indd 72 3/5/13 12:08 PM The AppScale Cloud Platform source technologies. With cloud ser- Our work at the University of for each service or API its apps use vices’ popularity, a vast diversity of California, Santa Barbara, addresses within a given cloud instance. open source alternatives have emerged these portability limitations that Such choice precludes application/ that implement service functionality. extant cloud systems and app ser- code lock-in to any particular cloud For example, the immensely popular vices impose with new research and system (IaaS or Paas) or service key-value (informally dubbed NoSQL) technology. In particular, we attempt implementation (NoSQL, SQL, task- datastores, initially described and to reduce lock-in and encourage and ing, messaging, authentication, and used by Google and Amazon for their facilitate broader use (and thus inves- so on). Moreover, AppScale lets users internal “big data” concerns, are now tigation) of these systems for deploy- experiment with these different widely available as open source. Cur- ing current and future Web-based technologies with a low barrier to rently, more than 200 NoSQL options and data-intensive apps. Toward this entry, and gives cloud researchers a offer a similar overall service for apps, end, we’ve designed, developed, and platform that facilitates the investi- but they differ in one or more charac- released as open source the AppScale gation of cloud technologies using a teristics, such as their programming cloud platform (http://appscale.cs diversity of real apps and integrated interfaces (APIs), query language and .ucsb.edu). AppScale is a software technologies. query support, deployment topology infrastructure that implements a (master/slave versus peer-to-peer), PaaS cloud to exploit the benefits AppScale performance and scaling behavior, that such systems offer (ease of use Figure 1 depicts the design of the data consistency policies, replication through a simplified deployment AppScale system. Our AppScale policies, and programming language and execution model, and automatic approach is unique in that we fully bindings, among others. Moreover, each service alternative has a unique methodology for its configuration and Although open source app services offer deployment in a distributed setting, which imposes overheads and learn- developers more implementation choices than ing curves on developers and sys- tem administrators because each is a public cloud systems, the choice of any single complex system, performance is sen- sitive to configuration, and software implementation also leads to code lock-in. updates are frequent. A similar diversity in offerings is available for other app services, deployment, configuration, and elas- emulate GAE by implementing the including authentication, Map- tic scalability). App Engine programming model and Reduce data analytics, full text search, AppScale differs from other PaaS APIs both to bring successful pub- multitasking and distributed coordi- offerings in three primary ways. First, lic cloud technologies on-premise nation, caching, SQL databases, and AppScale executes automatically over and under developer control, and messaging. Although open source multiple IaaS clouds (on-premise to export these APIs via a plug-in app services offer developers more and public), providing “write-once, software architecture that decouples implementation choices than public deploy-anywhere” functionality for the app from its service implemen- cloud systems (which choose, limit, cloud applications that execute over tation so that its implementation or restrict implementations for scal- it. Second, AppScale implements the (and underlying cloud fabric) can ing and management purposes), the programming model and APIs of the de be swapped out without changing choice of any single implementation facto PaaS public cloud standard: GAE the app. also leads to code lock-in. As for cloud (http://code.google.com/appengine/ GAE is a public cloud platform fabrics and proprietary systems, it’s docs/whatisgoogleappengine.html). (distributed Web service stack) that difficult to know in advance which Applications that execute over App hosts more than 1 million active apps option is best for a particular app Engine also execute over AppScale today within Google’s data centers or workload, and moving between without modification, extending app (http://googleappengine.blogspot service implementations, even if the portability to multiple IaaS and PaaS .com/2011/05/year-ahead-for-google- app is designed to do so, consumes cloud fabrics. Third, the AppScale app-engine.html). This widespread time, lines of code, and programmer software architecture integrates (and use and uptake has resulted from focus that could instead be used for automatically configures, deploys, the programming model that App the core innovation. and scales) multiple alternatives Engine implements, which reflects a MARCH/APRIL 2013 73 IC-17-02-VftC.indd 73 3/5/13 12:08 PM View from the Cloud AppScale platform APIs (GAE++) instance plugs in a single service for Load balancing each API, but users can choose from multiple alternatives upon deploy- Fault tolerance and elastic scaling The AppScale distributed ment. This support lets users eas- Con guration and deployment cloud platform ily compare and contrast different API implementation/cloud and service integration service alternatives with their apps Plug-in and workloads. For example, for adaptors the Datastore API, AppScale inte- • Data management NoSQL, SQL, objects grates more than a dozen different Cassandra MySQL HBase S3 plug-in alternatives, including those AppScale • Analytics for Cassandra, HBase, Hypertable, search, MapReduce plug-ins Solr Cloudera Lucene Google Redis, MySQL Cluster (which we employ as a key-value store), and • Clouds SimpleDB (an Amazon public cloud On-premise AWS GAE Azure datastore

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us