views:

1051

answers:

5

We are about to start working on new commercial web project and considering Google App Engine as a potential platform.

Questions:

  1. Does Google App Engine is really scalable and may be considered as a production platform for commercial project?
  2. Is it more expensive (or cheaper) than good hosting company service in long run?
  3. Is it possible (and pretty cheap) to move the app from Google App Engine to independent server/farm (e.g. to use it as a private system, to exploit our own hardware etc.)?
  4. Is there some mechanism to deal with DDoS attacks?
  5. Can I make a full backup of the app data?

Sorry for such silly questions.

+3  A: 

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.

Silfverstrom
+1 for surprising limitations. However these are what make GAE so scalable. Also not that you can easily export your data
Rob Fonseca-Ensor
I'd also watch the Google I/O video's on AppEngine of 2010. They are pretty busy ramping up the different ways to query your data.
Jilles
+4  A: 
  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.
Oleksandr Bolotov
appdrop looks like it's been abandoned, and it only used the SDK from what I can gather (i.e. not a scalable BigTable solution), so the question still remains on portability in my mind. Not to say you couldn't do it, but how much effort would be requuired?
RyanW
+1  A: 

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.

RyanW
+8  A: 

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

maclek
Could you give a link to the forum thread?
Sergey
The underlying issue is here:http://code.google.com/p/googleappengine/issues/detail?id=1695My original thread is here, but there are dozens of them on the same theme:http://groups.google.com/group/google-appengine/browse_thread/thread/5373a2efe1a973bbFor me the problem has actually cleared up this week (Sept 21 2009) and google has performed a major upgrade on the 22nd.Others are still experiencing the problem.
maclek
+2  A: 

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.
systempuntoout