性能提升20%,字節(jié)跳動HTTPDNS從中心下沉到邊緣
摘要:本文介紹了HTTPDNS服務(wù)從中心遷移至邊緣詳細(xì)的落地過程。主要內(nèi)容為:
- HTTPDNS下沉邊緣實(shí)踐遇到的挑戰(zhàn),包括服務(wù)放置、流量調(diào)度
- HTTPDNS下沉邊緣解決方案
- 從性能、成本出發(fā),談?wù)凥TTPDNS下沉邊緣后的收益
傳統(tǒng)的DNS流程中,客戶端基于UDP協(xié)議向Local DNS服務(wù)器發(fā)送DNS查詢請求,這個過程中會存在緩存刷新不可控、DNS劫持、解析結(jié)果跨網(wǎng)、解析超時等風(fēng)險,近年來,HTTPDNS解決方案逐漸興起。HTTPDNS是面向多端應(yīng)用(移動端APP,PC客戶端應(yīng)用)的域名解析服務(wù),通過使用HTTP或HTTPS協(xié)議替代傳統(tǒng)的UDP協(xié)議,客戶端的域名解析請求直接由HTTPDNS服務(wù)器接收和響應(yīng),實(shí)現(xiàn)了域名防劫持、精準(zhǔn)調(diào)度、解析結(jié)果及時生效。
以字節(jié)跳動內(nèi)部業(yè)務(wù)為例,如抖音、今日頭條、西瓜視頻和番茄小說等,QPS峰值達(dá)千萬級,解析請求量日達(dá)萬億次,日常流量極大,為保障業(yè)務(wù)穩(wěn)定運(yùn)行,應(yīng)用了火山引擎移動解析HTTPDNS(以下簡稱HTTPDNS)為域名提供遞歸DNS服務(wù),支撐起超大解析請求量。
由于HTTPDNS服務(wù)全面覆蓋字節(jié)跳動頭部APP,在節(jié)約成本以及性能優(yōu)化上存在強(qiáng)烈訴求,在此背景下HTTPDNS團(tuán)隊經(jīng)過調(diào)研,決定將HTTPDNS服務(wù)從中心遷移至邊緣,以下將從實(shí)踐難點(diǎn)、解決方案和收益多個維度分享詳細(xì)落地過程。
一、HTTPDNS下沉邊緣實(shí)踐挑戰(zhàn)
1.服務(wù)放置
由于邊緣計算節(jié)點(diǎn)分散、基礎(chǔ)設(shè)施異構(gòu)等原因,邊緣服務(wù)放置一度成為下沉邊緣過程中的研究熱點(diǎn),現(xiàn)有方案在處理邊緣放置問題時,會將其轉(zhuǎn)化為指定場景下資源約束的目標(biāo)優(yōu)化問題,針對成本、質(zhì)量、流量方向,行業(yè)內(nèi)均有對應(yīng)研究:
- 針對成本,有研究通過多云的模式進(jìn)行最小冗余成本建模,來實(shí)現(xiàn)資源動態(tài)分配。
- 針對質(zhì)量,有研究通過構(gòu)建服務(wù)依賴模型、最佳冗余動態(tài)算法保障可靠性,以及成本和質(zhì)量均衡模型,來實(shí)現(xiàn)質(zhì)量保障。
- 針對流量,有研究從流量遷移、設(shè)備移動、時空軌跡以及資源預(yù)部署等,實(shí)現(xiàn)流量穩(wěn)定遷移。
在實(shí)際應(yīng)用過程中,流量及設(shè)備遷移特征顯著、邊緣節(jié)點(diǎn)性能差異、穩(wěn)定性波動大等因素,會干擾現(xiàn)有放置問題模型,因此需要進(jìn)一步探索基于流量特征和邊緣節(jié)點(diǎn)資源質(zhì)量的放置問題。
2.流量調(diào)度
邊緣計算的流量調(diào)度場景主要分為端邊調(diào)度和云邊調(diào)度,部分場景會出現(xiàn)邊邊調(diào)度。不同調(diào)度階段擁有相對成熟的調(diào)度技術(shù),包括基于DNS的端邊調(diào)度、基于BGP ANYCAST的骨干網(wǎng)路由調(diào)度以及云網(wǎng)絡(luò)下的云原生流量調(diào)度。
實(shí)踐過程中面臨的流量調(diào)度挑戰(zhàn),主要圍繞著端邊調(diào)度和云邊調(diào)度:
- 端邊調(diào)度挑戰(zhàn):5G和工業(yè)互聯(lián)網(wǎng)接入的大量異構(gòu)設(shè)備,以及設(shè)備遷移導(dǎo)致的流量波動,是端邊調(diào)度需要應(yīng)對的主要挑戰(zhàn)。解決這一問題可借助云邊協(xié)同作業(yè)與全局分布式調(diào)度的策略。然而,實(shí)際操作遇到的難題主要在于缺乏精確的調(diào)度手段,并且未能充分利用客戶端與邊緣節(jié)點(diǎn)之間協(xié)同聯(lián)動的潛力。盡管通過實(shí)時流量感知配合機(jī)器學(xué)習(xí)進(jìn)行訓(xùn)練是一種可行的方法,但這種方案處理的數(shù)據(jù)量巨大,導(dǎo)致應(yīng)用成本過高,難以滿足現(xiàn)實(shí)需求。
- 云邊調(diào)度挑戰(zhàn):邊緣計算由于其固有特性,在處理大規(guī)模集中式數(shù)據(jù)方面相較于傳統(tǒng)中心化架構(gòu)存在一定局限性。因此,云邊協(xié)同的流量處理和計算模式采納了業(yè)界廣泛認(rèn)可的計算架構(gòu),云邊調(diào)度發(fā)揮了云計算與邊緣計算各自的優(yōu)勢,達(dá)成數(shù)據(jù)和流量的更高效處理。然而,邊緣計算在資源分配上仍面臨局部不足與全局分散的挑戰(zhàn)。舉例來說,在約束優(yōu)化路由模型中,評價指標(biāo)有時與實(shí)際業(yè)務(wù)場景不符,未能充分考慮用戶體驗(yàn)。此外,行業(yè)內(nèi)某些區(qū)域分層調(diào)度模型在實(shí)際應(yīng)用中遇到了邊緣基礎(chǔ)設(shè)施不統(tǒng)一的問題,同時區(qū)域內(nèi)及區(qū)域間的容災(zāi)問題也尤為突出。
二、HTTPDNS下沉邊緣解決方案
1.可視化評價模型指導(dǎo)服務(wù)放置
針對基于流量特征和邊緣節(jié)點(diǎn)資源質(zhì)量的放置問題,在實(shí)踐過程方案,HTTPDNS團(tuán)隊不斷進(jìn)行嘗試優(yōu)化,最終選擇通過使用全鏈路的撥測和數(shù)據(jù)采集方法,基于實(shí)時數(shù)據(jù)驅(qū)動的模式,進(jìn)行在線的放置算法仿真訓(xùn)練,形成可視化的評價模型,以指導(dǎo)HTTPDNS服務(wù)在邊緣機(jī)房的節(jié)點(diǎn)選擇和服務(wù)放置?;玖鞒倘缦聢D:
2.接入GTM打造調(diào)度解決方案
針對流量調(diào)度挑戰(zhàn),由于內(nèi)部服務(wù)采用域名(配合兜底策略)的接入方式,接入域名配置DNS智能解析實(shí)現(xiàn)用戶就近訪問邊緣接入節(jié)點(diǎn)??紤]到邊緣接入節(jié)點(diǎn)IP的網(wǎng)絡(luò)服務(wù)可靠性和質(zhì)量對比IDC機(jī)房優(yōu)勢不明顯,因此HTTPDNS團(tuán)隊最終決定引入云調(diào)度GTM解決調(diào)度問題。
火山引擎云調(diào)度GTM基于解析進(jìn)行流量調(diào)度,可以實(shí)現(xiàn)流量的就近接入(地理位置/性能)、負(fù)載均衡。GTM借助分布式、多協(xié)議健康檢查能力來實(shí)現(xiàn)故障容災(zāi)(Failover),諸如“同城容災(zāi)”、“異地多活”等場景。此外GTM還提供了多云環(huán)境下的流量編排、資源粘合能力,可視化的健康檢查數(shù)據(jù)分析、操作日志等功能幫助排查定位問題,便于日常運(yùn)維。
重點(diǎn)應(yīng)用:
- 智能調(diào)度:通過云調(diào)度GTM的「智能調(diào)度-容量優(yōu)先」模式實(shí)現(xiàn)基于機(jī)房容量的智能調(diào)度,在滿足機(jī)房容量的前提下生成全局時延最低的DNS調(diào)度規(guī)則,從而能夠在邊緣節(jié)點(diǎn)割接/故障時實(shí)現(xiàn)自動容災(zāi);
- 故障容災(zāi):支持邊緣節(jié)點(diǎn)通過控制臺、API接口和Agent的方式上報節(jié)點(diǎn)容量等信息,基于節(jié)點(diǎn)的數(shù)據(jù)上報情況和健康檢查探測的情況,云調(diào)度GTM作為策略中心更新和下發(fā)調(diào)度策略,實(shí)現(xiàn)邊緣節(jié)點(diǎn)的故障容災(zāi)。
調(diào)度解決方案優(yōu)勢:
- 建設(shè)成本低:部署輕量,架構(gòu)侵入較小,建設(shè)成本較低;整體配置和管理簡單;
- 動態(tài)調(diào)度保障性能最優(yōu):在邊緣多節(jié)點(diǎn)、多機(jī)房的場景下,能夠基于性能和容量進(jìn)行動態(tài)調(diào)度,在確保機(jī)房水位低于目標(biāo)水位的前提下實(shí)現(xiàn)全局性能最優(yōu);
- 支持可視化:支持調(diào)度配置和結(jié)果的可視化展示、健康檢查可視化查詢。
應(yīng)用火山引擎云調(diào)度GTM來實(shí)現(xiàn)容量調(diào)度是一次新的嘗試,在全面接入云調(diào)度GTM之后,對比傳統(tǒng)域名智能解析調(diào)度模式,邊緣節(jié)點(diǎn)容量調(diào)度模式能從性能、容災(zāi)、成本等方面帶來收益,也驗(yàn)證了云調(diào)度GTM在方案中不可或缺的重要性。
調(diào)度解決方案收益:
指標(biāo)類型 | 指標(biāo) | 收益 | 總結(jié) |
性能 | 請求時延 | 平均接入時延 -5.01%(-11ms) | 整體延時優(yōu)化5% |
請求成功率 | 持平 | ||
TTFB | 平均 TTFB -4.1%(-3.5ms) | ||
流量波動 | cpu負(fù)載波動標(biāo)準(zhǔn)差:5%->1%,優(yōu)化80% | ||
容災(zāi) | 自動容災(zāi)成功率 | 100% | 智能解析線路級故障感知 |
邊緣故障感知耗時 | 60s | ||
流量收斂時長 | 3min 90%+收斂 | ||
成本 | 帶寬成本 | 回源帶寬降低 10% | 運(yùn)維:配置、切流管理,完全自動托管 |
成本 | 運(yùn)維成本 | 易用:基于容量&性能矩陣,均勻分流。僅需要用戶維護(hù)機(jī)房容量信息。 |
三、更強(qiáng)大的解析調(diào)度,性能提升20%+
實(shí)踐過程持續(xù)了六個月時間,在成本優(yōu)化與性能提升方面均取得顯著效果。
1.成本優(yōu)化
總成本優(yōu)化約35%,其中負(fù)載均衡資源優(yōu)化約50%,計算資源優(yōu)化約30%,帶寬成本優(yōu)化約70%,且最終實(shí)現(xiàn)了邊緣集群總?cè)萘壳f QPS 級別,與中心機(jī)房完全互備。
2.性能提升
完成從中心到邊緣的遷移后,火山引擎移動解析HTTPDNS服務(wù)性能出現(xiàn)顯著提升,對比同類服務(wù)出現(xiàn)顯著優(yōu)勢。
在邊緣服務(wù)建設(shè)完成后,我們逐步將原中心機(jī)房承載的千萬 QPS 級別流量遷移到邊緣服務(wù)集群上。根據(jù)實(shí)際的性能提升情況, 先后將全國大部分區(qū)域的三大運(yùn)營商接入流量遷移到邊緣。在這個過程中,我們關(guān)注并采集流量的網(wǎng)絡(luò)指標(biāo)變化數(shù)據(jù),各個區(qū)域均有性能收益,詳見下表:
下沉區(qū)域 | 總耗時-平均值-差異百分比(%) | 總耗時-50分位-差異百分比(%) | TTFB-平均值-差異百分比(%) | TTFB-50分位-差異百分比(%) |
西南 | -15 | -44 | -38 | -64 |
西北 | -16 | -36 | -36 | -47 |
東北 | -10 | -14 | -15 | -23 |
華北 | -16 | -41 | -29 | -63 |
華中 | -23 | -50 | -37 | -70 |
華南 | -7 | -15 | -11 | -36 |
為了能夠更直觀感受火山引擎移動解析HTTPDNS服務(wù)與其他HTTPDNS服務(wù)的性能數(shù)據(jù)對比,我們使用國內(nèi)主流的第三方撥測平臺,進(jìn)行了近千個撥測節(jié)點(diǎn)、覆蓋全國的撥測對比。從撥測結(jié)果可以看出,不論是從地理位置上,還是分運(yùn)營商討論,火山引擎移動解析HTTPDNS都在首屏?xí)r間、建立連接時間、首包時間和內(nèi)容下載時間上表現(xiàn)優(yōu)異,最終實(shí)現(xiàn)總下載時間實(shí)現(xiàn)領(lǐng)先。
全國:
廠商 | 總下載時間(s) | 首屏?xí)r間(s) | 建立連接時間(s) | 首包時間(s) | 內(nèi)容下載時間(s) |
火山 HTTPDNS | 0.252 | 0.254 | 0.024 | 0.026 | 0.037 |
其他-1 HTTPDNS | 0.279 | 0.282 | 0.035 | 0.04 | 0.039 |
其他-2 HTTPDNS | 0.327 | 0.329 | 0.05 | 0.063 | 0.039 |
分運(yùn)營商:
運(yùn)營商 | 廠商 | 總下載時間(s) | 首屏?xí)r間(s) | 建立連接時間(s) | 首包時間(s) | 內(nèi)容下載時間(s) |
中國電信 | 火山 HTTPDNS | 0.26 | 0.263 | 0.023 | 0.027 | 0.031 |
中國聯(lián)通 | 火山 HTTPDNS | 0.242 | 0.244 | 0.024 | 0.026 | 0.04 |
中國移動 | 火山 HTTPDNS | 0.256 | 0.257 | 0.024 | 0.026 | 0.038 |
中國電信 | 其他-1 HTTPDNS | 0.287 | 0.291 | 0.034 | 0.04 | 0.034 |
中國聯(lián)通 | 其他-1 HTTPDNS | 0.272 | 0.275 | 0.036 | 0.041 | 0.043 |
中國移動 | 其他-1 HTTPDNS | 0.279 | 0.28 | 0.036 | 0.038 | 0.041 |
中國電信 | 其他-2 HTTPDNS | 0.33 | 0.333 | 0.049 | 0.061 | 0.033 |
中國聯(lián)通 | 其他-2 HTTPDNS | 0.33 | 0.332 | 0.053 | 0.068 | 0.043 |
中國移動 | 其他-2 HTTPDNS | 0.32 | 0.321 | 0.049 | 0.06 | 0.041 |
總結(jié)
整體下沉實(shí)踐方案中,HTTPDNS團(tuán)隊不斷進(jìn)行新嘗試,探索并應(yīng)用了基于GTM的反饋式調(diào)度模型,更好地應(yīng)對了邊緣計算資源局部緊張、全局分散以及穩(wěn)定性抖動頻繁的挑戰(zhàn),從而弱化邊緣放置問題帶來的資源開銷,并提升流量調(diào)度效率、資源利用率以及降低容災(zāi)和運(yùn)維難度。
通過下沉邊緣,HTTPDNS進(jìn)一步優(yōu)化使用成本,提升服務(wù)性能,而此次實(shí)踐通過將HTTPDNS服務(wù)從中心云架構(gòu)遷移至邊緣云架構(gòu)模式,使邊緣計算在互聯(lián)網(wǎng)傳統(tǒng)業(yè)務(wù)場景中得到應(yīng)用,也是邊緣云云原生的一次工程探索實(shí)踐。
本項(xiàng)目應(yīng)用了火山引擎邊緣計算多個產(chǎn)品服務(wù),不僅使用了邊緣網(wǎng)絡(luò)提供的四、七層負(fù)載均衡產(chǎn)品,還將HTTPDNS服務(wù)全部運(yùn)行在邊緣容器上,通過彈性公網(wǎng)IP完成邊緣服務(wù)的回源以及控制。HTTPDNS聯(lián)動邊緣計算打造的下沉邊緣實(shí)踐案例,作為行業(yè)實(shí)踐,希望為同行業(yè)提供一些有益參考。
未來,HTTPDNS團(tuán)隊將持續(xù)探索邊緣計算容器化彈性調(diào)度技術(shù)的應(yīng)用,應(yīng)對億級接入、千萬QPS流量所帶來的流量遷移、接入抖動問題,并進(jìn)一步提升設(shè)備利用率并節(jié)約成本。