Hi Jeff
thanks for heads up.
I one of the early java gae adopters and it really makes me sad to see
how google kills quite awesome platform with such decisions - I went
through simple servlet app to full scale Spring MVC (with all usual stuff
like ehcache/velocity/others) and after major disappointment last year with
cold starts and startup issues on GAE (Spring MVC simply didn't load in 60s
interval sometimes, google was spinning/killing instance in couple of
seconds) I ended up with this solution for http://www.librarist.com/:
1) I run Web frontend on Appfog (Spring MVC with Rest/Velocity/Ehache) -
this piece is responsible for fetching all data from backend and caching
them for user
2) REST backend runs on App engine - this part is done in multiple separate
app engine application and it's build on own hacked spring-like minimal
container which allow me to do some very simple DI/MVC/REST+JSON
(configured in old good XML, no anotations no AOP) - cold start is usually
4-5 secs and the app is fully serving then. As I said I have split all the
app modules into separate applications which reduces number of request
per app (so some apps with longer runnign request doesn't hold back app
with faster requests).
- cover app for fetching and displaying book covers
- book data app for fetching/storing all book related information
- pricing app which operates with external grabbers (grabbers run in
parallel in different cloud providers aka Heroku/Appengine/Appfog/Openshif
and I'm going to experiment with Amazon spot instances as well)
I've done this infrastructure change 2-3 months ago and as far as I can say
it works fine (I'm having minimal latency in all of my app engine apps,
usually run only one instance but google handles scaling very nicely now).
I'm not saying this is the only way to go since I know such design is not
suit for every kind of application and our weak spot is now at frontend
cloud provider (which is appfog at the moment and seems little bit unstable
last couple of days) but I just would like to share my experience.
If anyone would like to see how the librarist works the good start would be
the New Zealand front store (with 30+ suppliers) ie.
http://www.librarist.com/nz/book/9780007310579/ - it usually does an
instant price comparison on those 30+ shops in 2-4 secs (and I believe that
now we should be able to keep such time even with more suppliers thanks to
modular and parallel design of our backend).
Best regards
Tomas.
On Thursday, 16 May 2013 11:52:51 UTC+12, Jeff Schnitzer wrote:
I attended the Autoscaling Java session at Google I/O. In summary, the
advice is:
* Don't use dependency injection.
* Don't use AOP.
* Hardcode configuration values as much as possible.
In other words, go back to Java circa 2002. There was no discussion of
changing routing so that user requests don't see cold starts. I asked about
this in person - apparently they're still talking about it and nothing
has been done about it.
I am sad.
Jeff
--
You received this message because you are subscribed to the Google Groups
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.