打破谷歌应用引擎Python锁定?

2024-10-01 15:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在没有Google在其他平台上的基础设施的情况下,编写Google App EnginePython代码有什么准则吗?在

是否有人试图创建一个开源框架,在其他平台上运行为googleappengine设计的应用程序?在

编辑:

澄清一下,问题真的是:

如果我现在在googleappengine上开发一个应用程序,我以后是否可以迁移到另一个平台,或者是锁定?在


Tags: 代码框架app应用程序编辑google基础设施情况
3条回答

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

  • 运行时环境本身。这可以相对简单地移植,通过设置一个CGI或FastCGI服务器来模拟appengine环境(它本身基本上是稍微增强的CGI)。实现这一点的大部分代码已经在SDK中了。不幸的是,目前还没有一个简单的预打包工具包。在
  • 数据存储。到目前为止最复杂的API到端口。目前有很多工作正在进行中:AppScale运行在EC2/Eucalyptus/Xen上,并使用了一个超级表或HBase后端;它仍然具有非常高的beta质量,而且它们不会单独分发数据连接器(这是在自己的云解决方案上完整运行应用程序的开始)。Jens正在/正在编写一个SQLite backend,还有我自己的项目BDBDatastore,它使用BDB-JE作为后端,并且功能齐全(尽管是beta质量)。AppDrop,其他人已经提到过,只是将开发服务器用作后端,因此不适合用于生产。在
  • users API需要替换为其他东西,比如基于OpenID的API。同样,相当简单,但还没有现成的解决方案。在
  • Memcache API需要一个使用标准C Memcache后端的后端。在
  • 其他api作为SDK的一部分,有着完美功能的后端,所以不需要移植。在
  • Cron支持也需要实现,后台处理、XMPP等也需要实现。在

正如你所看到的,还有很多工作要做,但要让你的App Engine应用在Google环境之外运行没有根本障碍。事实上,如果你感兴趣的话,我们非常欢迎你的参与——我和其他人计划将不同部分的解决方案组合成一个单独的“OpenEngine”解决方案来托管自己的应用程序。在

使用在appengine上运行的高级框架。这样,您就可以根据需要将代码移植到其他服务器。在

django已经被修补并移植到Appengine patch项目中,是appengine上使用最多的FW。在

您可能需要将此逐步介绍介绍给running a django app on App engine

就运行appengine应用程序的并行基础设施而言,这还远远不够。应用引擎本身并没有像人们所相信的那样受欢迎,而谷歌也希望如此。另外,在内置的WebApp框架上开发比在django上更难。在

至少在未来几年内,不太可能看到一个并行的基础设施来运行appengine应用程序。相反,它可能会看到django和其他流行的框架在appengine上开箱即用,而这方面的工作目前正在参考的项目中进行。在

您可以使用Django-python框架构建AppEngine应用程序(尽管支持的版本略落后于最新的Django版本)。在使用GQL/BigTable进行持久化时,您将失去可移植性(至少现在是这样)。这是谷歌专有的数据库平台。正如Hank提到的,这是实际使用AppEngine的最大原因之一,但它也是唯一最大的锁定点。在

这里有几个链接指向AppEngine和GQL/BigTable中的Django支持:

相关问题 更多 >

    热门问题