Google App Engine的应用程序是否可在其他服务器上使用?

时间:2009-01-24 23:29:05

标签: google-app-engine

Google App Engine的应用程序有多便携?这些是否永远限制在GAE上?

7 个答案:

答案 0 :(得分:13)

有一些软件可以在Google之外运行App Engine应用程序,其中最突出的是AppScaleTyphoonAE

答案 1 :(得分:5)

如果您不使用Google自己的WebApp框架,但依赖于更标准化的工具(我不是在这里说Django),那么只有很少的东西可以与核心应用程序逻辑隔离并进行可插拔/可交换:

  • 存储,这似乎是最烦人的部分,但是如果你不太多使用GQL那么可行(数据存储API类似于可用于Python的其他ORM尝试);
  • 身份验证,似乎很容易,但需要编写完整的后端;
  • 内存缓存,memcache API与Memcached有些不同(差异很小所以这应该是直截了当的,因为两个系统的操作都是相同的);
  • 应用程序启动时,您必须编写自己的WSGI启动程序(使用Werkzeug非常简单)。

在我看来 - 值得一试。

答案 2 :(得分:3)

您可以使用gae2django将AppEngine应用程序转换为Django应用程序。

正如本文所述 http://code.google.com/appengine/articles/pure_django.html

gae2django http://code.google.com/p/django-gae2django/

答案 3 :(得分:2)

作为一名好顾问,我会说答案是“取决于”。

首先,您始终可以在SDK中运行GAE项目。所以在这种程度上你不受约束。除此之外,它取决于您使用的其他API。 webapp库与其他一些库非常相似,但我不认为它是独立的;但是,GAE也支持Django作为Web框架,当然可以单独使用。

代码只是Python。但是有些API,比如数据API,实际上就是要与Google云互动;你不能确定你可以在没有返工的情况下将任意GAE程序移动到另一个平台。

答案 4 :(得分:1)

我没有太多关于GAE的实践经验,但最近我正在阅读这篇文章,其中涉及到您的问题:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/

答案 5 :(得分:1)

如果您使用Django 0.96,您可以在完成一些小工作后将代码移动到其他主机。您需要将模型从数据存储区更改为另一个数据库。您将不得不停止使用谷歌提供的用户类和可能的其他谷歌特定API。

我已经将Django应用程序移植到GAE而没有太多麻烦。

答案 6 :(得分:0)

我已经开发了几个月的app引擎(java) 从理论上讲,如果您坚持使用JPA或JDO等标准进行数据访问 并且不使用任务队列等高级功能,你不应该有太多的 将您的应用移植到其他环境的问题。

话虽如此,我经常发现自己使用低级谷歌apis进行数据存储访问,以避免噩梦般的性能问题。如果您的应用程序设计具有模块化数据访问层,则可以将此问题的副作用降低到一定程度。

另一方面,如果我的应用程序引擎上的应用程序运行顺畅,我想不出任何理由将其移到其他地方。