Then I finally released a new website called www.krisentalk.de. It’s all about the financial crisis in Europe and the rest of the world (called "Krise" in German). The content is community-driven.
I developed krisentalk.de on the Google App Engine (GAE) / Java. Starting with a little evaluation on cloud-platforms, I decided to go with GAE.
All in all it was a fun and expedient experience. Nevertheless there are pitfalls and Google’s cloud-platform still feels “green” on some edges. I will blog about some of the pitfalls later on.
I chose the following frameworks, which work well for me.
- GAE Java Runtime
- Spring 3.0.x (particularly Spring MVC)
- GAE’s Java Datastore API (wrapped with the good old Data Access Objects [DAO pattern])
Grails wasn’t an option because it doesn’t work very well on GAE.
My positive résumé on Google App Engine:
- Setup, deployment and scaling is a no-brainer
- The specific GAE API is proper and easy to use
- Local development environment based on Eclipse works fine
- Out of the box administration tools and monitoring capabilities available
- Common services like emailing, asynchronous queuing, mem-caching, authentication etc. are available and easy to use
- Scaling (as far as my JMeter tests predict)
My negative résumé on Google App Engine:
- Some restrictions on the usage of Java’s SDK API (and thus some frameworks are not working well with GAE)
- Feedback and support from Google and the community is improvable compared to others (e.g. Grails)
- Critical bugs take sometimes too long to get recognized and fixed from Google (e.g. Website broke because wrong CSS mime-type)
- Small down-times from 2 to 5 minutes in 24h the first days (running on HR Datastore)
- Whenever there is a misbehavior in Google’s resource/scaling management, the customer has to pay. Nice business model: Introduce a misbehavior on customer’s platform and revenue goes up. ;) (e.g. Scheduler behavior and Slow requests). I will blog another example the next days.