Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google App Engine - When to use it, when not too?

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

like image 395
JerryK Avatar asked Aug 01 '10 22:08

JerryK


People also ask

When should I use App Engine?

App Engine is a fully managed, serverless platform for developing and hosting web applications at scale. You can choose from several popular languages, libraries, and frameworks to develop your apps, and then let App Engine take care of provisioning servers and scaling your app instances based on demand.

Why should we use App Engine?

The App Engine supports numerous programming languages for developers and offers the flexibility to import libraries and frameworks through docker containers. You can develop and test an app locally using the SDK tools for deploying apps. Every language has its SDK and runtime.

When should I use cloud or App Engine?

App Engine is for deploying code, Cloud Run for deploying containers, and containers are today's requirements. Cloud Run runs containers, so for each release you have to build a container and push it to GCP.


2 Answers

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)

like image 117
Swizec Teller Avatar answered Oct 26 '22 23:10

Swizec Teller


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.

like image 24
Jason Hall Avatar answered Oct 27 '22 00:10

Jason Hall