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