摘要:在字節跳動,平衡超大規模流量的穩定性、性能與成本,是一系列產品共同面臨的挑戰,其中, Trafficroute GTM 起到了不可忽視的作用。Trafficroute GTM 承載了字節跳動億級流量、覆蓋了大規模場景,是一款基於 DNS 的流量路由服務,我們將通過兩期文章,揭秘字節跳動如何通過 Trafficroute GTM 巧妙應對以上挑戰,實現高效流量管理!
本文為上期,主要介紹基於TrafficRoute GTM 的 GEO-基礎路由模式進行自定義流量編排,主要內容為:
- TrafficRoute GTM介紹
- TrafficRoute GTM的GEO-基礎路由模式的能力
- 通過流量編排實現同城多活、多CDN調度、CDN回源調度等經典架構及業務在穩定性、性能、成本等方面的收益
下期預告:下期我們將介紹TrafficRoute GTM 的Perf-智能路由模式,怎麼通過它實現流量智能調度,敬請期待。面臨超大規模流量時,平衡好穩定性、性能、成本,能確保用户在訪問服務時獲得流暢、快速且可靠的體驗,這對於提高用户滿意度和粘性至關重要。
TrafficRoute GTM 為業務提供基於 DNS 的全球流量負載均衡、智能調度、自動容災服務,可以幫助業務提升連續性、實現資源優化、獲取更多競爭優勢。
1.火山引擎 Trafficroute GTM 簡介
火山引擎 Trafficroute GTM 是基於 DNS 的流量路由服務。它依託全球1100+分佈式探測節點,構建出強大的網絡質量感知能力,實現了對“端-邊-雲”全鏈路流量的質量感知,從而能根據APP應用的實時的訪問質量、節點負載和健康狀況作出動態的流量調度。
此外,Trafficroute GTM 還提供靈活的調度策略,其中GEO-基礎路由功能豐富,包括負載均衡、會話粘性和故障轉移等多種特性。而Perf-智能路由則在基礎路由的基礎上,進一步提供性能優先和負載反饋等智能調度能力,以滿足更高層次的調度需求。
一圖看懂 TrafficRoute GTM
在字節跳動內部業務中,通過對Trafficroute GTM 能力的合理運用,落地了同城多活、多雲混合等經典架構,也落地了邊緣下沉,邊緣計算x中心雲等大規模分佈式場景的最佳實踐。
2.GEO-基礎路由,實現流量自定義編排
TrafficRoute GTM 的 GEO-基礎路由賦予用户靈活的流量管理能力,用户可根據具體業務需求,如負載均衡、就近接入、多活/災備等,自定義路由調度策略,通過資源(地址池)編排、健康檢查編排、路由(調度)規則編排等能力,打造個性化的流量調度與容災解決方案。
2.1地址資源編排:地址按需分類
資源是指流量訪問的終點,包括公有云的 EIP 、CDN 的 CNAME 或邊緣接入點等。TrafficRoute GTM 支持用户按照業務場景對資源(地址)進行自定義分類、組合和編排,編排形成的地址池可被路由規則引用,進而打造個性化的流量調度與容災解決方案。
2.2健康檢查編排:全鏈路監測能力健康檢查
是實現自動容災的必要條件,TrafficRoute GTM 具備覆蓋全球範圍的 L3/L4/L7 健康檢查功能,用户可以配置不同靈敏度的全鏈路監測能力,以此為自動容災提供精準的決策支持,最終實現最快分鐘級自動容災。
2.3路由規則編排:流量調度和容災
通過精心配置 TrafficRoute GTM 的路由(調度)規則,可以精確控制流量的來源與去向,同時在發生故障時,確保流量能夠按照預設的容災方案進行故障轉移。
3.字節跳動流量編排內部實踐
在字節跳動內部業務中,通過 TrafficRoute GTM 的自定義流量編排實現了同城多活、異地災備、全球多CDN調度、CDN回源調度等經典架構,幫助內部業務:
- 在穩定性上,將MTTR降低至分鐘級,實現最快1分鐘故障發現,3-5分鐘90%+流量收斂(由於流量收斂時長受客户端分佈、localDNS行為、是否使用長連接等多種因素影響,3-5分鐘90%+為參考值)
- 在性能上,通過編排,將客户流量調度至各自訪問體驗最佳節點上,實現訪問時延降低15%+
- 在成本上,通過編排,將流量優先調度至單位成本更低的資源上,實現帶寬成本降低10%+
3.1同城多活,異地災備,確保業務穩定與連續
在字節跳動業務中,同城多活與異地災備架構是確保超大規模業務全天候穩定運行的核心策略之一。藉助 GTM 的 GEO-基礎路由模式,我們成功構建了AZ 間流量負載均衡、 Region 間異地災備、客户端 GEO&ISP 就近訪問、分鐘級自動容災 4大能力,以這 4 大能力為保障,實現了流量負載均衡、客户端就近接入、分鐘級自動容災等,確保了業務的穩定性和連續性。
同城多活 & 異地災備
AZ 間流量負載均衡
通過編排路由規則的地址池權重,使得華北移動的客户端按照60% vs 40%比例在RegionA的AZ之間實現了負載均衡。
同時,通過打開*會話粘性開關(TOB版本待發布),使得特定的華北移動客户端始終訪問同一個EIP,實現會話保持功能。
Region間異地災備
通過編排路由規則的生效地址池集合 vs 其他地址池集合,實現了當Region A整體故障,流量切到Region B,實現異地容災能力。
客户端GEO&ISP就近訪問
通過編排路由規則的線路 & 生效地址池集合,實現了根據客户端地理位置和運營商來就近訪問服務的能力,從而確保時延最低、性能最優、體驗最佳。
分鐘級自動容災
通過編排健康檢查規則,實現了最快1分鐘故障感知&容災切換,3-5分鐘 90%+流量收斂的能力;且可感知全鏈路的故障,覆蓋客户端->運營商網絡->機房入口->後端服務。
以下是字節跳動內部自動容災實踐案例,某個面向企業級客户的邊緣雲與中心雲混合部署業務,在凌晨3點47分遭遇了某機房故障,GTM在3點48分迅速檢測到這一故障,並自動啓動了容災機制。到了4點左右,中心機房已成功收斂了90%的流量。隨後,在4點02分,GTM系統監測到故障已恢復,隨即自動將流量回切至邊緣機房。
3.2全球多CDN調度,始終選用“最優” 加速廠商
字節跳動的業務,會在全球應用包括火山引擎 CDN 在內的多家 CDN 廠商,來實現資源加速。然而,不同 CDN 廠商的服務能力存在差異,即便是同一廠商,在不同地區或不同時間段的表現也有所不同。因此,確保在全球各個地區始終選用“最優” CDN 廠商,成為了一項重要需求。藉助 TrafficRoute GTM 的流量編排,業務方能夠根據不同區域的需求,靈活選擇“資源覆蓋更廣”或“加速性能更好”的 CDN 廠商進行內容加速,同時可在多個廠商之間權衡成本效益(基於P95帶寬計費)。
同時, TrafficRoute GTM 確保了不同區域的流量能夠“就近接入”選定的 CDN 廠商,以保障接入性能。在國內,針對不同運營商採用了定製化的路由策略,避免了 ISP 間的“跨網”問題,確保網絡流暢。為了應對流量管理中的潛在故障,每個流量部分都配置了多個地址池(即多個廠商),以實現故障時的自動流量切換。在故障探測方面, TrafficRoute GTM 採用了智能推薦的分佈式綜合探測方法,確保探測點與流量來源處於同一區域,減少誤判風險,並具備分鐘級的故障感知和流量遷移能力。此外,故障轉移(Failover)算法遵循“快速遷移,慢速恢復”的原則,結合歷史流量質量監測和防抖動算法,以優化策略執行,確保服務的連續性和穩定性。
3.3 CDN回源調度,保障源站可用性
字節跳動內部業務中,每時每刻都有超大規模的視頻、圖文、API等流量經過 CDN/DSA 加速回到源站,因此源站的可用性至關重要。為確保源站的可用性,我們通過 GTM 將源站接入點(一般是若干EIP)封裝成回源域名,回源域名被加載到 CDN 廠商的回源配置當中。由於回源域名由 GTM 託管,因此其具備了流量負載均衡、全鏈路健康檢查、分鐘級自動容災等能力,保證了 CDN 廠商至源站這一回源鏈路的高可用性。這一容災策略與 CDN 廠商回源機制本身包含的容災策略相融合,可構建更加健壯的回源鏈路,進一步確保鏈路的高可用性。
在確保源站的可用性的過程中,通過 GTM 實現了兩大能力,一是源站負載均衡,二是源站自動容災。通過在GTM回源域名上配置源站的權重,可以實現將CDN回源流量在不同站點之間進行分配,保障了源站負載均衡;GTM通過週期性http健康檢查,實時感知源站運行狀態,無論是部分節點異常還是源站整體故障,GTM都能在1分鐘內感知並完成容災切換,實現了源站自動容災。以下是字節跳動內部CDN回源切流實踐案例,通過GTM在14點08分將源站的telecom線路權重調整為0,14點12分左右源站telecom線路流量切空,14點42分左右通過GTM復原源站的telecom線路權重,14點45分左右源站telecom線路實現流量100%收斂。
END
通過搭建同城多活、異地災備;全球 CDN 調度;CDN 回源調度等經典架構,Trafficroute GTM 幫助字節跳動內部業務經受了超大規模流量考驗,確保始終為用户提供穩定的服務。