企業中的 Web 部署

作者 :Jason Lee

本教學課程說明如何在管理企業級 Web 應用程式部署至開發、測試、預備和生產環境時遇到的許多挑戰。 本教學課程包含參考解決方案以及概念和工作導向內容的混合,以引導您完成各種常見工作和程式。

如需這些教學課程的義大利文翻譯,請造訪 http://www.lucamorelli.it

企業部署挑戰

當組織想要管理複雜、企業級解決方案的部署時,通常會遇到這些挑戰:

  • 您必須能夠將專案部署到多個環境,例如開發人員或測試環境、預備平臺和生產伺服器。 每個環境都必須使用不同的組態設定來部署解決方案。
  • 您必須在單一步驟或自動化建置和部署程式中同時部署多個相依專案。
  • 您必須能夠從自動化程式推動部署。 例如,您想要使用持續整合 (CI) 程式,在簽入新程式碼時將 Web 應用程式部署至測試環境。
  • 您必須能夠控制部署程式,並從 Visual Studio 外部設定部署變數,因為開發人員不太可能擁有正確的組態設定或每個目標環境的必要認證。
  • 您必須部署架構型資料庫專案,並在後續部署時保留現有的資料。
  • 您必須以臨機操作方式部署成員資格資料庫,而不需部署使用者帳戶資料。 您可能也需要更新已部署成員資格資料庫的架構,而不會遺失現有的使用者帳戶資料。
  • 當您將內容部署到各種目標環境時,您必須排除特定檔案或資料夾。

方法概觀

本教學課程與本系列中的其他教學課程搭配使用這個高階方法來符合上述挑戰。

  • 使用自訂Microsoft Build Engine (MSBuild) 專案檔來控制整體建置和部署程式。
  • 這可讓您在方案中建置和部署每個專案,作為單一可編寫腳本作業的一部分。
  • 環境特定設定是使用簡單的環境特定專案檔來設定。 相較于以 Visual Studio 為中心的方法,使用解決方案組態和發佈設定檔來設定不同環境的部署,此方法可讓您設定和管理 Visual Studio 外部的部署程式。 這表示開發人員不需要進一步瞭解連接字串、服務端點、伺服器認證,以及目的地環境的其他部署變數。
  • Team Build 可以叫用自訂專案檔,作為 Team Foundation Server (TFS) 工作流程的一部分。 這可讓您設定 CI 案例的自動化部署。

使用 Internet Information Services (IIS) Web 部署工具 (Web Deploy) 封裝及部署 Web 應用程式專案。

  • Web Deploy 提供架構,可讓您封裝 Web 應用程式內容並將其部署至目的地 IIS Web 服務器,以及相依性、組態設定、安全性設定,以及任何其他需求。
  • 您可以從自訂 MSBuild 專案檔內控制整個封裝和部署程式。 您也可以操作 Web 部署套件隨附的組態設定,例如連接字串、服務端點和 IIS 目的地詳細資料。
  • Web Deploy 與 Web 發佈管線一起提供許多擴充點,可讓您自訂部署。 例如,從您的 Web 部署套件中排除不必要的檔案和資料夾很容易。

使用 VSDBCMD.exe 公用程式來部署和更新資料庫架構。

  • VSDBCMD 可讓您從資料庫架構檔案 (.dbschema) 部署資料庫,當您建置 Visual Studio 資料庫專案時會產生此檔案。 相反地,Web Deploy 中包含的資料庫部署功能更適合從本機SQL Server實例部署現有的資料庫。
  • 不同于 Visual Studio 部署資料庫專案的功能,VSDBCMD 可讓您將差異更新部署至現有的目標資料庫。 這可讓您在升級資料庫架構時保留任何現有的資料。
  • 您可以從自訂 MSBuild 專案檔內執行 VSDBCMD 命令。

內容對應

本教學課程包含四個主要領域的主題。

這些主題介紹參考解決方案—連絡人管理員解決方案,並描述如何在本機電腦上下載並加以設定:

這些主題介紹 MSBuild 專案檔、描述如何建立及使用自訂專案檔,以及逐步解說連絡人管理員解決方案的部署程式:

這些主題描述 Web 應用程式部署,包括建置和封裝程式的運作方式、建置程式如何與 Web 發佈管線整合、如何修改部署參數,以及如何將 Web 套件部署至目的地環境:

重要技術

本教學課程中的主題主要會使用這些技術來管理組建和部署:

  • Visual Studio 2010
  • MSBuild
  • IIS 7.5
  • Web Deploy 2.0
  • VSDBCMD.exe資料庫部署公用程式

本系列中的其他教學課程

這在企業級 Web 部署上形成一系列五個教學課程的一部分。 這些是系列中的其他教學課程:

  • 在企業案例中部署 Web 應用程式。 本簡介內容提供教學課程系列的內容背景。 它會描述教學課程案例,並說明整個系列中所描述的工作和逐步解說如何融入更廣泛的應用程式生命週期管理 (ALM) 程式。
  • 設定 Web 部署的伺服器環境。 本教學課程說明如何設定 Windows 伺服器以支援各種部署案例,包括使用 Web Deployment Agent​ Service 的遠端 Web 套件部署, (遠端代理程式) 或 Web Deploy 處理常式和遠端資料庫部署。 它提供為您自己的環境選擇適當部署方法的指引,並說明如何使用 Web Farm Framework (WFF) ,在伺服器陣列中的所有 Web 服務器上複寫已部署的 Web 應用程式。
  • 設定 Team Foundation Server 以進行 Web 部署。 本教學課程說明如何設定 TFS 以支援各種部署案例,包括自動化部署作為 CI 程式的一部分,以及手動觸發的特定組建部署。
  • 進階企業 Web 部署。 本教學課程說明如何完成各種更進階的部署工作,例如自訂多個環境的資料庫部署、排除部署中的檔案和資料夾,以及在部署過程中離線 Web 應用程式。