Why Google AppEngine sucks
3.14.by
3.14.by
It would be nice if the title reflected that sentiment.
You're being aggressively rate-limited because your account does not have billing set up. If you only have the free quota to work with, they place continuous limits on resources to keep you from exhausting your daily supply early.
Of course, this scalability is not without cost. Most web apps don't need this kind of scalability, so the development tradeoffs (like the chance of datastore operations failing, or the inability to wrap transactions around arbitrary sets of data operations) may be too much trouble.
AppEngine isn't for all web apps, and many web apps would be very painful to shoehorn onto AppEngine. Still, if you want to build your app so it scales like Google's own apps scale, AppEngine can help get you there.
I think it's great for many individual users doing tiny operations that don't interact with others, which my use case is. But you will be surprised by some of the performance characteristics.
See this example: http://gaejava.appspot.com/
Actually, you should. Latency matters. Google knows this. http://radar.oreilly.com/2009/06/bing-and-google-agree-slow-...
In fact, firing 100 connections to the same host from the same IP is not a real-life case for me. But I'm pretty sure that those 50 req/sec (for example) aren't shared among all connected users to the same GAE host.
Anyway, I still don't like GAE but I think that this is not a real reason. And I personally don't like giving everything, including my apps, to Google. Uh.
- No sys admin. You can just focus on your app.
- The datastore (BigTable) is slick. Write and read times are independent of how much shizzle you stick in there.
- They're constantly making it better. E.g. the free quotas got more generous after a few months; and the new built in cron and off-line processing (taskqueue) support enables more complex apps.
Clearly not for everybody. We love it. Does not suck.
http://googleappengine.blogspot.com/2009/09/agile-paddling-w...
"All in all, we saw over 1,000,000 page views from 93 countries around the world, and experienced incredible stability and scalability from Google App Engine even when we were spiking 350 requests per second during the finals."
Dave Westwood of BuddyPoke shared a few slides on his performance:
http://files.meetup.com/1135107/BuddyPoke_AppEngine_Stats.pd...
It's a little hard to parse w/o more description, but basically he's done well serving what seems to be a large % of Brazil with a low error rate.
IMHO, the best ways to use app engine rely on (1) memcache to iron out any timeouts or datastore issues, and (2) a relatively rich client front-end so any problems on back-end can also be handled in a user-friendly way (like Gmail).
Also, there are read-only tests which are also not amazing.
No it doesn't show that, because what we're discussing here is is not a 'problem'. The GAE datastore behaves this way by design. It may mean that some developers will experience problems, because they are not used to a non-relational database, but that only means they have problems. It doesn't mean that GAE has problems, unless you wrongly suppose, as you seem to do, that any developer should be able to use the GAE datastore as his relational-database-intuition tells him to.
One one project (RoR), I have a BIG-IP load balancer in front of 4 dedicated servers, one of which is a db.
On another project, I am running a straight Python app on App Engine.
Guess which one I've had to wake up in the middle of the night to fix on occasion...
Then, guess which one doesn't require me to seek out and contract a firm to handle my admin for me?
App Engine's management service by contrast is very tightly bundled to the hosting services... so tightly in fact that the cost of the management service they provide is exactly proportional to the cost of the resources I consume. It's a great deal. But we are getting off into the weeds here.
App Engine simplifies server admin for me. I have never had to personally 'bounce' anything for any reason. I don't worry about running out of disk space. I don't have to worry about sweeping out the sessions (on disk or db). I don't have to setup database replication. I don't have to configure rolling archive tables to improve the speed of access to the most commonly accessed data on a large table.
Being a solo operation, App Engine is ideal.
The fact is that my argument makes as much sense as author's does. It all depends on what your server is doing.
There are just 6.5billions people on the earth, so the maximum traffic is limited anyway.
I'm still holding out on built-in full text search, but recent releases like a task queue and an XMPP client are nice additions.
Edit: Yup, AppEngine is hosed!
http://code.google.com/status/appengine/detail/datastore/200...
This type of "pulling a Calacanis" headline is sheer link bait and rarely meant to stir an honest discussion.