Azure中多个部署环境之间的相互通信策略

时间:2013-05-30 01:51:22

标签: azure architecture azure-web-roles azure-worker-roles

我正在寻找在多个部署环境中跨Azure的多个角色进行相互通信的最佳实践。

我们有以下部署环境

  1. 开发人员本地部署
  2. 在azure中共享开发部署
  3. 在azure中进行QA部署
  4. 预生产部署
  5. 生产部署
  6. 等。
  7. 在所有这些部署中,我们有多个Web角色以及工作者角色。

    我正在寻找为每个部署创建唯一标识符的最佳实践,以便我们可以跨每个部署的角色进行相互通信。

    例如,如果我使用天蓝色队列或服务总线,我如何唯一地识别每个部署,以便消息不会从一个环境跨越到另一个环境?

    谢谢, 诺姆

3 个答案:

答案 0 :(得分:0)

您可能希望查看Azure Service Runtime中可用的名为RoleEnvironment.DeploymentId的全局静态变量。

此变量对于每个部署的Azure服务都是唯一的(注意,而不是角色)。

警告:

1)如果每个角色需要一个唯一编号,请将RoleName附加到此变量:RoleEnvironment.CurrentRoleInstance.Role.Name

2)本地开发模式下的部署遵循不同的命名约定,并且不返回部署ID的Guid。可能想为他们实施Guid生成策略。

答案 1 :(得分:0)

一个更好的选择,我们在Dev,Test&产品环境 - 简单地创建Dev,Test&产品储存容器和服务总线。我们使用每个构建环境的服务配置定义来控制正在使用的容器/总线。如果您使用诊断程序,这一点尤为重要,您确实应该使用单独的容器进行诊断。

答案 2 :(得分:0)

您可能希望将这组服务分组到单个Cloud Service(或可能是VNet)中,然后在内部使用WCF(net.tcp)通信。

此处示例:http://tk.azurewebsites.net/2013/03/06/burst-up-to-the-cloud-with-a-preconfigured-ip-address-and-vpn/

enter image description here

忽略图片中的“VPN”部分 - 这与我在文章中提到的一些特定内容有关。