我正在开发一款需要服务器组件的 iPhone 应用程序。游戏将使用 JSON 与服务器交互,本质上是数据库后端的 CRUD 接口。
我并不期望该应用程序会非常受欢迎,但我希望如果它流行起来,它能够轻松扩展。
对于服务器组件的语言,我没有任何限制,只要它不是晦涩难懂的东西。
有人对此类用途有什么托管建议吗?
我模糊地调查过EC2,Rackspace 云和谷歌应用引擎,但我不知道它们的价格有何不同,或者它们之间有何区别。
价格是最重要的方面。我愿意放弃监控工具和花哨的功能,以换取更低的价格。此外,按使用量付费的托管服务比预付费解决方案更可取。
如果有人有设置类似的经验,我很乐意听取您的意见。
答案1
这是一个非常棘手的问题。坦率地说,您选择的“云”提供商远不如您的应用程序架构有趣。如果您不熟悉编写大型可扩展应用程序的机制,我建议您选择限制性更强的提供商之一,例如 Google App Engine(如果您想为 GAE 支持的框架之一编写代码——我相信主要是 Pythony 的东西)或Heroku如果你想使用他们支持的框架之一(大多数是 Ruby)来编写。
我推荐这个的原因是,这些提供商已经开发出一套他们可以轻松扩展的技术,只要你使用这些技术,它们就会消除很多架构上的麻烦。例如,如果你注册了 EC2 或 RS,你必须自己想办法平衡应用程序的负载,并处理资源的增加和减少,而这些更“受管理”的提供商会自己处理所有这些事情。
大缺点对这些提供商来说,最大的问题是,如果你想做他们不支持的事情,你基本上就无计可施了。他们没有灵活性,无法为你提供不同的数据存储方法。如果你发现自己处于这种情况,你需要管理自己的基础设施,以便能够整合这些组件。我会提前了解你选择的提供商的局限性,并确保我的应用程序架构避免陷入这种情况。如果你需要离开,那么将需要人们投入大量的时间和精力真的知道他们在做什么(并且花费大笔金钱)才能做好。
在我看来,Heroku 相对于 GAE 的一个优势是,GAE 有一堆“仅限 Google”的组件,你在其他地方无法获得或使用,而 Heroku 在重要的部分使用了所有的 OSS 技术,因此将 Heroku 应用程序移动到其他地方相对简单,而如果你依赖于 Google 技术,那么当你需要移动时,你就完全搞砸了。