天天看點

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

如今人們對網際網路服務的依賴越來越重,提供低延時高可用的服務成為越來越多網際網路服務廠商的迫切需求。您是否也遇到過以下問題:

1、需要降低網絡耗時,卻不知道怎麼實作使用者服務的就近通路?

2、需要對服務進行灰階驗證,卻不知道如何控制各個節點的流量比重,不知道如何資源配置設定?

3、知道保障服務的可用性非常重要,卻在遇到故障時,不知道如何快速将流量引流到其他可用節點?

您需要全局流量管理産品來幫助您排憂解難。

什麼是全局流量管理

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

GTM 原理

GTM 本質上是通過 DNS 實作流量排程,底層服務使用的是“雲解析DNS”和“雲監控”兩款産品,內建了DNS的智能解析功能、雲監控的應用服務監控功能,為客戶輸出不同網絡或地區使用者通路實作就近接入、應用服務運作狀态的健康檢查、故障自動切換等能力。

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

圖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位址管理功能、更穩定快速的監控回報體驗。

服務接入 健康檢查 故障切換時間 多線路接入 鍊路互備
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)。當某站點發生故障災難時,各接入站點自建互相備份,最終實作業務的高可用。

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

圖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),切換過程自動完成,并縮小時間至分鐘級。進而有效保證異地容災的切換效率。

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

圖3: 故障流程切換

另外 GTM 在地域/營運商次元智能排程、CDN 回源容災、流量權重調配、聲明式業務容災預案 等場景下都有推薦的實踐方案,更多内容請參考

阿裡雲全局流量管理使用文檔

看了這麼多,想不想試用以下GTM服務呢?我們拿出了慢慢誠意,對所有GTM都新使用者,都提供免費1個月的産品試用。試用結束前續費還能夠有8折的優惠哦。

趕緊猛戳申請試用吧

繼續閱讀