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?
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.
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:
- Lack of developer support
- Downtimes and reliability issues
The *Premium service** seems to resolve both of them with:
- Premium developer support available.
- 99.9% uptime service level agreement
* I have developed StackPrinter on GAE
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.
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
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.