配置并行作业并支付费用

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

重要

从 Azure DevOps Server 2019 开始,你无需为发布中的自托管并发作业付费。 仅受你拥有的代理数的限制。

了解如何估算所需的并行作业数并为组织购买更多并行作业。

注意

我们暂时禁止为公共项目和新组织中的某些私人项目免费授予并行作业。 但是,你可以通过提交 请求来请求此授予。 现有组织和项目不受影响。 请注意,响应免费层请求通常需要 2-3 个工作日。 在某些时间段内,处理时间可能更长。

什么是并行作业?

定义管道时,可将其定义为作业集合。 当某个管道运行时,你可以运行多个作业作为该管道的一部分。 运行的每个作业会使用代理上运行的并行作业。 如果可供组织使用的并行作业不够,作业将会排队,并一个接一个地运行。

在 Azure Pipelines 中,可以在 Microsoft 托管的基础结构上运行并行作业,也可以在自己的(自托管)基础结构上运行并行作业。 每个并行作业都允许你一次在组织中运行单个作业。 如果使用本地服务器,则无需为并行作业付费。 并行作业的概念仅适用于 Azure DevOps Services。

Microsoft 托管的并行作业与自托管并行作业

如果要在 Microsoft 管理的计算机上运行作业,请使用 Microsoft 托管的并行作业。 作业将在 Microsoft 托管代理上运行。

如果希望 Azure Pipelines 协调生成和发布,但使用自己的计算机运行它们,请使用自托管并行作业。 对于自托管并行作业,首先要在计算机上部署自托管代理。 可在组织中注册任意数量的自托管代理。

并行作业的成本是多少?

默认情况下,我们在每个组织中为托管作业和自托管并行作业提供免费的服务层。 并行作业是在组织级别购买的,由组织中的所有项目共享。

对于 Microsoft 托管的并行作业,可以获取最多 10 个免费的 Microsoft 托管的并行作业,这些作业在公共项目中每次最多可以运行 360 分钟(6 小时)。 创建新的 Azure DevOps 组织时,默认情况下不会向你提供此免费授权。

对于专用项目,可以获得一个每次最多可以运行 60 分钟的免费作业。 创建新的 Azure DevOps 组织时,默认情况下可能并不总是向你提供此免费授权。

若要请求公共或专用项目的免费授权,请提交请求

注意

我们需要花费 2-3 个工作日来答复你的免费层请求。 在某些时间段内,处理时间可能更长。

公共项目的并行作业没有时间限制,专用项目每月有 30 小时的时间限制。

并行作业数 时间限制
公共项目 最多 10 个免费的 Microsoft 托管的并行作业,每次最多可以运行 360 分钟(6 小时) 每月没有总时间限制
专用项目 一个每次最多可以运行 60 分钟的免费作业 每月 1,800 分钟(30 小时)

当免费层不够用时,可以为每个并行作业支付额外的容量。 有关每个并行作业的定价成本,请参阅 Azure DevOps 定价页。 付费并行作业将移除每月时间限制,并允许你运行每个作业最多 360 分钟(6 小时)。

购买 Microsoft 托管的并行作业

新组织对 Microsoft 托管代理的最大并行作业数限制为 25 个。 请联系客户支持以请求提高限制,但视组织区域中的容量而定。

购买第一个 Microsoft 托管的并行作业时,组织中的并行作业数仍为 1。 若要能够同时运行两个作业,如果当前位于免费层,则需要购买两个并行作业。 第一次购买仅移除第一个作业的时间限制。

提示

如果管道超过最大作业超时,请尝试将管道拆分为多个作业。 有关作业的详细信息,请参阅在管道中指定作业

我需要多少个并行作业?

当已排队的生成数和发布数超过了并行作业数时,生成和发布队列会越来越长。 如果发现队列延迟时间太长,可以根据需要购买额外的并行作业。 可以使用多种方法检查并行作业限制和作业历史记录。

使用池消耗情况报告查看作业历史记录

可以使用代理池的“分析”选项卡上提供的“池消耗量”报告来查看过去 30 天内与并行作业一起绘制的正在运行的作业和已排队作业的图表。 如果已排队作业出现积压,并且正在运行的作业处于并发限制,则可能需要购买更多并行作业。 有关详细信息,请参阅池消耗情况报告

Microsoft 托管代理池历史图表

直接检查并行作业设置

首先查看组织当前使用的并行作业数,找出所需的并行作业数:

  1. 浏览到“组织设置”>“管道”>“并行作业”。

    组织设置中的并行作业的位置。

    URL 示例:https://{Your_Organization}/_admin/_buildQueue?_a=resourceLimits

  2. 查看组织中可用的并行作业的最大数量。

  3. 选择“查看正在进行的作业”可显示正在使用可用并行作业或排队等待并行作业空闲的所有生成和发布。

估算成本

简单的经验法则是:预计组织中每四到五个用户就需要一个并行作业。

在以下情况中,你可能需要多个并行作业:

  • 如果有多个团队且每个团队都需要 CI,则每个团队可能都需要一个并行作业。
  • 如果 CI 触发器应用于多个分支,则每个活动分支可能都需要一个并行作业。
  • 如果使用一个组织或服务器开发多个应用程序,则可能需要额外的并行作业:一个同时部署每个应用程序的作业。

如何购买更多并行作业?

若要购买更多并行作业,请执行以下操作:

购买并行作业

在组织设置中购买更多并行作业:

  1. 登录组织 (https://dev.azure.com/{yourorganization})。

  2. 选择 齿轮图标 组织设置

    打开组织设置

  3. 在“管道”下选择“并行作业”,然后为 Microsoft 托管作业选择“更改”或者为自托管作业选择“更改”。

    管理并行作业图片

  4. 输入所需的数量,然后单击“保存”。

  5. 可能需要长达 30 分钟才能使用其他并行作业。

有关每个并行作业的定价成本,请参阅 Azure DevOps 定价页

如何更改组织的并行作业数量?

  1. 登录组织 (https://dev.azure.com/{yourorganization})。

  2. 选择 齿轮图标 组织设置

    打开组织设置

  3. 在“管道”下选择“并行作业”,然后选择“购买并行作业”,或者为 Microsoft 托管作业选择“更改”或为自托管作业选择“更改”。

    管理并行作业的图片

  4. 输入 Microsoft 托管作业或自托管作业的更小或更大数量,然后选择“保存”。

重要

不支持托管 XAML 生成控制器。 如果组织需要运行 XAML 生成,请设置本地生成服务器并切换到本地生成控制器。 有关托管 XAML 模型的详细信息,请参阅 XAML 入门

  1. 新的并行作业数最多可能需要 30 分钟才能激活。

如何在 DevOps Services 中使用并行作业?

假设组织只有一个 Microsoft 托管的并行作业。 此作业允许该组织中的用户一次只运行一个作业。 触发了更多作业时,这些作业将排队,等待上一个作业完成。

如果使用发布或 YAML 管道,则运行仅在主动部署到一个阶段时使用并行作业。 当发布正在等待批准或手动干预时,它不使用并行作业。

使用发布管道运行服务器作业或部署到部署组时,不会使用任何并行作业。

并行作业的简单示例

  1. FabrikamFiber CI 生成 102(主分支)首先开始。
  2. FabrikamFiber 发布 11 的部署由 FabrikamFiber CI 生成 102 的完成触发。
  3. 触发 FabrikamFiber CI 生成 101(功能分支)。 该生成还无法开始,因为发布 11 的部署还在进行中。 因此,该生成一直处于排队状态。
  4. 发布 11 等待批准。 Fabrikam CI 生成 101 启动,因为等待批准的发布不使用并行作业。
  5. 发布 11 获得批准。 它仅在 Fabrikam CI 生成 101 完成后恢复。

常见问题解答

如何才能获取公共项目的免费层?

如果满足以下两个条件,则有资格享受公共项目的免费层限制:

  • 管道是 Azure Pipelines 公共项目的一部分。
  • 管道从 GitHub 或 Azure DevOps 组织中的同一个公共项目生成公共存储库。

有关如何申请授予免费并行作业的信息,请参阅并行作业(Microsoft 托管)的费用是多少?

是否可以将并行作业分配给特定项目或代理池?

目前,无法将并行作业容量分隔或单独分配到特定的项目或代理池。 例如:

  • 在组织中购买两个并行作业。
  • 在第一个项目中启动两个运行,这两个并行作业都会被使用。
  • 在第二个项目启动运行。 直到第一个项目中的其中一个运行完成后,该运行才会启动。

在可以使用 Azure Pipelines 的人员方面,有没有限制?

使用 Azure Pipelines 时,你可以根据需要拥有任意数量的用户。 使用 Azure Pipelines 并不按用户收费。 拥有基本和利益干系人访问权限的用户可以根据需要创建所需数量的生成和发布。

就我可以创建的生成和发布管道的数量而言,有任何限制吗?

不是。 你可以免费创建数百甚至数千个管道。 可以免费注册任意数量的自托管代理。

作为 Visual Studio Enterprise 订阅者,我是否可以获得 TFS 和 Azure Pipelines 的其他并行作业?

是。 Visual Studio Enterprise 订阅者可以在 Team Foundation Server 2017 或更高版本中获取一个并行作业,并且可以在其所属的每个 Azure DevOps Services 组织中获取一个自托管并行作业。

按分钟支付托管代理费用的选项呢?

我们的一些早期客户仍在采用按分钟的托管代理计划。 在此计划中,在免费层后的前 20 小时支付 0.05 美元/分钟,在 20 小时后支付 0.01 美元/分钟。 由于此计划中存在以下限制,可能需要考虑迁移到并行作业模型:

  • 使用按分钟计划时,一次只能运行一个作业。
  • 如果一个月内运行生成的付费时间超过 14 个小时,按分钟计划可能比并行作业模型更划算。

我对我的组织使用 XAML 生成控制器。 如何对这些收费?

可以为组织中的每个自托管并行作业注册一个 XAML 生成控制器。 你的组织至少会获得一个免费的自托管并行作业,因此你可以注册一个 XAML 生成控制器,无需额外付费。 对于每个额外的 XAML 生成控制器,需要额外的自托管并行作业。