On Sat, Aug 18, 2012 at 2:21 PM, Mos <mosa...@googlemail.com> 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 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.

Reply via email to