在 Azure DevOps 或 Team City 中,什么是构建代理?

In Azure DevOps or Team City what is a build agent?

我刚接触 CD/CI 领域,我需要在我公司的一个旧项目中实现它。据我了解,我们有几个选项,例如 Azure DevOps 或 Team City,我选择这两个选项是因为我们的大部分项目都是使用 Microsoft 技术构建的。

我已经阅读了一段时间,但我无法理解 Build Agent 的正确定义;另外,我发现了这个老问题,但答案是不清楚:

In Team foundation server what is build agent and controller?

此外,我阅读了不同的文档:

它们的定义如下:

An agent is installable software that runs one job at a time. Microsoft

A TeamCity Build Agent is a piece of software that listens for the commands from the TeamCity server and starts the actual build processes. JetBrains

但是,我无法准确理解他们的作用或目的,他们是否构建了 TestUATProduction流水线并行,看看编译成功了吗?喜欢这里:

或者他们是做什么的?由于解决方案中有多个项目,可能有 8 个或 10 个。

你可以参考我在下面评论中给出的例子:

Let's suppose you create a project in Azure DevOps for your new CRM for a Dentist with a Debug, UAT, and Release environments plus a team of 5 devs. What would represent these agents?

感谢任何解释。

它类似于具有不同技能的人 "agent"。将构建代理视为具有执行构建的特定功能的计算机进程。

一些代理可以执行某些工作(例如构建 Apple 特定程序),而其他代理则更通用。有时一台计算机可以有多个可以并行工作的代理,有时计算机只有一个分配给它们的代理。

编辑 - 添加了以下内容以解决其他问题: 代理可以是 "local",这意味着它们位于构建软件(例如 Azure Pipelines、Bamboo、Team City)所在的服务器上。它们也可以是 "remote" 或在不同的计算机上。可能需要远程代理来构建 Apple 特定软件,因为该软件通常需要 Mac 才能编译。

用不同的技能类比扩展人类"agent",代理可以被分配工作。因此,可能会在您的管道中分配一个代理来构建软件,而另一个代理则忙于处理对不同环境的部署。由于每个 "agent" 一次只能做一个工作,更多代理可以通过允许并行工作来加速构建管道。

在 Azure Devops 中,有一个称为管道的左侧导航,您需要在其中创建构建管道(具有某些任务),这实际上需要代理来执行任务。

一般来说,build agent/agent 是一台具有必要功能的托管机器(在 Azure devops 的情况下)用于 运行 根据构建管道设置的预定义任务以构建源代码和使其可用于部署