App Engine: Host Your Apps with Google

Tonight at their second CampFireOne Google Code is announcing App Engine, a hosted platform for web developers. The actual service will launch later tonight in a closed Beta. 10,000 developers will be granted access on a first come, first serve basis.

It’s about time that developers get access to Google’s platform! We’ve been hearing about Google’s server farms and development tools for years. After Amazon Web Services started doing so well we all knew it was just a matter of time (next will be Microsoft we can can safely assume). Though the obvious comparison is to AWS, they aren’t really the same beast. Amazon has released a set a disparate services that can be used to created a general computing platform. The services, though they work together, do not come bundled.

App Engine on the other hand is almost literally an engine for powering web applications. It bundles together many of the features that AWS offers into a singular package: storage like S3, auto-scaling and processing power like EC2, and a datastore like SimpleDB. App Engine also offers things that are not available on AWS like a Python runtime, Google-specific APIs and perhaps most notably a free portion of the service. App Engine is more like other web application platform services like Bungee Labs (similar but with its own language), Heroku (which supports Rails), or the now-defunct Zimki (which supported server-side JavaScript; Radar post).

App Engine includes a scalable datastore (based on BigTable and GFS as TechCrunch wrote on Friday; this will allow apps to scale to millions of users with millions of rows of data), a Python runtime that was heavily influenced by Django (the templating system particularly) and an open-source Python logging system. App Engine will auto-scale for applications and provide fail-over. Global configuration settings provide authentication, analytics and access to Google service APIs. There is also a downloadable SDK for local development and debugging. Moving locally-developed apps to the web is just a single command.

The apps all appear on the domain. Each developer currently gets three application ids. When apps are uploaded they will appear at Developers can, of course, bring their own domains. You can see the current set of apps in the application gallery. I love the Appspot domain name; it’s an homage of sorts to Blogspot and fits in nicely with Jotspot.

App Engine will initially include several APIs. The Users API allows apps to authenticate against Google accounts and to make those accounts Admins. The Mail API allows apps to send mail — from the developer’s registered email address. Other APIs permit interactions with the Datastore and fetching content from other URLs.

Initially the service will be free and will provide 500 MBs of storage and enough bandwidth and processing power to serve 5 Million pages per month. Some portion of the service will always be free (they’ll decide on the exact levels during this Beta period). Popular apps will end up paying for their success. I imagine that in the future an Adsense account can be tied directly to an app so that any App Engine fees can just be paid from that pool.

One other important thing to note is that App Engine is not a general computing platform. It is not meant to be used for batch processing. It is a request driven platform. I can picture some App Engine’s using EC2 for batch processing behind an AppSpot front end..

It is also important to note the use of Python. Each of the other hosted platforms I mentioned had picked a specific language to make available at their release. Google’s is Python and all of the Python-built tools seem to borrow heavily from Django, a Python web framework. App Engine will work with other Python frameworks (these ones were all specifically mentioned in the documentation: EZT, Cheetah, ClearSilver, Quixote, Django and CherryPy).

I like the approach that Google is taking. They have always been clear that they want more people on the web (more pages means more ads served). They are providing the platform for people who want to put up a quick app; the real question is will they stick with it when the app hits the bigtime?

As this post goes live I am at the CampFireOne where they will be announcing App Engine. If you have any questions post them in the comments of this post or direct message me on Twitter. I will try to ask them.

Google will be speaking on App Engine at the Web 2.0 Expo in SF on Thursday, May 24th. The session will be open to anyone with an Expo Badge. Google will also cover it at their conference, Google I/O, on May 28th and 29th.