Thursday, February 16, 2012

Cloud Foundry vs Google App Engine

Over the past months I had some experience on the Cloud Foundry and the Google App. Engine. Below are my reviews on them, mostly on a developer perspective, not on performance or on cost. Another note is that CF is still in beta so it may seem a bit unfair comparison but as long the philosophy stays the same I think points I made will hold.

Google App. Engine
Appengine is the first one I tried to deploy. You have a nice web console to control your instances and application. Google offers you api's to replicate your data across instances. Google also offers you some nice api's like the Channel api which you may use as a serverside push.

Cons; being an experienced Java developer I wasn't excited to the fact that I had to add an appengine.xml on my jar even though I wouldn't be using any service from Google.

I discovered that Google does not give you access to some JDK classes, like the NIO stuff. So you can't just use/do anything you like.

HttpSession's are not enabled by default, you have to enable it on your appengine.xml. Google apparently wants you to use it's own api's, DataStore stuff in particular. Once you are committed to Google it does not seem easy to move away from it.

Lastly HttpSession.contextDestroy method does not get called, yet... So you have to do some more stuff like suggested here. Makes me thing what else they have omited ?

Cloud Foundry
With cloud foundry you get tomcat instances. I configure/manage my apps using an ruby app. called 'VMC'. Community is helpful questions asked are answered pretty fast. It follows the Java standards. Rarely something thats working on my tomcat instance does not work within the CF. Provides services like Redis, MongoDB ...

Cons are it's still in beta.
You can't purchase instances yet.
To access the services I had to use CF api though there may be other options that I don't know, anyway still it seemed less invasive than Google to me.

Although CF is still in beta I believe it offers a better, non-invasive environment compared to GAE.