ビルド システムのスケール アウト

アプリの自動ビルドとテストに Team Foundation ビルドを使用するには、最初にビルド サーバーをセットアップし、ビルド コントローラーといくつかのビルド エージェントを追加し、最後にドロップ フォルダーを指定する必要があります。 新しいプロジェクトにかかわるスタートアップ チームが小規模である場合は、単一のコンピューターにこれらすべてのビルド システム コンポーネントをおそらく数分以内に配置できます。 チームとコード ベースの拡大に合わせて、比較的簡単にビルド システムをインクリメント方式で拡張できます。

ヒント

チーム プロジェクト コレクションが Visual Studio Online でホストされている場合は、これらのステップをすべて省略し、次に示すようにホスト ビルド コントローラーを使用できます。

ここでは、単純で小規模なビルド システムから開始し、要件の増大に応じてスケール アウトする方法をいくつかの例を通じて示します。

  • Visual Studio Online とホスト ビルド コントローラー

  • Visual Studio Online と内部設置型のビルド サーバー

  • 試用またはごく小規模なチームのためのビルド システム

  • 小規模なチーム向けのビルド システム

  • 複数のビルド サーバーを使用するシステム

  • 複数のチーム プロジェクト コレクションをサポートするビルド システム

  • 次の手順

Visual Studio Online とホスト ビルド コントローラー

チーム プロジェクト コレクションが Visual Studio Online でホストされている場合は、独自のビルド サーバーを配置する代わりにホスト ビルド コントローラーを使用できます。

Team Foundation Service、ホスト ビルド コントローラー

Visual Studio Online でホストされたチーム プロジェクト コレクションでのホスト ビルド コントローラーの使用」を参照してください。

Visual Studio Online と内部設置型のビルド サーバー

チーム プロジェクト コレクションが Visual Studio Online でホストされており、大規模なビルド エージェントまたはカスタマイズされたビルド エージェントがチームに必要な場合は、内部設置型のビルド サーバーを Visual Studio Online に接続できます。

Team Foundation Service、内部設置型ビルド サーバー

試用またはごく小規模なチームのためのビルド システム

Team Foundation Server を試用するか、非常に小規模なチームで作業する場合は、次のトポロジが適しています。

アプリケーション層にある単一コンピューター システム

このトポロジは、夜間に 1 回だけビルドを実施するような、ビルド頻度が低く、ビルドを休業時間帯にしか実施しないチームに適しています。 ただし、多くのチームにとっては、以下の理由からこのトポロジは十分とは言えません。

  • ビルド エージェントによってプロセッサに高い負荷がかかるため、アプリケーション層のパフォーマンスが大幅に低下する可能性があります。

  • ビルド コントローラーによって、システムのメモリに高い負荷がかかることがあります。これは特に、コントローラーが複数のアクティブなビルド エージェントを同時に管理している場合に当てはまります。

  • Team Foundation ビルド サービスをインストールすると、コンピューターが攻撃を受ける可能性が増大します。「ビルド サーバー: セキュリティ リスクについて」を参照してください。

小規模なチーム向けのビルド システム

内部設置型の Team Foundation Server を持つ小規模なチームで作業する場合は、次のトポロジを検討してください。

単一コンピューター システム (スタンドアロン)

ビルド エージェントは別個のコンピューターでプロセッサ集中型の処理を行うため、ビルドが実行されてもアプリケーション層のパフォーマンスには影響がありません。

専用のビルド サーバーでビルド コントローラーを実行することもできます。 ただし、図に示すトポロジには、ビルド サーバーの修復や交換が必要になった場合などに、ビルド システムの変更による悪影響を抑制できるという利点があります。

複数のビルド サーバーを使用するシステム

チームおよびコード ベースのサイズが大きくなったら、要件を満たすために、リソースを必要なだけ追加できます。 たとえば、コントローラーとビルド エージェントを追加できます。

複数のビルド サーバーがある AT 上のコントローラー

ビルド コントローラー A をアプリケーション層と同じコンピューター上に配置しても、プロセッサの観点からは一般に問題になりません。 ただし、メモリの圧迫や、前に説明した攻撃の可能性のために、ビルド コントローラーを別のサーバーに移動する必要が生じることもあります。

複数のビルド サーバーを使用すると、次の例に示すように、それぞれのサーバーを別々の用途に割り当てることができます。

  • 継続的インテグレーション ビルドまたはゲート チェックイン ビルドを処理するビルド エージェント専用の高パフォーマンスなコンピューター上にあるビルド サーバー。 チームでは、このような種類のビルド (特にゲート チェックイン ビルド) をすばやく実行し、ビルド待ちのために作業が滞ることがないようにする必要があります。

  • 長時間かけて大規模なテストの実行やコード分析などの処理を実行する、夜間に設定された BVT ビルド専用のビルド サーバー。

  • Windows ストア アプリのビルドやテストなど、特殊なタスク向けに準備されたビルド サーバー。

ヒント

このようなシナリオでは、特殊なビルド エージェントにタグを適用し、正しいタグのセットを持つビルド エージェントのみを使用するようにビルド定義を制限できます。既定の単純なビルド処理については、「ビルド エージェントの機能や用途を表すタグの割り当て」と「ビルドを処理するビルド エージェントを指定する」を参照してください。高度なカスタム ビルド処理については、「ビルド エージェントでアクティビティを実行する」を参照してください。

複数のチーム プロジェクト コレクションをサポートするビルド システム

以下のビルド システム トポロジの例では、エンタープライズ レベルのソフトウェア開発をサポートできます。

複数のコントローラーがある複数コンピューター システム

各チーム プロジェクト コレクションには、上記のように専用のビルド コントローラーが必要です。 このトポロジでのビルド サーバーの分離方法に注目してください。 チーム プロジェクト コレクション A で作業するチーム メンバーは、ビルド コントローラー A によって制御されるビルド エージェントのみを使用できます。 この制限は、より機密性の高い知的財産へのアクセスを厳密に管理する必要がある場合に便利です。

次の手順

  • ビルド サーバーの配置と操作
    内部設置型の Team Foundation Server で Team Foundation ビルドを使用するには、少なくとも 1 台のビルド サーバーを配置する必要があります。 1 台以上の内部設置型のビルド サーバーを Visual Studio Online に接続することもできます。

    ヒント

    システムのスケール アウトに伴い、新しいビルド サーバーを配置するときに、既存のビルド サーバーを置き換えることができます。たとえば、新しいより強力なコンピューターに、ビルド コントローラーとビルド エージェントの同じ構成とセットをホストできます。「Team Foundation ビルド サービスのセットアップ」を参照してください。

  • ビルド コントローラーの配置と構成
    ビルド コントローラーを使用して 1 つ以上のビルド エージェントをプールします。 ビルド サーバーにホストできるビルド コントローラーは 1 つだけです。

  • ビルド エージェントの配置と構成
    ビルド エージェントを使用して、ビルドの中でも特にプロセッサ集中型の処理を行います。これには、バージョン コントロールからのファイルの取得、ワークスペースのプロビジョニング、コードのコンパイル、およびテストの実行が含まれます。

  • ドロップ フォルダーのセットアップ
    ビルド システムがバイナリ、テスト結果、およびログ ファイルをチームに配信できるように、ドロップ フォルダーを 1 つ以上準備して指定できます。

  • ビルド システムの管理
    ビルド サーバーを配置した後、Team Foundation 管理コンソールからそれを管理できます。 ビルド コントローラーとビルド エージェントは Team Foundation 管理コンソールまたは Visual Studio から管理できます。

  • Team Foundation ビルドの使用
    ビルド システムの準備ができたら、チームで単純なビルド処理を作成し (たとえば、継続的インテグレーション ビルド)、アプリのビルドとテストを自動化できます。