配置并行作业并支付费用

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

本文介绍了 Team Foundation Server 2018 (TFS 2018) 或更高版本中 Azure Pipelines 的许可模型。 只要你拥有 TFS 客户端访问许可证 (CAL),我们就不会向你收取 Team Foundation Build (TFBuild) 费用。

TFS 并行作业使你能够在项目集合中一次运行单个发布。 可以在集合中保留数百甚至数千个发布作业。 但是,若要一次运行多个发布,需要更多并行作业。

Team Foundation Server 中的每个集合都包含一个免费的并行作业。 Team Foundation Server 中的每个 Visual Studio Enterprise 订阅者都会贡献一个并行作业。

可以从 Visual Studio Marketplace 购买更多专用作业。 Microsoft 托管代理的最大并行作业数限制为 25 个。

重要

从 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 完成后恢复。

如何使用并行作业?

例如,Team Foundation Server 中的集合有一个并行作业。 这样,该集合中的用户一次只能运行一个发布。 触发了更多发布时,它们会排入队列并等待前一个发布完成。

发布仅在被部署到一个阶段时使用并行作业。 等待审批不会使用并行作业。 但是,在部署中等待手动干预确实会占用并行作业。

并行作业的简单示例

  1. 首先部署 FabrikamFiber 发布 10。
  2. FabrikamFiber 发布 11 的部署在发布 10 的部署完成后开始。
  3. 发布 12 将排入队列,直到发布 11 的部署处于活动状态。
  4. 发布 11 等待审批。 发布 12 的部署开始,因为等待批准的发布不使用并行作业。
  5. 即使发布 11 获得批准,它也只有在发布 12 的部署完成后才会继续。
  6. 发布 11 正在等待手动干预。 发布 13 无法启动,因为手动干预状态会使用并行作业。

在 TFS 2017.1 及更高版本中,手动干预不会使用作业。

单个发布中的并行处理

单个发布中的并行处理不需要额外的并行作业。 只要有足够的代理,就可以同时部署到发布中的多个阶段。

例如,假设集合有三个并行作业。 可以同时运行三个以上的代理,以在发布中执行并行操作。 例如,请注意,有四个或五个代理正在从三个并行作业主动运行作业。

具有其他代理的并行作业示例

组织中的并行作业

例如,下面是一个拥有多个 Team Foundation Server 的组织。 他们的两个用户具有 Visual Studio Enterprise 订阅,只要客户将其作为用户添加到这两个服务器,他们就可以在所有本地服务器和每个集合中同时使用这些订阅,如下所述。

组织中的并行作业示例

确定所需的并行作业数

首先,你可以查看你的团队是否可以使用你默认拥有的并行作业。 当已排队的发布数超过了并行作业数时,发布队列会越来越长。 如果发现队列延迟时间太长,可以根据需要购买额外的并行作业。

简单估算

简单的经验法则是:预计服务器中每 10 个用户需要一个并行作业。

详细估算

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

  • 如果你有多个团队,如果每个团队都需要 CI 生成,并且每个 CI 生成都配置为触发发布,则每个团队可能都需要一个并行作业。

  • 如果在一个集合中开发多个应用程序,则可能需要额外的并行作业:一个作业同时部署每个应用程序。

使用 Visual Studio Enterprise 订阅权益

具有 Visual Studio Enterprise 订阅的用户将分配到 TFS 实例的用户中心中的 VS Enterprise 访问级别。 其中每个用户向每个集合贡献一个额外的并行作业。 可以在组织中的所有 Team Foundation Server 上使用此权益。

  1. 浏览到“服务器设置”、“访问级别”。

    控制面板服务器与企业访问级别

    URL 示例:http://{your_server}:8080/tfs/_admin/_licenses

  2. 在页面左侧,单击“VS Enterprise”。

  3. 添加具有 Visual Studio Enterprise 订阅的用户。

添加这些用户后,其他许可证将显示在下面所述的资源限制页上。

购买更多并行作业

如果需要运行更多并行发布,可以从 Visual Studio 市场购买更多专用作业。 由于目前无法直接从市场为 TFS 实例购买并行作业,因此必须先为 Azure DevOps 组织购买并行作业。 为 Azure DevOps 组织购买专用作业后,可在下面所述的资源限制页上手动输入购买的并行作业数。

查看并管理并行作业

  1. 浏览到“集合设置”、“管道”、“资源限制”。

    设置资源限制

    URL 示例:http://{your_server}:8080/tfs/DefaultCollection/_admin/_buildQueue?_a=resourceLimits

  2. 查看或编辑购买的并行作业数。

常见问题解答

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

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

  • 管道是 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 生成控制器,需要额外的自托管并行作业。

谁可以使用系统?

具有 TFS CAL 的 TFS 用户可以根据需要创作任意数量的发布。

若要批准发布,不需要 TFS CAL;具有利益干系人访问权限的任何用户都可以批准或拒绝发布。

在 TFS 上是否需要并行作业来运行生成?

否,在 TFS 上,不需要并行作业来运行生成。 可以同时运行任意数量的生成,无需额外付费。

在 TFS 2017 之前的版本中是否需要并行作业来管理发布?

不是。

在 TFS 2015 中,只要用户具有 TFS CAL,他们就可以在试用模式下免费管理发布。 我们将其称为“试用模式”,以指示我们最终将收取管理发布的费用。 尽管有这个标签,但我们完全支持在 TFS 2015 中管理发布。