次の方法で共有


Azure DevOps Server のアーキテクチャの概要

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

デプロイを最適に計画して管理するには、まず Azure DevOps Server の基になるアーキテクチャを理解する必要があります。 アーキテクチャを理解すると、デプロイの全体的な正常性を維持し、開発チームが必要とするサーバーとサービスの全体的な可用性を確保するのに役立ちます。

Azure DevOps Server は、1 つのサーバー上に複数の方法でデプロイできます。多くのサーバー上。または 1 つのドメインまたはワークグループ内、または複数のドメインにまたがっています。 または、デプロイのすべてのサーバー要素が Microsoft によってホストされている Azure DevOps Services を使用することもできます。 アーキテクチャを理解することは、ビジネス ニーズを満たす可能性が最も高いトポロジを決定するのに役立ちます。 トポロジの選択に関係なく、Azure DevOps Server の基になるアーキテクチャを理解すれば、物理要件と論理要件をより適切に管理できます。 この記事では、さまざまなアーキテクチャの簡単な概要と、デプロイ例に関する詳細情報へのリンクを示します。 また、ローカル デプロイのサービス、データベース、構成情報、およびネットワーク ポートとプロトコルに関する技術情報も提供します。

Azure DevOps Server のアーキテクチャと、それがデプロイにどのように影響するかを理解するには、次の点を考慮する必要があります。

  • Azure DevOps の論理アプリケーション、データ、クライアント層、およびアプリケーション層とデータ層に 1 つ以上のサーバーを使用するかどうか、または Azure DevOps Services を使用してクラウドでホストするアプリケーション層とデータ層のどちらを使用するか
  • これらの層をホストする物理サーバーまたは仮想サーバーの場所
  • Team Foundation Build と、環境内で実行されるビルド コンピューターの数と場所 (開発プラクティスをサポートするために必要な数、または Azure Pipelines クラウド サービスを使用してソフトウェア アプリケーションをビルドおよびデプロイするかどうかなど)
  • Azure DevOps プロキシ サーバーの潜在的なニーズ

さらに、これらのエンティティ間の相互作用を考慮する必要があります。 たとえば、ホストされている Azure DevOps Server サービスを使用する場合は、クライアントがポート 443 でサービスにアクセスできることを確認する必要があります。 Azure DevOps Server をローカルにデプロイする場合は、Azure DevOps Server で使用される Web サービス、データベース、オブジェクト モデルを把握しておく必要があります。 また、Azure DevOps Server で既定で使用されるネットワーク ポートとプロトコル、およびカスタマイズできるネットワーク ポートを把握する必要があります。 最後に、Azure DevOps Server で設定する必要があるアクセス許可と、デプロイが依存するコンポーネントとプログラムを理解する必要があります。

Azure DevOps Server は、独自のサービスに加えて、機能するために他のサービスに依存しています。 これらのサービスの詳細については、「 Azure DevOps Server の概念Azure DevOps Server データ ウェアハウスのコンポーネント」を参照してください。 インストールの要件と依存関係の詳細については、 Azure DevOps Server インストール ガイドを参照してください。

重要

Microsoft サポートから指示されている場合、またはデータベースを手動でバックアップするために説明されている手順に従っている場合を除き、Azure DevOps Server データベースを手動で変更しないでください。 その他の変更により、サービス契約が無効になることがあります。

Azure DevOps Services

Azure DevOps Services

Microsoft では、Azure DevOps Server のすべてのサーバー側の側面をホストできる Azure DevOps Services を使用するオプションを提供しています。 ソース コード、作業項目、ビルド構成、チーム機能はすべてクラウドでホストされます。 アーキテクチャの観点からは、これは Azure DevOps Server の使用を大幅に簡素化します。考慮する必要があるアーキテクチャの唯一の側面は、クライアント コンポーネントとそのインターネット アクセスです。

Azure DevOps Services を使用する場合は、Web ブラウザーを使用して、Microsoft アカウントを使用してサービスに接続します。 プロジェクトを作成し、メンバーをチームに追加し、ローカルにインストールされた Azure DevOps Server と同様に作業できます。サーバーを管理するオーバーヘッドは発生しません。 Azure DevOps Services は、クラウド内でアプリケーション層、データ層、およびビルド サーバーをホストします。

クラウド サービスとオンプレミスのデプロイの詳細については、 Azure DevOps Services と Azure DevOps Server を確認してください。

オブジェクト モデル

ホストされているアーキテクチャまたはローカルにデプロイされたアーキテクチャを使用すると、サーバーまたはクライアント オブジェクト モデルに基づくアプリケーションを記述することで、Azure DevOps の機能を拡張できます。 すべての展開の種類で、クライアント機能を拡張するアプリケーションを作成できます。 ただし、サーバー機能を拡張する場合は、アプリケーション層サーバーでアプリケーションを実行する必要があります。 クライアント機能を拡張するには、チーム エクスプローラーと同じコンピューターでアプリケーションを実行する必要があります。

Azure DevOps Server オブジェクト モデル

ローカルデプロイ用の Web サービスとデータベース

Azure DevOps Server には、Azure DevOps の論理アプリケーション、データ、クライアント層をホストするサーバーに個別にインストールして構成する一連の Web サービスとデータベースが含まれています。 タスク ボードやバックログ チームベースの機能など、一部の機能は完全に Web ベースであり、クライアント側の Web ベースのサービスである Web ポータルを介してのみアクセスされます。 バージョン管理機能などの他の機能には、Web ポータルまたはクライアント アプリケーションを介してアクセスできます。 次の図は、Azure DevOps Server のローカル デプロイ用の Web サービス、アプリケーション、データベースの概要を示しています。

Azure DevOps Server のメイン サービス レベル

オプションの Azure DevOps Server サービス

Azure DevOps Server クライアント

コレクション レベルのサービス

コレクション レベルのサービスは、プロジェクト コレクションのレベルでの操作の機能を提供します。 これらのサービスの一部を使用して、Azure DevOps Server を拡張するアプリケーションを作成できます。 Azure DevOps Server 用のアプリケーションの作成の詳細については、「拡張機能の 開発」を参照してください。

一部のサービスは、複数のレベルで表示されます。 たとえば、Registry サービスはコレクション レベルとサーバー レベルで機能し、両方の一覧に表示されます。

フレームワーク サービス:

  • レジストリ サービス
  • 登録サービス (以前のバージョンの Azure DevOps Server との互換性のため)
  • 不動産サービス
  • イベント サービス
  • セキュリティ サービス
  • 位置情報サービス
  • Identity Management サービス
  • バージョン 管理 Web サービス
  • 作業項目追跡 Web サービス
  • Team Foundation Build Web サービス
  • Lab Management Web サービス
  • VMM 管理 Web サービス
  • テスト エージェント コントローラー Web サービス

サーバー レベルのサービス

サーバー レベルのサービス (アプリケーション レベルのサービスとも呼ばれます) は、Azure DevOps Server をソフトウェア アプリケーションとして操作するための機能を提供します。 これらのサービスの一部を使用して、Azure DevOps Server を拡張するアプリケーションを作成できます。

フレームワーク サービス:

  • レジストリ サービス
  • イベント サービス
  • Project Collection サービス
  • プロパティ サービス
  • セキュリティ サービス
  • 位置情報サービス
  • Identity Management サービス
  • 管理サービス
  • コレクション管理サービス
  • カタログサービス

データ層

データ層には、データ、ストアド プロシージャ、およびその他の関連するロジックが含まれます。 Azure DevOps Services を使用する場合、データ層は SQL Server Azure を使用してホストされます。 Azure DevOps Server のローカル デプロイでは、論理データ層は SQL Server 内の次の運用ストアで構成されます。 これらのストアは、1 つの物理サーバー上にあるか、多数のサーバーに分散されている可能性があります。 これらの運用ストアの一部を使用して、Azure DevOps Server を拡張するアプリケーションを作成できます。

  • 構成データベース (TFS_Configuration)
  • アプリケーション ウェアハウス (TFS_Warehouse)
  • Analysis Services データベース (TFS_Analysis)
  • プロジェクト コレクションのデータベース (TFS_CollectionName)

次の表に、Azure DevOps Server がローカル デプロイで使用するデータベースの一覧を示します。 特に明記されていない限り、この一覧のすべてのデータベースを、インストールされている元のサーバーとインスタンスから移動し、別のサーバーまたはインスタンスに復元できます。

データベース名 説明 サーバー
TFS_Configuration このデータベースには、リソースのカタログと Azure DevOps Server の構成情報が格納されます。 このデータベースには、Azure DevOps Server の運用ストアが含まれています。 Azure DevOps Server のインストールと構成時に使用される SQL Server のインスタンス。
TFS_Warehouse このデータベースには、レポートのデータが格納されます。 Azure DevOps Server のインストールと構成時に使用される SQL Server のインスタンス。
TFS_Analysis この多次元データベースには、プロジェクト コレクションから集計されたデータが格納されます。 SQL Server Analysis Services のインストールと構成時に使用される SQL Server のインスタンス。
プロジェクト コレクションのデータベース プロジェクト コレクションごとに 1 つのデータベース。そのコレクション内のすべてのプロジェクトのデータが格納されます。 Azure DevOps Server と互換性のある SQL Server のインスタンス。

クライアント層

クライアント層は、サーバー オブジェクト モデルを介してアプリケーション層と通信し、その層に一覧表示されているのと同じ Web サービスを使用します。 これは、Azure DevOps Server をローカルにデプロイするか、Azure DevOps Services を使用するかに関係なく当てはまります。 クライアント層は、そのモデルに加えて、Visual Studio Industry Partners (VSIP) コンポーネント、Microsoft Office 統合、コマンド ライン インターフェイス、チェックイン ポリシーのフレームワークで構成されます。

コンフィギュレーション

ホストされるサービスは、ローカルにデプロイされたクライアント サービスと、クラウドでホストされているアプリケーションとデータ層へのインターネット接続に依存します。 Azure DevOps Server のローカル デプロイは、SQL Server、インターネット インフォメーション サービス (IIS)、および Windows オペレーティング システムに依存します。 選択したトポロジに依存する Azure DevOps Server は、SQL Server Reporting Services または SharePoint 製品にも依存する場合があります。 そのため、Azure DevOps Server の構成情報は、次のいずれかの場所に格納できます。

  • IIS データ ストア。
  • Azure DevOps Server の構成ファイル。
  • Reporting Services のデータ ソース (TFSREPORTS データなど)。
  • Azure DevOps Server の構成データベース。 Azure DevOps Server レジストリは、構成データベースの一部です。
  • Windows レジストリ。

さまざまなローカル 展開トポロジの例と、これらのリソースが格納されている場所については、「 単純トポロジの例」、「 モデレート トポロジの例」、「 複雑なトポロジの例」を参照してください。 Azure DevOps Server のローカル デプロイを維持する場合は、これらの構成ソースを考慮する必要があります。 構成を何らかの方法で変更するには、複数の場所に格納されている情報を変更することが必要になる場合があります。 データ層とクライアント層の構成情報を変更する必要がある場合もあります。 Azure DevOps Server には、管理コンソールと、これらの変更を行うのに役立ついくつかのコマンド ライン ユーティリティが含まれています。 詳細については、「管理タスクのクイック リファレンス」を参照してください。

Active Directory とグループ ID の同期

Azure DevOps が Active Directory ドメインで実行されているローカル デプロイでは、次のいずれかのイベントが発生すると、グループと ID の情報が同期されます。

  • アプリケーション層サーバーが起動します。
  • Active Directory グループが Azure DevOps グループに追加されます。

スケジュールされたジョブで指定された期間が経過します。 既定値は 1 時間で、Azure DevOps Server のすべてのグループは 24 時間ごとに更新されます。

ID 管理サービス (IMS) は Active Directory と同期し、変更された ID はサーバーからクライアントに伝達されます。 既定では、すべてのグループは 24 時間以内に更新されますが、デプロイのニーズに合わせてカスタマイズできます。 詳細については、「 Azure DevOps Server の信頼とフォレストに関する考慮事項」を参照してください。 Active Directory を使用しないローカル デプロイについては、「 ワークグループでの Azure DevOps Server の管理」を参照してください。

グループとアクセス許可

ローカル デプロイでは、Azure DevOps Server には、プロジェクト、コレクション、またはサーバー レベルで設定できる独自の既定のグループとアクセス許可のセットがあります。 カスタム グループを作成し、グループレベルと個々のレベルでアクセス許可をカスタマイズできます。 ただし、Azure DevOps Server に追加したユーザーまたはグループは、Azure DevOps Server のローカル デプロイが依存できる 2 つのコンポーネント (SharePoint 製品と Reporting Services) に自動的に追加されません。 デプロイでこれらのプログラムを使用する場合は、ユーザーとグループを追加し、Azure DevOps Server のすべての操作でそれらのユーザーまたはグループが正しく機能するように適切なアクセス許可を付与する必要があります。 詳細については、「 Azure DevOps Server でのユーザーまたはグループの管理」を参照してください。

ホストされている展開の場合、アクセスは Microsoft アカウントとチーム メンバーシップの組み合わせによって制御されます。 詳細については、 Azure DevOps Services の概要を参照してください。

ネットワーク ポートとプロトコル

既定では、Azure DevOps Server のローカル デプロイは、特定のネットワーク ポートとプロトコルを使用するように構成されます。 次の図は、単純なデプロイでの Azure DevOps Server のネットワーク トラフィックを示しています。

簡単なオンプレミス インストール

同様に、Azure DevOps Server のホステッド サービスは、特定のネットワーク ポートとプロトコルを使用するように構成されています。 次の図は、ホストされたデプロイでのネットワーク トラフィックを示しています。

ホストされている Azure DevOps Server

 

次の図は、Visual Studio Lab Management のコンポーネントを含む、より複雑なデプロイでのネットワーク トラフィックを示しています。 (ラボ管理は TFS 2017 以降のバージョンでは非推奨とされていることに注意してください)。

アプリケーション層

仮想環境

仮想マシン

仮想マシンは、ポート 80 を使用して、ラボ管理エージェントのダウンロードに関するテスト コントローラーと通信します。 通信に問題がある場合は、このポートが有効になっていることを確認します。

既定のネットワーク設定

既定では、Azure DevOps のデプロイにおけるコンピューター間の通信では、次の表に示すプロトコルとポートが使用されます。 アスタリスク (*) がポート番号の後にある場合は、そのポートをカスタマイズできます。

階層とサービス プロトコル 港 / ポート
アプリケーション層 – Web サービス HTTP/HTTPS 8080/443*
アプリケーション層 – SharePoint 製品管理 HTTP SharePoint 製品が Azure DevOps Server と共にインストールされた場合は 17012*それ以外の場合はランダムに生成されます
アプリケーション層 – SharePoint 製品とレポーティング サービス HTTP
Windows Management Instrumentation (WMI) サービス (インストール時にレポート サービスの URL を指定して確認するために必要)
80* 動的ポート
データ層 TCP の MS-SQL 1433*
データ層 (SQL Server Analysis Services) MS-AS default (2382 または 2383)*
既定のポートは、インストールした SQL Server のバージョンとインスタンスの種類によって異なります。 SQL Server 構成マネージャーを使用して、展開で使用されるポートを特定します。
Azure DevOps プロキシ サーバー - クライアントとプロキシ HTTP 8081*
Azure DevOps プロキシ サーバー - アプリケーション層へのプロキシ HTTP/HTTPS 8080/443*
クライアント層 - レポートサービス HTTP 80*
クライアント層 - Web サービス HTTP/HTTPS 8080/443*
コントローラーをアプリケーション層 HTTP/HTTPS にビルドする 8080/443
アプリケーション層へのエージェントのビルド HTTP/HTTPS 8080/443
リリース管理サーバー HTTP または HTTPS 1000*
リリース管理クライアント HTTP または HTTPS 1000*
リリース管理エージェント HTTP または HTTPS 1000*
コントローラーからアプリケーション層へのテスト HTTP/HTTPS 8080/443*
コントローラーをテストするアプリケーション層 .NET リモート処理 6901*
アプリケーション層とドメイン ネーム システム (DNS) DNS 動的更新 53
アプリケーション層 - Virtual Machine Manager HTTP 8100
テスト エージェントをテストするためのテスト コントローラー .NET リモート処理 6910*
コントローラーをテストするテスト エージェント .NET リモート処理 6901*
エージェントをビルドするためのコントローラーをビルドする SOAP over HTTP 9191
孤立した環境での研究所担当者から研究所担当者への連携 TCP ソケット 9050
コントローラーをビルドするエージェントをビルドする SOAP over HTTP 9191
Virtual Machine Manager 管理者コンソール – Virtual Machine Manager HTTP 8100
バーチャル マシン マネージャー – 仮想マシンをホストするマネージャー アクションを実行するための Windows リモート管理 (WinRM)
データを転送するためのバックグラウンド インテリジェント転送サービス (BITS)
アクションを実行する 80
443 を使用してデータを転送する
Virtual Machine Manager – Virtual Machine Manager ライブラリ サーバー WinRM でアクションを実行する
データを転送する BITS
アクションを実行する 80
443 を使用してデータを転送する
アプリケーション層 – Virtual Machine Manager ホスト データを転送するための分散コンポーネント オブジェクト モデル/Windows 管理インターフェイス (DCOM/WMI) 通信 135
49152 ~ 65535 の範囲で動的に割り当てられます
クライアント層 – Virtual Machine Manager ホスト 仮想マシンへのホスト ベースの接続。 ホストベースの接続を実行する 2179
ホステッド サービス HTTPS 443

カスタマイズ可能なネットワーク設定

前の表に示すように、カスタム ポートを使用するように Azure DevOps Server を変更することで、ローカル デプロイのアプリケーション、データ、およびクライアント層間の通信を変更できます。 次の表では、HTTP から HTTPS へのポートの変更例について説明します。

HTTPS と Secure Sockets Layer を使用するように Azure DevOps Server を構成するには、HTTPS ネットワーク トラフィックのポートを有効にするだけでなく、他の多くのタスクも実行する必要があります。 詳細については、「 Azure DevOps Server の SSL (Secure Sockets Layer) を使用して HTTPS を設定する」を参照してください。

サービス プロトコル 港 / ポート
SSL を使用した Web サービス HTTPS 管理者によって構成された
SharePoint サーバーの全体管理 HTTPS 管理者によって構成された
SharePoint 製品 HTTPS 443
レポーティングサービス HTTPS 443
クライアント Web サービス HTTPS 管理者によって構成された
リリース管理 HTTPS 管理者によって構成された