是否可以在同一个实例中部署多个角色?
我有三个网络角色(asp.net mvc3中的网站和两个WCF服务实例)和两个工作角色(Windows服务)。
这个应用程序的负载非常小,所以我不想在Windows Azure中创建这么多的实例,现在就为所有的实例付费。相反,我想在同一个实例中部署我的所有应用程序,如果我将从我的应用程序获得一些收入,稍后更改它。
我在谷歌发现一些论坛的帖子比可能的一些,而不是不可能…但我找不到信息如何做到这一点…
所以两个问题:
可能吗?
我该怎么做?
一个稍微不同的答案比@ Simon的…一个角色实际上是一个Windows Server 2008 VM的模板(参见我在
this SO question的答案)。每个角色都有一个或多个实例,您可以在任何角色上运行任何所需的任务。
您可以在一个角色中绝对运行您的网站和所有WCF服务。您现在可以将应用程序上/下(VM大小)和out / in(#个实例)扩展为单个缩放单位。如果您的WCF服务是cpu密集型的,导致虚拟机实例减慢您的Web访问者,您需要扩展到足以处理这些访问者。
一旦达到重要的流量负载,值得考虑分开的角色。这样,您可以决定每个角色的虚拟机大小和数量。也许您有两个或三个Web角色的小实例来处理网站上的用户流量,也可能有2个中等实例的Worker角色来处理WCF服务(仅作为示例)。您拥有的角色越多,您所拥有的粒度越细,但是您必须运行至少一个每个角色的一个实例,从而提高您的“休息系统”基准成本。