What is Google App Engine?


Published on

Introduction to Google App Engine talk delivered 2010 Jul 16 at EuroPython in Birmingham, UK and 2010 Jul 22 at the GTUG in London by Wesley Chun, Developer Advocate for Google.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

What is Google App Engine?

  1. 1. EuroPython 2010 Birmingham, UK Sun, 2010 Jul 18 What is… Google App Engine? Wesley Chun Developer Relations, Google App Engine wesc+api@google.com @wescpy :: @app_engine googleappengine.blogspot.com About the Speaker •Background Degrees in CS, Math, Music from UC Software engineer by profession Over 2 decades as a full-time architect & developer Original Yahoo!Mail engineering team member Previously at Sun, HP, Xilinx, Legato, Cisco/IronPort Currently in Developer Relations at Google •Python community volunteer Python conferences, user groups, and mailing lists Technical trainer: corporate training, public courses Author/co-author (books, articles, blogger, etc.) • Core Python Programming ([2009,] 2007, 2001) • Python Fundamentals LiveLessons DVD (2009) • Python Web Development with Django (2009) 1
  2. 2. Cloud Computing What is it (besides being buzzword-compliant)? The Cloud Pyramid 2
  3. 3. What is App Engine? •App Engine is a platform •You build & test your app •Then upload your app to Google •App Engine runs everything •No need to worry about machines, network, storage, scalability, etc. Challenges building web apps 3
  4. 4. What keeps you up at night? Easy to start Easy to scale Easy to maintain 4
  5. 5. We do the dirty work… The Components The pieces of Google App Engine 5
  6. 6. Components Language Runtimes Web-based SDK Admin Console Scalable Infrastructure Components Linux GFS Scalable Infrastructure Bigtable Hardware 6
  7. 7. Components Python Batteries & Java Included Runtimes Alternative API/Runtimes also available (more later) Flexible alternative 7
  8. 8. Getting the job done The king of ease-of-use •Extremely rapid development •Very low barrier of entry •Simple yet robust syntax •Rich library of packages/modules •App Engine's first language API 8
  9. 9. The king of enterprise development •Ubiquitous in Enterprise computing •Adheres to Java servlet standard •Rich library of packages/modules •Eclipse Plug-in support •Alternative language support Java compliant Servlet Standard 9
  10. 10. Java Plug-n-Play Python & Java not enough? 10
  11. 11. Components Web-based Admin Application Monitoring 11
  12. 12. App Engine Monitoring Components Run Locally Easy Deploy SDK Manage Versions APIs 12
  13. 13. Customer Service Ooops, we meant servicing customers! How many ______ ? 13
  14. 14. App Engine Developers/Apps BuddyPoke… 14
  15. 15. …scales •3.6MM DAUs on FB •1.9MM DAUs on MS •Add Orkut, Bebo, Hi5, Friendster, Hyves, Ning… Gigya… 15
  16. 16. … scales Not all apps are web-based!! - Need backoffice processing? Want to build your own? - Go cloud with App Engine! - No UI needed for app to talk to App Engine - Great place for user info i.e., high scores, contacts, medals, etc - Better user interface: taking user data off the phone to web, etc. 16
  17. 17. Features and Futures Services and APIs now... and coming soon Rich set of App Engine services/APIs 17
  18. 18. In review: an evolving platform Two years of App Engine and continually maturing… Apr 2008 Python launch May 2008 Memcache, Images API Jul 2008 Logs export Aug 2008 Batch write/delete Oct 2008 HTTPS support Dec 2008 Status dashboard, quota details Feb 2009 Billing, larger files Apr 2009 Java launch, DB import, cron support, SDC May 2009 Key-only queries Jun 2009 Task queues Aug 2009 Kindless queries Sep 2009 XMPP Oct 2009 Incoming email Dec 2009 Blobstore Feb 2010 Datastore cursors, Async Urlfetch, App stats Mar 2010 Denial-of-Service filtering, Availability option May 2010 OpenID, OAuth, App Engine for Business, new bulkloader Always free to get started ~5MM pageviews/month • 6.5 CPU hrs/day (not clock/deploy time) • 1 GB/day bandwidth (each incoming/outgoing) • 1 GB data storage • 2,000 recipients emailed • 100k tasks enqueued/day (or 1MM*) • 864k image manipulation calls/day (or 45MM*) • 657k URLfetch calls/day (or 46MM*) • 657k XMPP/instant msgs/day (or 46MM*) • 8.6MM Memcache calls/day (or 96MM*) • (1GB Blobstore storage, 140MM API calls)* • 1.3MM overall app requests/day (or 43MM*) * If billing is enabled, more free quota!! 18
  19. 19. Purchasing additional resources * *On top of ~5MM page view free monthly quota App Engine Roadmap - Long-running background tasks - Ability to reserve instances to reduce load - Datastore backup/dump and restore facility - Mapping operations across datasets - Raise request/response size limits for some APIs - See code.google.com/appengine/docs/roadmap.html 19
  20. 20. Code Lab: Getting Started http://bit.ly/gcodelabs (codelabs) http://code.google.com/appengine (download, docs, etc.) http://code.google.com/p/googleappengine (issues, wiki, etc.) http://code.google.com/eclipse (Eclipse plug-in) http://appengine.google.com (login, app management) http://googleappengine.blogspot.com (blog) App Engine online resources http://code.google.com/appengine – downloads, docs, forums, FAQ, etc. http://appengine.google.com – managing your applications here http://googleappengine.blogspot.com – our blog Also check http://stackoverflow.com 20
  21. 21. Hello World Linux, MacOS, etc. command-line: $ dev_appserver.py helloworld # run dev svr $ appcfg.py update helloworld # deploy live Windows GUI (also avail for Mac): Project Contents app.yaml – main configuration file index.yaml – automatically generated to index your data main.py – your main application "controller" code goes here 21
  22. 22. Hello World Hello World 22
  23. 23. Testing Your Install $ cd google_appengine ~/Desktop/google_appengine/helloworld $ dev_appserver.py helloworld INFO 2009-03-04 17:51:22,354 __init__.py] . . . (optionally use the launcher for Macs & PCs) Hello World 23
  24. 24. Registering By default, your apps hosted at: http://APP-ID.appspot.com Create an App Id 24
  25. 25. Modify 'app.yaml' application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: .* script: main.py Upload the default application $ cd google_appengine ~/Desktop/google_appengine/helloworld $ appcfg.py update helloworld Scanning files on local disk. Initiating update. Email: ... 25
  26. 26. Check it out` Conclusion Summary and Wrap-up 26
  27. 27. Summary: The Landscape •Cloud Computing: "… as a service" services SaaS – Google, Yahoo, SalesForce PaaS – * IaaS – Amazon EC2 & S3, Google Storage •*Platform as a Service offerings Google App Engine Microsoft Azure SalesForce force.com •Google App Engine Flexibility: Java or Python APIs, no 'lock-in' Security: sandbox environment, rich APIs Easy to Start: generous free quota Easy to Scale: uses Google infrastructure FUTURE: better performance, new features Thank You Questions? code.google.com/appengine googleappengine.blogspot.com code.google.com/p/googleappengine wesc+api@google.com 27