Experiences with Google App Engine

I've been playing around with Google AppEngine for the past two weeks, and the experience has been mixed so far. First, the good:

  • really easy to build something simple and get started.
  • no need to worry about scaling, backup, replication etc. I haven't verified this obviously, but at least thats the claim.
  • the integration with Google accounts is nice.
  • good documentation, lots of sample code available.
  • dev server really helps with most of the development.
  • the sort of restrictive resource usage limits (see below) forced us to think carefully about our code and heavily optimize certain operations to make them work on GAE.

code.google.com_appengine_images_appengine_lowres.jpg

And now, the bad:

  • too many limits: 1 million is their favorite number. No files over 1MB, no request should take more than 1 million CPU cycles (whatever that means) and who knows what other limits they impose internally. While developing, this was the biggest barrier for us. Things would randomly fail, and then our application would be disabled for several hours.
  • The dev server doesn't replicate the constraints in production. So everything would run fine and dandy locally, and the minute we upload, it would fail. Since we can only debug in production, and our application exceeded the quota every time we ran it, debugging was extremely slow and painful.
  • local data store is excruciatingly slow. But this is not that critical, since it is only for testing anyways.
  • even the remote data store is very flaky and slow at times. Any query involving more than a few hundred elements exceeds the quota.
  • the bulk uploader is very useful, but again it is really really slow. If you want to upload anything in “bulk”, you'll have a hard time. The parameters have to be chosen carefully as well. Even for very simple data models involving 3-5 fields (mostly strings), we had to reduce the batch size to 2-4 to make it work. And despite that we got a few HTTP 500 errors while uploading.

But its been fun so far. Hopefully most of these issues will get ironed out moving forward. As for what we are building? That will have to wait for another post ;-)

  1. uBoggle is a featured application!
  2. gooLego: Google’s software building blocks
  3. Using Google Webfonts with Thematic
  4. Google Code – Project Hosting
  5. Google Analytics — the deep web
This entry was posted in Projects, Software, Technology and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

3 Comments

  1. Mahesh T
    Posted July 17th, 2008 at 7:13 am | Permalink

    Thanks for sharing these insights. AppEngine, for now, seems too specialized a platform; There is no room to build something even slightly tangential to what the core provides. I would love to see a nutch/solr like api from the search company.

    When is the “other” post coming :D

    Thanks!
    -Mahesh
    Celebrating Life…

  2. Posted July 17th, 2008 at 9:28 am | Permalink

    @Mahesh T: Very soon now :-)

  3. Posted June 22nd, 2009 at 5:33 am | Permalink

    thanks, very good..

One Trackback

  1. By Introducing uBoggle! « Floating Sun on March 5th, 2010 at 10:52 pm

    [...] I mentioned recently, I have been dabbling with Google App Engine for fun with some of my friends. I think we are now at [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>