部署代理是单线程的,但我们需要多个?
Deployment Agent is single threaded but we need multiple?
部署代理似乎是单线程的,但我们需要多线程
我们的 Azure Devops 发布管道中有 2 个发布管道和阶段,它们共享相同的 "Deployment Group",在单个服务器上有一个代理。
+----------------------+-------------+-------------------------------------+
| Release Pipeline | Stage | Maximum No of Parallel Deployments |
+----------------------+-------------+-------------------------------------+
| VegaDW-Full-Release | Smoke | 5 |
| VegaDW-Regular-Tasks | Safe Backup | 1 |
+----------------------+-------------+-------------------------------------+
我在上面每个阶段部署前条件的Deployment Queue设置中已经指出了设置的并行部署数
然而,当 VegaDW-Regular-Tasks\Safe 备份是 运行 时,它似乎会阻止任何 VegaDW-Full-Release\Smoke 发布的进度,因此我们的发布是单线程的。我也没有看到将 Smoke 设置为 5 有什么不同,它似乎仍然是单线程。
有什么办法可以解决吗?
Agent.Version 显示为 2.140.2 这是旧版本,不能进行多线程发布吗?如有必要,如何更新代理?感谢您的帮助
我还了解到您不能一次在一台机器上部署多个代理,这是我必须解决这个问题的另一个想法,但这似乎有点过分了。
代理是单线程的。一个代理 = 一种并行度。这是设计使然。要获得更高的并行度,您需要额外的代理。
问题是您没有将部署组用于其预期目的。部署组用于定义一组单独的服务器,每个服务器由一个代理代表。想想 Puppet 或 Chef 代理之类的东西。如果您想 运行 一组服务器上的一组活动,您可以使用部署组并在每台服务器上安装代理,然后您可以 运行 所有这些机器上的这些活动。
对于您的 场景,您希望使用常规代理池和一组安装在专用机器(或多台专用机器,视情况而定)上的代理。然后,您可以根据需要并行化 运行 冒烟测试。
你的发布定义配置也有点可疑。我不确定为什么您会有两个应该并行 运行 的发布定义。那只是要求弹出竞争条件。如果您要更详细地描述每个发布定义的目标,则完全有可能有更惯用的方法来实现您正在寻找的结果。
部署代理似乎是单线程的,但我们需要多线程
我们的 Azure Devops 发布管道中有 2 个发布管道和阶段,它们共享相同的 "Deployment Group",在单个服务器上有一个代理。
+----------------------+-------------+-------------------------------------+
| Release Pipeline | Stage | Maximum No of Parallel Deployments |
+----------------------+-------------+-------------------------------------+
| VegaDW-Full-Release | Smoke | 5 |
| VegaDW-Regular-Tasks | Safe Backup | 1 |
+----------------------+-------------+-------------------------------------+
我在上面每个阶段部署前条件的Deployment Queue设置中已经指出了设置的并行部署数
然而,当 VegaDW-Regular-Tasks\Safe 备份是 运行 时,它似乎会阻止任何 VegaDW-Full-Release\Smoke 发布的进度,因此我们的发布是单线程的。我也没有看到将 Smoke 设置为 5 有什么不同,它似乎仍然是单线程。
有什么办法可以解决吗?
Agent.Version 显示为 2.140.2 这是旧版本,不能进行多线程发布吗?如有必要,如何更新代理?感谢您的帮助
我还了解到您不能一次在一台机器上部署多个代理,这是我必须解决这个问题的另一个想法,但这似乎有点过分了。
代理是单线程的。一个代理 = 一种并行度。这是设计使然。要获得更高的并行度,您需要额外的代理。
问题是您没有将部署组用于其预期目的。部署组用于定义一组单独的服务器,每个服务器由一个代理代表。想想 Puppet 或 Chef 代理之类的东西。如果您想 运行 一组服务器上的一组活动,您可以使用部署组并在每台服务器上安装代理,然后您可以 运行 所有这些机器上的这些活动。
对于您的 场景,您希望使用常规代理池和一组安装在专用机器(或多台专用机器,视情况而定)上的代理。然后,您可以根据需要并行化 运行 冒烟测试。
你的发布定义配置也有点可疑。我不确定为什么您会有两个应该并行 运行 的发布定义。那只是要求弹出竞争条件。如果您要更详细地描述每个发布定义的目标,则完全有可能有更惯用的方法来实现您正在寻找的结果。