Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by...

25
Google App Engine Mano Marks Developer Advocate

Transcript of Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by...

Page 1: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Google App EngineMano Marks

Developer Advocate

Page 2: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Problems building web applications

Why Google App Engine?

The App Engine Components

What’s Next

Questions?

Page 3: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

3

Typical Web application requirements

Page 4: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

4

…and if you’re app becomes popular…

Page 5: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Google App Engine

Page 6: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Run your web applications on Google Infrastructure

Page 7: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Easy to start.Easy to scale.

Page 8: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

The Components

Page 9: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

creative commons licensed photograph from cote

1. Scalable Serving Architecture

Page 10: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

10

class MyHandler(webapp.RequestHandler):

def get(self):messages = db.GqlQuery('SELECT * FROM Message '

'ORDER BY when DESC').fetch(100)values = {

'messages': messages}self.response.out.write(

template.render('main.html', values))

def post(self):message = Message(who=self.request.get('who'),

content=self.request.get('content'))message.put()self.redirect('/')

Request Handlers

Page 11: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

11

<h1>My Guestbook</h1>

<form method="post" action="/message">From:<input name=“who"/>Message:<input name="content"/><input value=“Sign Guestbook" type="submit"/>

</form>

{% for message in messages %}<div>{{message.content}} from {{message.who}} at {{message.when}}

</div>{% endfor %}

HTML Template

Page 12: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Wow, that's abig table!

2. Distributed Datastore

Page 13: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

class Message(db.Model):

content = db.StringProperty(required=True)

who = db.StringProperty()

when = db.DateTimeProperty(auto_now_add=True)

Datastore Model Class

Page 14: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

db.GqlQuery(“SELECT * FROM Message “

“WHERE who = ‘Mano’”

“ORDER BY when DESC”).fetch(100)

GQL Query

Page 15: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

3. Python Runtime & Libraries

Page 16: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

4. Software Development Kit

Page 17: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

5. Web-based Admin Console

Page 18: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Other Capabilities

Page 19: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Memcache

Send E-Mail

Make HTTP Requests

Authenticate with Google Accounts

Image Manipulation

Transactions

Page 20: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

• Relations are possible•By reference•Parent Child

• Schema-less

• Many small queries more efficient

• Everything revolves around the request and response

• No cron jobs

Some things you’re not used to

Page 21: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

500 MB Storage

11 GB Bandwidth / day

~ 5 Million Pageviews / month

Free to Get Started

Page 22: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

500 MB Storage

11 GB Bandwidth / day

~ 5 Million Pageviews / month

AlwaysFree to Get Started

Page 23: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

More Languages

Purchase Additional Capacity

Large upload/download support

Offline Processing

What’s Next?

Page 24: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Questions?

Page 25: Mano Marks Developer Advocate - IEEEewh.ieee.org/r6/scv/computer/nfic/2008/Google App Engine by Mano... · “WHERE who = ‘Mano ... • No cron jobs Some things you’re not used

Thank you!

http://code.google.com/