打破Google App Engine Python锁定?

Alt*_*ife 18 python google-app-engine open-source lock-in

编写Google App Engine Python代码是否有任何准则可以在其他平台上使用Google的基础架构?

是否有任何已知尝试创建可在其他平台上运行为Google App Engine设计的应用程序的开源框架?

编辑:

澄清一下,问题确实是:

如果我现在在Google App Engine上开发应用程序,我以后可以迁移到其他平台,还是锁定?

Nic*_*son 33

要使应用程序完全可移植,需要许多组件:

  • 运行时环境本身.通过设置模拟App Engine环境的CGI或FastCGI服务器(它本身基本上是略微增强的CGI),可以相对简单地移植.执行此操作的大多数代码已在SDK中.不幸的是,还没有简单的预打包工具包.
  • 数据存储区.到目前为止最复杂的端口API.正在进行许多努力:AppScale在EC2/Eucalyptus/Xen上运行并使用HyperTable或HBase后端; 它仍然具有很高的beta质量,并且它们不会单独分发数据连接器(这是一个完整的运行 - 你自己的应用程序在自己的云解决方案的开始).Jens正在/正在编写一个SQLite后端,并且有我自己的项目BDBDatastore,它使用BDB-JE作为后端,并且功能齐全(虽然是beta质量).其他人提到的AppDrop只是将开发服务器用作后端,因此不适合生产使用.
  • 用户API需要替换其他内容,例如基于OpenID的API.同样,相当简单,但还没有预制解决方案.
  • Memcache API需要一个使用标准C memcache后端的后端.
  • 其他API具有功能完善的后端作为SDK的一部分,因此不需要移植.
  • Cron支持还需要在后台处理,XMPP等可用时实现.

正如您所看到的,还有很多工作要做,但没有任何根本障碍使您的App Engine应用程序在Google环境之外运行.事实上,如果你感兴趣的话,非常欢迎你参与 - 我和其他人都计划将各个部分的解决方案合并到一个'OpenEngine'解决方案中,用于托管你自己的应用程序.

  • +1,优秀而详细的分析以及有用的指针. (2认同)

Lak*_*sad 7

使用适用于App-Engine的高级框架.这样,您可以根据需要将代码移植到其他服务器.

django已被修补并移植到Appengine补丁项目中工作,并且是最常用的FW on appengine.

您可能希望逐步介绍在App引擎上运行django应用程序

就运行应用引擎应用程序的并行基础架构而言,它仍然遥远.App Engine本身并没有像人们所认为的那样流行,谷歌也想要它.另外,在内置WebApp框架上开发比在django上开发更难.

它不太可能在未来几年看到运行应用程序引擎应用程序的并行基础架构.相反,它可能会看到django和其他流行的框架在app引擎上开箱即用,目前正在进行的工作中正在开展这方面的工作.

  • 我将用app-engine-patch指出的一个问题是它不使用Django模型; 它反而直接向开发人员公开GAE模型.这不一定是坏事; 你可以用Django模型做一些事情,它们不适用于GAE,而且抽象也会非常漏洞.但是,这意味着当您从GAE本地移植回Django时,您将至少重写模型,并且由于语法差异,您将触及每个查询:对于大型项目而言,这不是一件小事. (5认同)
  • "App Engine本身并没有像人们所认为的那样流行,谷歌也想要它.而且,在内置的WebApp框架上开发比在django上更难." - 我不同意这两个断言.正如我们所说,人们正在研究开源基础设施 - 例如,请参阅AppScale. (2认同)