能否在 Azure 中的单个 VM 上运行标准网站和云服务?我试图弄清楚我是否可以在单个大型 VM 实例中运行一个具有工作人员角色的网站来处理后台作业。
注意:Large 主要是为了网站的 RAM 需求而选择的,后台服务应该是相当轻量级的。
编辑:如果他们不能在同一个虚拟机上运行,那么拥有 Web 角色和工作角色是下一个最佳选择吗?这需要我管理虚拟机吗?
不,Windows Azure 网站不与云服务共存;但是,您当然可以运行一个云服务 Web 角色,该角色在后台启动其他事情。您可以通过在网站包中包含您希望执行的代码,然后通过角色入口点的 OnStart 中的 ProcessStart 将其启动,或者您可以使用启动任务(http:/ /msdn.microsoft.com/en-us/library/windowsazure/hh127476.aspx)。
你为什么选择一个大的来运行它?是因为后台工作需要更大的功率吗?如果是这样,您可以从小型和中型获得相同的成本,甚至两个小型的成本更低。不要忘记,如果您的“工作进程”是 CPU 密集型的,它可能会破坏机器并耗尽 Web 处理。
我完全赞成在同一个虚拟机上托管多个进程,尤其是对于工作人员,但如果它看到大量流量,我会怀疑使用涉及的 Web 角色来执行此操作。
如果您不需要使用 PaaS 模型,另一种选择是使用新的 IaaS(Windows Azure 虚拟机)并在其上运行 IIS 和 Windows 服务作为后台工作程序;但是,这样做意味着您将拥有并且必须照顾 VM 以进行修补等。
好消息..你现在可以这样做了!
因此,现在您可以拥有一个 PaaS 网站和后台服务,甚至无需查看 Workers 或 Roles!