在數字時代,內容分發網絡(CDN)面臨著新的挑戰。傳統 CDN 架構難以滿足低時延、高并發的需求,邊緣計算的興起為 CDN 的發展帶來了新的機遇。天翼云結合邊緣計算與 CDN,通過 KubeEdge 實現了 CDN 的重構,提升了內容分發的效率和質量。
天翼云 CDN 的業務背景是電信以 “2+4+31+X” 的資源布局加速云網融合。“X” 是接入層面,把內容和存儲放到離用戶最近的地方,實現網隨云動、入云便捷、云間暢達,滿足用戶按需選擇和低時延需求。天翼云 CDN 起步較晚,但也恰逢云原生理念大行其道。因此,天翼云選擇了通過容器與 K8s 編排技術構建 CDN PaaS 平臺,但是 CDN 邊緣服務尚未完成云原生改造。
在 CDN 邊緣節點管理方面,天翼云面臨著如何納管大規模分布在邊緣的 CDN 節點、如何對 CDN 邊緣服務進行可靠的部署和升級、如何構建統一、可擴展資源調度平臺等問題。為了解決這些問題,天翼云采用了基于 KubeEdge 的邊緣節點管理方案。
CDN 物理節點架構中,CDN 提供的緩存加速服務,解決最后一公里加速問題。為了滿足就近接入和快速響應,大部分 CDN 節點需要部署到近用戶側,通過 CDN 全局流量調度系統將用戶訪問接入到就近節點。通常 CDN 節點具有呈離散分布的特點,大部分以各地區域 IDC 和地市級別 IDC 機房資源為主,每個邊緣機房根據出口帶寬和服務器資源規劃,搭建多個 CDN 服務集群。
天翼云采用了兩種方式接入 CDN 邊緣節點:分集群部署 K8s 或 K3s,以及通過 KubeEdge 方式接入。通過 KubeEdge 方式接入,可以收斂邊緣節點連接,接入統一的 K8S 集群,并且提供云邊協同,邊緣自治等能力,還保留了大部分 K8s 的原生能力。
在基于 KubeEdge 邊緣節點納管方案中,天翼云在各區域中心及數據中心建若干個 K8s 集群,K8s 集群下面是邊緣按就近規劃的接入到區域的集群。為了防止單點接入,以及單 K8s 集群 CloudCore 負荷過大的問題,在各大區建設 K8s 集群,用于邊緣節點的接入和應用編排管理。
然而,在 CloudCore 多副本部署過程中,出現了連接不均衡問題。Hub 到 Upstream 最終提交到 ApiServer 的示意圖顯示,中間 Upstream 模塊有一部分的分發是用單攜程的方式來運行,中間 Upstream 模塊因為只有單攜程,會導致消息提交過慢,邊緣節點的一些 Node 無法及時提交給 ApiServer,最終引起部署方面的一些異常。
為了解決這個問題,天翼云提出了 CloudCore 多副本均衡優化方案。CloudCore 每個實例在啟動后各自通過 ConfigMap 的方式上報實時的連接數等信息;CloudCore 結合本地實例與其他實例的連接數,計算每個機器的期望連接數;計算本地連接數與期望連接數的相差比例,相差比例大于最大可容忍連接數差,進入連接待釋放階段,并進入一個 30s 觀察周期。
在邊緣應用服務部署方面,CDN 加速服務整體流程主要分為兩大核心系統:調度系統和緩存系統。調度系統會實時采集全網的 CDN 鏈路情況,實時的節點的情況,以及節點的帶寬成本的情況,從而決策出最優調度的覆蓋數據,將這個數據推給 Local Dns 或 302 或 HDS 的一個的調度器。Local Dns 拿到最優數據后,來進行 Dns 的解析響應,用戶端通過解析響應可就近接入到邊緣集群,邊緣集群因為涉及到緩存,有可能涉及到 miss,如果 miss 后,它會回到上一層的緩存,一般會有兩層或者三層的中轉的緩存,最終回到原狀。如果中轉的緩存也沒有,數據會再回到云站,這是 CDN 服務的整體流程。
在緩存系統中,一般不同產品的緩存會使用不同的服務,比如面向直播的流媒體的加速服務和一些靜態的加速會有一些區別。CDN 緩存服務具有資源獨占、大規模高服用、高可用等特點。
基于這些特點,天翼云在 CDN 部署中,要解決可控的節點容器升級、升級驗證等問題。升級部署方案包括分批升級與組內升級并發控制、細粒度版本設置、優雅升級、升級校驗、編排安全防護等。
在基于 KubeEdge CDN 邊緣容器容災與遷移方面,遷移步驟包括切換接入 DNS、重啟 CloudCore 斷邊 Hub 連接等。這種方案具有成本低、流程簡單、可控、服務安全性高等優點。
天翼云 CDN 的容器化與微服務架構轉型也取得了顯著成效。通過將 CDN 服務拆分為多個的微服務,可以實現服務的解耦、靈活部署和按需擴展,從而提高系統的可維護性和可擴展性。天翼云 CDN 采用 Docker 等容器技術,將 CDN 服務組件封裝為的容器鏡像,實現服務的輕量級化和標準化。通過容器編排工具(如 Kubernetes)管理容器的生命周期,包括容器的創建、調度、升級和銷毀等,確保服務的穩定運行和高效調度。
在容器化基礎設施的基礎上,天翼云 CDN 將各個服務組件(如緩存節點、調度中心、監控系統等)部署為的容器實例,實現服務的解耦和分布式部署。通過容器間的網絡通信機制,實現服務間的互操作和協同工作,提高系統的靈活性和可擴展性。
天翼云 CDN 還引入了容器化運維管理工具,如 Prometheus、Grafana 等,對容器化服務進行實時監控、日志收集和分析。通過監控數據的可視化展示,及時發現并解決潛在問題,提高系統的穩定性和可靠性。同時,利用 CI/CD(持續集成 / 持續部署)流程,實現服務的快速迭代和部署,提升運維效率。
天翼云 CDN 云原生落地實踐案例榮獲 2021 年云原生優秀案例獎。數據顯示,天翼云 CDN 云原生的落地實踐能夠有效將 CDN 研發效能提升 56%,CPU 利用率提升 42%,運維自動化效率提升 52%,單次部署提升 60%,單次業務升級效率提升 40% 到 45%,鏡像分發效率提高 57 倍,平臺運維投入只需 2 到 3 人。
天翼云通過 KubeEdge 重構 CDN,實現了邊緣節點的高效管理、服務的可靠部署和升級,以及容災與遷移的低成本和高安全性。同時,容器化與微服務架構轉型提升了系統的可維護性和可擴展性,為用戶提供了更優質的內容分發服務。未來,天翼云將繼續探索邊緣計算與 CDN 的結合,不斷提升服務質量和用戶體驗。