Azure devops 部署代理是单线程的,但我们需要多个?

Azure devops 部署代理是单线程的,但我们需要多个?,azure-devops,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines Release Pipeline,部署代理似乎是单线程的,但我们需要多个 在Azure Devops发布管道中,我们有两个发布管道和阶段,它们共享同一个“部署组”,在单个服务器上有一个代理 +----------------------+-------------+-------------------------------------+ | Release Pipeline | Stage | Maximum No of Parallel Deployments | +-----------------

部署代理似乎是单线程的,但我们需要多个

在Azure Devops发布管道中,我们有两个发布管道和阶段,它们共享同一个“部署组”,在单个服务器上有一个代理

+----------------------+-------------+-------------------------------------+
|   Release Pipeline   |   Stage     | Maximum No of Parallel Deployments  |
+----------------------+-------------+-------------------------------------+
| VegaDW-Full-Release  | Smoke       |                                   5 |
| VegaDW-Regular-Tasks | Safe Backup |                                   1 |
+----------------------+-------------+-------------------------------------+
我已经指出了在上述每个阶段的部署前条件的部署队列设置中设置的并行部署数量

但是,当运行VegaDW常规任务\安全备份时,它似乎会阻止任何VegaDW完整版本\烟雾版本以及我们的单线程版本的进度。我也不认为将Smoke设置为5有什么区别,它仍然是单线程

有什么办法解决这个问题吗

Agent.Version显示为2.140.2这是不能进行多线程发布的旧版本吗?如果需要,如何更新代理?谢谢你的帮助


我还读到,一次不能在一台机器上部署多个代理,这是我必须解决的另一个想法,但这似乎有些过分。

代理是单线程的。一个代理=一个并行度。那是故意的。要获得额外的并行度,需要额外的代理

问题是您没有将部署组用于其预期目的。部署组用于定义单个服务器的集合,每个服务器由单个代理表示。想一想木偶或厨师代理人之类的东西。如果要跨一组服务器运行一组活动,请使用部署组并在每台服务器上安装代理,然后可以在所有这些计算机上运行这些活动

对于您的场景,您希望将常规代理池与一组安装在专用计算机(或多台专用计算机,具体取决于)上的代理一起使用。然后,您可以按照自己的意愿并行运行烟雾测试


您的发布定义配置也有点可疑。我不知道为什么会有两个应该并行运行的版本定义。那只是要求弹出比赛条件。如果您要更详细地描述这些发布定义的目标,完全有可能有一种更惯用的方法来实现您想要的结果。

代理是单线程的。一个代理=一个并行度。那是故意的。要获得额外的并行度,需要额外的代理

问题是您没有将部署组用于其预期目的。部署组用于定义单个服务器的集合,每个服务器由单个代理表示。想一想木偶或厨师代理人之类的东西。如果要跨一组服务器运行一组活动,请使用部署组并在每台服务器上安装代理,然后可以在所有这些计算机上运行这些活动

对于您的场景,您希望将常规代理池与一组安装在专用计算机(或多台专用计算机,具体取决于)上的代理一起使用。然后,您可以按照自己的意愿并行运行烟雾测试


您的发布定义配置也有点可疑。我不知道为什么会有两个应该并行运行的版本定义。那只是要求弹出比赛条件。如果您要更详细地描述每个版本定义的目标,完全有可能有一种更惯用的方法来实现您想要的结果。

谢谢。我现在在同一台机器上创建了两个代理,并给它们不同的标签。这允许并行工作负载在两个不同的发布管道之间发生。只是为了回答为什么常规任务管道基本上是每天发生的计划任务(旧开发数据库/文件夹上的清理活动等)。它只是获取最新的git提交,并使用各种脚本每天执行预定任务。另一个“完整版本”是实际的从工件部署方法,包括冒烟、测试、验收和生产阶段。只有Smoke应该是并行的,我假设代理池只用于构建代理(我继承了这个配置)。但我现在明白了。部署代理用于单目标单线程部署,(标准)代理用于多线程部署,我想这就是并行部署的最大数量。谢谢,我会记下答案谢谢。我现在在同一台机器上创建了两个代理,并给它们不同的标签。这允许并行工作负载在两个不同的发布管道之间发生。只是为了回答为什么常规任务管道基本上是每天发生的计划任务(旧开发数据库/文件夹上的清理活动等)。它只是获取最新的git提交,并使用各种脚本每天执行预定任务。另一个“完整版本”是实际的从工件部署方法,包括冒烟、测试、验收和生产阶段。只有Smoke应该是并行的,我假设代理池只用于构建代理(我继承了这个配置)。但我现在明白了。部署代理用于单目标单线程部署,(标准)代理用于多线程部署,我想这就是并行部署的最大数量。谢谢,我会记下答案的