【问题标题】:What are the rules of thumb when trying to decide if developing on Google App Engine platform is worthwhile在决定是否值得在 Google App Engine 平台上进行开发时,有哪些经验法则
【发布时间】:2011-02-01 00:27:53
【问题描述】:

我有一个 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 已经不存在了,但我肯定会感谢在应用引擎上运行的任何 Web 2.0 应用示例。

【问题讨论】:

    标签: google-app-engine architecture


    【解决方案1】:

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

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

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

    b. 您是否打算使用主流 API(twitter、yahoo、facebook)检索外部数据?

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

    【讨论】:

    • 遗憾的是,b 点甚至适用于谷歌自己的 api。最后我听说,尝试使用谷歌地图的人仍然遇到这个问题。希望他们能找到解决这个问题的方法,至少对于他们自己的 API 而言。
    • 您是说在 b 点中调用外部 Web 服务以获取数据必须经过身份验证才能与 GAE 一起使用?如果它是一个简单的未经身份验证的 Web 服务,我正在调用它,这会是一个问题吗?
    • @Rocket 如果 Google App Engine 上的其他应用程序调用您的相同外部 Web 服务,并且该服务对每个 IP 有限制/速率限制,是的,这将是一个问题。检查hereherehere
    【解决方案2】:

    App Engine 应该适用于您的应用程序。它通常旨在为主要服务于面向用户的流量的站点提供服务和扩展。它不适合的应用包括视频转码等严重依赖后端处理的应用,或者必须封装为原生代码的应用,例如 3D 图形等。

    【讨论】:

      【解决方案3】:

      取决于您正在执行哪种类型的数学分析。如果您的应用程序在 I/O 方面很繁重,我会暂停一下。在 GAE 上,您的 I/O 选项有点受限。你基本上有以下几点:

      • RAM:我记不清了,但 GAE 规定了大约 200MB RAM 的硬性限制。
      • 数据存储区:这里有足够的空间,但与缓存的本地文件系统相比速度较慢。
      • Memcache:比数据存储快,但不如缓存磁盘快。更糟糕的是,它是一个缓存,因此无法保证它不会被清除。
      • 外部来源:包括调用外部网页。灵活性很大,但速度很慢。

      总之,如果您在中等大小的数据集(>20MB 和 ~

      撇开所有负面因素不谈,在 GAE 上工作是一种快乐的体验。您花更多的时间进行编程,而花更少的时间进行配置。而且真的很便宜。

      【讨论】:

      • 我不同意其中的大部分内容。我在 GAE 上部署了两个应用程序,它们都是重 IO 和 2-3 个不同外部 API/Web 服务的混搭。我必须打破多年来使用 Java 和 Rails 的一些旧习惯,必须接受非规范化数据和设计,以便将后台任务用于可能需要几秒钟的操作。在我看来,GAE 鼓励为当今的 Web 应用程序提供更好的设计模式。但我同意speedplane的倒数第二段。
      • 这个答案有一些明显错误的信息。在应用引擎上,普通请求可以运行 30 秒,后台任务最长可以运行 10 分钟。 speedplane,你为什么说请求限制为一秒/十秒? googleappengine.blogspot.com/2010/12/…
      • 不是最近的!从 10 秒到 30 秒是两年前的事了。 (自 2009 年 2 月以来)并且我找不到任何关于请求实际上限制为 1 秒的时间的参考......
      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 2016-03-20
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2015-01-02
      相关资源
      最近更新 更多