Many Googlers have given talks at Google I/O and elsewhere about App Engine systems and best practices. Below is some of the video content available on the web.
App Engine Architecture and Services
This lesson introduces how App Engine solves the needs of a real-time earthquake monitor in Japan, in a robust scalable way that handles peak request throughput during earthquakes without needing to keep server resources up and running all the time.
Learn how to configure your App Engine applications to best take advantage of the underlying Google infrastructure, including edge caching and load balancing, to optimize response speed and minimize cost.
Managing Your App
What can you do to figure out why your App Engine application fails at times, or even on every request? This presentation shows you how to use the Admin console to configure your application, how to monitor it on a daily basis, and how to troubleshoot it when errors occur.
If your App Engine has a high failure rate, the culprit is often quota errors. Watch to this presentation to understand quotas, learn how to track down and avoid quota errors, and how to estimate and and control your costs by enabling billing and setting a daily maximum budget.
User APIs and Authentication
What are the levels of granularity you can implement, to make sure the right people can access your applications, but non-authorized users are kept out? Learn how to configure your apps to be accessible to anyone, or to restrict access to Google Account users, to users at a specific Google Apps domain, or to anyone who has an account with an OpenID provider. (Note that the support for OpenID is experimental.)
Once your users have logged in, how can you personalize the experience for them? This presentation discusses how to use the Users API to get basic information about the user, and gives code samples to get you on your way to providing a personalized experience for each user. Learn how to use OAuth to allow a user to grant limited permission to a third party (be it another user or a web application) to access a web application on their behalf.
Datastore service in App Engine is the core component of the platform and an essential part of learning App Engine technologies. In this lesson we will cover topics including "What is Datastore?", "Datastore Internals" and "Datastore Basic Operation". We will be looking at basic concepts including the difference between a Relational Database and Datastore, scalability, reliability and performance characteristics of Datastore. We will also dive deeper into the underlying technology, Google Bigtable. As basic operations, we will learn Datastore concepts like Entity, Property and Key as well as Datastore APIs.
Datastore Query, Index and Transaction
In this lesson, we will cover topics including Datastore Query and Transaction. The Query is one of the most challenging parts on learning App Engine technologies. You will learn what are rules and practices of the Query, and why they are important to enable the high scalability of the service. Then we will look at some workarounds to cope with the restrictions of the Query. In the latter part of the lesson, we will cover Transaction of Datastore. Especially, understanding the Eventual Consistency of the Query is very important to designing consistent and reliable App Engine application. We will examine how Entity Group and Ancestor Query will ensure Strong Consistency of your application.
Memcache is the most powerful tool to minimize response time and Datastore cost of your App Engine application. In this lesson, we will learn what Memcache is and when to use it. We will also review the Memcache API in both Java and Python and look into some special usage including Batch operation and Atomic operation. In the latter part of the lesson, we present some caveats to know and best practices to use Memcache effectively, including the volatility, non-transactional characteristic, and how Memcache entries can be evicted.
Task Queue Basics
This lesson presents an overview and inner workings of the Task Queue.
The task queue has two flavors: push queue and pull queue. The push queue is a great way to schedule a unit of work, such as sending an e-mail, outside of a user request. This prevents blocking the user request while the e-mail is enqueued for delivery. Push tasks are treated as normal http requests, and are executed ASAP on the same app engine application. The pull queue allows enqueuing tasks that can be leased by workers according to user-defined logic. Unlike push tasks, pull tasks are pieces of data that can be accessed from other app engine instances, servers, or external servers.
Learn how to use both push and pull queues as well as fine tune configuration to optimize performance. Also learn how to execute push tasks on a regular schedule using cron jobs.
Google I/O 2013
Below are all of the App Engine presentations from Google I/O 2013. These videos discuss new technology and best practices, and give you a glimpse in to running services in production.
|Videos||Summary||Slides & Notes|
|PHP for App Engine: This session introduces a new and highly-requested language for Google App Engine -- PHP! The new runtime allows developers to take advantage of App Engine’s powerful scaling, services, durability, and ease of use, while leveraging familiar and powerful frameworks to build applications. In this session we'll give an overview of this new runtime, and show how easy it is to move existing applications to use App Engine and the Google Cloud Platform.|
|Cloud Backend for Your Android Application - From Nothing to Nirvana in Minutes: The best Android applications take full advantage of the cloud to power great user experiences. This talk shows, in detail, how to use the server-code optional backend on the Google Cloud Platform to store application and game state in the cloud. We will then walk through adding your own custom logic via Google Cloud Endpoints and the Google Plugin for Eclipse. For a more in depth look at the session content, read Brad Abram's writeup "Google I/O 2013 Session Overview: From Nothing to Nirvana in Minutes: Cloud Backend for your Android Application – Building Geek Serendipity."|
|Intense Gaming: From indie to AAA game studios, learn how cutting edge developers are building next generation experiences on the Google Cloud Platform. This session focuses on how developers are combining technologies such as App Engine, Compute Engine, and BigQuery to quickly build and scale their multi-platform releases.|
|Autoscaling Java: Understand how to build Java applications that work well in an autoscaling environment. We'll discuss common anti-patterns in Java that make it difficult for autoscaling environments to deal with your application. We'll also discuss how App Engine knows when to scale up and back your application and how to take full advantage of this.|
|Building developers.google.com on App Engine: The Google Developers website, aka developers.google.com, is one of thousands of Google applications that run on App Engine. In this talk, we walk through the real-world use cases and design patterns that drive the site's content management system, and discuss implementation techniques that have worked, and a few that haven't. As a bonus, we'll consider several of the newest App Engine features in the context of this app, and how they change the way we think about application architecture.|
|High Performance Apps with Go on App Engine: The Go runtime for App Engine is a high performance engine for running web applications. It produces fast responses, starts instances in a fraction of a second, makes the most use of instance hours, and allows your app to do serious processing at full machine speed. Come along to hear how to fully exploit the power of Go on App Engine and make your web applications the best they can be.|
Google I/O 2012
|Videos||Summary||Slides & Notes|
|App Engine Overview: Peter Magnusson and Greg D'Alesandre give an overview of App Engine's progress in the past year and announce some exciting new features.||Session Page|
|SQL vs NoSQL: Battle of the Backends: Google App Engine now offers both SQL and NoSQL data storage -- but which is right for your application? Advocates of each try to settle the issue once and for all, and show some of the tricks for getting the most out of each.||Session Presentation
|Getting the Most Out of Python 2.7 on App Engine: The App Engine Python 2.7 runtime is more than a simple upgrade to the Python 2.5 runtime - it has fewer restrictions, introduces some popular third-party libraries and allows for concurrent requests. The session will explain how to get the most out of these new capabilities.||Session Page|
|Building Mobile App Engine Backends for Android, iOS and the Web: Mobile application development is growing at explosive rates and the best of those applications have a backend server. Find out how you can use Google Cloud Endpoints to build powerful APIs to support mobile applications running on Android, iOS, and mobile browsers.||Session Page|
|Managing Google Compute Engine Virtual Machines through Google App Engine: Google Compute Engine provides highly efficient and scalable virtual machines for large scale data processing operations. Integration with Google App Engine provides an orchestration framework to manage large virtual machine clusters used for data processing. This session will demonstrate integration of the two technologies and discuss future use cases.||Session Presentation
|Optimizing your Google App Engine App: Learn from Google App Engine's SWEs and SREs how to optimize your app to increase your reliability, increase your performance, and reduce your costs.||Session Presentation
Past Google I/Os
Below you can find links to App Engine session at all the past Google I/Os. Please be aware that some of this information does not represent current best practices. However, it's a great view of the history of our platform.
App Engine at Campfire One
See how far we've come by watching both Campfire Ones on App Engine. In 2008, we launched App Engine at Campfire One. One year later, we held another Campfire event to introduce the Java runtime. The YouTube playlists below cover both events in their entirety.