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.
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
What is Google App Engine?
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. Cloud Computing
What is it (besides being buzzword-compliant)?
The Cloud Pyramid
2
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. What keeps you up at night?
Easy to start
Easy to scale
Easy to maintain
4
5. We do the dirty work…
The Components
The pieces of Google App Engine
5
6. Components
Language
Runtimes
Web-based
SDK Admin
Console
Scalable
Infrastructure
Components
Linux
GFS
Scalable
Infrastructure Bigtable
Hardware
6
7. Components
Python
Batteries
& Java
Included
Runtimes
Alternative API/Runtimes also available (more later)
Flexible alternative
7
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. 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
15. …scales
•3.6MM DAUs on FB
•1.9MM DAUs on MS
•Add Orkut, Bebo, Hi5,
Friendster, Hyves, Ning…
Gigya…
15
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. Features and Futures
Services and APIs now... and coming soon
Rich set of App Engine services/APIs
17
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. 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. 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. 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
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. Registering
By default, your apps hosted at:
http://APP-ID.appspot.com
Create an App Id
24
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
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