Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm considering using Google App Engine for an online matchmaking (and possibly ranking, not sure) of users in a (currently hypothetical) RTS game. However, I just read this bad review, which has made me nervous. Which problems have they solved (or are planning to solve), which might be an issue for me, and are there any alternatives?

share|improve this question

closed as not constructive by Mark Trapp Dec 6 '11 at 19:59

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Google App Engine uses a NO-SQL data store---you should read up on that concept, and decide if it sounds like a good fit for your needs. From that review, it sounds like that is the main issue the reviewer had with GAE.

There is a certain amount of vendor-lock-in with GAE. You end up writing code to target a specific environment. You could certainly migrate off of GAE in the future, but it would likely require at least some code change.

You should also plan to code import/export features so that you can get your data out of GAE, and into a new system.

Once you understand how GAE differs from a standard environment that you might set up if you were to get a stock linux server or VM, you will be able to decide if it fits your needs. There are some definite advantages to GAE, especially in the cost arenas (you don't need to pay for hardware or infrastructure management until your site get popular, when hopefully it will be able to pay for those costs). Just be sure you do the due diligence and research before jumping in.

share|improve this answer
SQL support is on the way (for "App Engine for Business" customers): - not in the near future but if they do indeed release full-fledged SQL support as planned that will cross one of the current major limitations off the list. – Ben Nov 22 '10 at 4:08

I love Google App Engine and its wonderful API *.

Before starting to develop a serious business on GAE, study its documentation and hidden limitations and then decide if your requirements would fit in a platform that, for scaling purpose, imposes several constraints.

My biggest concerns about Google App Engine are:

  1. Lack of developer support
  2. Downtimes and reliability issues

The Premium service* seems to resolve both of them with:

  1. Premium developer support available.
  2. 99.9% uptime service level agreement

* I have developed StackPrinter on GAE

share|improve this answer

The only issue I have with GAE is the Data Store. The vendor lock-in of GAE is also a problem but you can get around it by using Django-nonrel (if you're using Python and Django). Aside from that, GAE is viable because it's fast, can serve a lot of users without fail, and is cost-efficient. It's perfect for startups since they don't risk having to buy their own hardware early on.

share|improve this answer

It all depends, if you don't want to do lot of coding for base services like caching, emails and all that then you are better off with Google app engine, else you should go with Amazon EC2 or Rackspace.

And yes, not to forget, Amazon EC2 has a micro plan which is free for 1 year starting Nov-1

Check this out :

share|improve this answer

That review is spot on. I use GAE a lot and it's fantastic for a lot of things. If any of those issues are a deal-breaker then you'll need to move on. If you can deal with those issues then you will have a very scalable application on your hands. I think it may be a good match for your domain, though. If you have any specific questions feel free to ask, just don't try to make bigtable behave like a relational database.

share|improve this answer

The problem with GAE is that most people don't understand the how scalability on a Google scale works. Google handles this for the developer but this comes at the cost of limiting the tools you can use to build your webapp.

The only way to use GAE is the way Google intended it to. Don't use third party frameworks like Grails or Django as these were never designed to run on GAE. You will end up having problems like the blog post. Just use the GAE frameworks provided by Google and understand the concepts of key-value stores.

Most websites don't have to scale to such a size that limiting your dev-tools and framework choices is effective. Just use a dedicate server or EC2.

share|improve this answer
django does run on GAE, well, most of it. – Javier Nov 22 '10 at 12:31
This is bad advice. Django is explicitly supported, and the Google-provided "webapp" framework is really only supposed to be an example. – Daniel Roseman Sep 9 '11 at 9:51

There's been a couple of cogent responses from the community to this post - see this one and this one. If you have specific concerns, I'm more than happy to respond to them.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.