I attended a talk on the Google App Engine in Seattle on Monday March 30, 2009 hosted by the Washington Technology Industry Association. It was one in a series of talks on Cloud by industry leaders. Mike Repass, a product manager for Google, was up from the Bay to present. What follows are my notes from the presentation with a bit of commentary. [Note, I have not used Google App Engine myself so I'm no expert, but thought the talk was well done.]
Google App Engine Primary Value Propositions
The primary value propositions Mike notes for Google App Engine:
No Assembly Required - To get started you need a Google provided SDK and Python installed. They support Mac, Windows, and Linux platforms for developing your application. The run-time environment is a Google version of Python which implements 90-95% of the Python API.
Easy to Scale - For security and scaling purposes some portions of the Python API have not been implemented in the app engine run-time. Applications must be stateless to support the auto-scaling capabilities.
Free to Use - Mike talked about the free usage of up to 5 million page views. Five million page views is just marketing speak for usage based quotas that include both volume and rate. For example # of requests total and # of requests per minute. Details can be found here, but I did note on the blog that reduced free quota levels will take effect on May 25th with the following changes:
- CPU Time: 6.5 hours of CPU time per day
- Bandwidth: 1 gigabyte of data transferred in and out of the application per day
- Stored Data & Email Recipients: unchanged
Five Core Components
The App Engine is comprised of the following five components:
- SDK + Python - A 2-3MB download includes Python libraries, command line interface, and docs. Basically, the libraries are Google Python extensions, and CLI allows for easy app uploading.
- Sandboxed Run-time environment + Your Code - A run time environment created with a custom version of Python that implements most of the python environment. Things like direct access to the file system and other system features are disable to enforce the sandbox rules.
- Datastorage via Python APIs - An API and library that gives authors access via standard Python APIs to Google’s Big Table data storage system (non-relational, no fixed schema). Does not handle blobs/large files today.
- Servicing Architecture - An architectural framework which allows properly architected Python applications to be scaled up/down based on demand including handling all traffic/network routing. To do this, python applications must be stateless.
- Administration Console - A web based GUI to monitor your apps, make configuration changes, and handle billing
App Engine History & Examples
- Launched in April 2008
- 150k developers
- 50k applications
- 100 million page views
- Example: Buddy poke, 1 developer with 36 million users
The main web site for information is appengine.google.com. They also expose all of their operational data including latency and service quality.
App Engine Fit
At this point, Mike discussed a framework in which to consider the App Engine’s fit. He was clear this was not intended to be a better/worse competitive framework, but only a way to look at where App Engine fit vs. other services (i.e. Amazon). These were the categories he defined:
- Owned Machines - Capital expenditure required. Owned and managed by the customer.
- Leased Machine Physical - Not capital expenditure. Managed by a 3rd party. Full access and full flexibility to do whatever you want with the machine.
- Leased Machine Virtual - Not capital expenditure. Managed by a 3rd party. Leasing the compute capacity more than physical hardware. Full access and very flexible. This he said was where EC2 fit.
- Managed Machines - I didn’t get this one)
- Managed Platform (non-machine) - platform as a service. This is where Google App Engine fits.
- Mash-ups - no programming
I find this breakdown of categories to be off. There are several axis being discussed here that really are separate and independent. For example, there will be owned solutions that will deliver compute and platform as a service within the Enterprise.
He noted that legacy applications and applications that require integrations with other software and hardware systems are not good fits for the Google App Engine.
In summary, the pros are you don’t need to worry about hardware and its configuration. The cons are you give up flexibility and control.
Six Month Roadmap (from March 30, 2009)
- New language and new run-time environment (no leakage of the actual language. April fools blog post says Fortran, I think not.
- XMPP support (for jabber client apps), Mike also seemed to position this as potentially useful for inter-app messages, although seems like a poor mans implementation as opposed to Amazon SQS
- Cron - support for scheduled hits to an URL to drive work processes
- Large file/blog storage for images, mp3s and the like (must be a lot of demand for this)
- Background workflow / task queues - the limitation cited was App Engine was good at traditional web applications, but not easily used for background/worker processes. The idea behind this is to support some architectural work to make this kind of application or subset of an application easier to create
- Incoming e-mail support - apps can listen to incoming e-mail
- Datastore export - many customer fear vendor lock in with these cloud platforms. This allows you to extract your data so you can use it elsewhere. Lively discussion on the usefulness of the data without the business logic behind it.
More on Billing
- Rates and daily free usage based on 5 primary areas bandwidth in/out, storage, cpu, and e-mail users
- You can down grow beyond the free quota by enabling billing (I noted earlier free quotas are to be reduced in May)
- You set a billing budget, your costs will never grow beyond your budget (Customers will experience a Quota Denied error once your quota has run out, is this really a good experience???) There is also no proactive alerting mechanism to let you know you are about the run out of quota. Although Mike noted several technologies were being investigated including being able to code to budget (dial back application usage based on current quota thresholds)
- Maximum billing budget is 500 hits/second and up to 1B hits/month. If you need more call Google directly. Cited example of whitehouse.gov.
- If you register your domain with Google, you can use your domain for your app vs. the app engine provided domain
What followed was a demonstration of building and deploying an app and some final Q&A
- Q: Can users tie into Google Earth/Google Maps A: Not today, would like to get there
- Q: Can I port existing applications to the App Engine A: The easiest existing apps to port are those based on Phython web frameworks such as Django. The main challenge is the datastore. There was an open source project built by a Google intern to extend the Django framework with APIs to Googles BigTable data store.
- Q: How will you handle Phython version upgrades? A: You will select Phython runtime you want to use in the app.yaml file.



























