Google just significantly raised the stakes in the platform-as-a-service market with tonight's launch of Google App Engine, a scalable, fault-tolerant web application environment that lets developers run their own apps on Google's infrastructure. Naturally the new platform leverages Google's expertise in building web-scale services including Big Table-type storage.
While in many ways this service competes with Amazon's suite of on-demand infrastructure APIs including S3 storage, EC2 hosting and the SimpleDB database, the approach is different. In Google's model you get all of these services bundled together in one package. This is a plus if you want to run your entire app under one roof versus the lower-level, individual services in Amazon's model.
At a high level there are five pieces to App Engine:
- The core fault-tolerant, scalable application environment that "runs reliably, even under heavy load and with large amounts of data." A key part of this is the "sandbox" which isolates your application a secure environment that is "independent of the hardware, operating system and physical location of the web server."
- A runtime environment for the Python programming language including libraries and modules. Again this is a difference from the Amazon model: here it's not a set of web service APIs, but language-specific frameworks. While this limits the audience to Python developers for now, the underlying platform is language-neutral and support for more languages will be added in the future.
- A local development environment and SDK. When you sign-up for the service one of the first steps is to download the SDK and once installed, it creates a local development environment that from a code perspective mimics the runtime App Engine infrastructure. Developers can code locally against stubs and then upload.
- An adminstration console for app management, logging, and monitoring. The admin dashboard includes usage stats like requests per second, bytes received per second, CPU megacycles per second and quota denials per second.
- The BigTable model distributed data storage service: "Just as the distributed web server grows with your traffic, the distributed datastore grows with your data." Note that as with Amazon's SimpleDB, the App Engine datastore is not a traditional relational database. In this case it consists of "data objects, or entities, that have a kind and a set of properties. Queries can retrieve entities of a given kind filtered and sorted by the values of the properties. Property values can be of any of the supported property value types."
One of the first questions from most developers will be: What's the cost? Sign up is free and so is running your app as long as stay under quotas 500MB of storage, 200 million megacycles/day of CPU, and 10GB of total bandwidth. Google estimates this means there will be no cost for up to approximately 5 million pageviews a month. Once this initial preview period is over Google will introduce a billing model for additional resources at "competitive market prices."
As you can see there's a lot to this announcement. Google provides a lot of useful resources including What is Google App Engine?, an FAQ, and set of articles. Note that the preview release is limited to the first 10,000 developers that sign-up.
And finally, a note on today's launch itself: just as they'd done with their OpenSocial announcement last fall, Google launched App Engine at a Campfire on Google's Mountain View campus. For details on the event itself check-out TechCrunch's coverage including videos from Robert Scoble.