Most of the discussion about Google App Engine seems to focus on how it allows you to scale your app, however I find it most useful for small client apps where we want a reliable platform while avoiding any ongoing hosting fee. For large apps paying for hosting would not be a problem.
These are some of the downsides I have found using Google App Engine:
- Slow - if your app has not been accessed recently (last minute) then it can take up to 10 seconds to load for the user
- Pure Python/Java code only - this prevents using a lot of good libraries, most importantly for me lxml
- CPU quota easily gets exhausted when uploading data
- Proxies not supported, which makes apps that rely on external websites risky. For example the Twitter API has a per IP quota which you would be sharing with all other GAE apps.
- Blocked in some countries, such as Turkey
- Indexes - the free quota is 1 GB but often over half of this is taken up by indexes
Maximum 1000 records per query
- 20 second request limit, so often need the overhead of using Task Queues
Despite these problems I still find Google App Engine a fantastic platform and a pleasure to develop on.