Azure:不要按配置部署角色

时间:2016-04-01 09:36:41

标签: azure azure-cloud-services azure-configuration

我们为MS Azure编写了一个高可扩展的Cloudservice,它有两个角色:" WebsiteRole"和#34; WebsiteWorkerRole"。为了获得更好的性能,我们在多个地区(2x US,2x EU,1x JP)部署此Cloudservice。我们为每个区域配置了不同的配置文件(EuWestProductive.azurePubxml,ServiceConfiguration.CloudEuWest.cscfg,Web.ReleaseEuWest.config)。

现在问题:在每个地区,我们都运行了" WebsiteRole"和#34; WebsiteWorkerRole"。但是" WebsiteWorkerRole"只有非常小的任务,所以一个区域中的一个额外的小实例绰绰有余。

我们尝试将Role实例计数设置为零(ServiceConfiguration.CloudEuWest.cscfg)。但这是不允许的: Azure Feedback: Allow a Role instance count of 0

在部署Cloudservice时是否有其他方法可以删除角色?

2 个答案:

答案 0 :(得分:3)

不,正如您所发现的,云服务不允许将比例缩小为零。您必须有效地删除部署。要对已有的内容进行最小的更改,您可以将两个角色分成两个不同的部署。然后在其他地方运行Azure自动化脚本或脚本集,处理在需要时部署工作者角色并在不需要时停用它。

根据工作人员正在执行的工作负载类型,您还可以考虑使用Azure自动化等其他途径来执行工作。如果只进行少量处理,每天只发生几次,则尤其如此。您需要按分钟为自动化脚本付费,因此请确保它的运行时间小于实际当前实例的运行时间。

它实际上归结为该工作人员正在做什么,它真正需要处理多少处理,需要多少资源以及需要运行的频率。有很多选项,例如Azure自动化,Web角色的另一个线程,单独的云服务部署等。每个选项都有各自的优缺点。一种选择甚至可以查看他们刚刚宣布的新Azure功能(预览并由执行收费)。

简短的回答是将工作人员与WebSiteRole部署分开,然后确定该工作人员角色的最佳托管机制,确保该选项包括仅在您需要时运行的能力。

答案 1 :(得分:1)

感谢@MikeWo,您将部署分开的想法非常棒! 我用一个小例子项目验证了这一点,它运行得很好。现在,还可以更改每个区域的VM大小和其他配置。

Example project

(评论不允许图片)