Don Schwarz App Engine Talk
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Don Schwarz App Engine Talk

on

  • 1,869 views

 

Statistics

Views

Total Views
1,869
Views on SlideShare
1,864
Embed Views
5

Actions

Likes
0
Downloads
28
Comments
0

3 Embeds 5

http://www.slideshare.net 3
https://www.mturk.com 1
http://www.mefeedia.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Don Schwarz App Engine Talk Presentation Transcript

  • 1. Google App Engine Day of Cloud October 16, 2009 Monday, October 19, 2009 1
  • 2. About Me Don Schwarz schwardo@google.com Software Engineer Google 2 Monday, October 19, 2009 2
  • 3. Overview • Problems with scalable web applications • What is Google App Engine? • Let’s Play a Game • How much does it cost? • Q/A 3 Monday, October 19, 2009 3
  • 4. Challenges of Building Web Apps 4 Monday, October 19, 2009 4
  • 5. Easy to start. Easy to scale. 5 Monday, October 19, 2009 5
  • 6. It’s all included! Hardware Connectivity Operating System Web Server Language Runtimes Software Services Fault-tolerance Load balancing SSL Support 6 Monday, October 19, 2009 6
  • 7. Key Features • No need to install or maintain your own stack • We do the scaling for you • Use Google’s scalable services • We charge only for actual usage – Always free to get started • Built-in application management console • Tool integration (IDE plugins, etc.) 7 Monday, October 19, 2009 7
  • 8. Architecture Incoming Requests App Engine App Engine App Engine Load Balancer Front End Front End Front End AppServer AppServer AppServer Other Google AppServer Infrastructure API Layer - Bigtable - Google Accounts - Memcache App App App - Image manipulation 8 Monday, October 19, 2009 8
  • 9. Software Services Service Google Infrastructure Authentication Google Accounts Datastore Bigtable Caching Custom memcache implementation E-mail Gmail gateway URLFetch Caching HTTP proxy XMPP Google Talk infrastructure Images Picasa Web Photo Infrastructure 9 Monday, October 19, 2009 9
  • 10. Web Hooks • Receiving XMPP • Receiving Email • Scheduled Tasks (cron) • Task Queue (offline processing) • Google Wave Robots 10 Monday, October 19, 2009 10
  • 11. Restrictions • No threads • No direct network connections • ... but URLFetch & SDC • No direct file system writes • ... but Datastore and Memcache • No subprocesses or native code • “Safe” subset of runtime environment • 30 seconds per request, 10MB limit 11 Monday, October 19, 2009 11
  • 12. Java • Java 6 VM (with Hotspot) • Full Servlet 2.5 Container • HTTP Session support • JSP support • Services integrate with common Java Standards • JDO/JPA for Datastore API • JSR 107 for Memcache API • javax.mail for Mail API • java.net.URLConnection for URLFetch API • IDE integration: Eclipse, IntelliJ, NetBeans 12 Monday, October 19, 2009 12
  • 13. Python • Python 2.5.2 • CGI environment, provided by WSGI module • Web frameworks • webapp - Minimal built-in framework, based on WebOb • Django 0.96 is built-in, can deploy 1.0 or 1.1 • App Engine Launcher (Mac & Windows) • Easy access to edit, test, and deploy applications 13 Monday, October 19, 2009 13
  • 14. Datastore • Datastore is: • Transactional • Natively Partitioned • Hierarchical • Schema-less • Based on Bigtable • Datastore is not: • A relational database • A SQL engine 14 Monday, October 19, 2009 14
  • 15. Interesting Datastore Modeling • Ancestor • Multi-value properties • Variable properties • Heterogenous property types Kind Person Kind Person Entity Group /Person:Ethel Entity Group /Person:Ethel /Person:Ethel/ Key /Person:Ethel Key Person:Jane Age Int64: 30 Age Double: 3.5 Hobbies String: Tennis Key:/Turtle:Sam Pets Key:/Dog:Ernie 15 Monday, October 19, 2009 15
  • 16. Datastore Transactions • Transactions apply to a single Entity Group • Global transactions are feasible • get(), put(), delete() are transactional • Ancestor queries are transactional /Person:Ethel Transaction /Person:Ethel/Person:Jane /Person:Max 16 Monday, October 19, 2009 16
  • 17. Testing Locally • “Development AppServer” • Emulates production environment • Enforces many of the same restrictions • Local implementation of software services • Disk-based datastore • In-memory LRU memcache implementation • Simple URLFetch implementation 17 Monday, October 19, 2009 17
  • 18. Deploying to the Cloud • Application is available at: • yourapp.appspot.com, or • a custom domain • Command-line and IDE-based tools • Admin Console • Dashboards, Data Viewer • Request and diagnostic logs • Billing 18 Monday, October 19, 2009 18
  • 19. Code Walkthrough Monday, October 19, 2009 19
  • 20. http://java-demo.appspot.com Monday, October 19, 2009 20
  • 21. Quotas and Billing Resource Provided Free Additional Cost CPU 6.5 hours/day $0.10/hour Bandwidth In 1GByte/day $0.10/GByte Bandwidth Out 1GByte/day $0.12/GByte Stored Data 1 GB $0.005/GB-day 2000/day to users $0.0001/email Emails sent 50000/day to admins 21 Monday, October 19, 2009 21
  • 22. Quotas and Billing: Estimates • Will always be free to get started • ~5 million pageviews/month free • Pay only for what you use • 10-20 million pageviews/month for $20-30/month • Payment via Google Checkout • X-AppEngine-Estimated-CPM-US-Dollars 22 Monday, October 19, 2009 22
  • 23. Questions? Monday, October 19, 2009 23
  • 24. Resources • Speaker • Don Schwarz (schwardo@google.com) • Google App Engine • http://code.google.com/appengine • Google Group • http://groups.google.com/group/google-appengine 24 Monday, October 19, 2009 24
  • 25. Backup Slides Monday, October 19, 2009 25
  • 26. Does it scale? http://whitehouse.gov/openforquestions 26 Monday, October 19, 2009 26
  • 27. Secure Data Connector 27 Monday, October 19, 2009 27
  • 28. Demo - Login 28 Monday, October 19, 2009 28
  • 29. Demo - Question 29 Monday, October 19, 2009 29
  • 30. Demo - Question Result 30 Monday, October 19, 2009 30
  • 31. Demo - Scoreboard 31 Monday, October 19, 2009 31