選擇正確的 Azure 裝載選項

本文探討從內部部署將現有的 .NET Framework 應用程式移轉到 Azure 時,應考慮在 Azure 中多個選擇間的考量和比較。

將現有 .NET 應用程式移轉至 Azure 時要考慮的基本領域如下:

  1. 計算選擇
  2. 資料庫選擇
  3. 網路和安全性考量
  4. 驗證與授權考量

計算選擇

將現有的 .NET Framework 應用程式移轉至 Azure 時則會有多個選項。 不過,因為 .NET Framework 相依於 Windows,下列選項僅限於以 Windows 為基礎的計算服務。

下表列出數個比較和建議,可協助您為現有的 .NET 應用程式選擇適合的計算移轉路徑。

Azure VM Azure App Service Windows 容器
使用時機
  • 應用程式在伺服器和本機 .msi 安裝上具有強式相依性。
  • 您想要最簡單的應用程式移轉路徑
應用程式與伺服器沒有相依性,是個乾淨的 ASP.NET Web 應用程式 (MVC、WebForm) 或存取資料庫伺服器的多層式架構應用程式 (Web API、WCf)。
  • 應用程式在原始伺服器上具有相依性,但這些相依性可以包含在 Docker Windows 映像中。
優點和優勢
  • 最簡單的移轉路徑
  • 熟悉的環境。 部署環境為 VM,因此與內部部署的伺服器相似。
持續進行 PaaS 維護,這是在 Azure 中管理和調整應用程式的最簡單方式。
  • 已備妥供日後使用,具相依性的雲端 DevOps 就緒包含在應用程式的容器中。
  • 幾乎不需要重構 NET /C# 程式碼。
缺點 屬於 IaaS。 維護成本高昂。 您必須管理 VM 關於網路、負載平衡器、向外延展、IIS 管理等的基礎結構。
  • 並不是所有應用程式都受到支援
  • 某些應用程式可能需要重構並稍微重新架構,以支援 Azure App Service。
  • Docker 的技能學習曲線
  • 某些程式碼和應用程式設定會變更
需求 Windows Server 虛擬機器的需求與內部部署的應用程式相同 整備檢查中所指定的 Azure App Service 需求。
如何移轉 請參閱移轉到 Azure 虛擬機器 請參閱移轉 Azure App Service 請依照將現有 .NET 應用程式與 Azure 和 Windows 容器現代化電子書中說明的考量、案例和逐步解說

下列流程圖呈現出規劃移轉至 Azure 的現有 .NET Framework 應用程式的決策樹。 如果可行,請先嘗試選項 A,但選項 B 是最容易執行的路徑。

Flowchart showing hosting decision tree

資料庫選擇

將關係資料庫移轉至 Azure 時,您有多個選擇。 請參閱將 SQL Server 資料庫移轉至 Azure,可協助您為現有的 .NET 應用程式選擇正確的資料庫移轉路徑。

網路和安全性考量

將應用程式部署至 Microsoft Azure 之類的公用雲端時,您可能會想要建立網路 DMZ 來隔離和保護特定網路,例如 Azure 與內部部署之間的 DMZ,或 Azure 與網際網路之間的 DMZ。 DMZ 可以使用 Azure 虛擬網路來實作。

Azure 虛擬網路可讓您:

  • 建置您可控制的混合式基礎結構
  • 使用自己的 IP 位址與 DNS 伺服器
  • 利用 IPsec VPN 或 ExpressRoute 保障連線的安全
  • 對子網路間的流量進行細微的控制
  • 使用虛擬應用設備建立精密的網路拓撲
  • 為應用程式建立隔離且極為安全的應用程式環境

若要開始建置您自己的虛擬網路,請參閱 Azure 虛擬網路文件

移轉至 Azure 的驗證與授權考量

所有移至雲端的組織最關心的問題都是安全性。 大部分公司往往會投資大量時間、金錢,並進行眾多工程工作,來設計和開發安全性模型,但重點是這些公司必須能充分利用現有投資,例如身分識別存放區和單一登入解決方案。

許多執行內部部署的現有企業 B2E .NET 應用程式均使用 Active Directory 進行驗證和身分識別管理。 Azure AD Connect 可讓您整合您的內部部署目錄與 Azure Active Directory。 若要開始使用,請參閱整合您的內部部署目錄與 Azure Active Directory

如需 Azure Active Directory 的進一步相關規劃,請參閱混合式身分識別解決方案的身分識別需求

其他驗證通訊協定選擇為 OAuthOpenID,都是面對取用者的應用程式常用的方法。 使用自發的身分識別資料庫 (例如由 IdentityServer4 使用 OAuth 包裝的 ASP.NET 身分識別 SQL 資料庫),通常不需連線到內部部署資料庫或目錄。

下一步