Thursday, April 10, 2008

The business case for Google App Engine

App Engine sure has caused a stir. Some of the competition is already scared, with reason.

But who is App Engine's real competition?

In a lot of ways, App Engine is in a class by itself. It competes on the high end with Amazon Web Services. But it also competes on the low end with every shared host out there. And thanks to the integration of Google authentication and the application directory you could also make a case that in an orthogonal way it competes with Facebook's application API.

At the low end, App Engine is a big deal for Python developers and anyone else who is allergic to PHP. Historically, you've really had to look hard for low end hosting that offered anything else. And as everyone who has given products away to colleges knows, Free is a fantastic hook to get developers to try out your platform. Once it's open for all, App Engine is going to become the preferred option for developers with the itch to write a toy or proof of concept and show it off to the world.

Less obviously (to developers, anyway), App Engine also a big deal for businesses that aren't quite big enough to hire a sysadmin, or who are big enough but still prefer not to deal with that complexity. (You thought hiring skilled developers is hard? If anything, hiring skilled sysadmins is harder.)

I suspect there are a substantial number of companies in the uncomfortable situation of really needing more performance than shared hosting offers, but not wanting the complexity of taking the next step, to dedicated servers with dedicated sysadmins.

Of course, given App Engine's constraints, porting such applications to it is only going to be an option in a few cases. The question is, are managers of new projects farsighted enough to see this problem coming and realize that app engine insures against it?

At the high end, AWS is the only real competition to App Engine, but as most observers have pointed out, they are different beasts. AWS offers far more flexibility, at the cost of far more hours from your ops department. (Although App Engine's datastore is a lot more sophisticated than the AWS SimpleDb, so the capabilities of AWS aren't a strict superset of App Engine's.) Contrary to the Joyent assertion linked earlier, it isn't necessarily stupid to trade flexibility for convenience. App Engine just works to an unprecedented degree in the field of high-end scalability.

As with anything this disruptive, there's been a certain amount of hysteria. Even people who should know better have repeated the idea that "nobody will want to acquire a product built on App Engine because you're locked in." This is stupid. Depending on a proprietary platform hasn't stopped products built on Oracle from being acquired, or products using AWS, or even products built on a proprietary UNIX. (Yes, those still exist.) Nobody will care if you build on App Engine, except maybe Microsoft and Yahoo. And even they can be pragmatic; Hotmail ran on BSD when Microsoft acquired them.

Lock-in is a real issue, but not because App Engine will keep you from being acquired, and not because Google will screw you once they have you in their clutches -- that would scare off new customers and thus be bad business. Lock-in is an issue because evolving requirements might make App Engine's confines less of a good fit than it started out. If you have to start adding servers at AWS or RackSpace to handle things you can't within App Engine, App Engine loses most of its value.


Jean-Lou Dupont said...

Lock-in is an issue because evolving requirements might make App Engine's confines less of a good fit than it started out.
Aren't you assuming a static picture of AppEngine? Who says that AppEngine won't evolve?

Jean-Lou Dupont.
PS: great post.

Jonathan Ellis said...

Of course App Engine can evolve too, and I fully expect it to do so. But only Google knows how and when. :)

(Of course Google could open that up if they wanted... but I would be surprised to see that.)

Bill Mill said...

> (You thought hiring skilled developers is hard? If anything, hiring skilled sysadmins is harder.)

A point rarely made but very true.

Brett Morgan said...

Pretty much all of the confines of GAE are about making a highly scalable webapp. I can understand your point that this is an interesting point of interest for small to medium scale enterprises, but that really isn't the market that GAE is best for.

This is engineered to make the next facebook doable by a handful of software devs. All the confines force the developers to make the right decision for scale.

There are no joins. It isn't possible to write query strings with injection attacks. You have to optimise the rendering time, or your request gets terminated. As a dev, I have to write my apps as quick transforms over a distributed transaction data store.

If anything, this app is about teaching programmers how to think the google way. Pre-compute everything.

zang said...

Nice Post
article rewrite