容災切換必備——全局流量管理介紹


如今人們對互聯網服務的依賴越來越重,提供低延時高可用的服務成為越來越多互聯網服務廠商的迫切需求。您是否也遇到過以下問題:
1、需要降低網絡耗時,卻不知道怎么實現用戶服務的就近訪問?
2、需要對服務進行灰度驗證,卻不知道如何控制各個節點的流量比重,不知道如何資源分配?
3、知道保障服務的可用性非常重要,卻在遇到故障時,不知道如何快速將流量引流到其他可用節點?
您需要全局流量管理產品來幫助您排憂解難。

什么是全局流量管理

全局流量管理(Global Traffic Manager,以下簡稱 GTM),是阿里雲在19年推出的一款產品。DNS 是當今互聯網領域最常見的流量調度方式, 隨着分布式服務技術的發展,主備部署、異地多活等多節點架構逐步成為主流。對業務流量進行有效的調度管理,以達到服務低延時高可用的目的就顯得尤為重要。根據對阿里經濟體多年的流量調度管理經驗,以及在眾多業務場景(容災切換,大規模遷站,經濟體上雲等)中的實踐,全局流量管理應運而生,能夠幫助用戶高效地管理業務流量。

GTM 原理

GTM 本質上是通過 DNS 實現流量調度,底層服務使用的是“雲解析DNS”和“雲監控”兩款產品,集成了DNS的智能解析功能、雲監控的應用服務監控功能,為客戶輸出不同網絡或地區用戶訪問實現就近接入、應用服務運行狀態的健康檢查、故障自動切換等能力。

01

 

圖1: GTM原理圖


GTM 會為用戶提供一個 CNAME 接入域名(類似 CDN 的接入域名,用戶需要將自己的業務域名 CNAME 到該接入域名上來使用 GTM 的功能)並需要用戶配置 地址池(Pool)。

  • 一個地址池,代表一組提供相同應用服務,一般是具備相同運營商或地區(region)屬性的IP地址或域名地址。
  • 然后通過 訪問策略 配置,將接入域名和地址池進行關聯,GTM 支持按照運營商或地域維度解析到某個地址池,地址池中的地址支持 負載均攤 和 加權輪詢 的策略。
  • 最后通過開啟 健康檢查(HealthCheck) 來對地址池中的地址進行可用性監控。當某個地址不可用時,會自動隔離該地址;當 GTM 認為整個地址池不可用時會自動切換到 備用地址池。

從概念和原理上,GTM 容易和負載均衡(SLB)以及雲解析全局負載均衡(GSLB) 混淆。

全局流量管理(GTM)和負載均衡(SLB)的區別:

  • GTM 是通過DNS將域名解析到多個IP地址,不同用戶訪問不同的IP地址,來實現應用服務流量的分配。同時通過健康檢查動態更新DNS解析IP列表,實現故障隔離以及故障切換。最終用戶的訪問直接連接服務的IP地址,並不通過GTM。
  • 而 SLB 是通過代理用戶訪問請求的形式將用戶訪問請求實時分發到不同的服務器,最終用戶的訪問流量必須要經過SLB。一般來說,相同Region使用SLB進行負載均衡,不同region的多個SLB地址時,則可以使用GTM進行負載均衡 。
    兩者的對比如下表所示:
對比項 網絡層 后端地址 加權輪詢 跨Region難度 故障間隔時間 會話保持
GTM 3 層 域名、IP 支持 簡單 分鍾級 不支持
SLB 4層、7層 IP 支持 困難 秒級 支持

 

表1:GTM 與 SLB 對比

  • 全局流量管理(GTM)和全局負載均衡(GSLB)的區別:
    GTM 是現有雲解析DNS中全局負載均衡(GSLB)的升級和替代產品,GTM比GSLB支持更多的監控方式、更高級的IP地址管理功能、更穩定快速的監控反饋體驗。

兩者的對比如下表所示:

對比項 服務接入 健康檢查 故障切換時間 多線路接入 鏈路互備
GTM CNAME 接入 ping,tcp,http(s) 分鍾級,不受子域名 TTL 限制 電信、聯通、移動、鵬博士 故障自動切換,可控
GSLB 子域名開啟 不支持 受子域名TTL 限制 不支持 隨機選擇正常鏈路,不可控

 

表2:GTM 與 GSLB 對比

GTM 功能特性

地址池:

傳統DNS解析到單個地址,而GTM則引入地址池概念。通過地址池可對應用服務的IP地址進行統一管理。實現將終端用戶訪問解析到應用服務地址池,既可實現高負載情況下的流量均攤,又可實現自定義流量分配。同時當地址池整體不可用時,可以做備份切換。

訪問策略:

訪問策略旨在解決根據請求來源和地址池健康情況進行地址池切換的問題。既能做到地址池緯度智能解析,又可實現故障自動切換功能。
GTM對中國的4大運營商、7大區域、海外6大洲進行智能DNS解析,可以實現來源於不同網絡或區域的用戶訪問者實現就近接入,提高訪問速度。
當地址池整體出現故障時,GTM會根據用戶自定義策略進行地址池分鍾級切換,並當地址池恢復時切回。

健康檢查:

依托於雲監控強大的分布式監控功能,GTM新增了HealthCheck模塊,從多個地區對地址池內的多個應用服務IP地址發起健康探測,目前已支持http/https、tcp、ping三種方式。當地址池中地址發生故障時HealthCheck模塊會准確的檢測到異常情況並與DNS交互,摘除故障地址。並當故障地址恢復時,自動恢復至解析返回列表。
經過測試團隊對GTM多次測試驗證,當應用服務發生故障時,GTM能在 5分鍾內 將應用服務的90%左右的流量切換成功。GTM的故障切換生效時間 = 故障發現時間 + DNS切換同步時間 。
故障發現時間:目前默認的健康檢查配置可以在故障的3分鍾左右准確發現故障;
DNS切換同步時間:目前 GTM 的cname接入域名TTL設置為60秒,理論上域名切換后60秒內可以生效,但實際情況取決於全國各地運營商的緩存設置時間。

應用場景

接下來以異地雙活為例介紹如何借助GTM實現快速容災切換。如下圖所示,某服務的用戶主要分為海外用戶和國內用戶,后端服務采用一套部署方案。通過GTM對不同地區用戶請求進行智能調度,將用戶訪請求流量路由至不同的接入服務點,即海外用戶訪問新加坡中心(Singapore),國內用戶訪問杭州中心(CN-Hangzhou)。當某站點發生故障災難時,各接入站點自建互相備份,最終實現業務的高可用。

02

 

圖2: GTM 在異地多活中的應用

五步快速接入GTM,實現異地容災:

(1)全局配置:
基礎配置,主要配置負載均衡策略、全局TTL、報警通知組等相關信息。

(2)地址池配置:
新建地址池Singapore和CN-Hangzhou。每個地址池中均配置該區域下多個服務IP,以及最小可用地址數量。當地址池存活地址數小於該地址池數量時,則地址池視為不可用。此外,根據全局配置中負載均衡策略自動實現流量分配。

(3)開啟健康檢查
即對地址池中的IP地址配置健康檢查,開啟后可實現實時監測地址的可用性狀態。根據地址的可用性進行故障自動隔離,並通知相應報警組。當地址恢復后,自動添加至解析列表。此外,當地址池整體出現問題時,觸發默認地址池與備用地址池之間自動切換。

(4)訪問策略配置
根據用戶的請求來源設置最終用戶訪問哪一個地址池。如圖2所示,海外用戶希望訪問Singapore地址池,則需設置相應訪問策略,請求來源設置海外地區,默認地址池為Singapore,備用地址池設置CN-Hangzhou。則正常請求下,則海外用戶訪問Singapore中心,發生故障后會快速切換至CN-Hangzhou中心。

(5)CNAME接入配置
需要將用戶訪問的主域名CNAME至全局流量管理的實例域名,才能最終實現對應用服務進行容災、智能接入。即將圖中的www.cloud-example.com CNAME到我們提供的接入域名。

配置完成后, GTM將根據健康配置實時探測地址池中地址,當地址發生報警時,則根據圖3的流程進行判斷,實現容災切換,以圖2中IP地址A報警為例。由此可見,當默認地址池(Singapore)地址池可用時,則解析列表摘除地址A,當默認地址池整體不可用時則切換備用地址池(CN-Hangzhou),切換過程自動完成,並縮小時間至分鍾級。從而有效保證異地容災的切換效率。

03


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM