views:

114

answers:

2

It's still unclear to me when I should or should not use Google App Engine to deploy a commercial web application.

It appears Google has "business" level support.

http://code.google.com/appengine/

Can someone bullet list when I should use Google App Engine and when I shouldn't use it for a web application

A: 

I can't really tell you whether you should use App Engine without knowing anything about what you need your web app to do, but I will tell you what App Engine can and can't (or won't) do.

App Engine is fantastically good at scaling. It is, in fact, designed to scale web apps to ridiculous lengths first and foremost, with ease of use and number of features being secondary goals.

That's not to say that App Engine doesn't have features, or isn't easy to use, just that if there ever becomes a choice between adding a feature and staying scalable, the App Engine team will choose scalability.

For example, App Engine doesn't have some of the features of a relational database, because those features don't scale to the size of an app that App Engine is designed to support. App Engine doesn't support requests taking more than 30 seconds, because App Engine is designed to serve a web app, not process long-running requests.

In general, when App Engine doesn't support something, it's not because it's impossible -- nothing is impossible -- but rather because it would detract from the scalability of App Engine.

There are workarounds that can be (and have been) implemented to get around this, particularly with things like the task queue, and App Engine is constantly getting new features and new frameworks built on top of it.

App Engine for Business adds SLAs and different pricing, but is otherwise pretty much the same App Engine.

Jason Hall
+9  A: 

The question is surprisingly simple to answer after I've had a stab at google engine with my project for a few weeks. You should use it when:

  • you can't be arsed to set up a server
  • you want instant for-free nearly infinite scalability
  • your traffic is spikey and rather unpredictable
  • you don't feel like taking care of your own server monitoring tools
  • you need pricing that fits your actual usage and isn't time-slot based
  • you are able to chunk long tasks into 30 second pieces
  • you have the skill/will/desire to work with noSQL and deal with the consequences thereof
  • you are able to work without direct filesystem access

So actually, you can use it pretty much for anything, especially websites. The only thing it very quickly becomes too pricey for is running large background processes. If you're doing some hardcore number crunching 24/7 you're better off using your own server somewhere because no cloud service can really live up to that.

But think of it this way, where else are you going to get an architecture that can swallow 10+ requests per second load for ten dollars a month?

Basically it boils down to this: If you want to focus on developing your code, not your server architecture. GAE is for you. (unlike amazon which behaves more like a fancy VPS)

Swizec Teller