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

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

この記事では、Team Foundation Server 2017 (TFS 2017) 以降の Azure Pipelines のライセンスモデルについて説明します。 TFS クライアントアクセスライセンス (CAL) がある限り、Team Foundation ビルド (TFBuild) に対して課金されることはありません。

TFS 並列ジョブ を使用すると、プロジェクトコレクション内で一度に1つのリリースを実行できます。 数百または数千ものリリースジョブをコレクションに保持できます。 ただし、複数のリリースを同時に実行するには、追加の並列ジョブが必要です。

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

Visual Studio Marketplace から追加のプライベートジョブを購入できます。

重要

Azure DevOps Server 2019 以降では、自己ホスト型の同時実行ジョブに対して、リリースで料金を支払う必要はありません。 自分が所有しているエージェントの数によってのみ制限されます。

必要な並列ジョブの数を推定し、組織に対してより多くの並列ジョブを購入する方法について説明します。

注意

パブリックプロジェクトと新しい組織の特定のプライベートプロジェクトに対して、並行ジョブの無料許可を一時的に無効にしました。 ただし、 要求を送信することによって、この許可を要求することができます。 既存の組織およびプロジェクトには影響しません。 Free レベルの要求に応答するには、2-3 営業日かかることにご注意ください。

並列ジョブとは

パイプラインを定義するときに、 ジョブのコレクションとして定義できます。 パイプラインを実行すると、そのパイプラインの一部として複数のジョブを実行できます。 実行中の各ジョブは、エージェントで実行される 並列ジョブ を使用します。 組織で使用できる並列ジョブが不足している場合、ジョブはキューに登録され、その後1つずつ実行されます。

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

Microsoft がホストする並列ジョブと自己ホスト型並列ジョブ

Microsoft が管理するコンピューターでジョブを実行する場合は、 microsoft がホストする並列ジョブ を使用します。 ジョブは、 Microsoft がホストするエージェントで実行されます。

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

並列ジョブの料金はいくらですか?

ホストされる並列ジョブと自己ホスト型の並列ジョブの両方について、既定では、すべての組織に無料のサービス レベル が提供されます。 並列ジョブは組織レベルで購入され、組織内のすべてのプロジェクトで共有されます。

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

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

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

注意

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

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

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

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

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

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

ヒント

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

TFS 2015 では並列ジョブは必要ですか。 短い回答: いいえ。 [詳細]

必要な並列ジョブの数を確認できます。

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

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

エージェントプールの [分析] タブにある プール消費レポート を使用して、過去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. 目的の金額を入力し、 を保存 します

並列ジョブあたりの価格コストについては、価格に関するページ Azure DevOpsを参照してください

操作方法の並列ジョブの数を変更する必要がありますか?

  1. 組織にサインインします ( https://dev.azure.com/{yourorganization} )。

  2. 歯車アイコン ![ 組織の設定] を選択します

    組織の設定を開く

  3. [パイプライン] で [ 並列ジョブ]を選択し、[並列ジョブの購入] または[Microsoft でホストされているジョブの変更] または [セルフホステッド ジョブの変更] を選択します。

    並列ジョブの管理のイメージ

  4. Microsoft ホステッド ジョブまたはセルフホステッド ジョブの数量を少なくするか、それより多く入力し、 [保存] を 選択します

重要

ホストされている XAML ビルド コントローラーはサポートされていません。 XAMLビルドを実行する必要がある組織がある場合は、オンプレミスのビルドサーバーを設定し、オンプレミスのビルド コントローラーに切り替えます。 ホストされている XAML モデルの詳細については、「XAML を使用した概要 を参照してください

並列ジョブは、並列ジョブでどのように使用DevOps Services?

Microsoft がホストする並列ジョブが 1 つのみである組織を考え出します。 このジョブを使用すると、その組織内のユーザーは一度に 1 つのジョブのみをまとめて実行できます。 追加のジョブがトリガーされると、キューに入れられます。前のジョブが終了するまで待機します。

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

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

並列ジョブの簡単な例

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

並列ジョブの使用方法

たとえば、1 つのコレクションに 1 つのTeam Foundation Serverジョブがあります。 これにより、そのコレクション内のユーザーは一度に 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 サーバーを持つ組織を次に示します。 2 人のユーザーには、すべてのオンプレミス サーバーと各コレクションで同時に使用できる Visual Studio Enterprise サブスクリプションがあります。ユーザーがユーザーとして両方のサーバーに追加されている限り、以下で説明します。

組織の並列ジョブの例

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

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

単純な見積もり

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

詳細な見積もり

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

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

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

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

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

  1. [サーバー設定 ] 、 [アクセス****レベル] に移動します

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

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

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

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

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

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

より多くの並列リリースを実行する必要がある場合は、Visual Studio Marketplace から追加の プライベート ジョブを購入できます。 現時点では、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 番目のプロジェクトで実行を開始します。 その実行は、最初のプロジェクトの実行の 1 つが完了するまで開始されません。

アプリケーションを使用できるユーザーに制限Azure Pipelines。

アプリケーションを使用する場合は、必要な数のユーザー Azure Pipelines。 ユーザーごとの課金は、ユーザーごとに行Azure Pipelines。 基本的なアクセス権 と利害関係者アクセス権の両方を持 つユーザーは、必要な数のビルドとリリースを作成できます。

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

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

サブスクライバーとしてVisual Studio Enterprise TFS とデータ の追加の並列ジョブを取得Azure Pipelines?

はい。 Visual Studio Enterpriseサブスクライバーは 、Team Foundation Server 2017 以降で 1 つの並列ジョブを取得し、メンバーである各 Azure DevOps Services 組織で 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 でのリリースの管理は完全にサポートされています。