新 Azure Pipelines 用户应了解的关键概念
Azure DevOps Services
了解构成 Azure Pipelines 的关键概念和组件。 了解管道的基本术语和部分可帮助你更有效地生成、测试和部署代码。
关键概念概述
- 触发器告知管道运行。
- 每个管道都由一个或多个阶段组成。 管道可以部署到一个或多个环境。
- 阶段是在管道中组织作业的一种方式,每个阶段可以有一个或多个作业。
- 每个 作业 在一个 代理上运行。 作业也可以是无代理的。
- 每个 代理 运行一个作业,其中包含一个或多个 步骤。
- 步骤可以是任务或脚本,是管道的最小构建基块。
- 任务 是一个预打包的脚本,用于执行操作,例如调用 REST API 或发布生成项目。
- 生成工件是由运行发布的文件或包的集合。
Azure 管道 术语
Agent
生成或部署运行时,系统开始运行一个或多个作业。 代理是计算基础结构,带有已安装的代理软件,一次运行一个作业。 例如,作业可以在Microsoft托管的 Ubuntu 代理上运行。
有关不同类型的代理及其用法的详细信息,请参阅 Azure Pipelines 代理。
Approvals
审批定义部署运行前所需的一组验证。 手动审批是一种常见检查,用于控制到生产环境的部署。 在环境中配置检查时,管道运行会暂停,直到所有检查都成功完成。
项目
生成工件是由运行发布的文件或包的集合。 工件可用于后续任务,例如分发或部署。 有关详细信息,请参阅 Azure Pipelines 中的工件。
持续交付
持续交付(CD)是一个过程,在这个过程中,代码被生成、测试,并部署到一个或多个测试和生产环境。 在多个阶段部署和测试有助于提高质量。 持续集成系统生成可部署的项目,其中包括基础结构和应用。 自动发布管道使用这些项目将新版本和修补程序发布到现有系统。 监控和警报系统不断运行,以提高整个 CD 过程的可见性。 此过程可确保频繁且及早发现错误。
持续集成
持续集成(CI)是开发团队用来简化代码测试和构建的做法。 CI 有助于在开发周期的早期捕获 bug 或问题,从而使它们更容易、更快地修复。 自动化测试和构建作为 CI 流程的一部分运行。 该过程可以按设置计划运行或/和随时推送代码。 称为构件的物品是从 CI 系统生成的。 持续交付发布管道使用它们来推动自动部署。
部署
经典管道部署是运行一个阶段的任务的操作。 部署可能包括运行自动测试、部署生成项目,以及为该阶段指定的任何其他操作。
对于 YAML 管道,部署是指部署作业。 部署作业是针对环境按顺序运行的步骤的集合。 可以将运行一次、滚动和 Canary 等策略用于部署作业。
部署组
部署组是一组已安装代理的部署目标计算机。 部署组就是代理的另一个分组,与代理池相似。 可以使用部署组在管道中为作业设置部署目标。 详细了解如何为部署组预配代理。
环境
环境 是部署应用程序的资源集合。 一个环境可以包含一个或多个虚拟机、容器、Web 应用或任何服务。 在完成构建并运行测试后,管道会部署到一个或多个环境中。
工作
一个阶段可以包含一个或多个作业。 每个作业在代理上运行。 作业表示一组步骤的执行边界。 所有步骤均在同一个代理上运行。 如果要在不同的环境中运行一系列步骤,使用作业最有效。 例如,你可能想要生成两个配置 - x86 和 x64。 在这种情况下,你有一个阶段和两个作业。 一个作业用于 x86,另一个作业用于 x64。
无代理作业在 Azure DevOps 和 Azure DevOps Server 中运行,而无需使用代理。 有限数量的任务支持无代理作业。
管道
管道定义应用的持续集成和部署过程。 它由一个或多个阶段组成。 可以将其视为一个工作流,用于定义测试、生成和部署步骤的运行方式。
对于经典管道,管道也可以称为定义。
版本
对于经典管道,发布是指在管道中指定的一组版本控制的项目。 发布包括在发布管道中执行所有任务和操作所需的所有信息的快照,例如阶段、任务、策略(如触发器和审批者),以及部署选项。 您可以手动创建发布、使用部署触发器创建发布,或通过 REST API 创建发布。
对于 YAML 管道,生成和发布阶段位于一个多阶段管道中。
运行
运行表示管道的一次执行。 它收集与运行步骤和运行测试结果关联的日志。 在运行期间,Azure Pipelines 将首先处理管道,然后将运行发送到一个或多个代理。 每个代理都将运行作业。 了解更多关于 管道运行序列的信息。
对于经典管道,生成表示管道的一次执行。
脚本
脚本使用命令行、PowerShell 或 Bash 将代码作为管道中的一个步骤运行。 可以为 macOS、Linux 和 Windows 编写 跨平台脚本。 与 任务不同,脚本是特定于管道的自定义代码。
阶段
阶段 是管道中的逻辑边界。 它可用于标记关注点分离(例如,生成、QA 和生产)。 每个阶段包含一个或多个作业。 在管道中定义多个阶段时,默认情况下,它们会逐个运行。 可以指定阶段运行时的条件。 当你考虑是否需要一个阶段时,请问自己:
- 不同的团队是否负责管理这个流程的不同部分? 例如,可以有一个测试经理来管理与测试相关的作业,以及另一个经理管理与生产部署相关的作业。 在这种情况下,有单独的测试和生产阶段是有意义的。
- 是否有一组与特定作业或作业集连接的审批? 如果是这样,可以使用阶段将作业分解为需要审批的逻辑组。
- 是否有作业需要长时间运行? 如果管道中作业的运行时间较长,则将其置于自己的阶段是有意义的。
步长
步骤是管道的最小构建块。 例如,管道可能包含构建和测试步骤。 步骤可以是脚本或任务。 任务只是为你提供方便而预先创建的脚本。 若要查看可用任务,请参阅 构建和发布任务 参考文档。 有关创建自定义任务的信息,请参阅 创建自定义任务。
任务
任务是用于在管道中定义自动化的构建基块。 任务是已通过一组输入提取出的打包脚本或过程。
触发器
触发器用于命令管道何时运行。 可以将管道配置为在计划的时间推送到存储库时或完成另一个生成任务时运行。 所有这些操作称为触发器。 有关详细信息,请参阅 生成触发器 和 发布触发器。
图书馆
库 包括 安全文件 和 变量组。 安全文件 是一种跨管道存储文件和共享文件的方法。 例如,你可能希望在不同的管道中引用同一个文件。 在这种情况下,可以在 库 中保存该文件,并在需要文件时使用它。 变量组存储您可能希望传入 YAML 管道或在多个管道中使用的值和秘密。
关于作者
- Dave Jarvis 为关键概念概述图做出了贡献。