Tuesday, April 15, 2008

Google App Engine ported... or is it?




Rounded Corners Crap


Short story shorter:

Tim O'Reilly meditates about App Engine being a lock-in game. Chris Anderson copied App Engine SDK (the one you can download and run locally) to EC2 and thinks he ported App Engine to EC2. Enthusiasts got wet. He got traffic on his google ads enabled site and a PR boost.

Again, Rounded Corners Crap

Why is that?

App Engine has a few components:
  • SDK (Includes the webapp framework, mongrel-like dev web server, local filesystem DataStore and other mocks)
  • webapp Framework (a thin Django/Rails clone)
  • DataStore API (some sort of not-relational database based on BigTable)
  • Users API (google account authentication)
  • URL Fetch API (3rd party WS communication)
  • Mail API
Now the entire SDK is open-source. Not much of a framework lock-in, is it? However you can find most of the stuff they have anywhere (think rails or django).

So what's the catch?

Google scales it for you.

You don't have to bother with load balancers, sharding, master-master replications, authentication and all the operational issues. You can focus on your business needs.

The lock-in is in their services not in the SDK.


Google has GFS/BigTable/MapReduce/Sawzall and some really smart stuff on top of that which enables them to scale your data model dynamically. Now this is App Engine: a nice SDK with a powerful set of backend services.

The App Engine EC2 port is nothing but webapp framework with some mocks for authentication and storage. No scaling. I do wonder why it took 4 days to do that it seems like a 4 hour job.

No scalability, no play.

Now let's say someone takes it to the next level and uses Hadoop, HDFS, HBase and all the Apache goodies for the storage. It's still not enough. It's like having a filesystem when you need a database. You'd have to build something really smart on top of that. Let only the SQL idiom google has (GQL) and it's still hard to do that on top of HStack. You'd have to build an object oriented database. Think relations and indexes and joins and all the bells end whisles.

And no, SimpleDB doesn't do that.

I'm still amazed on how fast people buy silver bullets.

I do have to admit that this in the Web 2.0 rounded corner-ish philosophy: build hype on vapors.

Happy chewing!

PS: there's also an App Engine Elastic Server. Already.







5 comments:

adinel said...

Off topic: Sar'na pentru Erlang! Ai postat un comment dupa wurbe 5 despre Erlang, de fapt EUnit. De 10 zile citesc si nu ma pot opri. Nu sunt eu bun in a intelege tot, insa e frumushel :) . Poti sterge acest post, voiam doar sa iti multumesc pentru hint. BTW Jon Armstrong, Bob Ippolito, si Steve Vinoski faini!. Jim Weirich... I'm baffled...

adinel said...

Hmm... Se pare ca nu l-ai sters...:) De fapt paralela dintre Erlang si Google App Engine nu era off-topic. Gordon Guthrie vorbeste in cam incet insa merita urmarit. BTW hypernumbers won Seedcamp last year, dar cred ca stiai deja asta...

adinel said...

Sorry... Prezentarea care face paralela e asta.

Cosmin Lehene said...

Adinel,
I'm glad you like Erlang. Let me know if you build something interesting. Maybe you could do a Wurbe presentation on that.

I didn't know about Hypernumbers. Thanks! Watching the video now.

adinel said...

An update on Gordon Guthrie and Erlang / GAE. Unfortunately I didn't found any video/audio on this but the presentation is nice.
Enjoy! :) .
P.S. I'm always baffled when I watch Joe, glad you liked him on InfoQ.