並列ジョブの構成と支払い

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 並列ジョブ を使用すると、プロジェクト コレクションで一度に 1 つのリリースを実行できます。 コレクションには、数百または数千のリリース ジョブを保持できます。 ただし、一度に複数のリリースを実行するには、追加の並列ジョブが必要です。

Team Foundation Server のすべてのコレクションには、1 つの無料並列ジョブが含まれています。 Team Foundation Server のすべてのVisual Studio Enterpriseサブスクライバーは、1 つの追加の並列ジョブを提供します。

Visual Studio Marketplace から追加のプライベート ジョブを購入できます。 Microsoftホステッド エージェントには、最大 25 個の並列ジョブがあります。

重要

Azure DevOps Server 2019 以降では、リリースでセルフホステッド同時実行ジョブの料金を支払う必要はありません。 使用しているエージェントの数によってのみ制限されます。

必要な並列ジョブの数を見積もり、組織の並列ジョブをさらに購入する方法について説明します。

注意

Microsoft では、新しい組織のパブリック プロジェクトと特定のプライベート プロジェクトに対して、並列ジョブの無料付与を一時的に無効にしました。 ただし、お客様はリクエストを提出して、この付与を依頼することができます。 既存の組織とプロジェクトは影響を受けません。 Free レベルのリクエストへの対応には 2 から 3 営業日かかるので、ご注意ください。

並列ジョブとは

パイプラインを定義するときは、 ジョブのコレクションとして定義できます。 パイプラインを実行すると、そのパイプラインの一部として複数のジョブを実行できます。 実行中の各ジョブは、エージェントで実行される 並列ジョブ を使用します。 組織で使用できる十分な並列ジョブがない場合、ジョブはキューに入れられ、順番に実行されます。

Azure Pipelines では、Microsoftホステッド インフラストラクチャまたは独自の (セルフホステッド) インフラストラクチャで並列ジョブを実行できます。 各並列ジョブを使用すると、組織内で一度に 1 つのジョブを実行できます。 オンプレミス サーバーを使用している場合は、並列ジョブの料金を支払う必要はありません。 並列ジョブの概念は、Azure DevOps Servicesにのみ適用されます。

Microsoftホスト型とセルフホステッド並列ジョブ

Microsoftが管理するマシンでジョブを実行する場合は、Microsoftホストされた並列ジョブを使用します。 ジョブは、Microsoftホステッド エージェントで実行されます。

Azure Pipelines でビルドとリリースを調整し、独自のマシンを使用して実行する場合は、 セルフホステッド並列ジョブを使用します。 セルフホステッド並列ジョブの場合は、まず、 セルフホステッド エージェント をマシンにデプロイします。 これらのセルフホステッド エージェントは、組織にいくつでも登録できます。

並列ジョブのコストはどのくらいですか?

既定では、ホストされる並列ジョブとセルフホステッド並列ジョブの両方に対して、すべての組織で 無料レベル のサービスを提供しています。 並列ジョブは組織レベルで購入され、組織内のすべてのプロジェクトで共有されます。

Microsoftホスト型並列ジョブの場合は、パブリック プロジェクトごとに最大 360 分 (6 時間) 実行できる、最大 10 個の無料のMicrosoftホスト型並列ジョブを取得できます。 新しい Azure DevOps 組織を作成する場合、この無料の付与は既定では付与されません。

プライベート プロジェクトの場合は、毎回最大 60 分間実行できる 1 つの無料ジョブを取得できます。 新しい Azure DevOps 組織を作成するときに、この無料付与が既定で付与されるとは限りません。

パブリック プロジェクトまたはプライベート プロジェクトの無料付与を要求するには、 要求を送信します

注意

Free レベルの要求に応答するには、2 から 3 営業日かかります。

パブリック プロジェクトの並列ジョブには時間制限はなく、プライベート プロジェクトの場合は 1 か月あたり 30 時間の制限があります。

並列ジョブの数 時間制限
パブリック プロジェクト 毎回最大 360 分 (6 時間) 実行できる、最大 10 個の無料のMicrosoftホスト型並列ジョブ 1 か月あたりの全体的な時間制限なし
プライベート プロジェクト 毎回最大 60 分間実行できる 1 つの無料ジョブ 1 か月あたり 1,800 分 (30 時間)

Free レベルで十分でなくなった場合は、並列ジョブごとに追加の容量を支払うことができます。 並列ジョブあたりの価格コストについては、 Azure DevOps の価格に関するページを参照してください。 有料の並列ジョブの場合、月単位の時間制限がなくなり、各ジョブを最大 360 分 (6 時間) 実行できるようになります。

ホストMicrosoft並列ジョブを購入します

新しい組織では、Microsoftホステッド エージェントの並列ジョブの最大数は 25 です。 組織のリージョンの容量に応じて、制限の引き上げを要求するには、サポートにお問い合わせください

最初のMicrosoftホスト型並列ジョブを購入すると、組織内の並列ジョブの数はまだ 1 つです。 2 つのジョブを同時に実行できるようにするには、現在 Free レベルにいる場合は、2 つの並列ジョブを購入する必要があります。 最初の購入では、最初のジョブの時間制限のみが削除されます。

ヒント

パイプラインがジョブの最大タイムアウトを超える場合は、パイプラインを複数のジョブに分割してみてください。 ジョブの詳細については、「 パイプラインでジョブを指定する」を参照してください。

必要な並列ジョブの数はいくつですか?

キューに登録されたビルドとリリースの数が、使用している並列ジョブの数を超えると、ビルド キューとリリース キューが長くなります。 キューの遅延が長すぎることがわかった場合は、必要に応じて追加の並列ジョブを購入できます。 並列ジョブの制限とジョブ履歴を確認するために使用できる方法はいくつかあります。

プール消費レポートを使用してジョブ履歴を表示する

エージェント プールの [分析] タブにある [プール消費量] レポートを使用すると、過去 30 日間の並列ジョブと共にグラフ化された実行中のジョブとキューに登録されたジョブのグラフを表示できます。 キューに入っているジョブのバックログがあり、実行中のジョブがコンカレンシー制限にある場合は、並列ジョブをさらに購入することをお勧めします。 詳細については、「 プール消費量レポート」を参照してください。

Microsoftホスト型エージェント プールの履歴グラフ

並列ジョブの設定を直接確認する

組織が現在使用している並列ジョブの数を最初に確認して、必要な並列ジョブの数を確認します。

  1. [組織の設定]>[パイプライン]>[リテンション期間] と [並列ジョブ] [並列ジョブ>] の順に参照します。

    組織の設定での並列ジョブの場所。

    URL の例: https://{your_organization}/_admin/_buildQueue?_a=resourceLimits

  2. 組織で使用できる並列ジョブの最大数を表示します。

  3. [ 進行中のジョブの表示 ] を選択すると、使用可能な並列ジョブをアクティブに使用しているビルドとリリース、または並列ジョブが使用可能になるのを待機しているキューに登録されているすべてのビルドとリリースが表示されます。

コストの見積もり

単純な経験則: 組織内の 4、5 人のユーザーごとに 1 つの並列ジョブが必要であると見積もります。

次のシナリオでは、複数の並列ジョブが必要になる場合があります。

  • 複数のチームがあり、それぞれが CI を必要とする場合は、チームごとに並列ジョブが必要になる可能性があります。
  • CI トリガーが複数のブランチに適用される場合は、アクティブなブランチごとに並列ジョブが必要になる可能性があります。
  • 1 つの組織またはサーバーを使用して複数のアプリケーションを開発する場合は、並列ジョブ (各アプリケーションを同時にデプロイするための並列ジョブ) が必要になる可能性があります。

並列ジョブ操作方法追加購入しますか?

並列ジョブをさらに購入するには:

並列ジョブの購入

組織の設定内でより多くの並列ジョブを購入する:

  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 によってホストされている並列ジョブが 1 つだけある組織について考えてみましょう。 このジョブを使用すると、その組織内のユーザーは一度に 1 つのジョブのみをまとめて実行できます。 追加のジョブがトリガーされると、そのジョブはキューに登録され、前のジョブが完了するまで待機します。

リリース パイプラインまたは YAML パイプラインを使用する場合、実行はステージにアクティブにデプロイされている場合にのみ並列ジョブを使用します。 リリースが承認または手動による介入を待機している間は、並列ジョブは使用されません。

リリース パイプラインを使用して サーバー ジョブ を実行したり 、デプロイ グループにデプロイ したりする場合、並列ジョブは使用されません。

並列ジョブの簡単な例

  1. FabrikamFiber CI Build 102 (メイン ブランチ) が最初に開始されます。
  2. FabrikamFiber リリース 11 のデプロイは、FabrikamFiber CI ビルド 102 の完了によってトリガーされます。
  3. FabrikamFiber CI Build 101 (機能ブランチ) がトリガーされます。 Release 11 のデプロイがアクティブになっているので、ビルドはまだ開始できません。 そのため、ビルドはキューに入れたままです。
  4. Release 11 では承認を待機します。 承認を待機しているリリースが並列ジョブを使用しないため、Fabrikam CI ビルド 101 が開始されます。
  5. Release 11 は承認されます。 Fabrikam CI Build 101 が完了した後にのみ再開されます。

並列ジョブはどのように使用されますか?

たとえば、Team Foundation Server のコレクションには 1 つの並列ジョブがあります。 これにより、そのコレクション内のユーザーは一度に 1 つのリリースのみを実行できます。 追加のリリースがトリガーされると、そのリリースはキューに登録され、前のリリースが完了するまで待機します。

リリースには、ステージにアクティブにデプロイされている場合にのみ並列ジョブが必要です。 承認を待機しても、並列ジョブは使用されません。 ただし、デプロイの途中で手動による介入を待機すると、並列ジョブが使用されます。

並列ジョブの簡単な例

  1. FabrikamFiber リリース 10 が最初にデプロイされます。
  2. FabrikamFiber リリース 11 のデプロイは、リリース 10 のデプロイが完了した後に開始されます。
  3. リリース 12 は、リリース 11 のデプロイがアクティブになるまでキューに入れられます。
  4. リリース 11 は承認を待ちます。 承認を待機しているリリースでは並列ジョブが使用されないため、リリース 12 のデプロイが開始されます。
  5. リリース 11 は承認されていますが、リリース 12 のデプロイが完了した後にのみ再開されます。
  6. リリース 11 は手動による介入を待機しています。 手動介入状態では並列ジョブが使用されるため、リリース 13 を開始できません。

手動による介入では、TFS 2017.1 以降ではジョブは使用されません。

1 つのリリース内での並列処理

1 つのリリース内での並列処理では、追加の並列ジョブは必要ありません。 十分なエージェントがある限り、リリース内の複数のステージに同時にデプロイできます。

たとえば、コレクションに 3 つの並列ジョブがあるとします。 リリース内で並列操作を実行するには、同時に 3 つ以上のエージェントを実行できます。 たとえば、4 つまたは 5 つのエージェントが 3 つの並列ジョブからジョブをアクティブに実行していることに注意してください。

追加のエージェントを含む並列ジョブの例

組織内の並列ジョブ

たとえば、複数の Team Foundation Servers を持つ組織を次に示します。 2 人のユーザーは、次に説明するように、顧客が両方のサーバーにユーザーとして追加する限り、すべてのオンプレミス サーバーと各コレクションで同時に使用できるVisual Studio Enterpriseサブスクリプションを持っています。

組織の並列ジョブの例

必要な並列ジョブの数を決定する

まず、チームが既定で取得した並列ジョブを使用して取得できるかどうかを確認できます。 キューに入っているリリースの数が並列ジョブの数を超えると、リリース キューは長くなります。 キューの遅延が長すぎることがわかった場合は、必要に応じて追加の並列ジョブを購入できます。

単純な見積もり

簡単な経験則: サーバー内の 10 人のユーザーごとに 1 つの並列ジョブが必要であると見積もります。

詳細な見積もり

次のシナリオでは、複数の並列ジョブが必要になる場合があります。

  • 複数のチームがある場合、各チームに CI ビルドが必要で、各 CI ビルドがリリースをトリガーするように構成されている場合は、チームごとに並列ジョブが必要になる可能性があります。

  • 1 つのコレクションで複数のアプリケーションを開発する場合は、並列ジョブ (各アプリケーションを同時にデプロイするための並列ジョブ) が必要になる可能性があります。

Visual Studio Enterprise サブスクリプション特典を使用する

Visual Studio Enterprise サブスクリプションを持つユーザーは、TFS インスタンスの Users ハブVS Enterpriseアクセス レベルに割り当てられます。 これらの各ユーザーは、各コレクションに 1 つの追加の並列ジョブを提供します。 この特典は、組織内のすべての Team Foundation Server で使用できます。

  1. [サーバー設定]、[アクセス レベル] の順に参照します。

    コントロール パネル サーバーとエンタープライズ アクセス レベル

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

  2. ページの左側にある [VS Enterprise] をクリックします。

  3. Visual Studio Enterprise サブスクリプションを持つユーザーを追加します。

これらのユーザーを追加すると、以下で説明するリソース制限ページに追加のライセンスが表示されます。

追加の並列ジョブを購入する

並列リリースをさらに実行する必要がある場合は、 Visual Studio マーケットプレースから追加のプライベート ジョブを購入できます。 現時点では、TFS インスタンスの並列ジョブを Marketplace から直接購入する方法がないため、まず Azure DevOps 組織の並列ジョブを購入する必要があります。 Azure DevOps 組織のプライベート ジョブを購入した後、以下で説明するリソース制限ページで、購入した並列ジョブの数を手動で入力します。

並列ジョブの表示と管理

  1. [コレクションの設定]、[パイプライン]、[リソースの制限] の順に参照します

    リソースの制限を設定する

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

  2. 購入した並列ジョブの数を表示または編集します。

よく寄せられる質問

フリーティアの公共プロジェクトの資格を得るにはどうすればよいですか?

次の両方の条件を満たしている場合は、パブリック プロジェクトの Free レベルの制限を受けます。

  • パイプラインは Azure Pipelines パブリック プロジェクトの一部です。
  • パイプラインは、GitHub または Azure DevOps 組織の同じパブリック プロジェクトからパブリック リポジトリを構築します。

無料の並列ジョブの許可を申請する方法については、「並列ジョブのコスト (Microsoft ホストされる)について」を参照してください。

特定のプロジェクトまたはエージェント プールに並列ジョブを割り当てることはできますか?

現在、並列ジョブの容量を特定のプロジェクトまたはエージェント プールにパーティション分割したり、専用にする方法はありません。 次に例を示します。

  • 組織で 2 つの並列ジョブを購入します。
  • 最初のプロジェクトで 2 つの実行を開始すると、両方の並列ジョブが使用されます。
  • 2 番目のプロジェクトで実行を開始します。 最初のプロジェクトのいずれかの実行が完了するまで、その実行は開始されません。

Azure Pipelines を使用できるユーザーに関する制限はありますか?

Azure Pipelines を使用する場合、必要な数のユーザーを指定できます。 Azure Pipelines の使用に対するユーザーごとの料金は発生しません。 基本的なアクセス権と利害関係者アクセス権の両方を持つユーザーは、必要な数のビルドとリリースを作成できます。

作成できるビルドおよびリリース パイプラインの数に制限はありますか?

いいえ。 数百または数千のパイプラインを無料で作成できます。 任意の数のセルフホステッド エージェントを無料で登録できます。

Visual Studio Enterprise サブスクライバーとして、TFS と Azure Pipelines の追加の並列ジョブを取得できますか?

はい。 Visual Studio Enterpriseサブスクライバーは、Team Foundation Server 2017 以降で 1 つの並列ジョブを取得し、メンバーである各Azure DevOps Services組織で 1 つのセルフホステッド並列ジョブを取得します。

ホステッド エージェントの料金を分単位で支払うオプションはどうでしょうか。

以前の顧客の中には、ホストされているエージェントの 1 分あたりのプランがまだ残っています。 このプランでは、Free レベルの後の最初の 20 時間は $0.05/分、20 時間後は $0.01/分を支払います。 このプランでは次の制限があるため、並列ジョブ モデルへの移行を検討することをお勧めします。

  • 分単位のプランを使用している場合、一度に実行できるジョブは 1 つのみです。
  • 月に 14 時間を超える有料時間にビルドを実行する場合、分単位のプランは、並列ジョブ モデルよりもコスト効率が低くなる可能性があります。

自分の組織で XAML ビルド コントローラーを使用しています。 料金はどのように請求されますか?

組織内のセルフホステッド並列ジョブごとに 1 つの XAML ビルド コントローラーを登録できます。 組織は少なくとも 1 つの無料のセルフホステッド並列ジョブを取得するため、1 つの XAML ビルド コントローラーを追加料金なしで登録できます。 追加の XAML ビルド コントローラーごとに、追加のセルフホステッド並列ジョブが必要になります。

誰がシステムを使用できますか?

TFS CAL を使用する TFS ユーザーは、必要な数のリリースを作成できます。

リリースを承認するために、TFS CAL は必要ありません。 利害関係者アクセス 権を持つユーザーは、リリースを承認または拒否できます。

TFS でビルドを実行するために並列ジョブが必要ですか?

いいえ。TFS では、ビルドを実行するために並列ジョブは必要ありません。 追加料金なしで、必要な数のビルドを同時に実行できます。

TFS 2017 より前のバージョンでリリースを管理するには、並列ジョブが必要ですか?

いいえ。

TFS 2015 では、ユーザーが TFS CAL を持っている限り、試用版モードで追加料金なしでリリースを管理できます。 リリースの管理に最終的に課金されることを示すために、これを "試用版モード" と呼んでいます。 このラベルにもかかわらず、TFS 2015 でのリリースの管理は完全にサポートされています。