Wednesday, April 08, 2009

I just tried the Java version of Google App Engine

Very nice. I just installed the Eclipse plugin for the Java version of Google App Engine and created a new web app using JSPs and some static content. I have not yet tried using the JDO and JPA based Java persistence libraries (with Big Table being the underlying data store). The deployment was very easy. The application dashboard and administration web applications are well done and the people who wrote the Eclipse plugin did a very good job - really slick.

With free pricing for low volume web applications and moderate pricing once you go over the free quotas, I would bet that a lot of Java developers will jump off of higher priced Java web app hosting services. For my own use, it is an open question how much I will use this service. I really enjoy configuring Linux servers, installing just what I need. I lease two Linux servers for running Rails and Java web apps for customers, my own stuff, and general experimenting and fun. App Engine may be too "abstracted" of an environment for me - I may change my mind if it is easy to:
  • Use BigTable via JDO or JPA
  • Easy to assign my own domains to App Engine web apps (I am sure that it will be)
  • That response is good (the admin web application provides statistics to measure this)
  • It is easy to upload data into BigTable, and export it
Although I base a lot of my daily work flow around various Google services, I always do like to feel that I am not locked in. For example, I like that it is very easy to backup my GMail and Google Documents to my laptop. So far, I don't see why Java web applications can not be written in a portable way making it easy to run on either App Engine or my own servers.

I don't even know where to begin comparing App Engine with Amazon's EC2 because I see using them for rather different purposes. I have a lot of learning curve time invested in EC2, S3, etc. and no time at all using the Java version of App Engine but hopefully in a month or two I can make an informed comparison. Using EC2 seems closer to the metal in the sense that you need to design an architecture that deals with failing server resources. My first impression is that App Engine abstracts away handling failures at the application level - a benefit, but with a loss of flexibility. So EC2, for me, has more of a "build it myself" feeling. If you enjoy hacking/configuring Linux then EC2 would seem to be your best bet.

6 comments:

Adrian A. said...

There's an interesting Amazon based Java hosting solution start-up called Stax that seems to hide all those uneasy details, so the that the java users can concentrate on their Tomcat based applications, and simply let them scale up (and most importantly down).
It also seems to support most java based scripting languages like JRuby et co.

Mark Watson, author and consultant said...

Hello Adrian,

Thanks, I just looked at the Stax web site: they have a good idea. They may have problems competing with Google on price though (just a guess).

Chris said...

Mark,

Checkout www.cloudtools.org and www.cloudfoundry.com . They let you deploy Java applications using the more standard Apache/Tomcat/MySql stack.

Cloud Tools has Maven and Grails plugins.

With Cloud Foundry you upload a war file written using your favorite JVM language and frameworks.

Chris

Mark Watson, author and consultant said...

Hello Chris - cloudtools look pretty cool - are you Chris Richardson, the cloudtools developer? If not, have you used them? In general, building businesses layered on top of AWS looks good. I have such a business in mind, when I finish my current book project :-)

Chris said...

Mark,

yes, I am Chris Richardson, the developer of Cloud Tools and the founder of Cloud Foundry (and a happy user of them :-) ).

Chris

www.chrisrichardson.net

Adrian A. said...

> Thanks, I just looked at the Stax web site: they have a good idea. They may have problems competing with Google on price though (just a guess).
The GAE/J seems to have many restrictions, and many frameworks are not working on it (yet :( ) - Stax seems to have none so far.

Regarding the "hard times", it's very probable that you are right :), especially if the free quota from google will cover the user segment Stax was targeting in first place: e.g. users with less traffic that that don't have their own AWS account because of the entry costs.