An overview and update presentation on Google App Engine given by Google Developer Advocate Christian Schalk at the 2011 DevFest Singapore and Jakarta events. Developer Advocate Wesley Chun also participated in the Q&A.
5. What is App Engine?
Build and run your web apps on Google’s infrastructure
● Easy to build
● Easy to maintain
● Easy to scale
Focus on building your app, let us wear the pagers!
6. App Engine Usages
● Mobile/Tablet ● Consumer Web Apps
○ App backends ○ Unpredictable traffic
○ Cloud persistence ○ Scale
● Social/Mobile Games ● Business Web Apps
○ Speed, scale ○ Enterprise
○ API integrations ○ Java runtime
7. Cloud Development in a Box
● Development SDK
● Local development tools
○ DevServer
○ Eclipse plugin
● Specialized API services
● Cloud-based dashboard
● Automatic scaling
○ Built-in fault tolerance
○ Automated load balancing
● Continuously evolving...
10. Development Tools for App Engine
Cloud
Application Dashboar
d
Local
Development Console Google Plugin for Eclipse GoogleAppEngineLauncher
(Java) (Python)
19. Royal Wedding - Scalability Success
Official blog & live stream apps
hosted on App Engine
On Wedding day...
Blog app served:
● Up to 2k requests per second
● 15 million pageviews
● 5.6 million visitors
Live stream app served:
● Up to 32k requests per second
● 37.7 million pageviews
● 13.7 million visitors
http://goo.gl/F1SGc
23. App Engine Has Left Preview!
● App Engine is now production!
○ Long-term commitment by Google to App Engine
○ Long-term commitment by App Engine to our users
○ Full Google Product - 3 year deprecation support
● 3 service classes
○ Free
■ Small Apps, Experiments
○ Paid - $9/app/month + usage
■ SLA 99.95%
○ Premium - $500/month + usage
■ Operational Support, SLA, Unlimited Apps
www.google.com/enterprise/cloud/appengine/pricing.html
24. Production Pricing Update
● Instance-based charging
○ CPU-hours is replaced by Instance Hours (IH)
■ 1 instance running for 1 hour
○ Similar to instances & tuning in admin console today
● APIs
○ No longer charged per CPU-hour
○ Charged per operation
● Tuning your app optimization article
○ code.google.com/appengine/articles/managing-resources.html
25. Agenda
● Part I: What is App Engine?
● Part II: App Engine Product Update
○ Growth and Adoption
○ App Engine successes & use cases
○ App Engine Leaving Preview (BIG DEAL)
● Part III: App Engine Recent Features
○ Go, HRD, Backends, Pull Queues, etc.
26. Go language runtime
● Released SDK for Mac & Linux
○ Windows port in the works
● Uses tweaked Python SDK tools for App Engine
● Announced at Google I/O (May 2011)
● Launched in App Engine (Jul 2011)
27. High Replication Datastore
● High Replication Datastore (HRD) introduced early 2011
○ Replacing Master/Slave (M/S) original App Engine
datastore as default
○ Uses Paxos algorithm for higher availability
○ Data written to multiple data centers
■ Slightly slower writes, but reads at pace w/ M/S
● Data stored is eventually-consistent
● Delivered ~99.999% uptime since launch!
28. HRD Now the Default
● Very well-received thus far
○ googleappengine.blogspot.com/2011/03/high-replication-
datastore-solid-choice.html
● Self migration tools now available!
29. Backends
Frontend
Configured
Backends
For transient, "front facing",
Web requests... For long/permanent
running "backend" jobs
30. Backends
● Long-running servers... no more deadlines... at all!
● Fully configurable instances with options:
○ RAM: 128MB to 1GB
○ CPU: 600MHz to 4.8GHz no request deadlines
● Can run indefinitely
○ Resident or Dynamic - Public or Private
○ Automatic restarts
● Used in conjunction with front-facing Web apps
● Easy to configure (backends.yaml, backends.xml)
31. Pull Queues
● Alternative to original "Task Queues" now called "Push Queues"
● What's the difference?
○ Lets you decide when to execute tasks!
● Push Queue Details
○ Producers can enqueue tasks
○ Consumer can pull (lease) tasks from queue
○ App Engine app can be producer or consumer
○ Callable via a REST API
■ Can configure ACLs for external access
● google.com/events/io/2011/sessions/putting-task-queues-to-work.
html
32. Release 1.5.5
● HRD apps
○ Cross Group (XG) transactions
○ Python 2.7 (experimental)
○ Cloud SQL (preview)
○ Full-Text Search (trusted tester)
○ HRD Migration Tool
● Higher limits
○ File uploads 10MB → 32MB, URLFetch POST 1MB → 5MB
○ Frontend requests 30s → 60s, URLFetch 10s → 60s
○ Max files 3,000 → 10,000
● Other
○ Google Storage File API
○ Admin console number of billed instances
33. Release 1.6!
● Out of preview!
○ New pricing
○ Scheduler knobs
○ Raised or removed limits
○ Python 2.7 SDK support
○ New query planner
○ Python mapreduce
○ Datastore callbacks for Java
http://googleappengine.blogspot.com/2011/11/app-engine-160-out-of-
preview-release.html
34. App Engine
Roadmap
● Custom domain SSL
● Full text search
● Your next App Engine app!
code.google.com/appengine/docs/roadmap.html
35. Summary
● App Engine: Build scalable apps in the cloud
○ Use familiar environments: Java, Python, & now Go
○ Runs on high-performance Google infrastructure
● In short history: achieved significant users & traffic
○ 100K+ devs/mo, 300K+ active apps/wk, 2B+ view/day
● Build both web and non-UI apps
○ Mobile, game, business, retail, dating, weddings...
● Is now production!
○ Formal pricing, SLA, operational support
○ Commitment: Google to GAE, GAE to users
36. Q&A
Wesley Chun
profiles.google.com/wescpy
@wescpy
Christian Schalk
profiles.google.com/cschalk
@cschalk