Team Foundation Server のアーキテクチャ
配置の計画と管理を最適に行うには、まず Team Foundation Server (TFS) の基本となるアーキテクチャを理解することが必要です。アーキテクチャについて理解することで、配置の全体的な健全性を維持し、開発チームが必要とするサーバーとサービスの全体的な可用性を確保することができます。
TFS は、1 台のサーバー、複数のサーバー、1 つのドメインまたはワークグループ、複数のドメインなど、さまざまな方法で配置できます。また、配置のすべてのサーバー要素がマイクロソフトによってホストされる Team Foundation サービス プレビューの使用を選択することもできます。アーキテクチャを理解することは、どのトポロジーがビジネス ニーズに最適であるかを判断する助けになります。トポロジーの選択に関係なく、TFS の基本となるアーキテクチャを理解しておくと、物理的および論理的な要件をより的確に管理できます。このトピックでは、さまざまなアーキテクチャの概要について簡単に説明し、配置例についてのより詳しい情報へのリンクを示します。また、ローカル配置のサービス、データベース、構成情報、ネットワーク ポートおよびプロトコルに関する技術情報を提供します。
TFS のアーキテクチャおよびそれが配置にどのように影響するかを理解するには、次の点を考慮してください。
Team Foundation の論理アプリケーション層、データ層、およびクライアント層について、またアプリケーション層とデータ層に 1 つのサーバーを使用するか複数のサーバーを使用するか、Team Foundation サービス プレビューを使用してアプリケーション層とデータ層をクラウドでホストする必要があるかどうか。
これらの層をホストする物理サーバーまたは仮想サーバーの場所。
ご使用の環境で実行する Team Foundation ビルド およびビルド コンピューターの数と場所。これには開発業務をサポートする必要のある数量も含まれます。
Team Foundation Server プロキシの潜在的な必要性。
さらに、これらのエンティティ間の相互作用も考慮する必要があります。たとえば、ホストされた TFS サービスを使用する場合は、クライアントがポート 443 でサービスにアクセスできることを確認する必要があります。TFS をローカルに配置する場合は、どの Web サービス、データベース、およびオブジェクト モデルを TFS で使用するかを知っている必要があります。また、TFS が既定で使用するネットワーク ポートおよびネットワーク プロトコルと、カスタマイズ可能なネットワーク ポートについても知っておく必要があります。最後に、Team Foundation Server に設定する必要のあるアクセス許可、および配置が依存するコンポーネントおよびプログラムについても理解している必要があります。
Team Foundation Server は、それ自体のサービスだけでなく、他のサービスにも依存して動作します。これらのサービスの詳細については、「Team Foundation Server の概念」および「Team Foundation におけるデータ ウェアハウスの構成要素」を参照してください。インストールの要件および依存関係の詳細については、「Team Foundation Server と Visual Studio ALM のインストール」を参照してください。
このトピックの内容
Team Foundation サービス プレビュー
オブジェクト モデル
ローカル配置用の Web サービスとデータベース
コレクション レベル サービス
サーバー レベル サービス
データ層
クライアント層
構成情報
グループおよびアクセス許可
ネットワーク ポートおよびネットワーク プロトコル
既定のネットワーク設定
カスタマイズできるネットワーク設定
Team Foundation サービス プレビュー
マイクロソフトは、配置のサーバー側のすべての要素がホストされる Team Foundation サービス プレビューを使用するオプションを提供します。ソース コード、作業項目、ビルド構成、およびチーム機能はすべてクラウドでホストされます。アーキテクチャの観点から見ると、これは考慮する必要のあるアーキテクチャの要素をクライアント コンポーネントおよびインターネット アクセスのみにして、配置を大幅に簡略化します。
サービスを使用する場合は、Web ブラウザーで Microsoft アカウントを使用してサービスに接続します。サーバー管理のオーバーヘッドなしで、チーム プロジェクトを作成し、メンバーをチームに追加し、ローカルにインストールされた配置と同様に作業できます。アプリケーション層、データ層、およびビルド サーバーは、Microsoft Cloud プラットフォームと SQL Server Azure を使用してクラウド内でホストされます。
詳細については、「ホストされているトポロジの例」を参照してください。
オブジェクト モデル
ホストされているアーキテクチャまたはローカルに展開されているアーキテクチャを使用して、サーバーまたはクライアント オブジェクト モデルをベースにしたアプリケーションを記述することで、Team Foundation の機能を拡張できます。すべての配置タイプで、クライアント機能を拡張するアプリケーションを作成できます。ただし、サーバーの機能を拡張するには、アプリケーションがアプリケーション層サーバー上で実行されている必要があります。クライアントの機能を拡張するには、アプリケーションが チーム エクスプローラー と同じコンピューター上で実行されている必要があります。
詳細については、「Team Foundation の拡張」を参照してください。
ローカル配置用の Web サービスとデータベース
Team Foundation Server には、一連の Web サービスとデータベースが含まれます。これらの Web サービスとデータベースは、Team Foundation の論理アプリケーション層、データ層、およびクライアント層をホストする 1 つ以上のサーバーに別個にインストールして構成します。タスク ボードやバックログのチーム ベース機能など、一部の機能は完全に Web ベースで、Team Web Access、クライアント側の Web ベース サービスを通じてのみアクセスします。一方、バージョン管理機能などは、Team Web Access でもクライアント アプリケーションでもアクセスできます。次の図は、TFS のローカル配置に対する Web サービス、アプリケーション、およびデータベースの概要を示します。
コレクション レベル サービス
コレクション レベル サービスは、チーム プロジェクト コレクションのレベルで運営するための機能を提供します。これらのサービスを使用すると Team Foundation Server を拡張するアプリケーションを作成できます。TFS のアプリケーションを作成する方法の詳細については、「Team Foundation の拡張」を参照してください。
ヒント |
---|
一部のサービスは、複数のレベルに表示されます。たとえば、コレクション レベルおよびサーバー レベルのレジストリ サービス機能は、両方の一覧に表示されます。 |
Team Foundation フレームワーク サービス
レジストリ サービス
登録サービス (Team Foundation Server の旧バージョンとの互換性を保つため)
プロパティ サービス
イベント サービス
セキュリティ サービス
ロケーション サービス
ID 管理サービス
バージョン管理 Web サービス
作業項目トラッキング Web サービス
Team Foundation ビルド Web サービス
Lab Management Web サービス
VMM 管理 Web サービス
テスト エージェント コントローラー Web サービス
サーバー レベル サービス
サーバー レベル サービス (アプリケーション レベル サービスとも呼ばれる) は、Team Foundation Server をソフトウェア アプリケーションとして操作するための機能を提供します。これらのサービスを使用すると Team Foundation Server を拡張するアプリケーションを作成できます。詳細については、「Team Foundation の拡張」を参照してください。
Team Foundation フレームワーク サービス
レジストリ サービス
イベント サービス
チーム プロジェクト コレクション サービス
プロパティ サービス
セキュリティ サービス
ロケーション サービス
ID 管理サービス
管理サービス
コレクション管理サービス
カタログ サービス
データ層
データ層には、データ、ストアド プロシージャ、その他の関連ロジックが含まれています。Team Foundation サービス プレビューを使用すると、データ層は 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 をローカルに配置する場合でも、Team Foundation サービス プレビューを使用する場合でも同様です。クライアント層は、オブジェクト モデルに加えて、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 には、管理コンソールなど、このような変更を行うのに役立つさまざまなコマンド ライン ユーティリティが用意されています。詳細については、「Team Foundation の管理コンソール」および「Team Foundation のテクニカル リファレンス」を参照してください。
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 のすべての操作で正しく動作するようになります。詳細については、「チーム プロジェクトへのユーザーの追加」、「チームとしての作業の開始」、「ユーザー、グループ、およびアクセス許可の構成」、「アクセス許可の管理」、および「マイ プロファイルの管理と保有しているアクセス許可の表示」を参照してください。
ホストされた配置では、アクセスは Microsoft アカウントとチーム メンバーシップの組み合わせによって制御されます。詳細については、Microsoft アカウントでサービスにログオンして、[Learn] を選択してください。
ネットワーク ポートおよびネットワーク プロトコル
既定では、TFS のローカル配置は特定のネットワーク ポートおよびプロトコルを使用するように構成されます。配置例における Team Foundation Server のネットワーク トラフィックを次の図に示します。
同様に、TFS のホストされているサービスは、特定のネットワーク ポートおよびプロトコルを使用するように構成されます。次の図は、ホストされている配置におけるネットワーク トラフィックを示しています。
コンポーネントが含まれるさらに複雑な配置例における Visual Studio Lab Management のネットワーク トラフィックを次の図に示します。
既定のネットワーク設定
既定では、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 |
テスト コントローラーからアプリケーション層 |
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 ネットワーク トラフィック用のポートを有効にするだけでなく、他の多くのタスクを実行する必要があります。詳細については、「Team Foundation Server のセキュリティ保護」を参照してください。
サービス |
プロトコル |
ポート |
---|---|---|
SSL を使用した Web サービス |
HTTPS |
管理者が設定 |
SharePoint サーバー管理 |
HTTPS |
管理者が設定 |
SharePoint 製品 |
HTTPS |
443 |
Reporting Services |
HTTPS |
443 |
クライアント Web サービス |
HTTPS |
管理者が設定 |