> Apps with a lot of rapidly mutating aggregation are hard. Hi, I'm new to app engine, so this is news to me. Could you please characterize a bit more? E.g., what is "a lot"?
On Saturday, August 18, 2012 1:19:51 PM UTC-7, Jeff Schnitzer wrote: > > On Sat, Aug 18, 2012 at 2:21 PM, Mos <[email protected] <javascript:>> > wrote: > > > > I'm surprised that you are still go with GAE for new applications? > > You had your own "experiences" from what I saw on this list. ;) > > > > I'm not recommending GAE anymore. I tell my customer to go with other > > platforms. After one year following discussions and issues I don't thing > > reliability will be improved on GAE in near future (at least for small > > and mid-size applications). > > I will confess that my enthusiasm for GAE has tempered somewhat, but > every platform has issues. All my GAE apps have parts that run in > other cloud providers where it makes sense. That doesn't bother me. > > The shining gem in GAE-land is the datastore. It would be > extraordinarily hard to reproduce a distributed, replicated, > fault-tolerant, infinitely-scaling, self-managing database. Maybe > Amazon's DynamoDB is getting close - I certainly like the performance > of it, but it still seems to lack a lot of the features of the GAE > datastore. All other data storage solutions I am familiar with > require a significant amount of maintenance as they scale, and I don't > want to think about that. I have no ops team and don't ever want one. > > The task queue and memcache work well and are nicely integrated. I > like that you can transactionally add a task. But yeah, these parts > can be replicated elsewhere. > > My main points of frustration are: > > * Requests that go to cold start instances. I think this will > eventually get fixed. > > * $100/mo SSL. Way too hard on startups, and pushes people away from > the mantra that everything should be ssl all the time. > > * General performance. Some things are just slower than they should > be. For example, we (Voost) proxy OSM map tiles because Mapquest > doesn't support HTTPS - everything must be HTTPS or browsers show > mixed content warnings. Proxying through GAE was visibly slow, and > requests would often fail even with multiple retries. It's possible > that this is because Akamai (which serves the tiles) is throttling > requests from GAE urlfetch; dunno. But moving our https tile proxy to > nginx on Heroku made a _world_ of difference. It's like night and > day. > > * GAE is actually pretty expensive, in a way that isn't so obvious > from the price chart. The natural tendency is to compare an > "instance" of GAE to an "instance" from some other service, and by > this standard GAE is fairly expensive. But each GAE instance can > handle a lot less load than an "instance" from almost any other > service, so there is another multiple you wouldn't necessarily expect. > For most apps the added expense is still tolerable, but for some apps > (ie Richard's game) it's downright pathological. > > There are a number of other tricks and difficulties on GAE but there > are almost always workarounds. It's the nature of working on a large, > clustered, distributed system that some things (eg, aggregating > rapidly changing data) are hard. Overall I still recommend GAE for > most standard webappy kinds of things... but there are some apps I > would steer away: > > * Apps with a lot of transactional logic are hard. > * Apps with a lot of ad-hoc query needs are hard. > * Apps with a lot of rapidly mutating aggregation are hard. > > Someday when I have more time I might write a short "GAE Survival > Guide" and sell it for a few bucks as an ebook. > > Jeff > -- 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/-/qIBLiyr_n-sJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
