春節前后因受新冠肺炎疫情影響,在線辦公應用迅速火爆,騰訊會議作為一款企業級在線辦公產品,迅速受到用戶認可 。用戶數在爆炸式增長的同時 , 業務也在高速的迭代升級,40天完成14大版本升級,上演了一場小步快跑,快速迭代的經典案例 。本文將從容器的角度著手 , 為大家呈現騰訊會議如何基于騰訊云容器服務TKE , 在后端容量達到100萬核的歷程下,版本快速迭代背后的云原生技術 。
騰訊會議作為面向企業級的關鍵產品,對產品的可用性和穩定性要求是非常高的,任何服務不穩定都可能會導致用戶無法接入會議、會議中斷或音視頻質量差,從而導致用戶投訴,影響到產品口碑,降低用戶信任度 。
同時,用戶數爆炸式增長,需要后端能力可以實時跟上用戶的增長節奏,對擴容時效性有非常高的要求 。此外,服務運營過程中,產品必然會有功能調優、bug修復等迭代升級,為了使對升級戶使用透明,要求平臺能高效、可控地支持業務程序發布更新 。
解決思路
為解決上述業務場景需求 , 基于騰訊云容器服務(TKE)實現了對騰訊會議的支撐 。借助TKE的動態路由、固定網絡、彈性伸縮、以及可控升級等能力 , 完美地承載了騰訊會議、在線教育、空中課堂等疫情期間高增長業務的部署運營,管理平臺架構如下:
管理平臺基于TKE集群部署服務,并基于此做了一些功能拓展,圖示綠色標示已實現的能力,紅色標示進行中,灰色為規劃中待實施;TKE集群以騰訊云CVM、CBS、CLB、VPC等基礎能力為根基 , 部署云原生的k8s集群;通過基于TKE拓展的,從路由(CLB/L5 )、網絡(Ipamd)、資源管理(、)、彈性伸縮(VPA、)等多個維度做了功能優化,很好地支撐了騰訊會議等騰訊自研業務的部署運營 。
業務部署模型如下:
這里業務分三套環境部署 , 分別對應測試、預發布、正式三套 。業務在下以多套微服務模式部署 。每套服務包含一套獨立完整的執行資源 , 如:、/、、、pv/pvc等
騰訊云容器服務TKE英文全稱是,簡稱TKE,旨在為用戶提供穩定、安全、高效、靈活擴展、簡單易用的容器管理平臺 。TKE基于原生提供以容器為核心的、高度可擴展的高性能容器管理服務 , 完全兼容原生API ,擴展了騰訊云的云硬盤、負載均衡等插件,為容器化的應用提供高效部署、資源調度、服務發現和動態伸縮等一系列完整功能,解決用戶開發、測試及運維過程的環境一致性問題,提高了大規模容器集群管理的便捷性,幫助用戶降低成本,提高效率 。
具體方案解析
下面將從具體從質量保證、效率以及可控升級三大方面介紹騰訊云容器服務TKE是如何支撐騰訊會議的業務演進的 。
1、質量保證
業務服務穩定性直接決定了產品口碑,為了保證騰訊會議等業務的服務質量,騰訊云在以下動態路由、異常檢測、并行擴容、業務遷移幾個維度做了保障措施:
1.1動態路由
動態路由是基于騰訊自研的路由系統L5,通過在TKE集群內拓展能力實現的L5-組件 。L5-控制層面實現邏輯和通用類似,基本流程包括監聽變更事件,觸發回調,入隊列;拉起,更新路由 。
不過為了保障路由的一致性 , 擴展了主輔兩套功能流程 , 如上圖分別用橙、綠色箭頭標示流程,主流程保障實效行,輔流程保障一致性 。其中,主流程通過監聽事件 , 實時觸發,且多并發執行,保障路由更新時效性,秒級生效 。輔助流程串行掃描集群中的,拉取該對應的路由配置數據與L5路由系統中的數據做對賬 , 查漏補缺 , 任何非通過中控臺的路由設置,都會被做強一致性檢測到并覆蓋,分鐘級生效 。L5-數據層面可以保證變更設置秒級生效 , 強一致性分鐘級實施
1.2 異常檢測
通過云原生k8s自帶的以下能力,支持用戶自定義pod健康檢查,保證服務在異常時段內 , 流量隔離
通過以上幾個功能特性的使用,配合動態路由能力 , 可以實現業務服務的高穩定性保障 。
1.3 并行擴容
在騰訊會議這種互聯網海量用戶場景中,對擴容敏感性的把握是非常需要的,流量短時間爆發式增長 , 要求后端擴容節奏必須能跟上,所以騰訊云對云原生的HPA的兩大能力做擴展,其一是并發量 , 以高并發的方式運行擴容檢測流程,高并發主動檢測業務高負載,然后根據實況實時觸發擴容;其二是計算周期 , 支持用戶自定義設置檢測計算周期,最低甚至可達到秒級,當檢測流程在計算周期內發現高負載,可實時觸發擴容 。
1.4 業務遷移
業務遷移主要通過以下三種模式實現:
helm部署:云原生的方式,一份配置,多集群分發 , 優點是高效可管理,缺點是容易和現網運行配置存在缺漏差異 , 導致不一定完全可用,強依賴于部署規范
打包復制:將業務的ns及該ns下所有資源全量打包,復制部署到另外的集群中,盡可能地保證業務的執行環境及配置還原,中控臺已實現一鍵操作,快速高效
打包復用:和上面流程類似,存在功能優化即支持用戶自定義調整配置 , 降低用戶操作成本
2. 效率
新冠疫情期間 , 騰訊會議受廣大用戶良好口碑認可 , 用戶爆發式增長,服務的部署效率是核心能力體現,為了助推平臺能力可以快速適應用戶增長的節奏,騰訊云從流程自動化、CI/CD、鑒權管理、彈性擴縮幾方面做了努力:
2.1 自動化

文章插圖

文章插圖
自動化主要是為了提高流程效率 , 具體實施流程如:新建集群、集群容量擴充、環境初始化、組件分發,依賴騰訊云API,自動實施創建集群、集群添加node;環境初始化,內核參數調整、系統環境設置、工具安裝、文件系統格式化、組件分發等流程,都是依賴于腳本封裝,工具化執行;中控臺對各流程、工具的一體化整合,都是通過平臺通道實施的 , 如:批量執行腳本、批量安裝,新建集群后注冊中控臺等
2.2 CI/CD
部署在TKE集群的騰訊內部業務,基本都已打通CI/CD流程,并且支持跨多個網絡環境串聯部署,騰訊會議通過現有CI/CD模式 , 借助于云原生的服務編排模式部署,實現了從開發、部署、測試、上線、及版本迭代的高效落地
鑒權管理
CMDB作為產品、業務模塊、IP的關聯關系管理模型 , 應用非常廣泛 , 在很多公司的業務場景中都有重用 。CMDB 的實現和通用邏輯基本類似 , 具體包括監聽的pod變更事件、根據事件回調觸發對應、查詢集群信息 , 查詢pod關聯的產品信息、最終將關聯關系落地到CMDB服務系統 。
CMDB的實時同步,為很多定制化的拓展功能落地提供了很好的輔助作用,如下面的鑒權申請流程:
如流程圖示,通過init-模式,通過業務CMDB快速同步落地,與騰訊內部的織云、L5等系統聯動,可以高效打通鑒權通道,使得一直讓業務頭疼鑒權申請全自動化,高效的支持業務服務部署 。
彈性擴縮
為了滿足騰訊會議等關鍵業務的場景需求,除了云原生的VPA能力外,騰訊云基于云原生HPA做了拓展,通過單獨抽離出HPA功能模塊以方式實現,用以支持業務自定義特性設置,具體拓展能力包括多路指標 , 支持通過 、、業務監控等多路指標采集 , 更好地兼容業務場景
;并行實施,多work并行檢測業務指標,實時觸發彈性伸縮,保證時效性;自定義 , 支持用戶自定義擴縮容閾值、計算周期、彈性系數 。其中多路指標的功能框架如下圖:
3.可控升級
騰訊會議對于用戶來說,都是用于解決用戶直面溝通難的關鍵場景,為了提供更好用戶體驗,產品運營過程中,或多或少會有功能優化、bug修復等迭代 。在云原生的模式下,如何保障更新升級的可靠、可控顯得尤為重要 。騰訊云基于云原生能力在以下固定網絡、升級輕量化、分批升級、容量保障四個方面做了拓展優化,實現了以下幾個場景需求的能力:
3.1 固定網絡
固定網絡是指pod銷毀重建后ip依然不變 , 場景如:pod異常、版本更新等 , 固定網絡是騰訊自研業務非常認可的一大特性,很多業務后臺服務都有基于ip的鑒權管理、白名單機制等功能依賴,相信不少公司都會有類似的場景需求 。固定網絡的設計基于三大功能模塊:IPAMD 、TKE-ENI-AGENT、CNI:
固定網絡的具體實現流程如上圖:
用戶發起的創建IPAMD 通過list-watch機制 , 監聽到創建請求IPAMD 通過IP 去對新下所有pod分配 為每個pod生成對應的網絡配置,然后在該以后的生命周期中,對pod與已分配ip的關聯關系和狀態更新進行管理IP 是IPAMD 的核心功能,它會根據pod信息和的狀態去判斷當前pod是新建申請、銷毀重建預留、刪除回收等流程,并生成對應配置,當新建時 , 會配新的IP給到pod , 當pod異常銷毀重建時,會臨時回收保留原IP,等重建好后,重復復用,當刪除時,會把所有分配的IP回收當pod在node上創建時,會通過TKE-ENI-AGENT獲取IPAMD已經生成好的網絡配置,然后通過GRPC的方式請求IP 實施生效pod網絡配置IP 接收到TKE-ENI-AGENT請求后api版本菜單使用中,會去獲取已經分配好的pod網絡配置,然后根據配置去調用騰訊云接口創建ENI彈性網卡,最后生成CNI配置根據IP 生成的配置 , 實施節點策略路由和 Pod 的網絡堆棧api版本菜單使用中,生效pod網絡
云原生的、等類型,沒法很好地滿足騰訊會議等業務的使用需求如:升級輕量化、分批升級、容量保障等,所以騰訊云基于開發一套支持新的類型即 , 它繼承了內置的所有核心特性 , 主功能邏輯和類似,但做了細分能力拓展如支持容器(Pod)實例的固定IP、支持應用的多批次灰度更新,更好的兼容傳統應用的發布、Node失聯時,Pod的自動漂移、支持容器原地升級 。的應用架構及功能模塊如下:
通過CRD模式部署,和的yaml參數有部分差異,使用方式和基本一致
3.3 分批升級
【騰訊會議如何完成40天14大版本升級迭代】諸如騰訊會議等很多重點業務 , 在更新升級時要求絕對地可控推進 , 分批升級便是基于該場景拓展實現的,也可以更好的兼容傳統應用的發布 , 分批升級在實際使用中的演化過程如下所示:
分批升級要做到足夠可控,需要在發起升級時預先指定批次,后續每個過程都會有人工觸發,若出現升級失敗 , 可以修復后繼續,也可以直接走流程,相對于其他 , 的分批升級功能帶給用戶的使用優勢是用戶可配置每個批次的實例集 , 比如用戶可根據應用服務地區 , 只暫時升級對應地區的實例 。每個批次指定實例進行并發更新,升級效率高 。
同時,升級更安全和省心,支持每個批次完成后等待用戶確認 , 再觸發升級下一批實例,通過應用探針自動監測到升級成功后,自動觸發升級下一批實例 。另外,支持手動伸縮容,基于基礎指標(Cpu, Mem,I/O)的彈性伸縮,也支持基于應用自定義監控指標的彈性伸縮 。
總結
當前 , 全面上云的趨勢已然清晰,騰訊會議也借助于云計算的盛風順勢起飛,迅速基于云原生技術完成版本的快速迭代和功能的完善升級 。在各行各業云原生改造盛況之下,容器技術在其中作用至關重要 。騰訊內部在很早之前就已經研究與容器相關的技術與服務,其中很多成功的業務,例如游戲、微信、廣告等都選擇運行在容器技術上,可以說容器技術正在支撐著數十億計的用戶 。
隨著云原生技術生態蓬勃發展,作為一枚技術追隨者,也希望騰訊云容器服務TKE技術能支撐著更多業務傲然前行 。
本文到此結束,希望對大家有所幫助 。
- ?曖昧期需要天天聊天嗎,剛開始追女生聊天頻率該如何把握
- ?最能吸引女生的朋友圈,如何在朋友圈吸引女生
- 如何教育好一個處于逆反期的孩子?
- 兒子13歲叛逆情緒特別嚴重,什么都要自己做主,家長如何應對?
- 初中的孩子越來越叛逆了,該如何應對?
- 巧用手機攝影后期軟件:如何用Snapseed將藍底證件照換成紅底
- 5分鐘弄懂如何下載Android SDK
- 騰訊云存儲發布三個性能第一新品,讓高性能應用輕松上云
- 送茶怎么送
- 如何做到孝順父母不愚孝呢 ?怎樣避免愚孝
