エンタープライズの Web 配置

作成者: Jason Lee

このチュートリアルでは、エンタープライズ規模の Web アプリケーションの開発、テスト、ステージング、および運用環境へのデプロイを管理するときに発生する多くの課題を満たす方法について説明します。 このチュートリアルには、さまざまな一般的なタスクと手順を案内する概念的コンテンツとタスク指向コンテンツが混在した参照ソリューションが含まれています。

これらのチュートリアルのイタリア語翻訳については、 を参照してください http://www.lucamorelli.it

エンタープライズ展開の課題

組織は、複雑なエンタープライズ規模のソリューションのデプロイを管理するときに、多くの場合、これらの課題に直面します。

  • 開発者またはテスト環境、ステージング プラットフォーム、運用サーバーなど、複数の環境にプロジェクトをデプロイできる必要があります。 ソリューションは、環境ごとに異なる構成設定でデプロイする必要があります。
  • 1 つのステップまたは自動化されたビルドと配置プロセスの一環として、複数の依存プロジェクトを同時にデプロイする必要があります。
  • 自動プロセスからデプロイを推進できる必要があります。 たとえば、継続的インテグレーション (CI) プロセスを使用して、新しいコードがチェックインされたときに Web アプリケーションをテスト環境にデプロイしたいとします。
  • 開発者がターゲット環境ごとに正しい構成設定や必要な資格情報を持つ可能性は低く、Visual Studio の外部からデプロイ プロセスを制御し、デプロイ変数を設定できる必要があります。
  • スキーマ ベースのデータベース プロジェクトをデプロイし、後続のデプロイで既存のデータを保持する必要があります。
  • ユーザー アカウント データをデプロイせずに、メンバーシップ データベースをアドホックにデプロイする必要があります。 また、既存のユーザー アカウント データを失うことなく、デプロイされたメンバーシップ データベースのスキーマを更新する必要がある場合もあります。
  • コンテンツをさまざまなターゲット環境に展開する場合は、特定のファイルまたはフォルダーを除外する必要があります。

アプローチの概要

このチュートリアルは、このシリーズの他のチュートリアルと共に、上記の課題を満たすためにこの高レベルのアプローチを使用します。

  • カスタム Microsoft Build Engine (MSBuild) プロジェクト ファイルを使用して、ビルドと配置のプロセス全体を制御します。
  • これにより、1 つのスクリプト可能な操作の一部として、ソリューション内のすべてのプロジェクトをビルドしてデプロイできます。
  • 環境固有の設定は、単純な環境固有のプロジェクト ファイルを使用して構成されます。 ソリューション構成と発行プロファイルを使用してさまざまな環境のデプロイを構成する Visual Studio 中心のアプローチとは対照的に、このアプローチでは、Visual Studio の外部からデプロイ プロセスを構成および管理できます。 つまり、開発者は、接続文字列、サービス エンドポイント、サーバー資格情報、および移行先環境のその他のデプロイ変数に関する事前の知識は必要ありません。
  • カスタム プロジェクト ファイルは、Team Foundation Server (TFS) ワークフローの一部として Team Build によって呼び出すことができます。 これにより、CI シナリオの自動デプロイを構成できます。

インターネット インフォメーション サービス (IIS) Web 配置ツール (Web 配置) を使用して、Web アプリケーション プロジェクトのパッケージ化と展開を行います。

  • Web 配置は、依存関係、構成設定、セキュリティ設定、その他の要件と共に、Web アプリケーション コンテンツをパッケージ化して展開できるフレームワークを提供します。
  • カスタム MSBuild プロジェクト ファイル内からパッケージ化と配置プロセス全体を制御できます。 接続文字列、サービス エンドポイント、IIS 宛先の詳細など、Web 展開パッケージに付属する構成設定を操作することもできます。
  • Web デプロイは、Web 発行パイプラインと共に、デプロイをカスタマイズできる多くの拡張ポイントを提供します。 たとえば、Web 展開パッケージから不要なファイルやフォルダーを簡単に除外できます。

データベース スキーマをデプロイおよび更新するには、VSDBCMD.exe ユーティリティを使用します。

  • VSDBCMD を使用すると、Visual Studio データベース プロジェクトをビルドするときに生成されるデータベース スキーマ ファイル (.dbschema) からデータベースを配置できます。 これに対し、Web 配置に含まれるデータベースデプロイ機能は、ローカル SQL Server インスタンスから既存のデータベースをデプロイする場合に適しています。
  • データベース プロジェクトを配置するための Visual Studio の機能とは異なり、VSDBCMD を使用すると、既存のターゲット データベースに差分更新を展開できます。 これにより、データベース スキーマのアップグレード中に既存のデータを保持できます。
  • VSDBCMD コマンドは、カスタム MSBuild プロジェクト ファイル内から実行できます。

コンテンツ マップ

このチュートリアルには、4 つのメイン領域に分類されるトピックが含まれています。

これらのトピックでは、リファレンス ソリューション (Contact Manager ソリューション) について説明し、ローカル コンピューターでダウンロードして構成する方法について説明します。

これらのトピックでは、MSBuild プロジェクト ファイルについて説明し、カスタム プロジェクト ファイルを作成して使用する方法について説明し、Contact Manager ソリューションの展開プロセスについて説明します。

これらのトピックでは、ビルドとパッケージ化のプロセスのしくみ、ビルド プロセスと Web 発行パイプラインの統合方法、デプロイ パラメーターを変更する方法、Web パッケージを移行先環境にデプロイする方法など、Web アプリケーションのデプロイについて説明します。

主なテクノロジ

このチュートリアルのトピックでは、主に次のテクノロジを使用してビルドとデプロイを管理します。

  • Visual Studio 2010
  • MSBuild
  • IIS 7.5
  • Web 配置 2.0
  • VSDBCMD.exe データベース配置ユーティリティ

このシリーズのその他のチュートリアル

これは、エンタープライズ規模の Web デプロイに関する一連の 5 つのチュートリアルの一部です。 シリーズの他のチュートリアルは次のとおりです。

  • エンタープライズ シナリオでの Web アプリケーションの展開。 この入門コンテンツは、チュートリアル シリーズのコンテキスト背景を提供します。 チュートリアルのシナリオについて説明し、シリーズ全体で説明されているタスクとチュートリアルが、より広範なアプリケーション ライフサイクル管理 (ALM) プロセスにどのように適合するかを示します。
  • Web 展開用のサーバー環境の構成。 このチュートリアルでは、Web Deployment Agent サービス (リモート エージェント) または Web 配置ハンドラーとリモート データベース展開を使用したリモート Web パッケージの展開など、さまざまな展開シナリオをサポートするように Windows サーバーを構成する方法について説明します。 独自の環境に適した展開方法の選択に関するガイダンスを提供し、Web ファーム フレームワーク (WFF) を使用して、サーバー ファーム内のすべての Web サーバーにデプロイされた Web アプリケーションをレプリケートする方法について説明します。
  • Team Foundation Server for Web Deployment の構成。 このチュートリアルでは、CI プロセスの一部としての自動デプロイや特定のビルドの手動でトリガーされたデプロイなど、さまざまな展開シナリオをサポートするように TFS を構成する方法について説明します。
  • Advanced Enterprise Web Deployment。 このチュートリアルでは、複数の環境のデータベースデプロイをカスタマイズし、展開からファイルとフォルダーを除外し、展開プロセス中に Web アプリケーションをオフラインにするなど、より高度なさまざまな展開タスクを実行する方法について説明します。