views:

364

answers:

1

I'm evaluating hosted production environments and currently have interest in Google App Engine.

Currently I'm enjoying the free quotas. I'm concerned if it is efficient to scale up using Google App Engine. Portability is being analyzed as well.

Please advise if Google App Engine is good for scalability and portability.

Thank you in advance.

+5  A: 

Portability is guaranteed by the fact that Google has open-sourced all the parts of App Engine that live "in front of" the RPC layer, thus facilitating the work (which would happen anyway of course!-) of third party like appcelerator and bdbdatastore that implement compatible environment running on different infrastructure -- you only need to stay on Google's systems if Google gives you better ROI for your apps, else can easily migrate them to alternative implementations (I'm sure many more third-parties will join the ranks of these two, offering a variety of such alternatives).

Scalability, when the apps are programmed appropriately, seems proven eg. by the Obama's Town Hall Meeting example -- the app, using an open-sourced Google codebase known as "Moderator", was handling 700 QPS for a total of many millions of visits in a few hours, and maintaining excellent latency and impeccable uptime.

A LOT has been written (and recorded on video) about the right techniques needed to obtain such seamless scalability with App Engine -- there's really no way to summarize all of the hits in this google search! Suffice it to say, it's not trivial, but in the end it's easier (for suitable kinds of apps, at least -- ones that are "front-end heavy" as opposed to ones focused on huge "batch" jobs) than with any other technology I know of.

Alex Martelli
Very impressive, Alex! Thank you! May I also ask which hosting solutions are suitable for high load batch jobs?
Viet
I would suggest EC2 for batch jobs.
Maksim
Thank you, Maksim. I'll take a look at it :)
Viet
Agreed, and specifically Hadoop on EC2 for *really* huge batch job, see http://developer.amazonwebservices.com/connect/entry.jspa?externalID=873 -- huge batch jobs at Google are invariably MapReduce, and Hadoop's a good imitation of that (Pregel, http://googleresearch.blogspot.com/2009/06/large-scale-graph-computing-at-google.html, is also getting important, but AFAIK there's no open-source imitation of _that_ yet).
Alex Martelli