Google App Engine作为制作平台

我们即将着手开发新的商业Web项目,并将Google App Engine视为一个潜在的平台。

问题:

  1. Google App Engine是否真正具有可扩展性,可以被视为商业项目的制作平台?
  2. 从长远来看,它比较好的托pipe公司服务更昂贵(或更便宜)?
  3. 将应用程序从Google App Engine移动到独立的服务器/服务器场(例如,将其用作专用系统,利用我们自己的硬件等)是否可能(并且相当便宜)?
  4. 是否有一些机制来处理DDoS攻击?
  5. 我可以对应用程序数据进行完整备份吗?

对不起,这样愚蠢的问题。

我会回答问题1:

我正在使用应用程序引擎的新Web应用程序的试用阶段。 我们花了大约一个月的时间编写代码,为我们的第一个客户做好准备。 他们上周去了。 他们喜欢这个软件,但是几天前我开始在应用程序中得到超过错误的随机截止date。 你查一个logging或一个清单,它会在几秒钟内回来。 接下来会花费30秒钟,并返回一个截止date超出的错误。

仪表板中的堆栈轨迹给出随机结果。 我已经尝试了一切,甚至剥离应用程序下来一个你好的世界。 我把一条日志消息放到我们的django进程请求中间件中,我们的代码的第一位被执行。 这表明在超时请求从谷歌获取请求运行我们的process_request代码需要25秒。 我发布到谷歌论坛,什么都没有。 我在谷歌联系了一个人,他们迅速回答,但只是说他们会联系团队。 没有,因为。

有可能是我正在做的事情,但我真的怀疑它。 谷歌不提供支持,所以我基本上运气不好。

如果这是一个完整的商业应用程序,我会倒闭。

tl;博士 :谷歌应用程序引擎有很大的希望,但需要成熟,并不适合商业生产

  1. 观看谷歌IO (除了其他他们说:“是的,它是可升级的”)。
  2. 这取决于…它甚至可以免费给你(你付出的负担,你已经)。
  3. 您可以使用appdrop移动到Amazon。 使用app-engine-patch也是一个好主意。
  4. … 好问题。 我真的不知道。
  5. 使用GAEBar 。

这一切都取决于你的需求。 对于需要在很短的时间内从极less数用户扩展到可能的数百万用户的项目,谷歌应用程序引擎可能正是你正在寻找的。

但是请注意,您可能会对GAE带来的限制感到惊讶。 数据存储可以不使用IN语句进行全文search或查询。 所以要小心指定你的应用程序将有什么需要,以及你要存储和search什么数据。

这也意味着将应用程序从GAE移动到单独的服务器可能会很麻烦,因为数据库体系结构很可能会有所不同。

我的回答是:

  1. BuddyPoke运行在gae(可能是最大的应用程序),检查他们的数百万。
  2. 你不支付,直到你的应用程序增长很多
  3. 如果你熟悉python, web2py提供这个function有一些限制
  4. DOS保护( Java , Python )
  5. Gaebar , 这里有一篇很棒的文章。

你的问题#3引起了红旗。 如果这是一个重要的问题,那么我现在就对App Engine提出警告。 我喜欢这个平台,不要怀疑它们在某些时候是可行的迁移到自己托pipe的解决scheme,而不是现在。 像appdrop这样的事情certificate这是可能的,但是努力和投资是值得的吗? 这就是我要问的问题。 我很想知道,如果有人已经成功地将真实世界的生产应用程序引擎应用程序移植到另一个主机。

备份应该很容易编写脚本,或者像Bolotov提到的GAEbar这样的工具。

关于成本,你可能可以免费获得成千上万的对象(logging)和体面的交通/使用。 除此之外,我不确定比较托pipe成本,听起来像一个很好的领域做一些研究(注意到自己)。

最后,Silfverstrom对于限制是正确的,特别是在全文search的时候。 有一些项目正在解决这个问题,但可能没有像成熟的RDBMS那样强大。

要更新一些更新的信息(2013年),GAE现在有一个文本searchAPI。 您不能直接在数据库中search数据; 您可以根据数据创build可search的文档,并将其添加到可search的索引中。 这并不难,但这是一件麻烦事。 特别是,只要数据发生变化,就需要重新生成已更改的文档并在索引中进行更新。

将数据导出到Google Big Query中也相当容易,这使得报告变得轻松。