我看到谷歌提供 SDK 和实用程序来开发和运行正在开发的 Web 应用程序(开发人员 PC)并将它们实时移植到谷歌应用引擎(在谷歌服务器上)。
我们可以在不使用谷歌基础设施的情况下使用谷歌应用引擎来运行本地网络应用程序吗?
基本上我想要一个体面的作业调度程序和 python 的持久作业队列(我没有使用谷歌基础设施)。我看到谷歌提供了任务队列实现以及他们的应用引擎 sdk。
我可以使用谷歌应用引擎 SDK 为任务队列开发完整的 python 应用程序吗?
我看到谷歌提供 SDK 和实用程序来开发和运行正在开发的 Web 应用程序(开发人员 PC)并将它们实时移植到谷歌应用引擎(在谷歌服务器上)。
我们可以在不使用谷歌基础设施的情况下使用谷歌应用引擎来运行本地网络应用程序吗?
基本上我想要一个体面的作业调度程序和 python 的持久作业队列(我没有使用谷歌基础设施)。我看到谷歌提供了任务队列实现以及他们的应用引擎 sdk。
我可以使用谷歌应用引擎 SDK 为任务队列开发完整的 python 应用程序吗?
您可以在appscale之上运行 App Engine 应用程序,这些应用程序又可以在 Eucalyptus、Xen 和其他可以在 Ubuntu 上部署的集群解决方案上运行(不确定是否有任何 Windows 支持)——看起来它可能需要大量系统安装,配置和管理工作开始(抱歉,还没有第一手经验),但是一旦你完成了这项投资,它看起来可能会更顺利。(任务队列的自动化是对 appscale 的一个相对较新的补充,但它显然正在工作,并且可以从集市分支进行修补,直到它完全集成到 appscale 项目的主干中)。
编辑:由于此代码的许可似乎有些混乱,我会指出 App Engine SDK,根据其网站,在 Apache 许可证 2.0 下,而 appscale 在新 BSD 许可证下。两者都是极其宽松和自由的开源许可证,基本上允许您进行各种重用、混音、混搭、再分发等。
编辑:Nick 还建议提及TwistedAE,这是另一种构建开源方式(也是 Apache 许可证 2.0)以在您自己的基础架构上部署 App Engine 应用程序的努力;我没有直接的经验,它仍然是预测试版,但它看起来非常有前途,非常值得关注(tx Nick!)。
我不相信。根据 App Engine 服务条款:
7.1。Google 向您授予个人、全球、免版税、不可转让和非排他性许可,以使用 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。