本文介绍了突破Google App Engine Python锁定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有任何编写的Python代码的准则,这些代码可以在没有Google基础架构的情况下运行在其他平台上?



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



编辑:

为了澄清,问题真的是:



如果我现在在Google App Engine上开发一个应用程序,以后我能够迁移到另一个平台,还是锁定? 解决方案

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




  • 运行时环境本身。通过设置模拟App Engine环境的CGI或FastCGI服务器(本身基本上是略微增强的CGI),可以相对简单地移植它。大部分代码已经在SDK中。不幸的是,目前还没有简单的预打包工具包。

  • 数据存储区。迄今为止最复杂的API。正在进行一些努力:运行在EC2 / Eucalyptus / Xen上,并使用HyperTable或HBase后端;它仍然具有很高的beta版质量,并且不会单独分发数据连接器(这是完整的在您的云上运行的应用程序的开始)。 Jens正在写一个,它使用BDB-JE作为后端,并且已经完全功能(虽然测试版质量)。其他人提到的仅将开发服务器用作后端,因此不适合用于生产。

  • 用户API需要替换为其他内容,例如基于OpenID的API。再次,相当简单,但没有预先制定的解决方案。

  • Memcache API需要使用标准C memcache后端的后端。 其他API有功能完善的后端作为SDK的一部分,因此不需要移植。

  • Cron支持也需要实现,如后台处理,XMPP等等。 / li>


正如您所看到的,您需要完成很多工作,但在使您的App Engine应用在Google环境之外运行方面没有任何障碍。事实上,如果您有兴趣,欢迎您参与其中 - 我和其他人已计划将各种解决方案整合到一个OpenEngine解决方案中,以便托管您自己的应用程序。


Are there any guidelines to writing Google App Engine Python code that would work without Google's infrastructure on other platforms?

Is there any known attempt to create an open source framework which can run applications designed for Google App Engine on other platforms?

Edit:

To clarify, the question really is:

If I develop an application on Google App Engine now, will I be able to migrate to another platform later, or is it a lock in?

解决方案

There's a number of components required to make an app fully portable:

  • The runtime environment itself. This can be ported relatively simply, by setting up a CGI or FastCGI server that emulates the App Engine environment (which itself is basically slightly-enhanced CGI). Most of the code to do this is already in the SDK. Unfortunately, there's no easy pre-packaged toolkit for this yet.
  • The datastore. By far the most complicated API to port. There are a number of efforts underway: AppScale runs on EC2/Eucalyptus/Xen and uses a HyperTable or HBase backend; it's still very much beta quality and they don't distribute the data connector separately (it's the beginnings of a complete run-your-app-on-your-own-cloud solution). Jens is/was writing an SQLite backend, and there's my own project, BDBDatastore, which uses BDB-JE as the backend, and is fully functional (though beta quality). AppDrop, which others have mentioned, simply uses the development server as a backend, and hence isn't suitable for production use.
  • The users API needs replacing with something else, such as an OpenID based API. Again, fairly simple, but no premade solutions yet.
  • The Memcache API needs a backend that uses standard C memcache backends.
  • The other APIs have perfectly functional backends as part of the SDK, so don't really need porting.
  • Cron support would also need implementing, as would background processing, XMPP, etc, when they become available.

As you can see, there's a lot of work to be done, but no fundamental barriers to making your App Engine app run outside Google's environment. In fact, if you're interested, you're more than welcome to participate - I and others have plans to combine the solutions for the various pieces into a single 'OpenEngine' solution for hosting your own apps.

这篇关于突破Google App Engine Python锁定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 01:44