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