在尝试确定在Google App Engine平台上进行开发是否值得时,有哪些经验法则

时间:2011-02-01 00:27:54

标签: google-app-engine architecture

我有一个关于Web应用程序的想法,我目前正在研究不同的平台。我对Google App Engine非常感兴趣,但看起来它对某些应用程序类型非常有用,但它不太适合其他应用程序(有恐怖以及成功案例,例如Goodbye Google App EngineWhy we are really happy with Google App Engine

在1年前的这个帖子中也有类似的负面故事,结论GAE还没有为商业制作平台做好准备:GAE as Production Platform。 2009年还有其他线程讨论数据选择限制(1000行),此后已被解除。

我的应用程序基本上会根据从外部数据源中提取的数据(可能是一些大量的数据)执行一些数学分析,这只是第一次为手头的特定项目下载数据然后存储的实时并在那时从数据库本地检索。将按计划的时间间隔提供一些额外的外部数据。

基于这个简短的描述,我是否应该打扰GAE?一般来说,尝试和决定开发GAE是否适合手头的问题有哪些经验法则?此外,使用GAE的生产中的应用程序的优秀示例是什么。看起来GAE App Gallery已经不在了,但我绝对会欣赏在app引擎上运行的任何Web 2.0 App示例。

3 个答案:

答案 0 :(得分:4)

在您的具体情况下,我会仔细检查这些因素:

a。 数学分析是一项长期运行的CPU密集型工作吗?

GAE不适用于长时间运行的CPU密集型计算作业;这将导致高计费成本并迫使您设计应用程序以避免一些GAE限制(每个作业最多10分钟,软内存有限,CPU配额等等。)

b。 您打算使用主流API(Twitter,yahoo,facebook)检索外部数据吗?

您的应用程序与其他应用程序共享相同的IP池;如果您要采用的API不允许经过身份验证的请求,则您的应用程序将受到限制/配额限制错误导致的打嗝。我遇到了这个问题here

答案 1 :(得分:1)

App Engine应该可以正常运行您的应用程序。它通常用于服务和扩展主要面向用户流量的站点。不适合的应用程序是视频转码等严重依赖后端处理的应用程序,或者必须支持本机代码的应用程序,如3D图形等等。

答案 2 :(得分:1)

取决于您在做什么类型的数学分析。如果您的应用程序I / O很重,我会暂停一下。在GAE上,您的I / O选项有限。你基本上有以下几点:

  • RAM:我记不起来了,但是GAE强加了大约200MB RAM的硬限制。
  • 数据存储区:这里有足够的空间,但与缓存的本地文件系统相比,它的速度很慢。
  • Memcache:比数据存储更快,但速度不如缓存磁盘快。更糟糕的是,它是一个缓存,因此不能保证它不会被消除。
  • 外部来源:这些包括呼叫外部网页。很多灵活性,但非常慢。

总而言之,如果您在中型数据集(> 20MB和〜<2GB)上进行繁重的I / O,我可能会考虑其他选项。对于90%的网络应用来说,这些可能都不是问题,尽管您应该了解它们。

除了所有的负面因素,在GAE上工作是一种快乐的体验。您花费更多时间编程,减少配置时间。它真的很便宜。