Team Foundation Server のアーキテクチャ

配置の計画と管理を最適に行うには、まず Team Foundation Server (TFS) の基本となるアーキテクチャを理解することが必要です。 アーキテクチャについて理解することで、配置の全体的な健全性を維持し、開発チームが必要とするサーバーとサービスの全体的な可用性を確保することができます。

TFS は、1 台のサーバー、複数のサーバー、1 つのドメインまたはワークグループ、複数のドメインなど、さまざまな方法で配置できます。 また、Visual Studio Online を使用するように選択することもできます。この場合、配置のすべてのサーバー要素がマイクロソフトによってホストされます。 アーキテクチャを理解することは、どのトポロジーがビジネス ニーズに最適であるかを判断する助けになります。 トポロジーの選択に関係なく、TFS の基本となるアーキテクチャを理解しておくと、物理的および論理的な要件をより的確に管理できます。 このトピックでは、さまざまなアーキテクチャの概要について簡単に説明し、配置例についてのより詳しい情報へのリンクを示します。 また、ローカル配置のサービス、データベース、構成情報、ネットワーク ポートおよびプロトコルに関する技術情報を提供します。

TFS のアーキテクチャおよびそれが配置にどのように影響するかを理解するには、次の点を考慮してください。

  • Team Foundation の論理アプリケーション層、データ層、およびクライアント層について。また、アプリケーション層とデータ層に対して 1 つ以上のサーバーを使用するかどうか、または Visual Studio Online を使用してクラウドでアプリケーション層とデータ層をホストする必要があるかどうか

  • これらの層をホストする物理サーバーまたは仮想サーバーの場所。

  • ご使用の環境で実行する Team Foundation ビルド およびビルド コンピューターの数と場所。これには開発業務をサポートする必要のある数量も含まれます。

  • Team Foundation Server プロキシの潜在的な必要性。

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

Team Foundation Server は、それ自体のサービスだけでなく、他のサービスにも依存して動作します。 これらのサービスの詳細については、「Team Foundation Server の概念」および「TFS データ ウェアハウスのコンポーネント」を参照してください。 インストールの要件および依存関係の詳細については、「Team Foundation Server インストール ガイド」を参照してください。

注意

TFS データベースは手動で変更しないでください。ただし、手動で変更するように Microsoft サポートから指示された場合、または手動でデータベースをバックアップする手順に従う場合を除きます。その他の変更を加えると、サービス利用契約が無効になる場合があります。

このトピックの内容

  • Visual Studio オンライン

  • オブジェクト モデル

  • ローカル配置用の Web サービスとデータベース

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

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

    • データ層

    • クライアント層

  • 構成情報

  • Groups and Permissions

  • ネットワーク ポートおよびネットワーク プロトコル

    • 既定のネットワーク設定

    • カスタマイズできるネットワーク設定

Visual Studio オンライン

ホストされる TFS サービスの単純なダイアグラム

Visual Studio Online を使用するオプションが用意されています。この場合は、配置のサーバー側のすべての要素がホストされます。 ソース コード、作業項目、ビルド構成、およびチーム機能はすべてクラウドでホストされます。 アーキテクチャの観点から見ると、これは考慮する必要のあるアーキテクチャの要素をクライアント コンポーネントおよびインターネット アクセスのみにして、配置を大幅に簡略化します。

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

詳細については、「ホストされているトポロジの例」を参照してください。

オブジェクト モデル

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

Team Foundation のオブジェクト モデル

詳細については、「Team Foundation の拡張」を参照してください。

ローカル配置用の Web サービスとデータベース

Team Foundation Server には、一連の Web サービスとデータベースが含まれます。これらの Web サービスとデータベースは、Team Foundation の論理アプリケーション層、データ層、およびクライアント層をホストする 1 つ以上のサーバーに別個にインストールして構成します。 タスク ボードやバックログのチーム ベース機能など、一部の機能は完全に Web ベースで、Team Web Access、クライアント側の Web ベース サービスを通じてのみアクセスします。 一方、バージョン管理機能などは、Team Web Access でもクライアント アプリケーションでもアクセスできます。 次の図は、TFS のローカル配置に対する Web サービス、アプリケーション、およびデータベースの概要を示します。

サーバー アーキテクチャ ダイアグラムTFS で使用される追加のサーバークライアント アーキテクチャ ダイアグラム

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

コレクション レベル サービスは、チーム プロジェクト コレクションのレベルで運営するための機能を提供します。 これらのサービスを使用すると Team Foundation Server を拡張するアプリケーションを作成できます。 TFS のアプリケーションを作成する方法の詳細については、「Team Foundation の拡張」を参照してください。

ヒント

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

  • Team Foundation フレームワーク サービス

    • レジストリ サービス

    • 登録サービス (Team Foundation Server の旧バージョンとの互換性を保つため)

    • プロパティ サービス

    • イベント サービス

    • セキュリティ サービス

    • ロケーション サービス

    • ID 管理サービス

  • バージョン管理 Web サービス

  • 作業項目トラッキング Web サービス

  • Team Foundation ビルド Web サービス

  • Lab Management Web サービス

  • VMM 管理 Web サービス

  • Test Agent コントローラー Web サービス

サーバー レベル サービス

サーバー レベル サービス (アプリケーション レベル サービスとも呼ばれる) は、Team Foundation Server をソフトウェア アプリケーションとして操作するための機能を提供します。 これらのサービスを使用すると Team Foundation Server を拡張するアプリケーションを作成できます。 詳細については、「Team Foundation の拡張」を参照してください。

  • Team Foundation フレームワーク サービス

    • レジストリ サービス

    • イベント サービス

    • チーム プロジェクト コレクション サービス

    • プロパティ サービス

    • セキュリティ サービス

    • ロケーション サービス

    • ID 管理サービス

    • 管理サービス

    • コレクション管理サービス

    • カタログ サービス

データ層

データ層には、データ、ストアド プロシージャ、その他の関連ロジックが含まれています。 Visual Studio Online を使用すると、データ層は SQL Server Azure を使用してホストされます。 TFS のローカル配置では、論理データ層は、SQL Server 内の次の運営ストアで構成されます。これらのストアは、1 つの物理サーバーに配置されることもあれば、多数のサーバーに分散されることもあります。 これらの運営ストアを使用すると Team Foundation Server を拡張するアプリケーションを作成できます。 詳細については、「Team Foundation の拡張」を参照してください。

  • 構成データベース (TFS_Configuration)

  • アプリケーション ウェアハウス (TFS_Warehouse)

  • Analysis Services データベース (TFS_Analysis)

  • チーム プロジェクト コレクションのデータベース (TFS_CollectionName)

ローカル配置で Team Foundation Server によって使用されるデータベースの一覧を次の表に示します。特に記載がない限り、この一覧に含まれるすべてのデータベースを、それらがインストールされた元のサーバーおよびインスタンスをから移動して、別のサーバーまたはインスタンスに復元できます。

データベースの名前と説明

サーバー

TFS_Configuration: このデータベースには、リソースのカタログと Team Foundation Server の構成情報が格納されます。 このデータベースには、Team Foundation Server の運営ストアが含まれます。

Team Foundation Server のインストールおよび構成時に使用された SQL Server のインスタンス。

TFS_Warehouse: このデータベースには、レポートのデータが格納されます。

Team Foundation Server のインストールおよび構成時に使用された SQL Server のインスタンス。

TFS_Analysis: この多次元データベースには、チーム プロジェクト コレクションからの集計データが格納されます。

Team Foundation Server のインストールおよび構成時に使用された SQL Server のインスタンス。

チーム プロジェクト コレクションのデータベース: チーム プロジェクト コレクションごとに 1 つのデータベースが使用されます。このデータベースには、そのコレクション内のすべてのチーム プロジェクトのデータが含まれます。

Team Foundation Server と互換性のある SQL Server のインスタンス

クライアント層

クライアント層は、サーバー オブジェクト モデルを通じてアプリケーション層と通信し、その層にリストされているのと同じ Web サービスを使用します。 これは、TFS をローカルに配置する場合でも、Visual Studio Online を使用する場合でも同様です。 クライアント層は、オブジェクト モデルに加えて、VSIP (Visual Studio Industry Partners) のコンポーネント、Microsoft Office 統合、コマンド ライン インターフェイス、およびチェックイン ポリシーのフレームワークで構成されます。

構成情報

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

  • IIS データ ストア。

  • Team Foundation Server の構成ファイル。

  • Reporting Services のデータ ソース (TFSREPORTS データなど)。

  • Team Foundation Server の構成データベース。 Team Foundation Server のレジストリは、構成データベースの一部です。

  • Windows レジストリ。

さまざまなローカル配置トポロジーの例と、これらのリソースが格納されている場所については、「単純なトポロジの例」、「適度なトポロジの例」、および「複雑なトポロジの例」を参照してください。 Team Foundation Server のローカル配置を保守する際には、これらの構成元を考慮する必要があります。 何かの方法で構成を変更するには、複数の場所に格納されている情報を変更する必要がある場合があります。 また、データ層およびクライアント層の構成情報を変更しなければならない場合があります。Team Foundation Server には、このような変更を加えるのに役立つ管理コンソールといくつかのコマンド ライン ユーティリティが用意されています。 詳細については、「TFS リソースの構成と管理」を参照してください。

Active Directory と Team Foundation Server 間でのグループ ID の同期

Team Foundation Server が Active Directory ドメインで実行されているローカル配置では、次のいずれかのイベントが発生したときにグループと ID の情報が同期されます。

  • Team Foundation のアプリケーション層サーバーが起動される。

  • Active Directory グループが Team Foundation Server のグループに追加される。

  • スケジュールされたジョブで指定されている期間が経過する 既定の期間は 1 時間です。また、Team Foundation Server 内のすべてのグループが 24 時間ごとに更新されます。

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

グループおよびアクセス許可

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

ホストされた配置では、アクセスは Microsoft アカウントとチーム メンバーシップの組み合わせによって制御されます。 詳細については、Microsoft アカウントでサービスにログオンして、[Learn] を選択してください。

ネットワーク ポートおよびネットワーク プロトコル

既定では、TFS のローカル配置は特定のネットワーク ポートおよびプロトコルを使用するように構成されます。 配置例における Team Foundation Server のネットワーク トラフィックを次の図に示します。

ポートとコミュニケーションの単純なダイアグラム

ホストされた TFS

同様に、TFS のホストされているサービスは、特定のネットワーク ポートおよびプロトコルを使用するように構成されます。 次の図は、ホストされている配置におけるネットワーク トラフィックを示しています。

ホストされる TFS サービスの単純なダイアグラム

コンポーネントが含まれるさらに複雑な配置例における Visual Studio Lab Management のネットワーク トラフィックを次の図に示します。

ポートと通信複合図パート 1ポートと通信複合図パート 3ポートと通信複合図パート 2

仮想マシンはポート 80 を使用して、ラボ管理エージェントのダウンロードに関してテスト コントローラーと通信します。 通信に関して問題が発生する場合には、このポートが使用可能かどうかを確認してください。

既定のネットワーク設定

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

層およびサービス

プロトコル

ポート

アプリケーション層 - Web サービス

HTTP/HTTPS

8080/443*

アプリケーション層 – SharePoint 製品 管理

HTTP

17012* SharePoint Productsが Team Foundation Server と共にインストールされた場合。それ以外の場合はランダム生成。

アプリケーション層 – SharePoint 製品 および Reporting Services

HTTP

Windows Management Instrumentation (WMI) サービス (インストール時に Reporting Services の URL の指定と検証のために必要)

80*

動的ポート

データ層

MS-SQL TCP

1433*

データ層 (SQL Server Analysis Services)

MS-AS

既定 (2382 または 2383)*

既定のポートは、インストールした SQL Server のバージョンとインスタンスの種類によって異なります。 配置で使用されるポートを確認するには、SQL Server 構成マネージャーを使用してください。

Team Foundation Server Proxy - クライアントからプロキシ

HTTP

8081*

Team Foundation Server Proxy - プロキシからアプリケーション層

HTTP/HTTPS

8080/443*

クライアント層 - Reporting Services

HTTP

80*

クライアント層 - Web サービス

HTTP/HTTPS

8080/443*

ビルド コントローラーからアプリケーション層

HTTP/HTTPS

8080/443

ビルド エージェントからアプリケーション層

HTTP/HTTPS

8080/443

Release Management Server

HTTP または HTTPS

1000*

Release Management Client

HTTP または HTTPS

1000*

Release Management Agent

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

Virtual Machine Manager – Virtual Machine Manager ホスト

アクションを実行するための Windows Remote Management (WinRM)

データを転送するためのバックグラウンド インテリジェント転送サービス (BITS)

アクションの実行には 80

データの転送には 443

Virtual Machine Manager– Virtual Machine Manager ライブラリ サーバー

アクションの実行には WinRM

データの転送には BITS

アクションの実行には 80

データの転送には 443

アプリケーション層 – Virtual Machine Manager ホスト

データの転送には分散コンポーネント オブジェクト モデル/Windows Management Interface (DCOM/WMI) 通信

135

49152 ~ 65535 の範囲で動的に割り当てます。

クライアント層 – Virtual Machine Manager ホスト

仮想マシンへのホストベース接続。

ホスト ベース接続の実行には 2179

ホスト サービス

HTTPS

443

カスタマイズできるネットワーク設定

前の表に示したように、カスタム ポートを使用するように Team Foundation Server を変更することで、ローカル配置のアプリケーション層、データ層、およびクライアント層の間の通信を変更できます。 HTTP から HTTPS にポートを変更する例を次の表に示します。

注意

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

サービス

プロトコル

ポート

SSL を使用した Web サービス

HTTPS

管理者が設定

SharePoint サーバー管理

HTTPS

管理者が設定

SharePoint 製品

HTTPS

443

Reporting Services

HTTPS

443

クライアント Web サービス

HTTPS

管理者が設定

リリース管理

HTTPS

管理者が設定

参照

概念

Team Foundation Server の概念

Team Foundation Server のアクセス許可の参照

TFS データ ウェアハウスのコンポーネント