为什么在 Google App Engine 上使用 Django?

新手上路,请多包涵

在研究 Google App Engine (GAE) 时,很明显使用 Django 在 GAE 上使用 Python 进行开发非常受欢迎。我一直在网上搜索有关使用 Django 的成本和收益的信息,以找出它如此受欢迎的 _原因_。虽然我已经能够找到关于 如何 在 GAE 上运行 Django 的各种来源以及这样做的各种方法,但我没有找到任何关于 为什么 Django 优于使用 Google 提供的 webapp 框架的比较分析。

明确地说,为什么在 GAE 上使用 Django 对于具有 Django 现有技能集(毫无疑问,大多数 Python Web 开发人员)或 Django 中现有代码(使用 GAE 更像是一种移植练习)的开发人员非常有用。然而,我的团队正在评估 GAE 在一个全新项目中的使用,我们现有的经验是使用 TurboGears,而不是 Django。

当 BigTable 库取代了 Django 的 ORM,会话和身份验证必须更改,并且 Django 的模板(如果需要)无需使用整个 Django 堆栈就可用时,很难确定为什么 Django 对开发团队有益。

最后,很明显使用 Django 确实具有提供“退出策略”的优势,如果我们以后想离开 GAE 并需要一个平台来瞄准外流。

我非常感谢您帮助指出 为什么 在 GAE 上使用 Django 比使用 webapp 更好。我对 Django 也完全没有经验,因此详细说明适用于 GAE 的较小功能和/或便利性对我来说也很有价值。

原文由 Travis Bradshaw 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 541
2 个回答

当我们必须向用户提供实际网站时,我们主要在我们的应用引擎实例上使用 Django。它有一个很棒的模板引擎、url 路由和所有内置的请求/响应/错误处理。所以即使我们不能使用神奇的 orm/admin 东西,它也有很多用处。

对于 api 服务,我们在 webob 之上构建了一些非常简单的东西。它轻量级得多,因为它不需要 django 提供的所有功能,因此在某些情况下速度更快。

原文由 Koen Bok 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您确定 GAE 适合您,Django 可能不是您的正确选择。这两种技术的优势并没有很好地吻合——你完全失去了很多 Django 在 GAE 上的精彩 orm,如果你使用它,你编写的代码并不真正直接适合 bigtable 和 GAE 的工作方式。

GAE 的特点在于,它通过强制您从头开始编写易于扩展的代码来获得强大的可扩展性。您只是不能做一些扩展性差的事情(当然,您仍然可以编写扩展性差的代码,但可以避免一些陷阱)。权衡是,如果你使用像 Django 这样专为不同环境设计的东西,你最终会围绕框架进行编码。

如果您发现自己出于任何原因离开 GAE,投资于基础设施,那么您就有问题了。为 bigtable 编码意味着将更难迁移到不同的体系结构(尽管 apache 项目正在努力使用 Hadoop 项目的 HBase 组件为您解决这个问题)。从 GAE 过渡仍然需要大量工作。

除了作为 Google 产品和一个很酷的流行词之外,使用 GAE 的动机是什么?使用像 mediatemple 的产品这样的扩展不太可能对您有效,这有什么原因吗?您确定 GAE 缩放的方式适合您的应用程序吗?如果您希望达到那个性能领域,与专用服务器相比成本如何?与更传统的负载平衡服务器设置相比,您能否使用 GAE 提供的工具很好地解决您的问题?

综上所述,除非您绝对肯定需要 GAE 提供的边缘荒谬的缩放,否则我个人建议不要让该特定服务结构成为您选择的框架。我喜欢 Django,所以我认为您应该使用它,但不能在 GAE 上使用。

编辑(2010 年 6 月): 作为稍后对此评论的更新:Google 宣布了 GAE 的类似 sql 的功能,这些功能不是免费的,但可以让您轻松地执行诸如运行 SQL 样式的命令以生成数据报告等操作。

此外,即将对 GAE 查询语言进行更改,这将允许以更简单的方式进行复杂查询。观看来自 Google I/O 2010 的视频。

此外,在 Summer of Code 2010 项目期间正在进行的工作应该为 django 核心带来 no-sql 支持,并且通过扩展,使使用 GAE 变得更加容易。

GAE 作为托管平台正变得越来越有吸引力。

编辑(2011 年 8 月):

而谷歌刚刚通过改变定价结构显着提高了该平台大多数用户的成本。锁定问题已经变得更好(如果您的应用程序足够大,您可以部署 apache 替代方案),但对于大多数应用程序,运行服务器或 VPS 部署更便宜。

很少有人真正遇到大数据问题。 “哦,我的创业公司有一天可能会扩大规模”不是大数据问题。现在构建东西并使用标准工具将其推出。

原文由 Paul McMillan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题