SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (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
 

Similar a AppScale @ LA.rb

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

Similar a 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

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