If it makes you feel better I have this fight once a month. AWS that is
easier to build for or GAE which doesn't require any sys admin and is
infinitely elastic.

 

Someone will put something on AWS show me how awesome it is, and how cheap.
I will throw the load simulator at it, and watch it burn.  

They say but you didn't give it more instances.  

 

I will say fine every 4th  8 minutes when CNN runs a commercial for the site
you need to handle  5000 uesrs, and the rest of the time you need to handle
8. 

Which is cheaper?

 

They always lose.

 

How do we manage keeping the versioning the same on all instances in AWS?
How long is the down time on deploy of new version?  (GAE you can deploy,
warm up enough instances and change the "Default" version and not even lose
sessions)

 

Every service has plusses and minuses if they didn't then someone would be a
monopoly.

 

Edge Cache is amazing for most apps it will negate the AWS "savings". Rapid
Elasticity is amazing it will negate even RackSpace savings.

 

Not taking off the shelf code. That will cost you a developer. Sorry. I
would also say most the time, you should be rewriting that code anyway to be
exactly what you need, but I get that sometimes what you want is to use
Facebook Authorization, and there is no reason to strip stuff out.  Except
that you have to remember everyone who is not you writes sucky code. Generic
code. Meant to run everywhere. Except GAE is not everywhere, it is in
unicorn land where you traded having nice friendly donkey's who will put up
with what ever shit you feed them and still pull your wagon, for a flying
unicorn that shoots rainbows out of its ass but requires that you don't just
give it a sugar cube every now and then, but that it is raw organic sugar
fed to it by beautiful naked virgins.  In exchange you can go farther,
faster, and you don't have to clean up poo off the floor.  These are the
trades you make for living in Unicorn land.

 

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Tomas
Sent: Saturday, July 21, 2012 2:50 PM
To: google-appengine@googlegroups.com
Subject: [google-appengine] Re: Startup time exceeded...on F4?!

 

Hi guys,

I actually didn't want to reply to this thread originally even I was the one
who opened the small thread 3 months ago regarding the very slow startups on
gae with spring + velocity + objectify but after reading the email telling
me I should "write modular apps and don't use frameworks" I have to write up
something.

I'm 10+ years java developer and I'm big fan of Spring as it saves a hundred
hours of time - I originally developed the www.librarist.com 2 years ago as
a pet project on app engine as a just a prototype using simple JSPs +
Servlets and it works working fine (startups 3-5 secs).

But when I wanted to add another features like cart, OAuth login, use
templating, use proper caching - and I decided to go with Spring as this the
reason why we have frameworks. Plugging in Velocity is just matter of 1 line
of code in XML (plus some tweaks if you need them), the cache is again
couple of lines in XML and you automatically get in memory + memcache with
ehcache, authentication is 2 lines of code. And I can continue.

I use spring in work for other projects which runs on full java stack (but
thats just Tomcat/Jetty) and when I run the "new" librarist equivalent code
on Micro instance on AWS (which is like 600MB ram and 1.8Ghz - I might be
wrong here a little bit), the startup is 2-3 secs and I can serve all my
traffic with it with load at max 0.5.

When I run the similar code on GAE, I get 45+ secs startup (when I'm lucky,
sometime it just go over 1 nib and got killed) and then GAE keep spinning
another instances like crazy but very often use them for three request and
then dying to get started again. Worth to mention - I do not use the full
Spring stac, basically its just Spring core + Spring MVC, then objectify +
Velocity - and I really tried to do all the possible optimizations (packing
all the stuff into one big jar, used annotations + java confing, used XML,
disable scanning of annotations) but these changes just save me like 4-5
secs from 45 secs.

When I tried just Spring code + Spring MVC without any other library (and
here we talk about ~2MB of jars), use one JSP, my best startup time is 15
secs.

Okay thats cool, I can understand the  GAE is different and basically it
could be used just for small projects where you write everything by yourself
and don't use any normal stuff like Dependency Injection / Proxying and
similar. But my biggest question for GAE guys would be this - why the hell
the startup takes so long simply I don't get what is actually the issue
here:

- is it loading of the jars from the network (virtual drive) when the gae
loads each class as separate file
- is it the scanning of the classes (annotations etc)
- is it java reflections
- is it creating of proxies (which Spring does for almost everything)
- anything else I can't see

I really REALLY liked the idea of the app engine since I hate to mess up
with server configuration and it's great to focus on SW alone. But honestly
speaking, I gave up on GAE for serious projects - it's good platform for
doing some quick prototype to show to client (easy deploy, no server
maintenance, you can have a simple app talking with a lot of apis up and
running in half a day) - but then move the stuff the AWS.

I made this decision 3 months ago and from the app engine google groups I
can see it was right thing to do as there is more and more emails coming in
regarding broken live apps, issues with deploys, issues with startups and
stuff like that (the SSL cert price is just a joke for example).

I really appreciate the work done on the GAE by Google but if I could give
an advice - please stop adding new features with every release, invest one
month of time of your team and do a proper maintenance release which will
fix all that shit around Java apps (this really can't be so hard) or you
will lose the war and all java devs will run away to AWS/Heroku/Cloud
Foundry/Own servers.

Cheers.

-- 
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine/-/ozWj4QUDBDkJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to