Azure devops 如何在Azure DevOps中为可维护的蓝绿色部署定义发布管道

Azure devops 如何在Azure DevOps中为可维护的蓝绿色部署定义发布管道,azure-devops,azure-pipelines,devops,azure-pipelines-release-pipeline,blue-green-deployment,Azure Devops,Azure Pipelines,Devops,Azure Pipelines Release Pipeline,Blue Green Deployment,我正在Azure DevOps中重新创建非常复杂的部署过程。 目前,我们的实时环境由负载平衡器后面的4个虚拟机组成 我考虑的策略是一种蓝绿色部署,只是每次我都要处理一半的虚拟机。 这与滚动部署不同,因为不会有两个版本同时运行 一旦我完成了前半部分的部署,并确保它已启动并运行,我将连接它,并立即断开另一半的连接,以便将新版本部署到它 我现在还不能照章办事(在新版本中部署一整套独立的虚拟机),因为不幸的是IP是硬编码的。只有在部署期间使用2个虚拟机,实时环境就可以了 我的问题是如何在Azure De

我正在Azure DevOps中重新创建非常复杂的部署过程。 目前,我们的实时环境由负载平衡器后面的4个虚拟机组成

我考虑的策略是一种蓝绿色部署,只是每次我都要处理一半的虚拟机。
这与滚动部署不同,因为不会有两个版本同时运行

一旦我完成了前半部分的部署,并确保它已启动并运行,我将连接它,并立即断开另一半的连接,以便将新版本部署到它

我现在还不能照章办事(在新版本中部署一整套独立的虚拟机),因为不幸的是IP是硬编码的。只有在部署期间使用2个虚拟机,实时环境就可以了

我的问题是如何在Azure DevOps中为此类解决方案配置发布管道(我使用GUI版本,而不是YAML)? (这些都是阶段)

DbConversionDev>FirstHalfDev>SecondHalfDev>DbConversionQA>FirstHalfQA>SecondHalfQA>DbConversionProd>FirstHalfProd>SecondHalfProd

也许db转换级可以是并行的

它看起来很复杂,很难维护。 有什么建议吗?
提前感谢:)

例如,您可以尝试创建,例如,第一个组和第二个组-将您的代理/VM注册到这些组,并在发布管道中为第一个组创建,然后添加验证部署是否成功和启动/运行的步骤,并在同一管道中为第二个部署组创建另一个部署组作业。(注意:您可以为任何手动干预创建无代理作业)


编辑

以下是完整的解决方案,作为对话的总结:

为每个环境创建一个部署组(例如Dev、QA、Prod),并将部署组中的前一半代理/vm标记为蓝色,另一半标记为绿色

在发布管道中,为每个环境(例如Dev、QA、Prod)创建一个阶段,并在一个阶段中为相应的部署组(Dev Stage->Dev Deployment Group)创建两个部署组作业,每个作业具有不同的标记:蓝色和绿色。这将确保在一个作业中,一半的虚拟机将受到部署的影响


出于可重用性的目的,请将任务分组到任务组中,以便在部署组作业中重用它们。

此时的问题类似。你试过了吗?@YangShen MSFT感谢你的回答。我从第一个链接看到了这个问题。这不一样,因为正如我所说,IP地址目前是硬编码的(用于内部通信),我不能切换到不同的机器。我对如何从技术上进行切换不感兴趣-我只需要一种可维护的方式来配置管道,这样我就可以部署到前一半的虚拟机,然后部署到另一半。谢谢你的回答。我目前使用部署组,每个环境(Dev、QA、Prod)有一个部署组。我可以为相同的部署组运行两次阶段,并将一半的机器标记为蓝色,另一半标记为绿色,然后在第一阶段中,我将使用“蓝色”作为所需标记,第二阶段使用“绿色”。我的问题是,如果我想部署到多个环境,在我看来,发布管道将包含太多的阶段,很难维护\进行更改。”在第一个阶段中,我将使用“蓝色”作为所需标记,第二个阶段使用“绿色”=>您不需要两个阶段:一个阶段为绿色,一个阶段为蓝色。您可以在一个阶段中创建两个部署组作业,并使用不同的标记。所以您只有3个阶段:Dev、QA和Prod,以及相应的部署组和标记的代理。如果我没听错你的回答?!你完全明白。虽然你的建议可能更有条理,但我仍然不确定它是否更易于维护。首先,我看不到克隆作业的选项,我有大约60个任务,其中包含许多变量:(第二,如果我在一个作业中进行了更改,比如添加一个任务,我也需要将其添加到另一个作业中(事实上,在所有阶段中的所有作业)。我不知道如何使其可重用。您应该能够使用任务组。选择多个任务并右键单击->创建任务组。可能您想将其分类为部署。您可以在另一个作业中重用同一任务组,并在“管道->任务组”下编辑任务组。@HaukeP。这里描述的概念不是经典的B/G部署-更多的是滚动ugrade和B/G的混合。出于您的目的,我建议使用2个发布管道-一个为蓝色,一个为绿色,并手动触发发布-我目前不知道使用ADO发布管道的其他方法。