Google App Engine是Lifestreaming应用程序的理想平台吗?

时间:2020-03-06 14:44:27  来源:igfitidea点击:

我正在构建一个Lifestreaming应用,该应用将涉及为许多用户提取大量提要,并对结果执行数据挖掘和机器学习算法。 GAE的负载平衡和可扩展托管听起来很适合最终可能会围绕大量数据移动的系统,但是缺少cron作业令人讨厌。我会更好地在同位使用Django并处理自己的数据库扩展吗?

解决方案

当他们提供付费计划时,它可能会改变,但是就目前而言,App Engine不适用于CPU密集型应用程序。它旨在进行扩展以处理大量请求,而不必为每个请求进行大量计算。我正在以较小的计算量来解决这个问题,并且我担心随着数据集的增长,我可能不得不开始寻找其他地方。

不。如果我们需要处理很多事情,App Engine将无法很好地工作。我们可以通过在进行脱机预处理之后将数据放入其存储中来将其用作前端,但是如果没有做一些真正疯狂的事情,我们在每次请求后的约1秒钟之内不能做太多事情。

在自己的托管平台上,应用可能会更好。

提取提要或者进行计算将不会有问题。但是我们很快就必须为帐户付款。 App Engine包括Django,但我们需要为模型部件使用一些适配器。它一定可以使我们免于维护麻烦。

如果应用程序仅依靠Django,那么App Engine是一个不错的选择。但是,如果我们需要添加C增强型库,那么我们将遇到麻烦。 App Engine不支持PIL或者ReportLab之类的东西,它们使用C来加快处理时间。我之所以仅提及这一点,是因为从长远来看,我们可能想使用C来加快某些例程的速度。

如果我们决定使用同一位置,请访问WebFaction.com。它们具有强大的Django / Python支持,并且使用上述库没有问题。

看看Slice Host:他们出售基于xen的虚拟服务器实例,起价为$ 20.00 /月...

We’re just like you. Sick of oversold,
  underperforming, ancient hosting
  companies. We took matters into our
  own hands. We built a hosting company
  for people who know their stuff. Give
  us a box, give us bandwidth, give us
  performance and we get to work. Fast
  machines, RAID-10 drives, Tier-1
  bandwidth and root access. Managed
  with a customized Xen VPS backend to
  ensure that your resources are
  protected and guaranteed.

这对于启动项目并进行横向扩展而不会招致托管提供者或者合作伙伴的成本非常重要。

尽管我无法直接回答问题,但是我在构建Microupdater(一个在AppEngine上收集数百个提要的新闻聚合器)的经验可能会给我们带来一些见识。

  • 获取提要。通过cron作业获取大量提要(这是SDK 1.2.5之前唯一的解决方案)效率不高且可扩展,因此对工作频率的限制较低(例如1分钟,因此每小时最多只能获取60个提要)。在最新的SDK 1.2.5中,有XMPP API,我尚未实现。最好的有前途的方法是PubSubHubbub,我们可以为其提供一个回调URL,并且HubBub会实时通知我们新的条目。在AppEngine上有一个演示实现,我们可以试用。
  • 解析提要。我们可能已经知道解析提要是cpu密集型的。我使用Mark Pilgrim的Universal Feed Parser,在解析大型Feed(例如Google公开阅读器主题)时,AppEngine可能无法处理所有条目。我的仪表板上有很多这些CPU限制警告。但这可能导致我无法优化代码。

综上所述,AppEngine尚不是生命周期应用程序的理想平台,但将来可能会改变。

(这显然已经很老了,做出响应只是因为在相关的Google查询中它的出现率仍然很高...)

我刚刚开始使用AppEngine,还没有将其用于大量的外部请求。但是我确实知道上面的信息现在可能没有那么有效了,甚至可能还不成立。自9月8日以来,他们大幅度放宽了限制,请查阅Aral Balkan的博客,以了解他最初对上述内容以及后来的发展提出的投诉。