SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
The AppScale Project
       Presented by Chris Bunch
    (on behalf of the AppScale team)
        April 14, 2011 @ LA.rb
Overview

• Google App Engine
• AppScale - now with 50% Ruby!
• Neptune - A Ruby DSL for the cloud
Google App Engine

• A web framework introduced in 2008
• Python and Java supported
• Offers a Platform-as-a-Service: Use
  Google’s APIs to achieve scale
 • Upload your app to Google
Quotas
Data Model

• Not relational - semi-structured schema
• Compared to models in Rails
• Exposes a get / put / delete / query
  interface
Storing Data

• Datastore API - Persistent storage
• Memcache API - Transient storage
 • User can set expiration times
• Blobstore API - Store large files
 • need to enable billing to use it
Be Social!

• Mail API - Send and receive e-mail
• XMPP API - Send and receive IMs
• Channel API - Creating persistent
  connections via XMPP
  • Use for chat rooms, games, etc.
Background Tasks
• Cron API - Access a URL periodically
 • Descriptive language: “every 5 minutes”,
    “every 1st Sun of Jan, Mar, Dec”, etc.
 • Uses a separate cron.yaml file
• TaskQueue API - Within your app, fire off
  tasks to be done later
Dealing with Users

• Users API: Uses Google Accounts
 • Don’t write that ‘forgot password’ page
    ever again!
• Authorization: via app.yaml:
 • anyone, must login, or admin only
When Services Fail

• Originally: failures throw exceptions
 • Just catch them all!
• Capabilities API: Check if a service is
  available
  • Datastore, Memcache, and so on
Deploying Your App
• Develop locally on SDK
 • Stub implementations of most APIs
• Then deploy to Google
How to Scale

• Limitations on the programming model:
 • No filesystem interaction
 • 30 second limit per web request
 • Language libraries must be on whitelist
 • Sandboxed execution
Enter AppScale
• App Engine is easy to use
 • but we really want to tinker with the
    internals!
• Need an open platform to experiment on
 • test API implementations
 • add new APIs
Enter AppScale

• Lots of NoSQL DBs out there
 • Hard to compare DBs
• Configuration and deployment can be
  complex
• Need one-button deployment
Deploying Your App

• run-instances: Start AppScale
• describe-instances:View cloud metadata
• upload-app: Deploy an App Engine app
• remove-app: Un-deploy an App Engine app
• terminate-instances: Stop AppScale
Deployment Models

• Cloud deployment: Amazon EC2 or
  Eucalyptus (the open source
  implementation of the EC2 APIs)
 • Just specify how many machines you need
• Non-cloud deployment via Xen or KVM
AppController
• The brains of the outfit
• Runs on every node
• Handles configuration and deployment of
  all services (including other
  AppControllers)
• Written in Ruby
Load balancer
• Routes users to their app via nginx
• haproxy makes sure app servers are live
• Can’t assume the user has DNS:
 • Thus we wrote the AppLoadBalancer
 • Rails app that routes users to apps
 • Performs authentication as well
App Server
• We modified the App Engine SDK
• Easier for Python (source included)
• Harder for Java (had to decompile)
• Removed non-scalable API implementations
 • Goal: Use open source whenever
    possible
A Common Feature
    Request
Database Options
•   Open source / open APIs / proprietary
•   Master / slave v. peer-to-peer
•   Differences in query languages
•   Data model (key/val, semi-structured)
•   In-memory or persistent
•   Data consistency model
•   Interfaces - REST / Thrift / libraries
Neptune
•   Need a simple way to run compute-intensive jobs
•   We have the code from the ‘net
•   We have the resources - the cloud
•   But the average user does not have the know how
•   Our solution: create a domain specific language
    for configuring cloud apps
•   Based on Ruby
Syntax

• It’s as easy as:
  neptune :type => “mpi”,
      :code => “MpiNQueens”,
      :nodes_to_use => 8,
      :output => “/mpi/output-1.txt”
Neptune Supports:

• Message Passing Interface (MPI)
• MapReduce
• Unified Parallel C (UPC)
• X10
• Erlang
Extensibility

• Experts can add support for other
  computational jobs
• Biochemists can run simulations via DFSP
  and dwSSA
 • Embarassingly parallel Monte Carlo
    simulations
Wrapping It Up
• Thanks to the AppScale team, especially:
 • Co-lead Navraj Chohan and advisor
    Chandra Krintz
• Check us out on the web:
 • http://appscale.cs.ucsb.edu
 • http://neptune-lang.org

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (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
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
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
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
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
 
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
 
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
 
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
 
StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)
 
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...
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
AWS ELB Tips & Best Practices
AWS ELB Tips & Best PracticesAWS ELB Tips & Best Practices
AWS ELB Tips & Best Practices
 
(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
 
Amazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case studyAmazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case study
 
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
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madrid
 
Introducing Kubernetes
Introducing Kubernetes Introducing Kubernetes
Introducing Kubernetes
 

Ähnlich wie AppScale @ LA.rb

Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
Igor Anishchenko
 

Ähnlich wie AppScale @ LA.rb (20)

Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
Intro to CakePHP
Intro to CakePHPIntro to CakePHP
Intro to CakePHP
 
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless SummitServerless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
 
Dev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsDev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teams
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Node.js
Node.jsNode.js
Node.js
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
APIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidadAPIs distribuidos con alta escalabilidad
APIs distribuidos con alta escalabilidad
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 
Azure Templates for Consistent Deployment
Azure Templates for Consistent DeploymentAzure Templates for Consistent Deployment
Azure Templates for Consistent Deployment
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

AppScale @ LA.rb

  • 1. The AppScale Project Presented by Chris Bunch (on behalf of the AppScale team) April 14, 2011 @ LA.rb
  • 2.
  • 3. Overview • Google App Engine • AppScale - now with 50% Ruby! • Neptune - A Ruby DSL for the cloud
  • 4. Google App Engine • A web framework introduced in 2008 • Python and Java supported • Offers a Platform-as-a-Service: Use Google’s APIs to achieve scale • Upload your app to Google
  • 6. Data Model • Not relational - semi-structured schema • Compared to models in Rails • Exposes a get / put / delete / query interface
  • 7. Storing Data • Datastore API - Persistent storage • Memcache API - Transient storage • User can set expiration times • Blobstore API - Store large files • need to enable billing to use it
  • 8. Be Social! • Mail API - Send and receive e-mail • XMPP API - Send and receive IMs • Channel API - Creating persistent connections via XMPP • Use for chat rooms, games, etc.
  • 9. Background Tasks • Cron API - Access a URL periodically • Descriptive language: “every 5 minutes”, “every 1st Sun of Jan, Mar, Dec”, etc. • Uses a separate cron.yaml file • TaskQueue API - Within your app, fire off tasks to be done later
  • 10. Dealing with Users • Users API: Uses Google Accounts • Don’t write that ‘forgot password’ page ever again! • Authorization: via app.yaml: • anyone, must login, or admin only
  • 11. When Services Fail • Originally: failures throw exceptions • Just catch them all! • Capabilities API: Check if a service is available • Datastore, Memcache, and so on
  • 12. Deploying Your App • Develop locally on SDK • Stub implementations of most APIs • Then deploy to Google
  • 13. How to Scale • Limitations on the programming model: • No filesystem interaction • 30 second limit per web request • Language libraries must be on whitelist • Sandboxed execution
  • 14. Enter AppScale • App Engine is easy to use • but we really want to tinker with the internals! • Need an open platform to experiment on • test API implementations • add new APIs
  • 15. Enter AppScale • Lots of NoSQL DBs out there • Hard to compare DBs • Configuration and deployment can be complex • Need one-button deployment
  • 16. Deploying Your App • run-instances: Start AppScale • describe-instances:View cloud metadata • upload-app: Deploy an App Engine app • remove-app: Un-deploy an App Engine app • terminate-instances: Stop AppScale
  • 17. Deployment Models • Cloud deployment: Amazon EC2 or Eucalyptus (the open source implementation of the EC2 APIs) • Just specify how many machines you need • Non-cloud deployment via Xen or KVM
  • 18.
  • 19. AppController • The brains of the outfit • Runs on every node • Handles configuration and deployment of all services (including other AppControllers) • Written in Ruby
  • 20. Load balancer • Routes users to their app via nginx • haproxy makes sure app servers are live • Can’t assume the user has DNS: • Thus we wrote the AppLoadBalancer • Rails app that routes users to apps • Performs authentication as well
  • 21.
  • 22. App Server • We modified the App Engine SDK • Easier for Python (source included) • Harder for Java (had to decompile) • Removed non-scalable API implementations • Goal: Use open source whenever possible
  • 23. A Common Feature Request
  • 24. Database Options • Open source / open APIs / proprietary • Master / slave v. peer-to-peer • Differences in query languages • Data model (key/val, semi-structured) • In-memory or persistent • Data consistency model • Interfaces - REST / Thrift / libraries
  • 25. Neptune • Need a simple way to run compute-intensive jobs • We have the code from the ‘net • We have the resources - the cloud • But the average user does not have the know how • Our solution: create a domain specific language for configuring cloud apps • Based on Ruby
  • 26. Syntax • It’s as easy as: neptune :type => “mpi”, :code => “MpiNQueens”, :nodes_to_use => 8, :output => “/mpi/output-1.txt”
  • 27. Neptune Supports: • Message Passing Interface (MPI) • MapReduce • Unified Parallel C (UPC) • X10 • Erlang
  • 28. Extensibility • Experts can add support for other computational jobs • Biochemists can run simulations via DFSP and dwSSA • Embarassingly parallel Monte Carlo simulations
  • 29. Wrapping It Up • Thanks to the AppScale team, especially: • Co-lead Navraj Chohan and advisor Chandra Krintz • Check us out on the web: • http://appscale.cs.ucsb.edu • http://neptune-lang.org