Google App Engine 兼容层
我正在计划一个在谷歌应用引擎上运行的应用程序。我唯一担心的就是可移植性,或者说能否让这个应用在本地的私有服务器上运行。
我本以为谷歌应用引擎的应用会有一个选项,可以在其他系统上运行,类似于一个兼容层。我可以想象一个兼容GAE的框架,利用亚马逊的SimpleDB或者CouchDB,提供几乎100%的兼容性,可能通过一个抽象层来实现。不过,我更喜欢用Python,Java也可以。
然而,就我所知,目前并没有这样的功能。难道我错了吗?如果没有,那我应该去哪里找这个谷歌应用引擎的兼容层?如果确实没有,那问题就来了:“为什么?”是因为有一些未预见的技术问题,还是市场上根本没有需求(这可能暗示着GAE的使用率很低)?
祝好,
Iwan
5 个回答
Typhoonae 可能会引起你的兴趣,这是一个新项目,旨在使用现有技术搭建一个完整的生产服务器系统,能够托管 AppEngine 实例。这个项目还希望在保持与 AppEngine API 兼容的同时实现这一目标,以便于轻松迁移。我不太确定他们在整合方面已经达到什么阶段,但绝对值得一看。
我可以想象一个与GAE兼容的框架,利用亚马逊的SimpleDB或CouchDB,来提供接近100%的兼容性。
GAE/J使用DataNucleus来处理数据存储。DataNucleus还支持很多其他的插件,比如关系数据库(RDBMS)、LDAP、XML、Excel、ODF、对象数据库(OODBMS)、HBase(HADOOP)和亚马逊的S3存储。因此,理论上来说,使用JDO或JPA的数据存储层可以在这些不同的系统之间使用。为亚马逊的SimpleDB或CouchDB编写一个DataNucleus插件应该也不会太难。
--Andy (DataNucleus)
AppScale项目就是为了实现这个目的而设计的。你可以查看这个链接了解更多信息:https://github.com/AppScale/appscale/wiki