Azure DevOps 中的代理作业和部署组作业有什么区别?

Bas*_*mme 4 azure-devops

Azure DevOps 中的代理作业和部署组作业有什么区别?创建其中之一的原因是什么?

Mer*_*SFT 7

Azure DevOps 中的代理作业和部署组作业有什么区别?

代理工作:

在代理池中代理上运行步骤。

部署组作业:

部署组中的计算机上运行。

这些是它们的定义。可以看到,它们之间的根本区别在于运行作业时的目标不同。

对于代理作业,一次只能在一个目标上运行(除非设置并行以一次在多个目标上运行,但并行本质上是多个作业)。而部署组作业则是,由于部署组是将多台机器绑定在一个组中,因此可以同时在多台机器上运行一个作业。

在使用场景中,Agent job既可以用于Build管道,也可以用于Release管道。但对于部署代理作业,它只能在发布管道中用于应用程序/项目部署。


创建其中之一的原因是什么?

在构建管道中,毫无疑问,您只能使用Agent作业(或Agentless)作业。

我想你关心的应该是Release pipeline中的用法。正如我上面提到的,这些不同的作业都可以在发布管道中使用,并且它们都可以用于部署的项目。

但就具体使用而言,这取决于你将使用的任务以及你想要部署到的目标服务器的数量。

代理工作:

如果您的部署目标服务器数量少于5个对象,并且需要同时部署到多台机器上,您可以为Agent job设置并行作业。代理作业可能比部署组作业花费的时间稍长。但由于部署的目标数量不是太多,所以差别并不明显。

部署组作业:

对于中大型公司来说,Deployment目标对象一般在10个以上,甚至100个以上。使用Deployment group job最为合适,因为它可以在一个job中部署到不同的机器上。

在发布中,如果您有多个目标要部署到,建议您使用部署组作业:

在此输入图像描述