28
Google App Engine(GAE) Ma, Zhichao 2012.06.19

Google App Engine(GAE) Ma, Zhichao 2012.06.19. Cloud

Embed Size (px)

Citation preview

Google App Engine(GAE)

Ma, Zhichao2012.06.19

Cloud

Agenda

What is GAE? Why GAE? Pricing Experiment Assessment

GAE

Overview Runtime environment & Architecture Datastore Services Administration console

Overview

PaaS Run web apps on Google's infrastructure Easy to build, Easy to maintain, Easy to

scale API Support languages: Python, Java(JVM-

based interpreter or compiler), Go Domain: http://youappid.appspot.com/ Who's using App Engine

Runtime Environment(Java)

Servlet Environment, Java 6 No state 30 seconds limit Sandbox: walled arena

Architecture

The App Engine request handling architecture

DataStore

High Replication Datastore(HRD) Blobstore Google Cloud SQL

High Replication Datastore(HRD)

Based on big table Schemaless JDO, JPA Kind, Entity, property, key

……

kind

实体

属性属性

Saving entities1. Entity e = new Entity(“STUDENT”);2. e.name = “zhangsan”;3. datastore.put( e );

Deleting entity1. Entity e = datastore.get(key);2. datastore.delete( e );

Query API

Query q = new Query("Person"); q.addFilter("lastName", Query.FilterOperator.EQUAL, lastNameParam); q.addFilter("height", Query.FilterOperator.LESS_THAN, maxHeightParam);  PreparedQuery pq = datastore.prepare(q);  for (Entity result : pq.asIterable()) { }

GQL: SQL-like, no join

GQL syntax: SELECT [* | <property list> | __key__]

FROM <kind>[WHERE <condition> [AND <condition> ...]][ORDER BY <property> [ASC | DESC] [, <property> [ASC | DESC] ...]][LIMIT [<offset>,]<count>][OFFSET <offset>]

<condition> := <property> {< | <= | > | >= | = | != } <value><condition> := <property> IN <list><condition> := ANCESTOR IS <entity or key>

Blobstore

Object: Up to 2G Writing Files to the Blobstore

(Experimental)

Google Cloud SQL

Web service Based on MySql Preview

Services

Taskqueues and Cron jobs Memcache Images Users Mails Url Fetch ……

Task Queues and Cron Jobs

Work that can’t be done within 30sec Ensures every task gets done

eventually Enqueue task within transaction Cron Jobs: scheduled tasks

Administration console

Web-based interface Create and manage app View resource usage statistics View logs

Agenda

What is GAE? Why GAE? Pricing Experiment Assessment

Why GAE?

Scalability Lower total cost of ownership Rich set of APIs Fully featured SDK for local

development Ease of deployment Web administration console and

diagnostic utilities

Agenda

What is GAE? Why GAE? Pricing and Quotas Experiment Assessment

Pricing and Quotas

Free quotas pricing

 Instance Hours 28 hours/day $0.08 / hour

Datastore Stored Data

1G $0.24 / G / month

Outgoing Bandwidth 1G/day $0.12 / G

Email API 100 recipients/day $0.01 / 100 recipients

Datastore API 50k free read/write/small

$0.10/100k write ops$0.07/100k read ops$0.01/100k small ops

Agenda

What is GAE? Why GAE? Pricing and Quotas Experiment Assessment

Experiment

Assessment

Easy to build Easy to scale Easy to maintain API Limit

Q&A

Thank you !