1. Google Technology User Group #4
An Introduction to the Google App Engine
by George Holler
17 November 2010
2. The Google App Engine
ScalableScalable
CostCost
PlatformPlatform For building web apps in the cloud
Automatic scaling and load balancing
Pay for what is used, with limits you set
CodeCode In Python or Java
SDKSDK Local development environment
APIsAPIs Google APIs for web programming
6. APIs...
Datastore API Interface to save and retrieve data
Memcache API High performance in-memory key-value cache
Mail API Send and receive emails
URL Fetch API Access web resources
Users API Interface with Google Accounts
Images API Interface to manipulate images (jpg, png)
Blobstore API Interface for saving large binary data
XMPP API Interface for Instant Messaging
Task Queue API Interface to enqueue tasks for app (exp)
Namespaces API Multitenancy
OAuth API Third party authentication (exp)
Mapper API For MapReduce (exp)
14. App Engine Hard Limits
Apps per developer 10
Time per request 30 sec
Blobstore size (Total file size per app) 2GB
HTTP request size 10 MB
HTTP response size 10 MB
Datastore item size 1 MB
Number of files (app and static files) 3000
Size of any static or app file 10 MB
Application code size 150 MB
Number of values in an index for an entity 5000
Number of entities returned in a query at a time 1000
Number of entities in a batch put or delete 500
helps productivity and maintainability — it's easy to create UI from scratch or copy/paste across templates;
makes it easier to collaborate with UI designers who are more comfortable with XML, HTML and CSS than Java source code;
provides a gradual transition during development from HTML mocks to real, interactive UI;
encourages a clean separation of the aesthetics of your UI (a declarative XML template) from its programmatic behavior (a Java class);
performs thorough compile-time checking of cross-references from Java source to XML and vice-versa;
offers direct support for internationalization that works well with GWT's i18n facility;
and encourages more efficient use of browser resources by making it convenient to use lightweight HTML elements rather than heavier-weight widgets and panels