Azure DevOps Services
本文介绍构成 Azure Pipelines 的关键概念和组件。 了解管道的基本术语和部分可帮助你更有效地生成、测试和部署代码。
关键概念概述
下图显示了管道的主要组件和动作。
戴夫·贾维斯为这个图形做出了贡献。
- 手动、计划或自动 触发器 会导致 管道 启动。
- 管道可以包含一个或多个阶段,并部署到一个或多个环境。
- 阶段 是组织管道的一种方法,每个阶段都包含一个或多个 作业。
- 作业 在 代理上运行,也可以是无代理的。
- 每个 作业 包含一个或多个 步骤。
- 步骤是管道中最小的元素,可以是任务或脚本。
- 任务 是一个预打包的脚本,用于执行操作,例如调用 REST API 或发布生成项目。
- 管道 运行 生成 工件,例如文件或包。
Azure Pipelines 术语
以下术语定义关键的 Azure Pipelines 组件和进程。
代理人
代理是具备安装了代理软件的计算架构,该架构一次仅运行一个管道 作业。 例如,作业可以在Microsoft托管的 Ubuntu 代理上运行。 有关不同类型的代理以及如何使用它们的详细信息,请参阅 Azure Pipelines 代理。
在不使用代理的情况下,可以运行有限数量的任务步骤。 有关详细信息,请参阅 无代理作业支持的任务。
审批和检查
审批和检查 定义管道或阶段运行前所需的一组验证。 手动审批是控制部署到生产环境的一种常见做法。 如果环境已配置检查和审批,管道将暂停,直到所有检查和审批都成功完成。
Artifacts
工件是由 运行任务 发布的文件或包的集合,可供管道过程中的后续任务(如分发或部署)使用。 Azure Pipelines 中的 工件 与 Azure Artifacts 不同,Azure Artifacts 是 Azure DevOps 的一部分,它允许您通过单个源存储、管理和共享包。
持续交付
持续交付(CD)是一个将代码构建、测试和部署到一个或多个测试和生产环境的过程。 在多个阶段进行部署和测试有助于及早发现并频繁捕获错误,从而提升质量。
自动化 CD 发布管道可以使用持续集成(CI)管道中的构件来发布新版本和修补程序。 持续监视和警报提供 CD 进程的可见性。
持续集成
持续集成(CI)是一个过程,无论何时推送代码,都可以按计划运行自动测试和生成。 CI 简化了测试和生成代码,并有助于在开发周期的早期发现问题,以便于更快地解决问题。 CI 管道生成的工件可被CD管道用于自动部署。
部署
对于 YAML 管道,部署作业是针对环境按顺序运行的步骤的集合。 部署作业可以使用策略,例如 runOnce
, rolling
和 canary
。 有关更多信息,请参阅部署任务。
在经典管道中,部署将运行部署阶段的任务,包括运行自动测试、部署构建工件,以及其他指定操作。
部署组
在 Azure Pipelines 经典发布管道中, 部署组 是部署目标计算机的逻辑组。 部署组中的每个目标服务器都需要安装部署代理。 有关详细信息,请参阅 为部署组预配代理。
环境
环境是部署应用程序的虚拟机、容器、Web 应用或服务等资源的集合。 完成生成和运行测试后,管道可以部署到一个或多个环境。
职位
作业表示在同一 代理上按顺序运行的一组步骤的执行边界。 管道 阶段 可以包含一个或多个作业。 默认情况下,作业不会始终按阶段顺序运行。
作业可用于在不同环境中执行一系列步骤。 例如,生成阶段可以包含一个用于生成 x86
配置的作业,另一个用于生成 x64
配置的作业。
每个作业都在一个代理上运行,该代理负责执行作业中的所有步骤。 有限数量的任务步骤支持在没有代理的情况下运行的无代理作业。 有关详细信息,请参阅 无代理作业支持的任务。
图书馆
Azure Pipelines 库包括安全文件和变量组。 安全文件 是一种跨管道存储文件和共享文件的方法。 变量组 存储可以传入 YAML 管道的值和机密,或跨多个管道提供这些值和机密。
Pipelines
Azure Pipelines 管道定义用于生成、测试和部署任务的工作流,从运行批处理文件到自动执行应用的 CI/CD 过程。 管道包含一个或多个包含作业和步骤的阶段。
可以使用 基于 YAML 的编辑器或 经典 编辑器来定义管道。 有关详细信息,请参阅 YAML 与经典管道。
发行版本
发布是经典管道中指定的版本控制的项目集。 该版本包含运行发布管道所需的所有信息的快照,例如阶段、任务、触发器、审批策略和部署选项。 您可以手动创建发布、使用部署触发器创建发布,或通过 REST API 创建发布。
在 YAML 管道中,生成和发布阶段均包含在 多阶段管道定义中。
运行次数
运行表示管道的一次执行。 在运行期间,Azure Pipelines 首先处理管道,然后将其发送到一个或多个代理以执行任务。 该运行从运行步骤和运行测试的结果中收集日志。 有关详细信息,请参阅 管道运行。
脚本
脚本作为管道中的一个步骤运行命令行、PowerShell 或 Bash 代码。 可以为 macOS、Linux 和 Windows 编写 跨平台脚本。 与预打包 任务不同,脚本是特定于管道的自定义代码。
阶段
阶段是管道流水线中的逻辑上的边界,可以分离关注点,例如构建、测试和生产。 每个阶段包含一个或多个作业。 默认情况下,管道中的多个阶段相互运行。 可以指定阶段运行时的其他条件。
在以下情况下,在管道中定义阶段非常有用:
- 单独的组管理管道的不同部分。 例如,如果不同的经理管理测试和部署作业,则具有单独的测试和生产阶段是有意义的。
- 一组 审批 与某个特定的作业或一组作业相关联。 您可以将这些作业分为不同的阶段以便进行审批。
- 管道具有需要长时间运行的作业。 可以将此类作业置于自己的阶段。
步骤
步骤是管道的最小构建块。 默认情况下,步骤在 作业中逐个运行。 步骤可以是 脚本 或 任务。
任务
任务是一个预打包的脚本或过程,使用一组输入抽象化,用于在管道中定义自动化。 有关可用任务,请参阅 Azure Pipelines 任务参考。 有关创建自定义任务的信息,请参阅 添加自定义管道任务扩展。
触发器
触发器是导致管道运行的事件。 可以手动触发管道,也可以按设置计划运行。 还可以触发管道,在推送到存储库、完成另一个生成或其他情况下自动运行。 有关详细信息,请参阅 指定触发管道的事件 和 经典发布触发器。
相关内容
- 审批和检查
- Azure Pipelines agents(Azure Pipelines 代理)
- Azure Pipelines 任务参考
- 触发管道的事件
- YAML 与经典管道