【发布时间】:2009-01-24 23:29:04
【问题描述】:
Google App Engine 的应用程序的便携性如何?这些是否永远绑定在 GAE 上?
【问题讨论】:
-
Google App Engine 迁移的非官方指南:www-cs-students.stanford.edu/~silver/gae.html
Google App Engine 的应用程序的便携性如何?这些是否永远绑定在 GAE 上?
【问题讨论】:
如果你不使用谷歌自己的 WebApp 框架,而是依赖更标准化的工具(我这里不是说 Django),那么与核心应用程序逻辑隔离并使其可插拔/可交换的东西很少:
在我看来 - 值得一试。
【讨论】:
您可以使用 gae2django 将 AppEngine 应用程序转换为 Django 应用程序。
如本文所述 http://code.google.com/appengine/articles/pure_django.html
gae2django http://code.google.com/p/django-gae2django/
【讨论】:
作为一名优秀的顾问,我会说答案是“取决于”。
首先,您始终可以在 SDK 中运行 GAE 项目。所以在那个程度上你不受约束。除此之外,这取决于您使用的其他 API。 webapp 库与其他一些库非常相似,但我不认为它可以作为独立库使用;不过,GAE 也支持 Django 作为 Web 框架,当然也可以单独使用。
代码只是 Python。但有些 API,比如数据 API,实际上是为了与谷歌云交互;您不能确定是否可以将任意 GAE 程序移动到另一个平台而无需返工。
【讨论】:
如果您使用 Django 0.96,您可以在进行一些小工作后将代码移动到不同的主机。您需要将模型从数据存储更改为另一个数据库。您将不得不停止使用 google 提供的 User 类和可能的其他 google 特定 API。
我已经顺利地将 Django 应用程序移植到 GAE。
【讨论】:
我已经为应用引擎 (java) 开发了几个月了。
从理论上讲,如果您坚持使用 JPA 或 JDO 等标准进行数据访问
并且不要使用任务队列等高级功能,你不应该有太多
将您的应用移植到另一个环境时出现问题。
话虽如此,我经常发现自己使用低级别的 google api 来访问数据存储区以避免噩梦般的性能问题。如果您的应用设计具有模块化数据访问层,则可以在一定程度上减少此问题的副作用。
另一方面,如果我有一个应用程序在 app-engine 上运行顺利,我想不出任何理由将它移到其他任何地方。【讨论】: