谷歌应用引擎作为生产平台

43

我们即将开始一项新的商业网站项目,考虑使用Google App Engine作为潜在平台。

问题:

  1. Google App Engine确实可扩展并且可以被认为是商业项目的生产平台吗?
  2. 从长远来看,它比优秀的托管公司服务更昂贵(或更便宜)吗?
  3. 是否有可能(并且非常便宜)将应用程序从Google App Engine移动到独立的服务器/集群(例如,将其用作私有系统,利用我们自己的硬件等)?
  4. 是否有某种机制来处理DDoS攻击?
  5. 我可以完全备份应用程序数据吗?

很抱歉问这样的愚蠢问题。


2
+1 好问题,尤其是关于 DDoS 的部分。如果没有防御措施,攻击可能会耗尽您的免费限制甚至您的资金 :( - Alex Bolotov
6个回答

10

我来回答第一个问题:

我正在使用应用引擎开发一个新的Web应用程序的试点阶段。我们花了大约一个月的时间编写代码并准备好迎接我们的第一个客户。他们上周开始使用,他们喜欢这个软件,但是几天前我开始在应用程序中收到随机的超时错误。你查找记录或列表,它会在毫秒内返回。下一次可能需要30秒,并返回超时错误。

仪表板中的堆栈跟踪给出随机结果。我尝试了所有方法,甚至将应用程序剥离到Hello World。我在我们的Django处理请求中间件中放置了一个日志消息,这是我们执行的第一部分代码。它显示在超时请求中,从Google获取请求到运行我们的process_request代码需要25秒。我发布到Google论坛,但没有得到任何回复。我联系了Google的某个人,他们很快回答了我,但只是说他们会联系团队。之后就没有任何消息了。

可能是我做了什么导致了这个问题,但我真的很怀疑。Google不提供支持,所以我基本上没有办法。

如果这是一个完整的商业应用程序,我将无法继续经营。

简而言之:Google应用引擎有很大的潜力,但需要成熟,目前还不适合商业生产。


你能给一个论坛帖子的链接吗? - Sergey
2
潜在的问题在这里: http://code.google.com/p/googleappengine/issues/detail?id=1695我的原始线程在这里,但是有几十个与此相同主题的线程: http://groups.google.com/group/google-appengine/browse_thread/thread/5373a2efe1a973bb对我来说,这个问题实际上在本周解决了(2009年9月21日),谷歌在22日进行了重大升级。其他人仍然遇到这个问题。 - user106096

4
  1. 观看 Google IO(其中他们说:“是的,它是可扩展的”)。
  2. 那取决于……对你来说甚至可能是免费的(你支付你所得到的负载费用)。
  3. 你可以使用AppDrop转移到亚马逊。使用App-Engine-Patch也是个好主意。
  4. ……好问题。我真的不知道。
  5. 使用GAEBar

appdrop看起来已经被放弃了,而且据我所知它只使用了SDK(即不可扩展的BigTable解决方案),因此在我的脑海中仍然存在可移植性问题。并不是说你不能做到,但需要付出多少努力呢? - RyanW

3
这完全取决于您的需求。对于需要在短时间内从极少数用户扩展到可能数百万用户的项目,Google应用引擎可能正是您所需要的。
但是,请注意,GAE带有一些限制,其中Datastore不能进行全文搜索或使用IN语句查询等操作。因此,请谨慎指定您的应用程序需要什么,并存储和搜索哪些数据。
这也意味着,将应用程序从GAE移动到单独的服务器可能会很麻烦,因为数据库架构很可能不同。

1
+1 对于惊人的限制。然而,这些是使GAE如此可扩展的原因。还要注意,您可以轻松导出数据。 - Rob Fonseca-Ensor
我也会观看2010年Google I/O关于AppEngine的视频。他们正在繁忙地推进不同的数据查询方式。 - Jilles

2

我的回答:

  1. BuddyPoke 运行在 GAE 上(可能是最大的应用程序),请查看 他们的 数百万数字。
  2. 只有当您的应用程序增长相当大时,您才需要付费。
  3. 如果您熟悉 Python,web2py 提供了这个功能,但有一些限制
  4. Dos 保护(JavaPython
  5. Gaebar这里 有一篇好文章。

1
你的第三个问题引起了警惕。如果这是一个重要的问题,我建议暂时不要使用App Engine。我喜欢这个平台,并且毫不怀疑在某个时候会有可行的迁移路径到自托管解决方案,但现在还没有。像appdrop这样的东西证明了可能性,但是付出的努力和投资是否值得?这是我要问的问题。我很想知道是否有人已经成功地将真实的生产应用程序从App Engine迁移到另一个主机。
备份应该很容易编写脚本,或者像Bolotov提到的那样有GAEbar等工具。
关于成本,你可以免费获得数万(也许数十万)个对象(记录)和适度的流量/使用。除此之外,我不确定比较托管成本,听起来是一个好的领域去做一些研究(自己注意)。
最后,Silfverstrom关于限制的说法是正确的,特别是全文搜索方面。有一些项目正在进行中来解决这个问题,但可能没有成熟的关系型数据库那么强大。

0

关于一些最新的信息(2013年),GAE现在有了文本搜索API。您无法直接搜索数据库中的数据;您需要从数据创建可搜索文档,并将其添加到可搜索索引中。这并不是非常困难,但很麻烦。特别是,每当您的数据发生更改时,您需要重新生成更改后的文档并将其更新到索引中。

还可以将数据轻松导出到Google Big Query中,这使得报告变得容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接