Google App Engine Guido van Rossum Stanford EE380 Colloquium, Nov 5, 2008.

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

Running Your Startup on Amazon Web Services Alex Iskold Founder/CEO AdaptiveBlue Feature Writer ReadWriteWeb.
Lecture13 Intro. to Google App Engine Keke Chen Based on Guido van Rossums presentation.
Cloud Service Models and Performance Ang Li 09/13/2010.
Advanced data management Jiaheng Lu Department of Computer Science Renmin University of China
Futures – Alpha Cloud Deployment and Application Management.
Cloud Computing ECE7650. Cloud Computing Case Study  At one extreme, sharing basic IT infrastructure  E.g Amazon’s EC2: an EC2 instance appears physical.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Overview Of Microsoft New Technology ENTER. Processing....
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Google App Engine and Java Application: Clustering Internet search results for a person Aleksandar Kartelj Faculty of Mathematics,
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Google App Engine Google APIs OAuth Facebook Graph API
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
Russ Houberg Senior Technical Architect, MCM KnowledgeLake, Inc.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Cloud Computing Lesson 2: Basic Architecture Course Module by David S Platt Harvard University Extension School Lecture by Nilanjan Banerjee.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
L. Grewe LAMP, WAMP and... Motivaiton Basic Web Systems with Delivery of Static and Dynamic Web Pages html, css, media javascript (“dynamic” on client.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Google App Engine(GAE) Ma, Zhichao Cloud.
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
Meet with the AppEngine Márk Gergely eu.edge. What is AppEngine? It’s a tool, that lets you run your web applications on Google's infrastructure. –Google's.
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
Improving Efficiency of I/O Bound Systems More Memory, Better Caching Newer and Faster Disk Drives Set Object Access (SETOBJACC) Reorganize (RGZPFM) w/
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
1 Dennis Kafura – CS5204 – Operating Systems Big Table: Distributed Storage System For Structured Data Sergejs Melderis 1.
1 CS 430 Database Theory Winter 2005 Lecture 16: Inside a DBMS.
© 2008 Quest Software, Inc. ALL RIGHTS RESERVED. Perfmon and Profiler 101.
Introduction to Google App Engine. 2 Google App Engine Does one thing well: running web apps Simple app configuration Scalable Secure.
Introduction to Database Systems1. 2 Basic Definitions Mini-world Some part of the real world about which data is stored in a database. Data Known facts.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Web Development Web development never ends: 1.Find out what the stakeholders need (sponsors, users, etc.) 2.Investigate available technology 3.Plan the.
GIS in the cloud: implementing a Web Map Service on Google App Engine Jon Blower Reading e-Science Centre University of Reading United Kingdom
My project  Small-Medium Enterprises (SMEs)  faces goods distribution problems  needs necessary resources, money and technical expertise, to purchase.
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
Clusterpoint Margarita Sudņika ms RDBMS & NoSQL Databases & tables → Document stores Columns, rows → Schemaless documents Scales UP → Scales UP.
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
Lecture IV: REST Web Service with Google App Engine CS 4593 Cloud-Oriented Big Data and Software Engineering.
CS 540 Database Management Systems
Apache Solr Dima Ionut Daniel. Contents What is Apache Solr? Architecture Features Core Solr Concepts Configuration Conclusions Bibliography.
BIG DATA/ Hadoop Interview Questions.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Overview of today’s lecture Major components of an operating system Structure and internal architecture of an operating system Monolithic Vs Micro-kernels.
Ping Yeh, Software Engineer Chris Schalk, Developer Advocate Google App Engine.
Platform as a Service (PaaS)
Web Development Web development never ends:
Platform as a Service (PaaS)
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service (PaaS)
Google App Engine Mandeep Singh (37926)
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn.
Platform as a Service.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
I’m going to talk about my vision for the future of system administration, and a question for you to contemplate.
LAMP, WAMP and.. L. Grewe.
Google App Engine Danail Alexiev
Google App Engine Ying Zou 01/24/2016.
Saranya Sriram Developer Evangelist | Microsoft
Specialized Cloud Architectures
To Be Safe For Now: Keep your shapefiles simple
5 Azure Services Every .NET Developer Needs to Know
Introduction to Google App Engine
Database management systems
Presentation transcript:

Google App Engine Guido van Rossum Stanford EE380 Colloquium, Nov 5, 2008

2 Google App Engine Does one thing well: running web apps Simple app configuration Scalable Secure

3 App Engine Does One Thing Well App Engine handles HTTP(S) requests, nothing else – Think RPC: request in, processing, response out – Works well for the web and AJAX; also for other services App configuration is dead simple – No performance tuning needed Everything is built to scale – “infinite” number of apps, requests/sec, storage capacity – APIs are simple, stupid

App Engine Architecture 4 Python VM process stdlib app memcache datastore mail images urlfech stateful APIs stateless APIsR/O FS req/resp

Scaling Low-usage apps: many apps per physical host High-usage apps: multiple physical hosts per app Stateless APIs are trivial to replicate Memcache is trivial to shard Datastore built on top of Bigtable; designed to scale well – Abstraction on top of Bigtable – API influenced by scalability No joins Recommendations: denormalize schema; precompute joins 5

Security Prevent the bad guys from breaking (into) your app Constrain direct OS functionality – no processes, threads, dynamic library loading – no sockets (use urlfetch API) – can’t write files (use datastore) – disallow unsafe Python extensions (e.g. ctypes) Limit resource usage – Limit 1000 files per app, each at most 1MB – Hard time limit of 10 seconds per request – Most requests must use less than 300 msec CPU time – Hard limit of 1MB on request/response size, API call size, etc. – Quota system for number of requests, API calls, s sent, etc 6

Why Not LAMP? Linux, Apache, MySQL/PostgreSQL, Python/Perl/PHP/Ruby LAMP is the industry standard But management is a hassle: – Configuration, tuning – Backup and recovery, disk space management – Hardware failures, system crashes – Software updates, security patches – Log rotation, cron jobs, and much more – Redesign needed once your database exceeds one box “We carry pagers so you don’t have to” 7

Automatic Scaling to Application Needs You don’t need to configure your resource needs One CPU can handle many requests per second Apps are hashed (really mapped) onto CPUs: – One process per app, many apps per CPU – Creating a new process is a matter of cloning a generic “model” process and then loading the application code (in fact the clones are pre-created and sit in a queue) – The process hangs around to handle more requests (reuse) – Eventually old processes are killed (recycle) Busy apps (many QPS) get assigned to multiple CPUs – This automatically adapts to the need as long as CPUs are available 8

Preserving Fairness Through Quotas Everything an app does is limited by quotas, for example: – request count, bandwidth used, CPU usage, datastore call count, disk space used, s sent, even errors! If you run out of quota that particular operation is blocked (raising an exception) for a while (~10 min) until replenished Free quotas are tuned so that a well-written app (light CPU/datastore use) can survive a moderate “slashdotting” The point of quotas is to be able to support a very large number of small apps (analogy: baggage limit in air travel) Large apps need raised quotas – currently this is a manual process (search FAQ for “quota”) – in the future you can buy more resources 9

Hierarchical Datastore Entities have a Kind, a Key, and Properties – Entity ~~ Record ~~ Python dict ~~ Python class instance – Key ~~ structured foreign key; includes Kind – Kind ~~ Table ~~ Python class – Property ~~ Column or Field; has a type Dynamically typed: Property types are recorded per Entity Key has either id or name – the id is auto-assigned; alternatively, the name is set by app – A key can be a path including the parent key, and so on Paths define entity groups which limit transactions – A transaction locks the root entity (parentless ancestor key) 10

Indexes Properties are automatically indexed by type+value – There is an index for each Kind / property name combo – Whenever an entity is written all relevant indexes are updated – However Blob and Text properties are never indexed This supports basic queries: AND on property equality For more advanced query needs, create composite indexes – SDK auto-updates index.yaml based on queries executed – These support inequalities (, >=) and result ordering – Index building has to scan all entities due to parent keys For more info, see video of Ryan Barrett’s talk at Google I/O 11

The Future Big things we’re working on: – Large file uploads and downloads – Datastore import and export for large volumes – Pay-as-you-go billing (for resource usage over free quota) – More languages (no I’m not telling…) – Uptime monitoring site No published timeline – agile development process 12

Switch to Live Demo Now 13

Q & A Anything goes 14