Google app engine 最终GAE vs AWS架构决策

Google app engine 最终GAE vs AWS架构决策,google-app-engine,scalability,amazon-web-services,Google App Engine,Scalability,Amazon Web Services,我知道以前有人问过这样或那样的问题,但大多数与GAE稳定性相关的主要问题似乎都是在2008年底、2009年初提出的,或者与大规模游戏(我感兴趣)没有直接关系 基本上,我一直在与我的商业伙伴就是否使用GAE或AWS作为我们的社交游戏引擎的后端而争论不休,现在是关键时刻。我喜欢GAE(Java)有很多原因,尽管它过去不稳定,但现在已经相当不错了。支持AWS的主要理由是,AWS已经通过每天运行数千万活跃用户的多个游戏证明了自己。对于AWS来说,最引人注目的是Zynga,它的Farmville峰值达到8

我知道以前有人问过这样或那样的问题,但大多数与GAE稳定性相关的主要问题似乎都是在2008年底、2009年初提出的,或者与大规模游戏(我感兴趣)没有直接关系

基本上,我一直在与我的商业伙伴就是否使用GAE或AWS作为我们的社交游戏引擎的后端而争论不休,现在是关键时刻。我喜欢GAE(Java)有很多原因,尽管它过去不稳定,但现在已经相当不错了。支持AWS的主要理由是,AWS已经通过每天运行数千万活跃用户的多个游戏证明了自己。对于AWS来说,最引人注目的是Zynga,它的Farmville峰值达到8000多万DAU。这只是在AWS基础设施上运行的非常成功的游戏之一。成绩显著

所以,不管怎样,它都能起作用。另一方面,GAE没有任何我能找到的做这些数字的例子。甚至不接近那么我可以相信它吗?是否有一个大型社交游戏的例子,每天有200多万活跃用户,使用GAE?

我们社交游戏后端的主要考虑因素是:

  • 可靠的CDN(Amazon CloudFront/S3在这方面非常出色,谷歌的数据存储也非常出色)
  • 扩展而不崩溃的能力(AWS-EC2在这里得到了证明,GAE似乎没有每秒可运行1000次请求的大型游戏应用程序的例子。GAE在这方面非常不稳定,这也是我最关心的)
  • 没有可靠的SQL数据库。(AWS SimpleDB和谷歌的数据存储在这方面都非常出色。我们真的不需要SQL)
  • 如果有问题,请支持/致电/联系某人。(这是GAE最大的担忧之一。我不知道我可以打电话给谁,或者是否可能。AWS有SLA和支持。)
  • 我期待着您的想法,但也请注意,这并不是为了开始任何形式的火焰之战。我喜欢这两个系统,但它们都有其积极和消极的一面,但我将要做出一个架构上的决定,这一决定很可能不会被推翻

    问候,


    Shane

    BuddyPoke是在GAE上运行的大型社交应用程序的一个例子。我不知道有多大。本文称每天有3000万页面浏览量(非用户):

    他们的facebook页面显示每月(而非每天)有270万用户:

    尽管如此,他们也在一堆其他社交网络上:

    就我个人而言,我决定与GAE合作,主要原因有两个:

    • 可伸缩性的单位是单个请求,而不是像AWS那样的整个实例
    • 我可以在更高的级别上工作,而不必担心配置实例
    如果你的第4点对你来说是个大问题,那么使用AWS可能会更好。对于GAE,你似乎无能为力,也无法联系任何人

    大约一周前,我的应用程序出现了一个问题——它突然开始在谷歌的代码中出现故障,而在过去5天里,谷歌的代码一直运行良好,也就是说,自从我上次上传我的应用程序以来。向谷歌报告问题的唯一方法似乎是通过其生产问题模板,如下所示:

    我报告了这个问题,什么也没听到。因为它是在谷歌的服务器上运行的,所以我无法求助于任何“常规”的紧急策略,比如重启服务器。一个小时后,问题自行解决了——我不确定谷歌是否有人看到了我的消息并修复了一些东西,或者它只是消失了。我更新了我的bug报告,说问题已经解决了,但即使是一周后的今天,问题仍然没有解决,甚至没有得到承认。此外,由于该问题必须公开发布,我的应用程序现在受到来自机器人程序的随机点击

    诚然,我的应用程序目前只处于测试阶段,所以只有大约100个用户,所以这对我来说并不是一件大事。如果我的点击率达到了上千/百万,也许谷歌自己会更早地注意到这个问题,或者他们会更加关注我的bug报告

    在你的第3点上,即使是我的流量很小的小应用程序也会偶尔抛出数据存储错误(即使在可用性图表上没有报告为停机的时间)

    尽管如此,我仍然喜欢GAE(我使用的是Python版本),并计划继续使用它。GAE的承诺是它的可伸缩性——虽然现在我的小流量偶尔会出现问题,但当它扩展到更多流量(即你的第2点)时,它不应该再出现问题,只要我正确地编码它以避免争用。我来看看进展如何


    最后,关于第1点,blobstore和/或静态文件更像GAE上的CDN,而不是数据存储。但是,对于非常大的流量,真正的CDN可能更便宜。它也不一定是CDN,请参见。

    我从未使用过AWS-EC2,因此我将在Google应用程序引擎端分享我的知识

  • 谷歌应用程序引擎并不意味着是一个;虽然它可以通过其强大的基础设施提供接近用户的缓存来服务静态内容,但它不能保证与真正的CDN相同的高质量和高可用性服务,因为这不是它的职责。
    进一步数据:
    • 使用BlobStore服务的文件的最大大小:2 GB
    • 静态文件的最大大小:10 MB
    • 目前,即使在条件GET上,应用程序引擎也支持静态文件(例如,您必须依赖第三方缓存库)
  • 最近,谷歌应用程序引擎团队已经关闭了一个简单的原因:太多的玩具应用程序
    谷歌希望通过展示成功的商业案例来抵消这种趋势;以下是其中一些:

    • (拥有6500万次安装的病毒式Facebook应用程序)
    • (每天向数千名re提供300万个请求)