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?
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 specific 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, see the FAQ for guidance.
|
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:
The Premium service* seems to resolve both of them with:
* 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 Check this out : http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/ |
|||
|
|
|
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. |
|||
|
|
|
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. |
|||||
|
|
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. |
|||
|
|