SlideShare a Scribd company logo
Scalable and Open AppEngine
Development and Deployment
  Navraj Chohan       Chris Bunch
  Sydney Pang      Chandra Krintz
   Nagy Mostafa      Sunil Soman
            Rich Wolski
http://www.capgemini.com/technology-blog/2009/04/
   from_lamp_to_leap_and_beyond.php
Terminology

  Software-as-a-Service (SaaS)
      e.g., SalesForce, Gmail
Provides remote application access


  Platform-as-a-Service (PaaS)
    e.g., Google App Engine
 Provides scalable runtime stack


Infrastructure-as-a-Service (IaaS)
   e.g., Amazon Web Services
   Provides full system images
•  Open-source, Platform-as-a-Service for research
   and engineering of cloud computing components,
   applications, and services

•  Automated deployment of applications to high-
   performance databases
•  Fine grain control over application environment
•  Google App Engine apps hosting on your cluster
  –  Real applications
  –  Familiar API (that is extensible for lock-in avoidance)
  –  Your data and code on your resources
From Google App Engine (GAE)
          to AppScale
•  GAE Application Programming Interface
  –    Datastore (get/put)
  –    Memcache
  –    URL Fetching
  –    Mail
  –    Images
  –    Authentication
•  Write Python/Java GAE app
  –  Use SDK locally to test and generate indexes
        •  APIs implemented as non-scalable, simple versions
From Google App Engine (GAE)
          to AppScale
•  GAE Application Programming Interface
  –    Datastore (get/put)                      BigTable
  –    Memcache                                 Memcached
  –    URL Fetching
  –    Mail                                     GMail
  –    Images
  –    Authentication                           Google Accounts
•  Write Python/Java GAE app
  –  Use SDK locally to test and generate indexes
        •  APIs implemented as non-scalable, simple versions
  –  Upload to Google resources
        •  Highly scalable API implementation
Sandboxed Runtime
•    Restricted subset of library calls
•    No reading/writing from/to file system
•    Data persistence only via get/put interface
•    Computation bounded: 30 secs per request
•    Access web services over via HTTP / HTTPS
     only (ports 80 and 443)
Recent GAE Additions
•  Python and JVM SDKs
  –  JRuby, Clojure, etc. available through Java
•  Task Queue, Cron, XMPP APIs
•  New SLAs for paying customers
  –  $0.10 per CPU core hour
  –  $0.10 per GB bandwidth in
  –  $0.12 per GB bandwidth out
  –  $0.15 per GB data stored per month
Protocol Buffers
•  Google App Engine’s internal data format
   –  And AppScale’s
•  Similar to C-style structs:

message Person {
  required int32 id = 1;
  optional string name = 2;
}
From Google App Engine (GAE)
          to AppScale
•  AppScale extends the GAE SDK
  –  Replaces the simple, non-scalable API implementation
     with pluggable, distributed, scalable components
     •  Using open-source solutions as available/possible
     •  Communication over SSL
•  Available as source and as system image
  –  Each instance can implement any component
     •  Self configuring as part of AppScale cloud deployment
  –  Deploys over
     •  Virtual machine monitors (Xen, KVM)
     •  Infrastructure (IaaS) cloud layers
IaaS Cloud Systems
•  Amazon Web Services (AWS)
   –  Elastic Compute Cloud (EC2), Persistent Storage (S3, EBS)
   –  For-fee, as negotiated in SLA (CPU, network, storage)
   –  Vast resources available
       •  Users access small (opaque) subset, can scale-out

•  Eucalyptus
   –  Open source implementation of the AWS APIs
   –  Inspiration for AppScale – familiar, widely-used API
      implementation for execution on your cluster
      •  Limited only by the hardware you have available
Differences in AppScale
          Deployment Options
•  Xen / KVM:
  –  Static deployment
     •  Can use as many nodes as are manually configured
•  Eucalyptus / EC2
  –  Dynamic deployment
     •  Can use as many nodes as the system can support (or pay for
        for EC2 deployment)
  –  As part of ongoing/future work: support for dynamic scaling
     •  Front-end (user-facing) & back-end (data managment & computation)
     •  SLA renegotiation
AppScale System Layout
•  AppLoadBalancer (ALB)
•  AppServer (AS)
•  Database Master/Slave/Peer (DB M/S/P)

 GAE App                                   AppScale
                          DB M/P
Developer                                  tools
               ALB
(AppScale
  Admin)                                   App
                             DB S/P
                                           Controller
GAE App
GAE App
 GAE App             AS
 Users
 Users
   Users                                   HTTPS
AppController (AC)
•  SOAP Server written in Ruby
  –  Runs on all nodes
•  Middleware layer
•  Controls and sets up a node for use
  –  Sets up configuration files (data replication)
  –  Sets up firewall for security
•  Master AC “heartbeats” all other nodes
  –  Collects performance info as well
AppLoadBalancer (ALB)
•  Ruby on Rails application
•  Handles authentication and routing of users
   to AppServers
•  Three copies are deployed via Mongrel
  –  Load balanced via nginx
Database Management
•  Five databases currently available:
  –  HBase, Hypertable: Master / Slave
  –  Cassandra, Voldemort: Peer / Peer
  –  Clustered MySQL: Relational
•  Two main components
  –  Protocol Buffer Server: Data access / storage
  –  User / App Server: Authentication
AppServer (AS)
•  Modified Google App Engine SDK
•  App requests internally are Protocol Buffers
  –  Forwards requests to PB Server
•  Minimal request set:
  –  Put(id)
  –  Get(id)
  –  Query: Equivalent to get_all_in_table
  –  Delete(id)
  –  Count: Total number of items in database
  –  GetSchema
AppScale Tools
•  Ruby scripts that initiate AppScale
   deployment
  –  Initializes the first AppController for use
  –  Uploads AppEngine app
•  Conceptually similar to Amazon AWS EC2
   tools
  –  describe-instances
  –  upload-app: Introduce additional apps
  –  terminate-instances
Fault Tolerance
•  System can survive the following failures:
  –  AppServer failure
  –  Database Slave failure
  –  Database Peer failure
  –  AppLoadBalancer failure *
  –  AppController failure *
Testing Methodology
•  Load testing done via the Grinder
•  Test specifics:
  –  Initially 3 users
  –  3 users added every 5 seconds
  –  Done until 160 seconds have passed
•  Each user navigates the page, performs
   some scripted action
•  Measured total transactions performed and
   average response time
AppScale Evaluation Cluster
•  Three Grinder nodes, four AppScale nodes
  –  One master, three slaves
  –  Virtualized via Xen
  –  Database: HBase (3x replication) 64 MB HDFS blocks
     •  PBServer via Thrift; stores entire protocol buffers
•  Hardware
  –  Quad-core 2.66 GHz machines
  –  8 GB of RAM
  –  Connected via Gigabit Ethernet
Applications Tested
•  Tasks - a to-do list
   –  Read and write intensive (44 transactions per user)
•  Cccwiki – allows users to edit web pages
   –  Read intensive, updates only (74 transactions per
      user)
•  Guestbook – allows users to post messages
   –  Retrieves ten most recent posts only (9 transactions
      per user)
•  Shell – provides an interactive Python shell
   –  Compute intensive (14 transactions per user)
Transactions per App
App Response Time
Comparison with Google
Room for Improvement
•  Current bottlenecks:
  –  Queries perform filtering server-side
  –  Filtering is done outside of the DB
  –  AppEngine, PB Server are single-threaded
  –  Entry point to some DBs is single-threaded
•  Future work will address these problems
  –  Will also compare performance across DBs
  –  e.g., BigTable-like DBs vs. P2P DBs
Related Work
•  AppDrop
  –  Proof-of-concept Rails app
•  TyphoonAE
  –  Relatively new (alpha release)
  –  Runs MongoDB only
•  Microsoft Azure
  –  Uses .NET as the platform
  –  Has a similar pricing model to AppEngine
AppScale Recap
•  Distributed, multi-component system
   –  Deployed as a single system image (self
      configuring)
      •  Static deployment over Xen/KVM
      •  Dynamic deployment over Eucalyptus/EC2
•  Databases supported:
   –  HBase, Hypertable, MySQL, Cassandra,
      Voldemort
•  Fault-tolerant
AppScale Recap
•  Open cloud research platform
  –  International user community
•  Goals
  –  Easy to use and extend
  –  Automatic deployment of PaaS cloud and
     GAE apps on resources other than Google’s
  –  Support real applications and users
     •  Experimentation and testing in real environments
•  Current performance results are a baseline
Performance Improvements
•  AppEngine now multi-process, load balanced
•  PB Server now multi-threaded
•  Storing data like Google for HBase and
   Hypertable
  –  Three tables: Reference, Sort Ascending, Sort
     Descending
Future Work
•  Expand out of the web services domain
  –  Investigating opportunities in streaming
  –  Integrated MapReduce support for high-
     performance computing (HPC)
  –  Co-locate AppEngines and use shared
     memory
•  Additional databases:
  –  MongoDB, Scalaris, CouchDB
Thanks!
•  To the AppScale team!
     –  Co-lead Navraj Chohan
     –  Advisor Prof. Chandra Krintz
•    To the open-source community
•    To Google, NSF, and IBM for financial support
•    To you all for coming out today
•    Check us out on the web:
     –  http://appscale.cs.ucsb.edu

More Related Content

What's hot

Tech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache StratosTech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache Stratos
Vishanth Bala
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
Codemotion Tel Aviv
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
Sascha Möllering
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
Sascha Möllering
 
StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)
Simba Khadder
 
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
Jen Aman
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
Sascha Möllering
 
Serverless data processing with Data Pipeline
Serverless data processing with Data PipelineServerless data processing with Data Pipeline
Serverless data processing with Data Pipeline
Radek Miazio
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS Lambda
Serhat Can
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon Web Services
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForzaFullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Codemotion Tel Aviv
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless Architecture
AWS Vietnam Community
 
Chatbots with Serverless
Chatbots with ServerlessChatbots with Serverless
Chatbots with Serverless
Srushith Repakula
 
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
HostedbyConfluent
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
Amazon Web Services
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
Amazon Web Services
 
AWS ELB Tips & Best Practices
AWS ELB Tips & Best PracticesAWS ELB Tips & Best Practices
AWS ELB Tips & Best Practices
ChinaNetCloud
 
AWS Lambda from the Trenches
AWS Lambda from the TrenchesAWS Lambda from the Trenches
AWS Lambda from the Trenches
Yan Cui
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
Ville Seppänen
 

What's hot (20)

Tech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache StratosTech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache Stratos
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)
 
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Serverless data processing with Data Pipeline
Serverless data processing with Data PipelineServerless data processing with Data Pipeline
Serverless data processing with Data Pipeline
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS Lambda
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForzaFullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless Architecture
 
Chatbots with Serverless
Chatbots with ServerlessChatbots with Serverless
Chatbots with Serverless
 
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
Kafka for Microservices – You absolutely need Avro Schemas! | Gerardo Gutierr...
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
AWS ELB Tips & Best Practices
AWS ELB Tips & Best PracticesAWS ELB Tips & Best Practices
AWS ELB Tips & Best Practices
 
AWS Lambda from the Trenches
AWS Lambda from the TrenchesAWS Lambda from the Trenches
AWS Lambda from the Trenches
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
 

Similar to Appscale at CLOUDCOMP '09

Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
Csaba Toth
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
cloudcampnigeria
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Opevel
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
Chris Purrington
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
Azure Riyadh User Group
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Getting value from IoT, Integration and Data Analytics
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
shubhravrat Deshpande
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
shubhravrat Deshpande
 
2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix
Yu Ishikawa
 
Google appenginejava.ppt
Google appenginejava.pptGoogle appenginejava.ppt
Google appenginejava.ppt
Young Alista
 
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
Ram G Athreya
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
Amazon Web Services
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
Amazon Web Services
 
Architectures, Frameworks and Infrastructure
Architectures, Frameworks and InfrastructureArchitectures, Frameworks and Infrastructure
Architectures, Frameworks and Infrastructureharendra_pathak
 
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDBServerless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Amazon Web Services
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
Cask Data
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Amazon Web Services
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Amazon Web Services
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
Joe Levy
 
An evaluation of distributed datastores using AppScale Cloud Platform
An evaluation of distributed datastores using AppScale Cloud PlatformAn evaluation of distributed datastores using AppScale Cloud Platform
An evaluation of distributed datastores using AppScale Cloud Platformhimanshuvaishnav
 

Similar to Appscale at CLOUDCOMP '09 (20)

Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix2014 09-12 lambda-architecture-at-indix
2014 09-12 lambda-architecture-at-indix
 
Google appenginejava.ppt
Google appenginejava.pptGoogle appenginejava.ppt
Google appenginejava.ppt
 
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Architectures, Frameworks and Infrastructure
Architectures, Frameworks and InfrastructureArchitectures, Frameworks and Infrastructure
Architectures, Frameworks and Infrastructure
 
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDBServerless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDB
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017
 
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
API City 2019 Presentation - Delivering Developer Tools at Scale: Microsoft A...
 
An evaluation of distributed datastores using AppScale Cloud Platform
An evaluation of distributed datastores using AppScale Cloud PlatformAn evaluation of distributed datastores using AppScale Cloud Platform
An evaluation of distributed datastores using AppScale Cloud Platform
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Appscale at CLOUDCOMP '09

  • 1. Scalable and Open AppEngine Development and Deployment Navraj Chohan Chris Bunch Sydney Pang Chandra Krintz Nagy Mostafa Sunil Soman Rich Wolski
  • 2. http://www.capgemini.com/technology-blog/2009/04/ from_lamp_to_leap_and_beyond.php
  • 3. Terminology Software-as-a-Service (SaaS) e.g., SalesForce, Gmail Provides remote application access Platform-as-a-Service (PaaS) e.g., Google App Engine Provides scalable runtime stack Infrastructure-as-a-Service (IaaS) e.g., Amazon Web Services Provides full system images
  • 4. •  Open-source, Platform-as-a-Service for research and engineering of cloud computing components, applications, and services •  Automated deployment of applications to high- performance databases •  Fine grain control over application environment •  Google App Engine apps hosting on your cluster –  Real applications –  Familiar API (that is extensible for lock-in avoidance) –  Your data and code on your resources
  • 5. From Google App Engine (GAE) to AppScale •  GAE Application Programming Interface –  Datastore (get/put) –  Memcache –  URL Fetching –  Mail –  Images –  Authentication •  Write Python/Java GAE app –  Use SDK locally to test and generate indexes •  APIs implemented as non-scalable, simple versions
  • 6. From Google App Engine (GAE) to AppScale •  GAE Application Programming Interface –  Datastore (get/put) BigTable –  Memcache Memcached –  URL Fetching –  Mail GMail –  Images –  Authentication Google Accounts •  Write Python/Java GAE app –  Use SDK locally to test and generate indexes •  APIs implemented as non-scalable, simple versions –  Upload to Google resources •  Highly scalable API implementation
  • 7. Sandboxed Runtime •  Restricted subset of library calls •  No reading/writing from/to file system •  Data persistence only via get/put interface •  Computation bounded: 30 secs per request •  Access web services over via HTTP / HTTPS only (ports 80 and 443)
  • 8. Recent GAE Additions •  Python and JVM SDKs –  JRuby, Clojure, etc. available through Java •  Task Queue, Cron, XMPP APIs •  New SLAs for paying customers –  $0.10 per CPU core hour –  $0.10 per GB bandwidth in –  $0.12 per GB bandwidth out –  $0.15 per GB data stored per month
  • 9. Protocol Buffers •  Google App Engine’s internal data format –  And AppScale’s •  Similar to C-style structs: message Person { required int32 id = 1; optional string name = 2; }
  • 10. From Google App Engine (GAE) to AppScale •  AppScale extends the GAE SDK –  Replaces the simple, non-scalable API implementation with pluggable, distributed, scalable components •  Using open-source solutions as available/possible •  Communication over SSL •  Available as source and as system image –  Each instance can implement any component •  Self configuring as part of AppScale cloud deployment –  Deploys over •  Virtual machine monitors (Xen, KVM) •  Infrastructure (IaaS) cloud layers
  • 11. IaaS Cloud Systems •  Amazon Web Services (AWS) –  Elastic Compute Cloud (EC2), Persistent Storage (S3, EBS) –  For-fee, as negotiated in SLA (CPU, network, storage) –  Vast resources available •  Users access small (opaque) subset, can scale-out •  Eucalyptus –  Open source implementation of the AWS APIs –  Inspiration for AppScale – familiar, widely-used API implementation for execution on your cluster •  Limited only by the hardware you have available
  • 12. Differences in AppScale Deployment Options •  Xen / KVM: –  Static deployment •  Can use as many nodes as are manually configured •  Eucalyptus / EC2 –  Dynamic deployment •  Can use as many nodes as the system can support (or pay for for EC2 deployment) –  As part of ongoing/future work: support for dynamic scaling •  Front-end (user-facing) & back-end (data managment & computation) •  SLA renegotiation
  • 13. AppScale System Layout •  AppLoadBalancer (ALB) •  AppServer (AS) •  Database Master/Slave/Peer (DB M/S/P) GAE App AppScale DB M/P Developer tools ALB (AppScale Admin) App DB S/P Controller GAE App GAE App GAE App AS Users Users Users HTTPS
  • 14. AppController (AC) •  SOAP Server written in Ruby –  Runs on all nodes •  Middleware layer •  Controls and sets up a node for use –  Sets up configuration files (data replication) –  Sets up firewall for security •  Master AC “heartbeats” all other nodes –  Collects performance info as well
  • 15. AppLoadBalancer (ALB) •  Ruby on Rails application •  Handles authentication and routing of users to AppServers •  Three copies are deployed via Mongrel –  Load balanced via nginx
  • 16. Database Management •  Five databases currently available: –  HBase, Hypertable: Master / Slave –  Cassandra, Voldemort: Peer / Peer –  Clustered MySQL: Relational •  Two main components –  Protocol Buffer Server: Data access / storage –  User / App Server: Authentication
  • 17. AppServer (AS) •  Modified Google App Engine SDK •  App requests internally are Protocol Buffers –  Forwards requests to PB Server •  Minimal request set: –  Put(id) –  Get(id) –  Query: Equivalent to get_all_in_table –  Delete(id) –  Count: Total number of items in database –  GetSchema
  • 18. AppScale Tools •  Ruby scripts that initiate AppScale deployment –  Initializes the first AppController for use –  Uploads AppEngine app •  Conceptually similar to Amazon AWS EC2 tools –  describe-instances –  upload-app: Introduce additional apps –  terminate-instances
  • 19. Fault Tolerance •  System can survive the following failures: –  AppServer failure –  Database Slave failure –  Database Peer failure –  AppLoadBalancer failure * –  AppController failure *
  • 20. Testing Methodology •  Load testing done via the Grinder •  Test specifics: –  Initially 3 users –  3 users added every 5 seconds –  Done until 160 seconds have passed •  Each user navigates the page, performs some scripted action •  Measured total transactions performed and average response time
  • 21. AppScale Evaluation Cluster •  Three Grinder nodes, four AppScale nodes –  One master, three slaves –  Virtualized via Xen –  Database: HBase (3x replication) 64 MB HDFS blocks •  PBServer via Thrift; stores entire protocol buffers •  Hardware –  Quad-core 2.66 GHz machines –  8 GB of RAM –  Connected via Gigabit Ethernet
  • 22. Applications Tested •  Tasks - a to-do list –  Read and write intensive (44 transactions per user) •  Cccwiki – allows users to edit web pages –  Read intensive, updates only (74 transactions per user) •  Guestbook – allows users to post messages –  Retrieves ten most recent posts only (9 transactions per user) •  Shell – provides an interactive Python shell –  Compute intensive (14 transactions per user)
  • 26. Room for Improvement •  Current bottlenecks: –  Queries perform filtering server-side –  Filtering is done outside of the DB –  AppEngine, PB Server are single-threaded –  Entry point to some DBs is single-threaded •  Future work will address these problems –  Will also compare performance across DBs –  e.g., BigTable-like DBs vs. P2P DBs
  • 27. Related Work •  AppDrop –  Proof-of-concept Rails app •  TyphoonAE –  Relatively new (alpha release) –  Runs MongoDB only •  Microsoft Azure –  Uses .NET as the platform –  Has a similar pricing model to AppEngine
  • 28. AppScale Recap •  Distributed, multi-component system –  Deployed as a single system image (self configuring) •  Static deployment over Xen/KVM •  Dynamic deployment over Eucalyptus/EC2 •  Databases supported: –  HBase, Hypertable, MySQL, Cassandra, Voldemort •  Fault-tolerant
  • 29. AppScale Recap •  Open cloud research platform –  International user community •  Goals –  Easy to use and extend –  Automatic deployment of PaaS cloud and GAE apps on resources other than Google’s –  Support real applications and users •  Experimentation and testing in real environments •  Current performance results are a baseline
  • 30. Performance Improvements •  AppEngine now multi-process, load balanced •  PB Server now multi-threaded •  Storing data like Google for HBase and Hypertable –  Three tables: Reference, Sort Ascending, Sort Descending
  • 31. Future Work •  Expand out of the web services domain –  Investigating opportunities in streaming –  Integrated MapReduce support for high- performance computing (HPC) –  Co-locate AppEngines and use shared memory •  Additional databases: –  MongoDB, Scalaris, CouchDB
  • 32. Thanks! •  To the AppScale team! –  Co-lead Navraj Chohan –  Advisor Prof. Chandra Krintz •  To the open-source community •  To Google, NSF, and IBM for financial support •  To you all for coming out today •  Check us out on the web: –  http://appscale.cs.ucsb.edu