一个字稳,云原生产品家族支撑冬奥会九大业务场景,打造云上奥运新体验
北京冬奧會(huì)已經(jīng)成為收視最高的一屆冬奧會(huì),在轉(zhuǎn)播時(shí)長(zhǎng)、技術(shù)、內(nèi)容制作方式等多方面都書(shū)寫(xiě)了新記錄。云技術(shù)的應(yīng)用,是本屆北京冬奧會(huì)賽事轉(zhuǎn)播的一大特色。
而云原生作為云計(jì)算的新界面,如何穩(wěn)定支撐北京冬奧會(huì)多個(gè)業(yè)務(wù)系統(tǒng)?
九大業(yè)務(wù)場(chǎng)景,打造冬奧會(huì)體驗(yàn)「穩(wěn)穩(wěn)的」
業(yè)務(wù)場(chǎng)景一:奧運(yùn)票務(wù),踐行ACK Anywhere,落地云邊一體
票務(wù)系統(tǒng)是阿里優(yōu)酷奧運(yùn)小組依托大麥原有的現(xiàn)場(chǎng)服務(wù)能力,提供的奧運(yùn)換驗(yàn)服務(wù)。主要承載現(xiàn)場(chǎng)售票的驗(yàn)證服務(wù),提升現(xiàn)場(chǎng)服務(wù)安全、穩(wěn)定性,力保為冬奧觀眾提供絲般順滑的現(xiàn)場(chǎng)服務(wù)。
為了降低驗(yàn)票的時(shí)延,提升奧運(yùn)觀眾的入場(chǎng)速率,票務(wù)系統(tǒng)需要分別部署在每個(gè)奧運(yùn)場(chǎng)館中,實(shí)現(xiàn)驗(yàn)票流程的本場(chǎng)館閉環(huán),充分發(fā)揮邊緣計(jì)算大連接、低時(shí)延的優(yōu)勢(shì),提升票務(wù)的驗(yàn)票體驗(yàn),減少奧運(yùn)觀眾排隊(duì)等待時(shí)間。但是由于票務(wù)系統(tǒng)分散部署在每個(gè)奧運(yùn)場(chǎng)館中,奧運(yùn)場(chǎng)館距離都比較遠(yuǎn),為了安全考慮,部署在奧運(yùn)場(chǎng)館的服務(wù)器不允許有公網(wǎng) IP,每個(gè)奧運(yùn)場(chǎng)館都有自己的內(nèi)網(wǎng)環(huán)境,這對(duì)于票務(wù)系統(tǒng)的開(kāi)發(fā)、測(cè)試、驗(yàn)證和升級(jí)部署運(yùn)維都帶來(lái)了很大的挑戰(zhàn)。若每個(gè)場(chǎng)館安排幾位應(yīng)用交付人員去做應(yīng)用的升級(jí)和部署工作,成本太高,效率太低。
工作人員現(xiàn)場(chǎng)驗(yàn)票
基于以上考慮,票務(wù)系統(tǒng)團(tuán)隊(duì)希望開(kāi)發(fā)人員能夠在云上開(kāi)發(fā)、云上管理運(yùn)維這些邊緣側(cè)節(jié)點(diǎn)和應(yīng)用,實(shí)現(xiàn)云與邊的一體化運(yùn)維能力,因此急需要一套云邊一體的架構(gòu)和平臺(tái)去支撐。
阿里云邊緣容器服務(wù)(簡(jiǎn)稱(chēng) ACK@Edge)是一款提供標(biāo)準(zhǔn) Kubernetes 集群云端托管,支持邊緣計(jì)算資源、業(yè)務(wù)快速接入、統(tǒng)一管理、統(tǒng)一運(yùn)維的云原生應(yīng)用平臺(tái),能夠幫助用戶(hù)輕松實(shí)現(xiàn)云邊一體化協(xié)同。 用戶(hù)利用 ACK@Edge 通過(guò)納管邊緣節(jié)點(diǎn)將云上應(yīng)用延伸到邊緣,聯(lián)動(dòng)邊緣和云端的數(shù)據(jù),使得邊緣節(jié)點(diǎn)擁有云端相同能力。在云端提供對(duì)邊緣設(shè)備、邊緣應(yīng)用的統(tǒng)一 Ops 能力,保證邊緣設(shè)備及邊緣智能應(yīng)用少運(yùn)維、高可用。
基于 ACK@Edge 云邊一體、Kubernetes 容器編排調(diào)度的能力,以及 ACK@Edge 在 Kubernetes 之上針對(duì)邊緣場(chǎng)景疊加的如邊緣自治、邊緣單元化、單元化部署、Tunnel 通道的能力,切實(shí)解決了票務(wù)系統(tǒng)應(yīng)用運(yùn)維的痛點(diǎn),最終承載了北京、延慶、張家口三地冬奧會(huì)、冬殘奧會(huì)所有比賽場(chǎng)館及鳥(niǎo)巢開(kāi)閉幕式現(xiàn)場(chǎng)票務(wù)服務(wù)的統(tǒng)一管理和運(yùn)維業(yè)務(wù)。
ACK@Edge 針對(duì)于 Kubernetes 在邊緣計(jì)算場(chǎng)景提供了獨(dú)有的增強(qiáng)型功能:
節(jié)點(diǎn)單元化-邊緣節(jié)點(diǎn)池: 分別每個(gè)奧運(yùn)場(chǎng)館代創(chuàng)建了對(duì)應(yīng)的邊緣節(jié)點(diǎn)池,奧運(yùn)場(chǎng)館的邊緣服務(wù)器可以快速接入到對(duì)應(yīng)的邊緣節(jié)點(diǎn)池中。
應(yīng)用單元化-單元化部署: 票務(wù)系統(tǒng)通過(guò) ACK@Edge 的單元化部署 UnitedDeployment,將業(yè)務(wù)部署到不同的奧運(yùn)場(chǎng)館的邊緣服務(wù)器中, 實(shí)現(xiàn)了在云上統(tǒng)一分發(fā)應(yīng)用、統(tǒng)一運(yùn)維的能力,業(yè)務(wù)人員無(wú)需現(xiàn)場(chǎng)部署,即可實(shí)現(xiàn)全部奧運(yùn)場(chǎng)館票務(wù)系統(tǒng)的快速升級(jí)部署工作,此功能在票務(wù)系統(tǒng)上線過(guò)程中發(fā)揮了重要作用。
云端運(yùn)維,遠(yuǎn)程調(diào)試: ACK@Edge 提供的 Tunnel 通道, 可以讓業(yè)務(wù)人員快速查看容器日志和進(jìn)入容器調(diào)試。
邊緣自治: ACK@Edge 的邊緣自治能力,可以在云邊網(wǎng)絡(luò)斷開(kāi)、主機(jī)重啟這種極端情況下, 還能保證本地邊緣服務(wù)器上的業(yè)務(wù)能正常運(yùn)行。期間,ACK@Edge 團(tuán)隊(duì)與票務(wù)系統(tǒng)團(tuán)隊(duì)做了大量的斷網(wǎng)、重啟操作,最終證明票務(wù)系統(tǒng)始終正常提供服務(wù)。
截至目前,ACK@Edge 基于云原生的云邊一體架構(gòu), 已經(jīng)廣泛用于 CDN、IoT、智慧物流、工業(yè)大腦、新零售等諸多場(chǎng)景。本次冬奧會(huì)票務(wù)系統(tǒng)的完美保障,進(jìn)一步驗(yàn)證了 ACK@Edge 在云邊一體、邊緣計(jì)算領(lǐng)域的價(jià)值。同時(shí)阿里云將 ACK@Edge 全部核心代碼貢獻(xiàn)出來(lái),成立了 OpenYurt 開(kāi)源社區(qū)。 OpenYurt 作為 CNCF 的沙箱項(xiàng)目,秉承著開(kāi)放、自由、中立的態(tài)度,吸引了大量來(lái)自于 VMware、中國(guó)電信、浙大實(shí)驗(yàn)室、中國(guó)聯(lián)通、中國(guó)移動(dòng)等公司和組織的眾多開(kāi)發(fā)者參與。在《2021 中國(guó)開(kāi)源年度報(bào)告》中, OpenYurt 項(xiàng)目進(jìn)入 CNCF 中國(guó)項(xiàng)目活躍度 Top 10。未來(lái),阿里云會(huì)在邊緣計(jì)算領(lǐng)域拓展更多的業(yè)務(wù)場(chǎng)景,通過(guò)不斷打磨產(chǎn)品能力、壯大開(kāi)源社區(qū),來(lái)更好的服務(wù)社會(huì)。
業(yè)務(wù)場(chǎng)景二:奧運(yùn)輕應(yīng)用,基于容器服務(wù) ASK 快速交付
因新冠疫情影響現(xiàn)場(chǎng),現(xiàn)場(chǎng)觀賽要求比較嚴(yán)格。PinQuest 推出奧運(yùn)主題冒險(xiǎn)類(lèi)手游,可以讓用戶(hù)在手機(jī)上開(kāi)啟屬于自己的“冬奧探險(xiǎn)”之旅,讓大眾通過(guò)新奇、有趣的線上方式,增強(qiáng)與賽事的交互體感。
賽事的不同導(dǎo)致游戲在線人數(shù)實(shí)時(shí)變化,因此需要具備極致彈性的能力。該游戲基于 ASK(阿里云容器服務(wù) Serverless 版)提供的極致彈性能力部署關(guān)鍵模塊,后臺(tái)服務(wù)可實(shí)時(shí)擴(kuò)容,讓用戶(hù)體驗(yàn)如絲般順滑。
ASK 集群是阿里云推出的無(wú)服務(wù)器 Kubernetes 容器服務(wù)。用戶(hù)無(wú)需購(gòu)買(mǎi)節(jié)點(diǎn)即可直接部署容器應(yīng)用,無(wú)需對(duì)集群進(jìn)行節(jié)點(diǎn)維護(hù)和容量規(guī)劃,并且根據(jù)應(yīng)用配置的 CPU 和內(nèi)存資源量進(jìn)行按需付費(fèi)。 ASK 集群提供完善的 Kubernetes 兼容能力,同時(shí)降低了 Kubernetes 使用門(mén)檻,讓用戶(hù)更專(zhuān)注于應(yīng)用程序,而不是管理底層基礎(chǔ)設(shè)施。
業(yè)務(wù)場(chǎng)景三:冬奧核心系統(tǒng),從容應(yīng)對(duì)大規(guī)模突發(fā)網(wǎng)絡(luò)流量
冬奧核心系統(tǒng)是整個(gè)冬奧會(huì)和冬殘奧會(huì)信息服務(wù)的重要載體,集成賽事相關(guān)信息,提供服務(wù)功能模塊,實(shí)現(xiàn)“一個(gè) APP 走冬奧”的個(gè)性化服務(wù),也為賽會(huì)組織和運(yùn)行提供移動(dòng)通信協(xié)同和共享服務(wù)平臺(tái)。冬奧核心系統(tǒng)是奧運(yùn)會(huì)最重要的賽時(shí)核心系統(tǒng)之一。
其中,冬奧移動(dòng)服務(wù)由北京冬奧組委提供,主要提供賽事信息、即時(shí)通信,以及冬奧會(huì)交通、餐飲、住宿、抵離、場(chǎng)館等業(yè)務(wù)領(lǐng)域的移動(dòng)信息服務(wù)功能。城市移動(dòng)服務(wù)主要提供場(chǎng)館以外的吃、住、行、游、購(gòu)、娛等服務(wù)信息。舉個(gè)例子,健康填報(bào)功能與運(yùn)動(dòng)員息息相關(guān),海外抵達(dá)的運(yùn)動(dòng)員需要在冬奧通上進(jìn)行健康填報(bào),才可以順利開(kāi)啟比賽計(jì)劃,這只是冬奧核心系統(tǒng)功能的一個(gè)例子??偟膩?lái)說(shuō),穩(wěn)定性至關(guān)重要。
冬奧核心系統(tǒng)基于 ACK 集群實(shí)現(xiàn)了前端、代理和后臺(tái)等服務(wù)。在這些種類(lèi)繁多的業(yè)務(wù)中,系統(tǒng)統(tǒng)一頁(yè)面入口部署在 ACK 集群上,也就是說(shuō)客戶(hù)的流量需要經(jīng)過(guò) ACK 才能訪問(wèn)到如上各種豐富的后臺(tái)服務(wù),流量鏈路非常復(fù)雜。
壓測(cè)期間,在高流量、高并發(fā)訪問(wèn)的場(chǎng)景下,客戶(hù)端請(qǐng)求錯(cuò)誤率持續(xù)上升,成為上線阻礙。接到問(wèn)題請(qǐng)求后,阿里云容器服務(wù) ACK 團(tuán)隊(duì)第一時(shí)間會(huì)同客戶(hù)在集群的各級(jí)鏈路部署了性能觀測(cè)埋點(diǎn)。經(jīng)過(guò)排查,ACK 團(tuán)隊(duì)發(fā)現(xiàn)該業(yè)務(wù)鏈路以短連接請(qǐng)求為主,作為流量入口的七層 SLB 在高并發(fā)場(chǎng)景下會(huì)高頻地復(fù)用源端口,產(chǎn)生五元組沖突。經(jīng)過(guò)詳細(xì)驗(yàn)證,通過(guò)優(yōu)化 Time-Wait 狀態(tài) TCP 會(huì)話的回收時(shí)間等手段,將壓測(cè)流量提升到原來(lái)兩倍,錯(cuò)誤率降低到 0%,解決了冬奧核心系統(tǒng)上線前的一個(gè)重要的阻礙點(diǎn),最終成功保障了冬奧會(huì)全程的穩(wěn)定。
冬奧核心系統(tǒng)后臺(tái)應(yīng)用為 Java 系的微服務(wù)架構(gòu),包含了近千個(gè) Kubernetes 的 Deployment 應(yīng)用實(shí)例,這些應(yīng)用實(shí)例混部在集群的大量節(jié)點(diǎn)上,既要高效的利用資源,又不能讓這些應(yīng)用間互相影響,這給資源的共享和隔離帶來(lái)了比較大的挑戰(zhàn)。
容器團(tuán)隊(duì)通過(guò)節(jié)點(diǎn)超賣(mài)評(píng)估、JVM 內(nèi)存參數(shù)檢查、Pod 資源調(diào)優(yōu)、Pod 瓶頸和 OOM 實(shí)時(shí)監(jiān)控等手段,對(duì)應(yīng)用配置做調(diào)優(yōu),使集群的資源利用率和業(yè)務(wù)穩(wěn)定性達(dá)到平衡。特別是在 JVM 本身的內(nèi)存管理和實(shí)際的 Pod 內(nèi)存限制帶來(lái)的一系列匹配問(wèn)題上,ACK 引入了自動(dòng)化評(píng)估配置合理性的手段來(lái)快速發(fā)現(xiàn)異常的內(nèi)存配置,避免冬奧會(huì)期間應(yīng)用的 OOM 的產(chǎn)生,保障了賽事期間的應(yīng)用穩(wěn)定性。
業(yè)務(wù)場(chǎng)景四:奧運(yùn)新聞發(fā)布平臺(tái),平穩(wěn)運(yùn)行背后的一站式容器智能診斷
InfoAV 是北京冬奧會(huì)的新聞發(fā)布會(huì)平臺(tái),承接了本屆奧運(yùn)會(huì)全部發(fā)布會(huì)的直播、導(dǎo)播、點(diǎn)播的核心功能,涵蓋如賽前采訪、賽后運(yùn)動(dòng)員群體采訪等。最初,客戶(hù)基于自建 Kubernetes 部署 InfoAV 業(yè)務(wù),但是遇到了無(wú)法同城容災(zāi)、運(yùn)維困難等問(wèn)題。
采用容器服務(wù) ACK 后,顯著加快了業(yè)務(wù)的上云和遷云。 InfoAV 所在的 ACK 集群不論是 Kubernetes Master 還是 Kubernetes Worker,都實(shí)現(xiàn)了同城多數(shù)據(jù)中心級(jí)別的高可用和容災(zāi)能力;InfoAV 使用了 ARMS 豐富的可觀測(cè)性能力,高精度觀測(cè)到 Kubernetes 集群資源、組件、流量等指標(biāo),有力提升了客戶(hù)的保障能力。
架構(gòu)上,InfoAV 基于 ACK 部署的業(yè)務(wù)包括視音頻編輯、媒體內(nèi)容管理等業(yè)務(wù)。InfoAV 系統(tǒng)的業(yè)務(wù)特點(diǎn)是計(jì)算密集型、負(fù)載高,因此 ACK 提供的快速全面的日常巡檢能力,顯著提升了保障的可靠性。
InfoAV界面,新聞發(fā)布會(huì)現(xiàn)場(chǎng)
業(yè)務(wù)場(chǎng)景五:奧運(yùn)全球化業(yè)務(wù),云原生應(yīng)用制品安全托管和高效分發(fā)最佳實(shí)踐
北京冬奧的容器化業(yè)務(wù),無(wú)論是在線場(chǎng)景的 APP、InfoAV 業(yè)務(wù),或是邊緣場(chǎng)景的奧運(yùn)票務(wù)業(yè)務(wù)以及 Serverless 場(chǎng)景下的 PinQuest 游戲業(yè)務(wù),都對(duì)業(yè)務(wù)應(yīng)用容器鏡像分發(fā)的安全性、穩(wěn)定性、規(guī)?;岢隽瞬煌蟆1本┒瑠W業(yè)務(wù)擴(kuò)大至全球 5 個(gè)地域,啟用了 14 個(gè) ACR 實(shí)例來(lái)保障冬奧業(yè)務(wù)容器化應(yīng)用部署、擴(kuò)容、快恢等鏈路。
阿里云容器鏡像服務(wù)(簡(jiǎn)稱(chēng) ACR)是云原生架構(gòu)重要基礎(chǔ)設(shè)施之一,負(fù)責(zé)托管和分發(fā)云原生應(yīng)用制品。其中 ACR 企業(yè)版為冬奧業(yè)務(wù)提供企業(yè)級(jí)云原生應(yīng)用制品安全托管及高效分發(fā)能力。
本次冬奧業(yè)務(wù)涉及近 200+ 應(yīng)用容器鏡像,通過(guò) ACK、ASK、ACK@Edge、EDAS、ECS 多種形式在邊緣、Serverless、在線場(chǎng)景下進(jìn)行部署,保障容器鏡像的安全性,確保復(fù)雜場(chǎng)景下的穩(wěn)定、高效分發(fā)。
針對(duì)冬奧業(yè)務(wù)的安全性要求, ACR 企業(yè)版提供公網(wǎng)、VPC 訪問(wèn)控制能力,控制業(yè)務(wù)應(yīng)用容器鏡像更新及分發(fā)源;同時(shí)針對(duì)容器鏡像本身的安全性保障訴求,ACR 企業(yè)版提供了涵蓋容器鏡像漏洞掃描及修復(fù)、容器鏡像加簽及驗(yàn)簽、分發(fā)安全阻斷等云原生應(yīng)用交付 DevSecOps 能力,進(jìn)一步降低業(yè)務(wù)應(yīng)用發(fā)布更新后的潛在風(fēng)險(xiǎn)。
針對(duì)邊緣場(chǎng)景, ACR 企業(yè)版支持在邊緣節(jié)點(diǎn)中部署邊緣前置實(shí)例,提供分發(fā)緩存、邊緣 P2P 組網(wǎng)等分發(fā)加速能力,提升云邊互聯(lián)場(chǎng)景下容器鏡像分發(fā)效率。此外針對(duì)全球化業(yè)務(wù),ACR 企業(yè)版也提供了全球同步能力支持容器應(yīng)用全球多地域部署、容災(zāi)業(yè)務(wù)。
除業(yè)務(wù)鏈路保障外,在本次冬奧會(huì)保障過(guò)程中,借助于企業(yè)版實(shí)例全景監(jiān)控及業(yè)務(wù)異常分析,ACR 企業(yè)版能夠快速識(shí)別用戶(hù)業(yè)務(wù)應(yīng)用容器化部署異常并反饋給客戶(hù),讓客戶(hù)能夠第一時(shí)間解決因憑證、權(quán)限、配置錯(cuò)誤等原因?qū)е碌膽?yīng)用發(fā)布失敗問(wèn)題。同時(shí)依托于集群事件及監(jiān)控實(shí)現(xiàn)全鏈路容器鏡像分發(fā)問(wèn)題識(shí)別及診斷,如本次冬奧會(huì)過(guò)程中識(shí)別到節(jié)點(diǎn)重啟后 DNS 短暫解析異常導(dǎo)致節(jié)點(diǎn)拉取鏡像失敗(即應(yīng)用恢復(fù)失敗)的現(xiàn)象,能夠讓客戶(hù)提前更合理地規(guī)劃應(yīng)用水位,提升應(yīng)用整體穩(wěn)定性。
業(yè)務(wù)場(chǎng)景六:數(shù)據(jù)交換與共享平臺(tái),基于云原生微服務(wù)的“數(shù)據(jù)中臺(tái)”
2022 年北京冬奧會(huì)和冬殘奧會(huì)數(shù)據(jù)交換與數(shù)據(jù)共享平臺(tái)(以下簡(jiǎn)稱(chēng)交換共享平臺(tái))負(fù)責(zé)為組委會(huì)提供委內(nèi)系統(tǒng)、組委外專(zhuān)線數(shù)據(jù)源以及互聯(lián)網(wǎng)數(shù)據(jù)源的數(shù)據(jù)交換、數(shù)據(jù)共享服務(wù),是名副其實(shí)的“數(shù)據(jù)中臺(tái)”。此系統(tǒng)是所有云上核心系統(tǒng)群的數(shù)據(jù)中樞和數(shù)據(jù)大腦 ,承擔(dān)了云上數(shù)據(jù)匯聚、數(shù)據(jù)過(guò)濾、數(shù)據(jù)投遞,以及數(shù)據(jù)保護(hù)的功能。
交換共享平臺(tái)基于 Spring Cloud 微服務(wù)架構(gòu)設(shè)計(jì),并** 依托企業(yè)級(jí)分布式應(yīng)用服務(wù) EDAS 實(shí)現(xiàn)了應(yīng)用全生命周期管理、微服務(wù)治理能力和環(huán)境隔離管理能力。** EDAS 企業(yè)服務(wù)助力交換共享平臺(tái)完成了快速上云、迭代發(fā)布和運(yùn)行支持。
應(yīng)用生命周期管理: EDAS 對(duì)業(yè)務(wù)所在的 ECS 集群進(jìn)行管理,提供應(yīng)用分批發(fā)布、灰度發(fā)布等豐富的發(fā)布策略,以及變更記錄、日志查詢(xún)等功能,大大提高了交換共享平臺(tái)的應(yīng)用發(fā)布和運(yùn)維管理能力。
微服務(wù)治理: 提供應(yīng)用監(jiān)控、限流降級(jí)、全鏈路灰度等功能,確保了交換共享平臺(tái)的高可用性。
環(huán)境隔離管理: 通過(guò)微服務(wù)空間劃分了生產(chǎn)環(huán)境和測(cè)試環(huán)境,保證環(huán)境之間數(shù)據(jù)、流量隔離;并支持服務(wù)東西向鑒權(quán),確保交換共享平臺(tái)的安全性。
本次冬奧會(huì)秉承云上綠色奧運(yùn)理念,圍繞賽事直播、數(shù)據(jù)發(fā)布、人員管理等多個(gè)場(chǎng)景構(gòu)建了類(lèi)似 ADS 人員抵離、MDV 數(shù)據(jù)大屏、InfoAV 數(shù)據(jù)發(fā)布、RHP 約車(chē)出行等 20 多個(gè)數(shù)字化管理系統(tǒng)。這些系統(tǒng)之間伴隨業(yè)務(wù)邏輯會(huì)產(chǎn)生大量數(shù)據(jù)交換的需求。
由于業(yè)務(wù)子系統(tǒng)眾多、業(yè)務(wù)邏輯分類(lèi)復(fù)雜,傳統(tǒng)的系統(tǒng)間同步調(diào)用會(huì)導(dǎo)致各子系統(tǒng)耦合度大幅提升、系統(tǒng)數(shù)據(jù)鏈路治理困難等問(wèn)題。北京奧組委技術(shù)架構(gòu)組采用了基于消息隊(duì)列構(gòu)建統(tǒng)一的 DES 數(shù)據(jù)交換平臺(tái),通過(guò)規(guī)范化數(shù)據(jù)格式和通信方式解決系統(tǒng)的耦合性和復(fù)雜性問(wèn)題,為組委會(huì)內(nèi)部系統(tǒng)、組委會(huì)外部專(zhuān)線數(shù)據(jù)源以及互聯(lián)網(wǎng)數(shù)據(jù)源提供數(shù)據(jù)交換、數(shù)據(jù)共享服務(wù)。
在北京冬奧會(huì) DES 數(shù)據(jù)交換平臺(tái)中,使用阿里云 RocketMQ 構(gòu)建了底層的異步可靠通信通道:
冬奧會(huì)期間,基于 DES 數(shù)據(jù)分發(fā)平臺(tái)傳輸?shù)臄?shù)據(jù)有兩類(lèi),一類(lèi)是任務(wù)同步型數(shù)據(jù),例如需要的人員注冊(cè)信息,核心 OMS 系統(tǒng)生成注冊(cè)信息后推送到 DES,再由冬奧核心系統(tǒng)后臺(tái)訂閱拉取人員信息實(shí)現(xiàn)登錄認(rèn)證;另一類(lèi)實(shí)時(shí)通知類(lèi)數(shù)據(jù),例如賽事賽程、獎(jiǎng)牌榜和氣象數(shù)據(jù),通過(guò)內(nèi)部 ODF 系統(tǒng)產(chǎn)生實(shí)時(shí)成績(jī)數(shù)據(jù)并發(fā)布到 DES,再由消息隊(duì)列推送到下游系統(tǒng)做大屏展示。
業(yè)務(wù)場(chǎng)景七:RocketMQ承載冬奧ADS抵離和RHP約車(chē)出行突發(fā)流量
冬奧期間,伴隨著國(guó)內(nèi)外眾多人員的出入境和日常出行需求,北京奧組委技術(shù)架構(gòu)組為人員出行管理設(shè)計(jì)實(shí)現(xiàn)了 ADS 人員抵離系統(tǒng)以及 RHP 約車(chē)出行系統(tǒng)。ADS 人員抵離系統(tǒng)負(fù)責(zé)從首都機(jī)場(chǎng)和移民局接收人員的抵離行程信息和出入境信息,寫(xiě)入后臺(tái)管理系統(tǒng),方便后續(xù)推送處理。RHP 約車(chē)出行系統(tǒng)則需要管理大量的網(wǎng)約車(chē)訂單管理。
由于冬奧期間人員流動(dòng)存在極大的不確定性,出行人員的出入境和出行數(shù)據(jù)處理存在不確定的流量壓力。北京奧組委技術(shù)架構(gòu)組在實(shí)現(xiàn)數(shù)據(jù)處理過(guò)程中,使用了阿里云消息隊(duì)列 RocketMQ 來(lái)做流量緩沖和可靠數(shù)據(jù)傳遞,系統(tǒng)鏈路如下:
ADS 和 RHP 的網(wǎng)關(guān)系統(tǒng)接收來(lái)自外部的數(shù)據(jù)調(diào)用,校驗(yàn)合法性。
網(wǎng)關(guān)系統(tǒng)內(nèi)置 RocketMQ SDK,將流量調(diào)用寫(xiě)入 RocketMQ 消息做異步緩沖,避免突發(fā)流量打垮后臺(tái)數(shù)據(jù)庫(kù)等系統(tǒng)。
后臺(tái)處理系統(tǒng)異步消費(fèi)消息實(shí)現(xiàn)流量平滑寫(xiě)數(shù)據(jù)庫(kù)等系統(tǒng),如果遇到寫(xiě)入問(wèn)題則使用 RocketMQ 可靠重試機(jī)制做重試處理。
借助 RocketMQ 億級(jí)堆積能力和海量并發(fā)寫(xiě)能力,RHP 出行系統(tǒng)平滑承載了冬奧期間 6000+ 司機(jī)乘客的出行管理需求以及全部人員的出入境管理和推送需求。
業(yè)務(wù)場(chǎng)景八:云端一體,MQTT支持央視新聞App海量用戶(hù)評(píng)論轉(zhuǎn)發(fā)
央視新聞 APP 中,在直播間使用微消息隊(duì)列 MQTT 版實(shí)現(xiàn)用戶(hù)的評(píng)論發(fā)送,接收其他用戶(hù)的評(píng)論信息。2 月 4 日,央視新聞 APP 直播了冬奧會(huì)的開(kāi)幕式,開(kāi)幕式開(kāi)始后,微消息隊(duì)列 MQTT 版平均消息并發(fā)數(shù)十萬(wàn),當(dāng)中國(guó)隊(duì)出場(chǎng)時(shí),評(píng)論區(qū)沸騰,2 分鐘內(nèi)達(dá)到了百萬(wàn),全程上、下行消息總量數(shù)十億。
阿里云微消息隊(duì)列 MQTT 版是基于開(kāi)源 MQTT 3.1.1 協(xié)議構(gòu)建的端與云互通的消息中間件,適用于物聯(lián)網(wǎng),移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)場(chǎng)景。通過(guò) MQTT 客戶(hù)端-服務(wù)器的消息發(fā)布/訂閱傳輸模式,為低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中的設(shè)備提供可靠的消息傳輸服務(wù)。而且,在業(yè)務(wù)高峰期如果出現(xiàn)了性能瓶頸,通過(guò)微消息隊(duì)列 MQTT 版的負(fù)載均衡消息推送能力,只需要快速升級(jí)規(guī)格增加應(yīng)用實(shí)例的數(shù)量,就能對(duì)用戶(hù)無(wú)感實(shí)現(xiàn)水平線性的應(yīng)用消費(fèi)能力提升。
通過(guò)使用微消息隊(duì)列 MQTT 版,開(kāi)發(fā)者不需要在應(yīng)用層關(guān)心弱網(wǎng)絡(luò)環(huán)境、斷線重連、異常處理、海量并發(fā)、系統(tǒng)高可用等復(fù)雜的技術(shù)問(wèn)題,極大程度上降低了開(kāi)發(fā)成本,提升了用戶(hù)體驗(yàn)和業(yè)務(wù)的快速上線。
業(yè)務(wù)場(chǎng)景九:極速生成縮略圖,Serverless支撐賽事轉(zhuǎn)播
視頻縮略圖是在視頻中某一幀動(dòng)畫(huà)的縮略圖,相當(dāng)于將視頻的封面或其中一幀的畫(huà)面內(nèi)容轉(zhuǎn)換成了圖片文件,選取的視頻縮略圖能夠把視頻中亮點(diǎn)畫(huà)面突出顯示,快速抓住用戶(hù)眼球,提高點(diǎn)擊播放率,賽事視頻縮略圖與普通視頻縮略圖有些不同,需要對(duì)海量視頻做更為快速實(shí)時(shí)的抓取。
函數(shù)計(jì)算支持的客戶(hù)需要對(duì)北京冬奧會(huì)的海量比賽直播視頻進(jìn)行實(shí)時(shí)處理,在直播視頻里的不同時(shí)間點(diǎn)上做截屏(專(zhuān)業(yè)術(shù)語(yǔ) “視頻圖片采集”), 客戶(hù)的需求如下:
需要定時(shí)事件觸發(fā)截屏操作
客戶(hù)只想集中精力在具體的邏輯開(kāi)發(fā), 核心視頻截圖邏輯代碼量不大, 需要快速完成開(kāi)發(fā)
客戶(hù)不希望管理部署虛擬機(jī)/物理機(jī),希望越簡(jiǎn)單越好
客戶(hù)需要這個(gè)核心業(yè)務(wù)邏輯具有彈性高可用, 免運(yùn)維
通過(guò)使用阿里云函數(shù)計(jì)算(FC),用戶(hù)開(kāi)發(fā)了視頻截圖的核心業(yè)務(wù)代碼,開(kāi)發(fā)成本低,一鍵部署,即得到了一個(gè)彈性高可用免運(yùn)維的直播視頻截圖服務(wù),幫助實(shí)現(xiàn)冬奧視頻亮點(diǎn)實(shí)時(shí)抓取。
全面的保障體系,為冬奧會(huì)護(hù)航
在此前的東京奧運(yùn)會(huì)上,阿里云容器服務(wù) ACK 通過(guò)一體化運(yùn)維、全場(chǎng)景診斷和完善的保障體系支持了奧運(yùn)會(huì)的順利運(yùn)行。而本次的 2022 北京冬奧會(huì),容器服務(wù) ACK 加強(qiáng)了保障能力,提供新的數(shù)據(jù)化、精細(xì)化運(yùn)維,打造更立體的護(hù)航保障體系。
數(shù)據(jù)化運(yùn)維
容器服務(wù) ACK 的統(tǒng)一運(yùn)維平臺(tái)集成了全網(wǎng)集群的監(jiān)控、告警、事件、日志、巡檢、元數(shù)據(jù)管理等功能,可以實(shí)時(shí)觀測(cè)、管理全網(wǎng) 24 個(gè)地域的數(shù)萬(wàn)集群。但數(shù)據(jù)源分散異構(gòu)且碎片化讓運(yùn)維壓力較大,無(wú)法做關(guān)聯(lián)分析,因此容器服務(wù) ACK 按照標(biāo)準(zhǔn)的大數(shù)據(jù)體系構(gòu)建數(shù)倉(cāng)平臺(tái),將數(shù)據(jù)統(tǒng)一清洗并結(jié)構(gòu)化存儲(chǔ),并按統(tǒng)計(jì)需求進(jìn)行分層建模,提供富有運(yùn)維語(yǔ)義的實(shí)時(shí)+離線數(shù)據(jù)模型。
建模好的數(shù)據(jù)可以直接繪圖分析或用于報(bào)警,如量化集群健康程度:通過(guò)組件配置、監(jiān)控值、事件/日志異常、歷史水位等計(jì)算組件健康分,然后結(jié)合節(jié)點(diǎn)、工單、配額規(guī)格等加權(quán)計(jì)算集群整體健康分。再以該模型為基礎(chǔ),繪制寬表并按多維度聚合,展示高危項(xiàng),并統(tǒng)一治理健康分低的集群。
異常分析
容器服務(wù) ACK 運(yùn)維平臺(tái)將集群 Events 和組件日志進(jìn)行清洗并統(tǒng)一格式存儲(chǔ),針對(duì)異常內(nèi)容進(jìn)行告警和趨勢(shì)分析。對(duì)全網(wǎng)各類(lèi)型集群進(jìn)行異常歸類(lèi),提前發(fā)現(xiàn),并專(zhuān)項(xiàng)分級(jí)解決,保證核心業(yè)務(wù)重要時(shí)段不受影響。
同時(shí),以 SLO 定義驅(qū)動(dòng)可觀測(cè)性體系,針對(duì) Kubernetes 的容量規(guī)模建設(shè)性能壓測(cè)常態(tài)化能力,對(duì) Kubernetes 集群核心 Verb 的 QPS 數(shù)有明確了解,同時(shí)結(jié)合不同工作負(fù)載場(chǎng)景進(jìn)行 SLO 梳理,持續(xù)關(guān)注請(qǐng)求量、延遲、錯(cuò)誤數(shù)、飽和度等黃金指標(biāo)。
集群級(jí)別灰度和封網(wǎng)
對(duì)于重?;顒?dòng),容器服務(wù) ACK 有完整專(zhuān)業(yè)的預(yù)案管理體系,大型活動(dòng)保障期間遵循阿里云整體的管控計(jì)劃,執(zhí)行特定范圍、特定時(shí)段的封網(wǎng)。本次北京冬奧會(huì),ACK 將封網(wǎng)管控細(xì)化到集群級(jí)別,對(duì)重保集群的運(yùn)維操作需要單獨(dú)申請(qǐng)?zhí)囟?quán)限,讀寫(xiě)操作分兩級(jí)申請(qǐng),發(fā)布變更需要走特殊審批流程,一鍵回收已有權(quán)限并重新下發(fā)特定人員。
通過(guò)細(xì)化到集群維度的灰度管控,可以更嚴(yán)格的控制風(fēng)險(xiǎn)范圍,同時(shí)避免大范圍攔截,影響常規(guī)運(yùn)維。
完善的保障預(yù)案體系
針對(duì)奧運(yùn)會(huì),容器服務(wù)基于已有的保障流程,針對(duì)性地制定了全程保障方案,包括提前預(yù)案、應(yīng)急預(yù)案、故障演練、值班排期等。容器服務(wù)有豐富的保障經(jīng)驗(yàn),每年例行的保障活動(dòng)包括每年的雙十一、618、春節(jié)等,這些大型保障活動(dòng)復(fù)雜而全面,容器服務(wù)每年在這些活動(dòng)過(guò)程中取得了近乎 0 故障的佳績(jī)。
除了上述重大保障活動(dòng),容器服務(wù)內(nèi)部有常態(tài)化的基于混沌的故障演練和突襲,混沌系統(tǒng)隨機(jī)注入故障,容器團(tuán)隊(duì)值班人員會(huì)收到告警并根據(jù)預(yù)案系統(tǒng)中的預(yù)案,立即進(jìn)行處理;經(jīng)過(guò)常態(tài)化的訓(xùn)練,團(tuán)隊(duì)的應(yīng)急處理能力錘煉得成熟默契,可以很好的實(shí)現(xiàn) 1-5-10(1 分鐘內(nèi)發(fā)出警報(bào)、5 分鐘內(nèi)定位故障、10 分鐘內(nèi)修復(fù)故障)的目標(biāo)和方法論。這些經(jīng)過(guò)實(shí)戰(zhàn)反復(fù)打磨的保障體系,運(yùn)用到了奧運(yùn)會(huì)保障專(zhuān)項(xiàng)中,有力保障和支持了奧運(yùn)會(huì)的穩(wěn)定運(yùn)行。
對(duì)奧運(yùn)集群的提前預(yù)案,在賽事開(kāi)始前會(huì)對(duì)每個(gè)奧運(yùn)重保集群實(shí)施,可以最大程度上發(fā)現(xiàn)并提前消除風(fēng)險(xiǎn)點(diǎn)。巡檢方式包括千舟平臺(tái)和自動(dòng)化巡檢腳本,檢查項(xiàng)目覆蓋集群節(jié)點(diǎn)和組件的水位和狀態(tài)、網(wǎng)絡(luò)流量、Pod 是否按可用區(qū)打散、關(guān)鍵組件(CoreDNS、Ingress Controller 等)配置和技術(shù)指標(biāo)、Kubernetes 事件等多維度;執(zhí)行每日巡檢的機(jī)制,可以持續(xù)發(fā)現(xiàn)新增問(wèn)題,并快速反饋客戶(hù)修正。
以 ACK 集群的 Apiserver 相關(guān)的預(yù)案為例來(lái)解釋一下。ACK 具有精細(xì)化的流控策略,可以針對(duì)壓測(cè)和故障演練過(guò)程中發(fā)現(xiàn)的異常進(jìn)行防護(hù)能力建設(shè)。具體實(shí)現(xiàn)上,阿里云容器服務(wù)內(nèi)置了自研的 UserAgentLimiter 進(jìn)一步做精細(xì)化限流,更加全面的保障 Kubernetes。Apiserver 應(yīng)急預(yù)案可以基于如上策略,快速下發(fā)限流配置,秒級(jí)穩(wěn)定 Apiserver,快速恢復(fù)集群。
完善全面且持續(xù)迭代的應(yīng)急預(yù)案,是故障發(fā)生后快速止血、保障業(yè)務(wù)的必備武器。針對(duì)北京冬奧運(yùn)會(huì)保障,容器服務(wù) ACK 和容器鏡像服務(wù) ACR 準(zhǔn)備了針對(duì)中心管控和運(yùn)維、管控鏈路、用戶(hù)面、數(shù)據(jù)面 4 個(gè)大類(lèi)的幾十個(gè)應(yīng)急預(yù)案并多次演練,全面覆蓋高風(fēng)險(xiǎn)故障場(chǎng)景。確保如果險(xiǎn)情發(fā)生,保障人員有嚴(yán)謹(jǐn)?shù)牟襟E和流程來(lái)逐步操作,顯著提升了應(yīng)急響應(yīng)的速度和效果。
極致的彈性能力
大型賽事、直播等業(yè)務(wù)場(chǎng)景,往往伴隨著特定時(shí)間點(diǎn)的突發(fā)業(yè)務(wù)流量,對(duì)系統(tǒng)的壓力也是實(shí)時(shí)變化的。阿里云消息隊(duì)列提供 Serverless 按需服務(wù)能力,業(yè)務(wù)規(guī)模 5000 TPS 并發(fā)以?xún)?nèi)可以實(shí)時(shí)彈性,業(yè)務(wù)完全無(wú)感。超大規(guī)模并發(fā)也可以隨時(shí)升級(jí)鉑金版規(guī)格,分鐘級(jí)平滑擴(kuò)容,單實(shí)例最高支持 100 萬(wàn) TPS。
在冬奧開(kāi)模式期間,央視直播客戶(hù)端大量的用戶(hù)直播評(píng)論帶來(lái)系統(tǒng)壓力的上升。微消息隊(duì)列 MQTT 版及時(shí)擴(kuò)容到單實(shí)例 100 萬(wàn) TPS 規(guī)格,極強(qiáng)的彈性能力保障了系統(tǒng)的穩(wěn)定運(yùn)行。
不說(shuō)再見(jiàn)
北京冬奧會(huì)已經(jīng)閉幕
但云原生的保障護(hù)航還在繼續(xù)
在即將到來(lái)的冬殘奧會(huì)
我們也將全力以赴
穩(wěn)穩(wěn)的!
總結(jié)
以上是生活随笔為你收集整理的一个字稳,云原生产品家族支撑冬奥会九大业务场景,打造云上奥运新体验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 技术盘点:消息中间件的过去、现在和未来
- 下一篇: CNCF 沙箱项目 OCM Placem