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.