mano marks developer advocate - ieeeewh.ieee.org/r6/scv/computer/nfic/2008/google app engine by...
TRANSCRIPT
![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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/20.jpg)
• 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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022602/5b572a157f8b9a022e8d6d56/html5/thumbnails/25.jpg)
Thank you!
http://code.google.com/