- A very good platform for those applications that store something and retrieve it back.
- Google takes care of deploying the code to the clusters, monitoring, failover, and launching application instances as and when necessary. This takes a lot of the administrative work off the user.
- Easy and cheaper (in the short term)
- Unlimited scalabity to your application, and scales with demand.
- GAE supports MySQL db as well.
- App Engine doesn't provide you with the flexibility to use an equivalent service if you need to pick something else for your app.
Room for Improvement:
- Developers have read-only access to the filesystem on the Google App Engine.
- GAE is not suitable for CPU intensive calculations.
- You cannot produce a social graph using Google app engine.
- Once you think of migrating out of the AppEngine world, you'll face a lot of problems. For example, having to change your code to use your own datastore, task queues, and other services. If your application is fairly large, this will be a very difficult process.
- Since the backend is completely manage by Google, you don't have control over the environment your application runs in.
- Apart from the free space and to build some "Hobby" websites, Google App Engine is not the place java guys should look in as Java is quite heavy on memory front.
Overall a good platform for running small applications that basically deals with storing and retrieving data from backend. Since the backend is handled by Google, you get a scalable app platform, but at the cost of losing control over the backend environment. You cannot tweak the backend and you just have to leave with whatever Google has to offer.