我看到谷歌提供SDK和实用程序来开发和运行开发中的Web应用程序(developer-pc)并将它们移植到谷歌应用程序引擎实时(在谷歌服务器上)。
我们可以使用谷歌应用引擎来运行本地网络应用程序而无需使用谷歌基础设施吗?
基本上我想要一个体面的作业调度程序和python的持久作业队列(我不使用谷歌基础设施)。我看到谷歌提供了任务队列实现及其应用引擎sdk。
我可以使用谷歌应用引擎SDK开发我的完整的python应用程序的任务队列吗?
答案 0 :(得分:8)
您可以在appscale之上运行App Engine应用程序,而后者可以在Eucalyptus,Xen和其他可以在Ubuntu上部署的群集解决方案上运行(不确定是否有任何Windows支持) - 看起来像它可能需要大量的系统安装,配置和管理工作才能开始(对不起,还没有第一手经验),但是一旦你完成了这项投资,看起来它可能会更顺畅。 (任务队列的自动化是appscale的一个相对较新的增加,但它显然有效,可以从一个集市分支修补,直到它完全集成到appscale项目的主干中。)
编辑:由于似乎对此代码的许可存在一些疑惑,我将指出App Engine SDK(根据its site)属于Apache License 2.0,和新的BSD许可下的appscale。两者都是非常宽松和自由的开源许可证,基本上允许您进行各种重用,混音,混搭,再分配等。
编辑:Nick还建议提及TwistedAE,这是另一项构建开源方式(也是Apache License 2.0)的工作,可以在您自己的基础架构上部署App Engine应用程序;我对它没有直接的经验,它仍然是pre-alpha,但它看起来非常有前景,值得关注(tx Nick!)。
答案 1 :(得分:-1)
我不相信。根据App Engine的服务条款:
7.1。 Google为您提供个人,全球,免版税, 不可转让和非转让 许可使用提供的软件 谷歌作为你的一部分给你 Google为您提供的服务 (简称“Google App Engine” 软件“下面”。此许可证适用于 使你的唯一目的 使用和享受的好处 Google提供的服务,在 条款允许的方式。
(强调我的)
你想和律师联系,但对我来说这听起来像是dev_appserver.py服务器只用于开发应用程序然后部署到GAE“服务”,而不是用于运行你自己的服务器内部。
我还怀疑出于性能原因,从dev_appserver.py运行生产服务是不可取的。如果没有特别的努力,线程Python Web服务器通常一次只能容纳一个请求,这会限制您的性能和可伸缩性。这是由于CPython的实现细节,称为GIL。有关详细说明,请参阅http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock。