Bilibili资深运维工程师:DCDN在游戏应用加速中的实践
日前,云棲大會新一代CDN的技術(shù)突破與應(yīng)用實踐專場中,bilibili資深運維工程師李寧進行了《DCDN在游戲應(yīng)用加速中的實踐》主題分享,從bilibili游戲應(yīng)用CDN的效果和成本入手,深入淺出地分享DCDN全站加速在游戲加速場景中的應(yīng)用。
bilibili的業(yè)務(wù)部署架構(gòu)及CDN的應(yīng)用
bilibili一直以來是作為中國Z世代高度聚集的文化社區(qū)而被大家熟知,已經(jīng)成為了國內(nèi)二次元游戲的主要分發(fā)渠道和發(fā)行方。在公司不斷發(fā)展過程中,CDN扮演著不可或缺的角色。
簡單的七層應(yīng)用游戲的部署架構(gòu)如下圖所示,業(yè)務(wù)的后端以中心化部署的方式完全隱藏在公共云的網(wǎng)絡(luò)內(nèi),出向網(wǎng)絡(luò)經(jīng)過NAT轉(zhuǎn)發(fā),業(yè)務(wù)的入口只通過公網(wǎng)負載均衡進行暴露,靜態(tài)資源存放在對象存儲上,然后從用戶動靜態(tài)的請求全部經(jīng)過CDN進行轉(zhuǎn)發(fā),這樣的方式不僅能進行常規(guī)靜態(tài)資源的緩存加速,也能幫助隱藏源站,并進行相應(yīng)的DDoS防護。
李寧介紹到:bilibili對CDN的使用大概分三個階段,初期業(yè)務(wù)規(guī)模比較小,主要通過基于云內(nèi)專線自建代理的方式實現(xiàn)區(qū)域加速;隨著業(yè)務(wù)規(guī)模增加,運維管理問題和安全問題暴露, bilibili基于不同的緩存策略,在商業(yè)靜態(tài)CDN上去實現(xiàn)動靜態(tài)請求的分發(fā),雖然解決了自建帶來的管理和安全問題,但是也帶來了新問題,比如靜態(tài)CDN中間源大量回源過載、靜態(tài)CDN鏈路過長,多級代理導致響應(yīng)耗時增加等等;直到近兩年,市場上出現(xiàn)了專門針對動態(tài)請求加速的產(chǎn)品,在原有CDN功能豐富度提升的基礎(chǔ)上,通過智能路由帶來了更好的加速質(zhì)量提升。
游戲應(yīng)用運維工作對CDN的核心訴求
在游戲運維的日常工作里經(jīng)常會遇到以下場景:靜態(tài)突發(fā)流量報備不及時,單一廠商無法全部承接,導致業(yè)務(wù)進退兩難,業(yè)務(wù)和運維背著炸藥包上線;游戲熱更中大量的刷新預(yù)熱需求,帶給運維帶來繁重的工作;熱點游戲海外用戶訪問質(zhì)量如何保障;國內(nèi)小運營商環(huán)境中各種劫持與弱網(wǎng)傳輸;游戲業(yè)務(wù)突發(fā)式增長對彈性伸縮、快速交付的挑戰(zhàn)等等。
簡單總結(jié),業(yè)務(wù)對運維的需求就是:
a) 熱點資源、導致流量突發(fā)運維需要做好保障
b) 保障業(yè)務(wù)發(fā)展過程中快速交付、并且保障易用性
c) 業(yè)務(wù)的基礎(chǔ)網(wǎng)絡(luò)鏈路實現(xiàn)跨境優(yōu)化
d) 要能覆蓋國內(nèi)的小運營商
e) 需要有政企關(guān)系,具備推進運營商快速處理問題的能力
基于上述需求綜合考慮,bilibili選擇使用公共云CDN,而非自建的形式。其業(yè)務(wù)對云CDN的使用運維有以下訴求:
a) 業(yè)務(wù)接入的時候控制臺要快、簡單,接口要完善、可編程,功能豐富、不支持的功能也要支持定制化
b) 產(chǎn)品需要支持自動調(diào)度、方便的配置和內(nèi)容管理,底層要對跨境網(wǎng)絡(luò)進行優(yōu)化
c) 針對海量的CDN數(shù)據(jù)有簡化分析的方案,以便數(shù)據(jù)管理運營
d) 要有豐富的報警指標、在業(yè)務(wù)報障的時候輔助運維進行決策
bilibili選擇使用阿里云全站加速進行業(yè)務(wù)分發(fā)
為了解決以上問題,bilibili使用阿里云全站加速產(chǎn)品支持游戲應(yīng)用內(nèi)容的分發(fā)加速。在接入之后,質(zhì)量有明顯的提升,平響耗時降低了32%,首包的耗時降低了18.6%。同時,當異常發(fā)生的時候,CDN告警的收斂聚合,可以與源站監(jiān)控報警進行比對,用于快速的排除故障。
全站加速是阿里云自主研發(fā)的融合了動態(tài)加速和靜態(tài)加速技術(shù)的CDN產(chǎn)品,解決了頁面動靜態(tài)資源混雜、跨運營商、網(wǎng)絡(luò)不穩(wěn)定、單線源站、突發(fā)流量、網(wǎng)絡(luò)擁塞等諸多因素導致的響應(yīng)慢、丟包、服務(wù)不穩(wěn)定的問題,提升全站性能和用戶體驗。對于源站的適配,全站加速產(chǎn)品無需對服務(wù)器資源進行調(diào)整,會智能的區(qū)分動態(tài)和靜態(tài)內(nèi)容并分別加速,這也是目前比較適合游戲應(yīng)用的加速方案。
全站加速可以提供傳輸加速、穩(wěn)定均衡、HTTPS、基礎(chǔ)防護和管控靈活五大價值。
傳輸加速:一站式靜態(tài)、動態(tài)資源分離,靜態(tài)資源可以基于遍布全球的邊緣節(jié)點緩存進行加速,動態(tài)資源利用智能路由、傳輸協(xié)議優(yōu)化、壓縮傳輸、鏈路復用等技術(shù)實現(xiàn)回源加速;
穩(wěn)定均衡:通過全網(wǎng)節(jié)點的負載均衡,以及主備源站、有序回源、源站健康檢查等多重策略,確定高并發(fā)情況下的業(yè)務(wù)穩(wěn)定運行以及加速效果平穩(wěn)。
HTTPS:國內(nèi)運營商環(huán)境復雜,網(wǎng)站被劫持,站點內(nèi)容遭篡改,僅使用HTTP協(xié)議傳輸可能會有用戶動態(tài)內(nèi)容泄露風險,需要尋求更安全高效的網(wǎng)絡(luò)鏈路和內(nèi)容分發(fā)途徑,那么阿里云支持全鏈路HTTPS安全加速,提供多種證書格式,支持keyless方案,滿足客戶對于安全訪問的不同場景需求。
基礎(chǔ)防護:在DCDN之上逐漸集成云安全能力,打造邊緣安全能力。在更接近攻擊源產(chǎn)生的位置,通過覆蓋全球各地的DCDN邊緣節(jié)點進行防劫持、防篡改、防DDoS攻擊,減輕源站壓力。
管控靈活:基于緩存多源優(yōu)化,可以控制每個回源量,從而能夠?qū)?jié)省源站的帶寬,以此保護源站,有序回源這一塊,當活動突發(fā)的時候,DCDN可以通過有序回源的策略來明確哪些請求優(yōu)先返還源站,哪些可以通過隊列的方式來控制源站的回源量,從而能達到穩(wěn)定均衡的一個效果。
bilibili實踐經(jīng)驗
針對使用CDN的效率以及成本幾大問題,bilibili具備以下實踐經(jīng)驗:
第一,在交付效率上,bilibili通過gitops加基礎(chǔ)設(shè)施及代碼實現(xiàn)了一套資源編排,CDN也包含其中,研發(fā)通過選擇CDN的配置模板(比如CDN多線策略,緩存配置模板)生成資源堆棧,再結(jié)合流程審批實現(xiàn)分鐘級別的資源交付,在交付過程中我們力求讓使用者只做選擇題,少做問答題,減少反復溝通的成本;當然平臺也集成了很多的小工具,比如最高頻的刷新預(yù)熱操作,我們將不同云平臺的需求收斂到統(tǒng)一的界面,提供給研發(fā)自助進行操作;還有ip歸屬查詢這類小工具,盡量實現(xiàn)研發(fā)自助,以減少溝通提升人效。
第二,針對成本的問題,強調(diào)可計價,可度量;在CDN成本優(yōu)化方面,首先要先知道錢花到了哪里,通過云計費api拿到實時數(shù)據(jù),進行簡單地同比環(huán)比,對成本突發(fā)進行預(yù)警,然后人工干預(yù)及時止損;第二是花一樣的錢做更多的事,通過業(yè)務(wù)數(shù)據(jù)壓縮以及開啟云廠商的智能壓縮功能進行技術(shù)優(yōu)化,同時,提升靜態(tài)緩存命中率,降低對象存儲回源;第三是做一樣的事情花更少的錢,就需要更優(yōu)的計費策略和更優(yōu)的核算策略。
對未來游戲CDN的思考
李寧表示:我理解的運維工作的主要目標之一就是可控,CDN可控就是實現(xiàn)智能調(diào)度,未來會圍繞著數(shù)據(jù)治理進行一些嘗試:
a) 通過第三方撥測、客戶端數(shù)據(jù)上報、業(yè)務(wù)全鏈路監(jiān)測,收集到完善的業(yè)務(wù)數(shù)據(jù)
b) 在此基礎(chǔ)上進行多維度的分析,比如異常情況下,進行多維度的數(shù)據(jù)關(guān)聯(lián)聚合,減少多個運維監(jiān)控組件之間切換排查
c) 最終結(jié)合少量的人工輔助決策,去實現(xiàn)智能調(diào)度
點擊了解bilibili使用的全站加速產(chǎn)品詳情
點擊了解秒懂CDN活動詳情,更多CDN產(chǎn)品技術(shù)直播,聽專家講解各大場景最佳實踐
原文鏈接:https://developer.aliyun.com/article/774263?
版權(quán)聲明:本文內(nèi)容由阿里云實名注冊用戶自發(fā)貢獻,版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的Bilibili资深运维工程师:DCDN在游戏应用加速中的实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 走出舒适圈,从来都不简单
- 下一篇: 如何实现Spark on Kuberne