From teh pov of small teams, I think the most important difference is that GAE takes care of systems maintenance completely. No worries about having someone on call to fix the server, to monitor load, to periodically patch the server software. That is one less systems administrater needed, which can be a significant cost.
The problem with GAE as many have pointed out is being locked-in to the GAE architecture. I'm betting on open source systems built on top of AWS, specifically scalr. Can anyone comment on their experiences with scalr?
One killer for me is that GAE doesn't support running scripts outside of web requests. Webapps need cronjobs to do things like sync or cleanup data, populate news feeds, perform analytics etc.
I think GAE tries to encourage people to write apps which don't need batch maintenance. Having been seriously burned by supporting other people's horrific batch jobs during fiscal year-end at a bank --- on the night after Thanksgiving, at around 3 in the morning --- I've always aimed to write code which does the right thing dynamically and without batch jobs.
If you really need to run a batch job you can do it as a restricted url handler; but if you need to run batch jobs, you're working against the grain of GAE.
Look at it this way, most batch jobs are prompted by a need to either import or export data; which is perfectly doable with GAE by having URLs for loading and reporting.
If you need to load gigabytes of data and run hours long procedures on it, GAE is the wrong tool.
4 comments
[ 3.5 ms ] story [ 17.7 ms ] threadThe problem with GAE as many have pointed out is being locked-in to the GAE architecture. I'm betting on open source systems built on top of AWS, specifically scalr. Can anyone comment on their experiences with scalr?
Look at it this way, most batch jobs are prompted by a need to either import or export data; which is perfectly doable with GAE by having URLs for loading and reporting.
If you need to load gigabytes of data and run hours long procedures on it, GAE is the wrong tool.