走向全球
- 3 分鐘
在上一個單元中,我們描述了計算擴展,並在此過程中提高了可用性。 我們也建議新增 Azure Cache for Redis 以改善效能,並透過分片技術擴展 Azure SQL 資料庫。
隨著您的業務成長,下一步可能是走向全球。 不過,在嘗試實作完全全域架構之前,您需要考慮一些事項。
要思考的問題
第一個問題是: 你真的需要走向全球嗎?
請務必瞭解客戶在處理這類工作之前所受的痛苦,因此請問自己幾個問題:
- 您可以透過內容傳遞網路更接近用戶內容嗎?
- 您真的需要跨兩個(或更多)地理位置調整此特定系統嗎? 例如,美國的使用者是否需要在英國擁有完全相同的帳戶? 獨立系統更適合嗎? 這種模式在電子商務中很常見。
- 如果您真的需要全域分散式系統,您需要資料庫的一致性為何? 全球範圍內實現強一致性是很難做到的,在Cosmos DB等服務中不被允許,原因實際是受到光速限制的影響。
資料一致性
讓我們更仔細地看看數據一致性的問題。
資料庫系統中的一致性 是指任何指定的資料庫交易都必須以允許的方式變更受影響的數據。 分散式運算中使用了兩個一致性模型。
強式一致性 提供線性化的保證。 保證讀取一定會傳回項目的最新認可版本。
然後是 最終一致性,即資料庫或系統最終會隨著時間而變得一致的想法。 讀取沒有排序保證。 如果沒有任何進一步的寫入,則複本最終會趨於一致。
全球擴展的工具
如果您發現您確實需要全域調整應用程式,有一些 Azure 服務可協助您達成此目的。 讓我們看看 Azure 流量管理員和 Azure Front Door:
- Azure 流量管理員是全域 DNS 型負載平衡服務。 它會使用 DNS 和健康探測,根據您定義的路由原則,將使用者路由傳送到最佳後端伺服器。 此定義可能以效能、位置、循環等為基礎。 識別出狀況良好的後端之後,用戶端一律會直接連線到後端。
- Azure Front Door Service 是應用程式傳遞網路(ADN)即服務,為您的應用程式提供各種第 7 層負載平衡功能。 可提供動態網站加速 (DSA) 以及具有近乎即時容錯移轉的全域負載平衡。 它是高度可用且可調整的服務,完全由 Azure 管理。
Azure Front Door 基本上是全域 HTTP 型負載平衡器。 用戶端會建立與 Front Door 本身的連線,因此 Front Door 會 Proxy 處理使用者的要求。 如果要求的專案不在快取中,則會識別正確的路由規則。 然後,它會檢查相關後端的健康情況探查,並假設所有狀況良好,會根據路由方法,將使用者要求轉送至最佳後端。
因為 Azure Front Door 代理會處理連線,因此您可以執行一些進階功能,例如運行 Web 應用程式防火牆和快取,這對擴展規模很有幫助。 這兩個功能都無法透過「流量管理員」達成。
此圖顯示如何同時使用這兩者。
此設定會使用流量管理員,對記憶體帳戶中的靜態資產進行簡單的 DNS 型負載平衡。 其也會使用 Front Door 在 Web 應用程式上跨 App Service 和 VM 進行路徑型路由。