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

アプリの自動ビルドとテストに Team Foundation ビルドを使用するには、最初にビルド サーバーをセットアップし、ビルド コントローラーといくつかのビルド エージェントを追加し、最後にドロップ フォルダーを指定する必要があります。新しいプロジェクトにかかわるスタートアップ チームが小規模である場合は、単一のコンピューターにこれらすべてのビルド システム コンポーネントをおそらく数分以内に配置できます。As your team and your code base grow, you can expand your build system incrementally, with relative ease.

ヒントヒント

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

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

  • Team Foundation サービスとホスト ビルド コントローラー

  • Team Foundation サービスと内部設置型のビルド サーバー

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

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

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

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

  • 次の手順

Team Foundation Service with Hosted Build Controller

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

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

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

Team Foundation Service with on-premises build servers

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

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

Build system for trial usage or a very small team

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

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

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

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

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

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

Build system for a small team

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

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

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

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

Multiple-build-server systems

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

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

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

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

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

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

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

ヒントヒント

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

Build system to support multiple team project collections

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

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

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

次の手順

  • Deploy and work with a build server
    内部設置型の Team Foundation Server で Team Foundation ビルドを使用するには、少なくとも 1 台のビルド サーバーを配置する必要があります。1 台以上の内部設置型のビルド サーバーを Team Foundation サービスに接続することもできます。

    ヒントヒント

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

  • Deploy and configure a build controller
    ビルド コントローラーを使用して 1 つ以上のビルド エージェントをプールします。You can host one build controller on a build server.

  • Deploy and configure build agents
    Use a build agent to do the processor-intensive work of your build, includes getting files from version control, provisioning the workspace, compiling the code, and running tests.

  • Set up drop folders
    You can prepare and then designate one or more drop folders so that your build system can deliver binaries, test results, and log files to your team.

  • Manage your build system
    After you deploy your build server, you can manage it from the Team Foundation Administration Console.You can manage the build controller and build agents from either Team Foundation Administration Console or from Visual Studio.

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