Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google App Engine as production platform [closed]

People also ask

Is Google App Engine deprecated?

In Google I/O 2011, Google announced App Engine Backends, which are allowed to run continuously, and consume more memory. The Backend API was deprecated as of March 13, 2014 in favor of the Modules API.

Is Google App Engine platform as a service?

Google App Engine (GAE) is a platform-as-a-service product that provides web app developers and enterprises with access to Google's scalable hosting and tier 1 internet service. GAE requires that applications be written in Java or Python, store data in Google Bigtable and use the Google query language.


I'll answer question 1:

I'm in the pilot phase of a new web application on app engine. We've spent about a month writing code and getting things ready for our first customer. They went live last week. They love the software but a couple of days ago I started to get random deadline exceeded errors in the application. You look up a record or a list and it would come back in miliseconds. The next go it would take 30 seconds and come back with a deadline exceeded error.

The stack traces in the dashboard give random results. I've tried everything, even stripping the app down to a hello world. I put a log message into our django process request middleware, the first bit of our code that gets executed. It was showing that on the timeout requests it took 25 seconds from google getting the request to running our process_request code. I posted to the google forum and got nothing. I contacted someone at google and they answered back quickly but only said they would contact the team. Nothing since.

It is possible there's something I'm doing to cause this but I really doubt it. Google doesn't provide support so I'm basically out of luck.

If this was a full blown commercial application I'd be out of business.

tl;dr: google app engine has great promise but needs to mature and is not yet suitable for comercial production


  1. Watch google IO (Whre among other they say that: "yep it's scallable".
  2. That depends ... It can even be free for you (you pay for load that you've got).
  3. You can move to Amazon for example using appdrop. It's also a good idea to use app-engine-patch.
  4. ... Good question. I realy do not know.
  5. Use GAEBar.

It all depends on your needs. For a project that has the need to scale from very few users to possible millions of users in short time, google app engine might be exactly what you're looking for.

However, note that you might be surprised by the limitations that GAE comes with. Datastore can amongst others not do full-text search or queries using the IN statement. So be carefull to specify what needs your application will have, and what data you're going to store and search for.

This also means that moving your application from GAE to a separate server might be troublesome, since the database architecture will most likely be different.


My answers:

  1. BuddyPoke runs on gae (probably the biggest app), check their millions numbers.
  2. You don't pay until your app grows quite a bit
  3. If you are familiar with python, web2py offers this feature with some limitations
  4. Dos protection (java, python)
  5. Gaebar, here a great article.

You're question #3 raises a red flag. If this is an important issue, I'd caution against App Engine at this time. I love the platform, and don't doubt that their will be viable migration paths to a self-hosted solution at some point, but not now. Things like appdrop prove it would be possible to do, but would the effort and investment be worth it? That's the question I'd ask. I'd love to know if somebody has successfully ported a real-world production app engine app to another host.

Backups should be easily scripted or there are tools like GAEbar as Bolotov mentioned.

Regarding cost, you can probably get tens (maybe hundreds) of thousands of objects (records) and decent traffic/use for free. Beyond that, I'm not sure about comparative hosting costs, sounds like a good area to do some research in (note to self).

Finally, Silfverstrom is right about limitations, especially around full-text search. There are some projects underway to tackle this, but probably nothing as robust as a mature RDBMS.