本地端部署到 Azure 流程

在本地端開發單一網站 (ASP.NET + SQL Server),部署到 Microsoft Azure 有很多種方式可以達成。 但完成第一次部署後,可能會遇到幾個問題:
  • 單一 Azure 網站,若分成多個子系統(網站專案)同時進行開發,部署流程該如何做 ?
  • 資料庫結構或預存程序異動,日後的持續部署要如何進行 ?

首次部署

部署網站可以在 Visual Studio 2013 使用 Web Deploy 的方式,或者從 DropBox, Visual Studio Online … 等方式。
下圖是在 VS2013 選擇 Web Deploy 做發行。
image
SQL Server 第一次移轉,最簡單的方式是在 SSMS ( SQL Server Management Studio) 使用 [Deploy Database to SQL Azure]
image
在發行前,需要先確保資料結構是符合 SQL Azure 的規定,如每一個資料表都需要有 Clustered Index

持續發行流程

目前試做出一個半自動的部署流程,網站與資料庫在本地端機房分別設置:開發端、測試端、基準端等三組環境,進行流程如下。

網站發行流程

image
  1. 由 Visual Studio 使用 [Web Deploy] 發行到測試網站上,經多個網站專案發行後,測試網站將包含所有專案的檔案,若測試無誤後進行下一步驟。
  2. 使用備份軟體 (SyncBack Free) 將測試網站上的檔案複製到基準網站,若測試無誤後進行下一步驟。
  3. 使用備份軟體 (SyncBack Free) 將基準網站檔案備份至 Dropbox 目錄,登入 Azure 後台進行 Dropbox 同步部署。

資料庫更新流程

image
  1. 子系統使用 [Web Deploy] 發行時,同時將開發資料庫與測試資料庫做結構與預存差異更新。
  2. 建立 SQL Server Database Project,比對測試端與基準端資料差異,並產生更新的 T-SQL 語法,對測試基準端庫執行確保語法可行。更新後,搭配基準端網站測試程式與資料庫版本是否吻合。
  3. 連接 SQL Azure 執行差異更新的 T-SQL script

補充
建立 SQL Server Database Project 進行資料庫比對,操作步驟如下:
image
image
image
分別設定來源與目的地的資料庫
image
SNAGHTML681fe2
  1. 比對
  2. 產生 Script