Introduction To Google App Engine
Introduction To Google App Engine
Engine
instead of using more capable hardware (vertical scaling), you use more
instances of less-capable hardware, each handling a slice of the work,
often doing the same function (e.g. sliced between groups of users).
Services
URLFetch fetch web resources/services
Images manipulate images: resize, rotate, flip, crop
Google Accounts
Mail
XMPP instant messages
Task Queue message queue; allow integration with nonGAPPs
10
11
12
13
Java on GAE
Java Servlets, JSPs on Google AppEngine
You provide your app's servlet classes, JavaServer
Pages (JSPs), static files and data files, along with the
deployment descriptor (the web.xml file) and other
configuration files, in a standard WAR directory
structure.
14
16
17
18
19
MORE ON SCALING
20
process and then loading the application code (in fact the clones are
pre-created and sit in a queue)
Busy apps (many QPS query per sec) get assigned to multiple
CPUs
21
22
restrictions also apply to JRE classes that make use of threads. For example, an application cannot
create a new java.util.concurrent.ThreadPoolExecutor, or a java.util.Timer. An application canperform
operations against the current thread, such as Thread.currentThread().dumpStack().
(PYTHON: http://code.google.com/appengine/docs/python/taskqueue/)
(JAVA: http://code.google.com/appengine/docs/java/taskqueue/overview.html)
MapReduce on Google AppEngine (Distributed Computing)-- http://code.google.com/p/appengine-mapreduce/
PYTHON ONLY http://www.youtube.com/watch?
v=EIxelKcyCC0 ,http://code.google.com/appengine/docs/python/dataprocessing/overview.html
24
(PYTHON: http://code.google.com/appengine/docs/python/taskqueue/)
(JAVA: http://code.google.com/appengine/docs/java/taskqueue/overview.html)
MapReduce on Google AppEngine (Distributed
Computing)-- http://code.google.com/p/appengine-mapreduce/
PYTHON ONLY http://www.youtube.com/watch?
v=EIxelKcyCC0 ,http://code.google.com/appengine/docs/python/dataprocessing/overview.
html
25
WHY are they doing this? They want to serve the most
web apps they can on their platform
27
28
Transaction
Can be applied to a group of operations
Persistent store (check BigTable paper)
Strongly consistent
Not relational database
Index built-in
Memcache
Caches objects from bigtable, to improve performance
29
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
30
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
31
Free tier
First 5GB
Daily limits
32
This may mean that your application will not work until
the quota is replenished.
33
34
Pricing
The part exceeding the free quota
User defined budget
Look On line for CURRENT PRICES
35
Security
Constrain direct OS functionality
36