对于Azure中的网站和服务层,我是否需要除工作者角色之外的其他角色?

时间:2015-06-04 19:53:38

标签: azure azure-web-roles azure-worker-roles azure-cloud-services

我之前已将网站和服务部署到云端,但不久之前,我想重新审视我的方法来清点我的技能。在研究期间,我被告知要使用工作角色,但我不确定应用它的星座。

enter image description here

图像显示了我的选择。我将设置两件事(最好是在同一个基本URL上) 1.一个网站(ASP.NET,很可能是由R​​azor提供支持的MVC)
2.服务层(猜测WCF,因为今天没有其他选择)

因此,在我天真的无知中,我为前者添加了ASP.NET Web角色,为后者添加了WCF服务Web角色。然后,根据提示,我还添加了工人角色。这就是我谦虚的地方,并开始怀疑我的无知是一种傲慢......

我需要他们三个吗?或者也许工人角色涵盖其他人?或者其他人是否足够,我需要工人角色?或者我完全混淆了这里的概念?

我试图谷歌那些,但我意识到我还没有达到在这个领域学习的门槛。我读的越多,我就越困惑和头痛。不可否认,我的问题可能在于错误选择搜索词和/或语言误解。如果是的话,我道歉......

2 个答案:

答案 0 :(得分:1)

答案是,这取决于......

Web角色本质上是安装了IIS并配置了IIS的Worker角色。如果您真的想要,您可以从同一个Web角色托管WebApi / MVC,WCF和流程事件,从而降低成本。

请记住,每个角色都是您必须支付的单独虚拟机,因此添加额外角色以保持所有内容的分离可能并非总是最佳。

在我们的一个项目中,我们使用Web角色来托管WebApi。用于处理内部事件的Worker角色和用于托管WCF服务的辅助角色(您也可以使用Web角色)。我们拆分它们是因为它们采用非常不同的工作负载并执行单独的功能,因此能够独立地扩展它们是有意义的。

HTH

答案 1 :(得分:1)

云服务中使用的角色数量没有正确的答案。但重要的是要准确理解这些角色是什么。

在@ Peter的回答中添加一点:每个角色都是VM的定义(其内容) - 将其视为VM 模板。对于每个角色(模板),您必须至少运行一个实例(VM)。如果您有一个角色,则最小占用空间将是一个VM(您为该角色指定的大小)。如果您有三个角色,则至少有3个VM正在运行。

您是否拥有一个角色或多个角色取决于您希望如何扩展应用程序。每个角色不仅定义了其中的内容,还定义了角色实例使用的VM的大小。通过为架构的不同部分设置不同的角色,您可以选择以不同方式扩展这些部分。例如,您可能只需要低资源实例来处理Web层,但可能需要为服务层提供更多CPU能力。也许您的Web层可以根据用户流量动态扩展,但是您只需要处理一个或两个实例即可处理服务层。当然,您可以将所有内容放在一个角色定义中,并将所有内容扩展到一起。这完全取决于你。