6 ms·
How is Google App Engine? Are there any pain points one should be aware of before using it?
by phsr 17y ago
How is Google App Engine? Are there any pain points one should be aware of before using it?
- bockris 17y agoYou mean besides lock-in?
- deleted 17y ago[deleted]
- jazzdev 17y agoThere's no lock-in on the Java side. Change a few lines in jdconfig.xml, add the datanucleus-rdbms jar file, add a JDBC driver jar file and you're app will run on Tomcat or Jetty with MySQL or any database with a JDBC driver.
- jeff18 17y agoCheck out the AppScale project: http://code.google.com/p/appscale/ http://code.google.com/p/appscale/ You can run your App Engine apps pretty much anywhere.
- eop 17y agoNo RDBMS. No SQL. No joins. That's the main adjustment for me. But after you adjust to that, it's great.
- sadiq 17y agoI thought NoSQL was a selling point these days?
- eop 17y agoPerhaps, but the question I was responding to was about "pain points". All I was saying is if you're coming from an RDBMS background, as I am, then there are growing pains in adjusting to using BigTable. If you don't have the time or patience to make the adjustment, then this will be a pain point. Otherwise, perhaps it's a selling point.
- cgrinds 17y agoCold startup sucks - it's horrendous for Java and just bad for Python. If you have a popular app, this isn't an issue. If you don't, it hurts.
- deleted 17y ago[deleted]
- eop 17y agoCold startup is almost unnoticeable for Python apps (bite my lip! see update below). On the Java side it can be an issue but, as with most things, if you dig around, you can find some acceptable workarounds.
- cgrinds 17y agoNo - I've seen 'Hello World' style apps take over 4s to cold startup. For example http://timezonetimezone.appspot.com/iscorrect?query=EST http://timezonetimezone.appspot.com/iscorrect?query=EST Took 4.67s to render http://www.webpagetest.org/result/100306_5PZ7/1/details/ http://www.webpagetest.org/result/100306_5PZ7/1/details/ I monitored cold startup for a month on one of my apps and some times see 10s cold startup. http://www.webpagetest.org/result/100309_5TDW/ http://www.webpagetest.org/result/100309_5TDW/ This is after profiling, reducing imports, caching, using app appstats, etc.
- eop 17y agoWow, you're right. I just ran a test on one of my Python apps and found the same thing. I always assumed 4 seconds was an acceptable start up time, especially when compared with some of the Java apps I have runnning on App Engine which have often exceeded the 30 second page limit on startup and generated a DeadlineExceededException. Thanks for showing your results. I would never have known this was an issue.
- cmelbye 17y agoThey're fixing this in the future by allowing reserved instances that will always run.
- jazzdev 17y agoThe 30 second per page limit can be a pain too. If you need to manipulate (i.e. validate, import, export, etc.) more than a few hundred persistent objects, you'll need to write your code to do it in chunks.
- eop 17y agoThat's what Task Queue is for: With the Task Queue API, applications can perform work outside of a user request but initiated by a user request. If an app needs to execute some background work, it may use the Task Queue API to organize that work into small, discrete units, called Tasks. The app then inserts these Tasks into one or more Queues. App Engine automatically detects new Tasks and executes them when system resources permit. Python: http://code.google.com/appengine/docs/python/taskqueue/overview.html http://code.google.com/appengine/docs/python/taskqueue/overv... Java: http://code.google.com/appengine/docs/java/taskqueue/overview.html http://code.google.com/appengine/docs/java/taskqueue/overvie...
- jazzdev 17y agoThe task queue has the same 30 second limit. Follow either of those links above and you'll find: the lifetime of a single task's execution is limited to 30 seconds You still have to do more coding to chunk the work.