Sunday, June 21, 2009

Steve Ballmer Comes to Stanford!

Stanford Entrepreneurship Though Leadership (ETL) Program got Steve to talk here. Kudo's to ETL for having star studded lineup.

Google App Engine – Learning's of Business App Migration

With Google announcing availability of App Engine Java Language Support I decided to look at migrating a business application. I had been eyeing App Engine since Guido announced it a year back – but Python had kept me away. In comes Java and my team jumped on that. Google’s Campfire 2009 sessions claiming “standards based Servlet container in cloud requires configuration changes” and “with minimal effort you can migrate apps” were in for some challenge.

For one, major effort was in porting the Persistence layer that (used Hibernate 3) on MySQL to Data Nucleus based Data Store using JPA. Well that was expected. Other changes included removing Quartz threads and File I/O – but here's the unexpected!
  • Presentation (JSP/Struts/Velocity Templates) tier needed re-design as GAE does not support more than 100 URL’s in application
  • Every JSP needed to compile on its own – well our JSP include directive did not assume that
  • Static/Resource Files – we hit 1000 # limit. Had to come up with clever way to circumvent that
  • 30 second hard time limit on response processing – we used Web Services from external service provider and that did take up more than 30 secs – needed a redesign
  • Size limits on Total App and single file size
  • Initial Data Seeding of the application
  • Migrating our Build and Deployment process

Following errors should not deter you. Solutions are available in App Engine Discussion forum that is responsive
  • Found a file too large to upload: … Must be under 10000000 bytes.
  • Class xxx has property yyy declared in MetaData, but its getter method doesnt exist in the class!
  • Found more than 100 URLMap entries in application configuration.
  • com.google.apphosting.runtime.HardDeadlineExceededError: This request (8c8ca701dccad394) started at 2009/06/05 07:30:05.088 UTC and was still executing at 2009/06/05 07:30:33.944 UTC.

Summary and Recommendation:
  • App Engine is good and great – but I suggest you have alternate traditional options (EC2 et.al.), till this is proven to be good for business apps - and YOU FEEL comfortable. And since all this is pay as you go – you can turn it on when YOU think it is time
  • You must have a plan for Data Migration  and initial data seeding if needed.

Sunday, June 14, 2009

If Dogs Tweeted!

Absolutely hilarious post by Guy Kawasaki on Dogs twittering! Check this out.

Twitter can be a phenomenon in Animal kingdom as well. Is Disney listening :) ?

image