使用Google Apps Engine或Azure的Web服务?

Wim*_*ink 5 google-app-engine web-services azure

简单的问题,实际上.我正在尝试使用Python作为开发语言来评估Google Apps的可能性.用它创建一个Web应用程序或网站似乎很实用,但是如何创建Web服务呢?
我对使用Python for Google Apps创建SOAP或REST服务的解决方案不太感兴趣,因为简单的Google搜索应提供大量解决方案.我对经验和易用性更感兴趣.

但真正的问题是:将Google Apps中的网络服务与Microsoft Azure环境中的网络服务进行比较时,会提供更好的效果吗?最好的用户体验?我不关心实际的开发语言,但需要在Google App Engine和Microsoft Azure中对Web服务的优缺点进行比较.

不知何故,Azure似乎更适合服务,而谷歌似乎更适合网站.一个艰难的选择......
看看两者是否可以组合成一个解决方案会非常有趣.:-)
顺便说一下,选择使用哪个引擎也意味着选择合适的开发环境和编程语言.虽然我精通.NET和Python以及许多其他语言,但服务引擎的选择决定了我对未来项目的关注.

Dav*_*gon 2

在 Windows Azure 中构建服务时,它们只是在 VM(Windows Server 2008 SP2 或 R2 SP1)中运行的进程。您可以轻松地以三种角色类型中的任何一种托管服务:

  • Web 角色(本质上是运行 IIS 的 Windows Server)- 只需将 WCF 端点添加到 IIS 或从您自己的进程中进行自托管)。
  • 辅助角色(未运行 IIS 的 Windows Server)- 从您自己的进程中自行托管
  • VM 角色(您自己的 Windows 2008 Server VM 推送到 Windows Azure)- 使用您安装/设置的任何机制进行托管。

Windows Azure 中的每个 VM 总共可以公开 5 个端点。这些可以是输入(面向外部)和内部端点的组合,每个端口支持 tcp、http 或 https。您可以在虚拟机角色的属性中定义端点。

内部端点只能由部署中的其他虚拟机使用。您无法从其他任何地方(包括其他 Windows Azure 部署)查看/访问它们。输入端点可由外界访问。

如果您希望在 Google 中运行的应用程序访问您的 Windows Azure 服务,只需通过 ip+port 连接到端点即可。您需要注意的一件事是带宽使用情况。由于您的 Google 托管应用程序将位于一个数据中心,而您的 Windows Azure 服务将位于另一个数据中心,因此您需要为进出 Windows Azure 服务的数据支付入口/出口费用(我猜测在该数据中心上会产生相关的带宽费用)谷歌方面,但我不确定)。

设置服务实际上非常简单。对于基于 .NET 的示例,请查看 Windows Azure 平台培训套件中的实验(这也是其他很好的示例,例如设置您的第一个 Windows Azure 应用程序)。对于 python 服务主机,您需要从 VM 角色的 OnStart() 事件处理程序执行 python.exe,并传入脚本名称(以及可选的要侦听的端口号)。有关启动 python.exe 的简单示例,请参阅 Steve Marx 的博客文章(此处)

编辑:如果您希望托管多个服务(例如多个端口),您可以选择将它们托管在单个虚拟机角色或单独的角色中,以优化成本(已知限制为 5 个端点)或性能(规模每个服务都是独立的)。