Phillip Pearson - web + electronics notes

tech notes and web hackery from a new zealander who was vaguely useful on the web back in 2002 (see: python community server, the blogging ecosystem, the new zealand coffee review, the internet topic exchange).

2008-4-9

Google App Engine

There's not much I can say that everyone else hasn't already. GAE is out, and it appears to be good. I've downloaded the SDK and created a silly little test app (now just a landing page) to see what the sandbox allows, and it looks very promising.

This is very very different to something like EC2, which acts more or less as a very very fast-paced (instant deployment, pay by the hour) dedicated (unmanaged) server hosting provider. It's a shared hosting environment, like what you might get somewhere like GoDaddy, only seriously locked down -- you can only use Python and Google's proprietary datastore, there's next to no filesystem access, no threading, no long-running processes and no sockets. This makes it far less flexible than typical shared hosting environments, but locking you into this particular model makes it feasible for Google to 'auto-scale' your application, distributing it across many servers as required. I expect that the usual upper limits of scaling will still apply -- things that would take a really long time for something like MySQL to do will simply be disallowed within GAE -- but this may make things like database sharding less important.

The awesome thing about it, though, is that it appears to scale *down* very well, just like shared hosting. It's trivial to create and deploy an application here, and each additional app won't consume 40-70M of memory like a single Mongrel running a tiny Rails app would. Google handles monitoring, networking, load balancing and hopefully backups for you. So this will be *perfect* for hobby projects, while at the same time being quite adequate for many commercial projects. Projects wanting to do things like run Jabber gateways, background tasks and asynchronous stuff can do that on servers outside GAE and push/pull data as required over HTTP.

Oddly, I can't think of a pure website-type project that I'd like to build right now. But my next 'hack' type project will most likely be targetted to GAE.

(On second thoughts, taking a look back at my list of old hacks/projects, I see a couple, like the Radio Comment Monitor and Feed Normalizer, that I'm currently running as Python CGI scripts, that would be perfect for GAE. So maybe one day when I feel like taking some load off the server they're on, I'll port them over and let Google run them for me. If anyone's still using them, that is!)

... more like this: [, , ]