高度なエンタープライズ Web 配置

作成者: Jason Lee

このチュートリアルでは、多くのエンタープライズ展開シナリオで必要または望ましいさまざまなタスクを実行する方法について説明します。

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

これは、Fabrikam, Inc という架空の会社のエンタープライズ展開要件に基づく一連のチュートリアルの一部です。このチュートリアル シリーズでは、サンプル ソリューションである Contact Manager ソリューションを使用して、ASP.NET MVC 3 アプリケーション、Windows Communication Foundation (WCF) サービス、データベース プロジェクトなど、現実的な複雑さのレベルの Web アプリケーションを表します。

これらのチュートリアルの中心にある配置方法は、「 ビルド プロセスの理解」で説明されている分割プロジェクト ファイルのアプローチに基づいています。このアプローチでは、ビルド プロセスは 2 つのプロジェクト ファイルによって制御されます。1 つは、すべての移行先環境に適用されるビルド命令を含み、もう 1 つは環境固有のビルドと配置設定を含みます。 ビルド時に、環境固有のプロジェクト ファイルが環境に依存しないプロジェクト ファイルにマージされ、ビルド手順の完全なセットが形成されます。

シナリオの概要

これらのチュートリアルのシナリオの概要については、「 Enterprise Web Deployment: Scenario Overview」を参照してください。 このチュートリアルを開始する前に、このトピックを確認することをお勧めします。

このチュートリアルの使用方法

  • このチュートリアルの各トピックは自己完結型であり、エンタープライズ展開シナリオで発生する特定の課題または問題に対処します。 これらのトピックを特定の順序で操作する必要はありません。 ただし、このチュートリアルでは、いくつかの高度なタスクについて説明します。 そのため、このコンテンツを最大限に活用するには、 エンタープライズ チュートリアルの Web 配置で 説明されている概念と手法について理解しておく必要があります。
  • このチュートリアルには、次のトピックが含まれています。
  • "What If" デプロイの実行。 多くのシナリオでは、実際に変更を加える前に、ターゲット環境または既存のコンテンツに対する提案されたデプロイの影響を判断する必要があります。 このトピックでは、"what if" デプロイを実行して、実際に変更を加えることなく、ターゲット環境にコンテンツをデプロイしたかのようにログ ファイルとデータベース更新スクリプトを生成する方法について説明します。 これらのリソースを分析すると、ライブ デプロイの前に潜在的な問題を特定するのに役立ちます。
  • 複数の環境のデータベースデプロイをカスタマイズする。 データベース プロジェクトを複数の宛先に配置する場合、多くの場合、各ターゲット環境の配置プロパティをカスタマイズする必要があります。 たとえば、テスト環境では通常、すべてのデプロイでデータベースを再作成しますが、ステージング環境や運用環境では、データを保持するために増分更新を行う可能性が高くなります。 このトピックでは、ターゲット環境ごとに環境固有のデプロイ構成 (.sqldeployment) ファイルを作成することで、これらのプロパティの変更をデプロイ ロジックに組み込む方法について説明します。
  • テスト環境へのデータベース ロール メンバーシップの展開。 継続的インテグレーション (CI) のビルドとテスト環境へのデプロイの一環など、すべてのデプロイでデータベースを再作成する場合は、通常、毎回データベース ロール メンバーシップを構成する必要があります。 たとえば、通常は、Web アプリケーションに関連付けられているアプリケーション プール ID にアクセス許可を付与する必要があります。 このトピックでは、デプロイ後の SQL スクリプトをデプロイ ロジックに追加することで、このプロセスを自動化する方法について説明します。
  • Enterprise 環境へのメンバーシップ データベースの展開。 ASP.NET メンバーシップ データベースには、デプロイ プロセスを複雑にする可能性があるさまざまな特性があります。 たとえば、スキーマのみのデプロイでは、データベースは非運用状態になります。 ほとんどのシナリオでは、各移行先環境でメンバーシップ データベースを直接作成することをお勧めします。 ただし、メンバーシップ データベースをデプロイする必要がある場合は、このトピックでは、固有の課題に対応するために使用できるいくつかの方法について説明します。
  • 展開からのファイルとフォルダーの除外。 一部のシナリオでは、Web パッケージの内容を特定の移行先環境に合わせて調整する必要があります。 たとえば、テスト環境にデプロイするときに JavaScript ライブラリの完全なバージョンを含め、クライアント側のデバッグをサポートし、ステージング環境または運用環境にデプロイするときにライブラリの縮小バージョンを使用することができます。 このトピックでは、パッケージ作成プロセスから特定のファイルとフォルダーを除外する方法について説明します。
  • Web 配置を使用して Web アプリケーションをオフラインにする。 ステージング環境または運用環境にソリューションをデプロイする場合、多くの場合、デプロイ プロセスの間、Web アプリケーションをオフラインにする必要があります。 このトピックでは、デプロイ プロセスの開始時に App_offline.htm ファイルを Web アプリケーションに追加し、最後に削除する方法について説明します。 App_offline.htm ファイルが配置されている間、Web アプリケーションを参照するすべてのユーザーは、App_offline.htm ファイルに自動的にリダイレクトされます。
  • MSBuild から Windows PowerShell スクリプトを実行する。 多くのデプロイ シナリオでは、レジストリへのカスタム イベント ソースの追加や、SQL Server インスタンス間のレプリケーションの構成など、デプロイ後のより複雑なアクションが必要です。 これらのアクションは、多くの場合、Windows PowerShellスクリプトを使用して実行されます。 このトピックでは、ビルドおよび配置プロセスの一環として、Microsoft Build Engine (MSBuild) プロジェクト ファイルからWindows PowerShellスクリプトを実行する方法について説明します。
  • パッケージ化プロセスのトラブルシューティング。 Web 発行パイプライン (WPP) は、Web アプリケーション プロジェクトのパッケージ化プロセスに関する詳細な情報を生成するために使用できる EnablePackageProcessLoggingAndAssert という名前の MSBuild プロパティを定義します。 このトピックでは、 プロパティの機能とその使用方法について説明します。

主なテクノロジ

このチュートリアルでは、これらの製品とテクノロジを使用して、ビルドと Web デプロイの自動化をサポートする方法に焦点を当てています。

  • Visual Studio 2010 および Team Foundation Server (TFS) 2010
  • MSBuild と TFS チーム ビルド
  • インターネット インフォメーション サービス (IIS) 7.5
  • IIS Web 配置ツール (Web 配置) 2.1
  • VSDBCMD.exe データベース配置ユーティリティ

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

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

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