【问题标题】:Deployment of separate layers to Azure将单独的层部署到 Azure
【发布时间】:2015-11-07 03:56:33
【问题描述】:

假设我在 Azure 中有 3 个实例。正如我在这个问题Independent deployment of separate layers to Azure 中描述的那样,每个都运行应用程序的单独层。对于每个层的独立部署(读取角色),将创建一个单独的 Azure 部署项目。问题是,什么实例将被替换,什么时候部署,例如业务层?我可以确定具有 UI 和数据访问的实例将保持不变吗?如何根据角色名称找到要替换的实例?

【问题讨论】:

    标签: azure deployment


    【解决方案1】:

    为了澄清,您有 3 层,每层都托管在不同的 Windows azure 角色(不是实例)中。如果您在单独的部署(单独的托管服务)中拥有每个角色,那么当您部署时,您只会升级该层。其他层不会受到影响。

    但是,如果存在任何签名差异,如果服务尝试调用更改,则依赖层可能会中断。出于这个原因,您希望确保任何服务都支持版本控制,并且始终向后兼容至少一个版本。

    我创建了a quick blog post with some screen shots of doing a single role upgrade。请注意,silverlight 门户在执行此操作时为我发出了异常,我已报告该错误,如果我们发现它是关于什么的,将更新博客文章。

    更新:silverlight 管理门户中存在当前阻止单个角色升级性能的错误。 Windows Azure 团队已经意识到这一点,并将在未来的更新中解决这个问题。目前没有该更新的预计到达时间。但是,您仍然可以通过管理 API 执行单一角色更新/升级。

    【讨论】:

    • 这些角色可以在同一个托管服务中吗?查找属于特定层的实例的原理是什么?是角色的名字吗?
    • 是的,您可以在同一服务中托管角色。如果您使用 RoleEnvironment,您可以遍历角色及其特定实例。但这并不是真正的服务升级,更多的是内部发现和直接连接。使用手动升级,您实际上可以为服务提供单个部署包,但只能升级特定角色(我认为,从未尝试过)。
    • 今晚我会尽量抽出一些时间为你写一篇关于角色升级的博客。 :)
    【解决方案2】:

    正如布伦特所说,进行单角色升级绝对是可能的。过去,如果您在升级该角色时对 ServiceDefinition 进行了任何更改(更改 VM 大小、添加新配置设置、更新角色名称或更改当前部署的服务定义中的实例计数),Azure Fabric Controller 将不允许您进行就地升级。现在,这也是可能的。因此,您可以对 Role 进行就地升级并增加 VM 大小。与往常一样,您至少希望拥有 2 个实例以确保您不会遇到任何停机时间。

    兰吉斯
    http://www.opstera.com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多