作者:胡濟麟
網際網路視訊直播是一種訊息媒介形態,提供時產時消的內容,經過多年,已經發展出秀場、遊戲、電商、體育等多種業務形態。主要特點是:內容實時產生實時消費,對時效性要求更高;串流媒體內容佔用頻寬大,對網路質量要求更苛刻;一人生產、多人消費,頻寬規模大。直播 CDN 目前是解決這種大規模分發場景最有效的技術途徑,主要特點是就近接入以提供良好的接入網環境,多層匯聚以降低中心資源的分發壓力,以此達到直播業務規模化和時效性的要求。
由於直播業務本身對於質量和時效性的要求,CDN 就需要在短時間內要找到並建立一條完整可靠的傳輸鏈路,對於鏈路穩定性有一定的要求。傳統依賴於旁路更新的、基於鏈路質量的策略,尋路演演算法簡單,不消耗太多時間,時效性有保障。但隨著成本壓力越來越大和可用性的要求越來越高,基於鏈路質量的策略的缺點就逐漸體現出來:
一個是這種旁路策略第一策略時效性上存在一定的延遲,延遲大約 2-3 分鐘,對於偶發性的質量惡化或資源偏壓無法快速做出相應的策略調整;
第二是基於一套統一的鏈路質量資料,無法兼顧資源能效,對於一些能效低的內容無法基於成本考慮做出相應的尋路策略調整,對浮動成本的控制不夠精確。
基於資源資訊、鏈路狀態、串流媒體資訊等多維度資料,精確計算每一路流的分發效能,將計算粒度精確到流一級。通過對能效、質量的綜合計算,為每一路流動態計算接入和回源策略是解決困難的關鍵。
圖 1. 干係方
排程系統通過收集、結合資源資訊、鏈路狀態、串流媒體資訊等,對直播接入和尋路進行控制,快速精確的調整策略,提供質量優先、成本優先、質量成本平衡等多種策略,對於在質量指標評價體系下提升分發系統的可用性和能效比提供更加精準和細粒度的控制。
延遲不超過 50ms,考慮到公網的網路本身的傳輸延遲,基本上不會有多餘的時間進行其他系統呼叫和計算,需要預先準備好響應的策略,並且排程接入位置要儘量靠近呼叫側。設計了策略推播、策略快取、非同步更新三種功能。
由於串流媒體資訊同步延遲要求 100ms,考慮公網網路傳輸的延遲,定時採集上報的方式無法滿足延遲要求,採用事件觸發實時 API 上報的方式同步資料。裝置資訊、節點資訊為介面呼叫方式取回,對於時效性要求不高,採用任務分派機制,防止資料重複取回。
隔離
使用者隔離
業務隔離
限流
當系統負載過高時,保護系統服務,提升系統恢復速度,降低系統負載,需要對系統業務流量進行限制。
熔斷
並行熔斷
失敗率熔斷
無法在進行接入和詢源排程服務時,需要退化為預設兜底策略,接入退化為 DNS 解析方式,詢源退化為 CDN 固定詢源策略,不再依賴排程系統做策略選擇。
圖 2. 業務架構
排程系統分為統一接入、運管平臺、資源排程、資訊採集、紀錄檔系統五個部分。
圖 3. 資訊採集系統業務架構
資訊採集系統作為排程系統的資料底座,主要功能是從運維繫統收集裝置資源情況、從業務系統收集串流媒體資訊,經過資料整合之後提供給資源排程使用。
資訊採集系統通過主動定時呼叫運維繫統介面採集裝置執行資料,包括 CPU 使用率、記憶體使用率、磁碟 IO、網路 IO 等資訊,用於評價裝置的服務能力。採集節點頻寬用量等資訊,用於評價節點承載能力。
通過主動定時呼叫監控系統介面採集鏈路質量資料,包括 RTT,丟包率等資訊,用於評價網路質量。
通過被動等待 CDN 業務範例上報串流媒體資源位置、下行並行、卡頓率等資訊,用於評價服務質量和服務收益。
這些資訊被收集上來之後通過分類整合,按照節點、地區、運營商、業務形式等不同維度,形成服務能力、服務質量、服務收益的聚合資料。
聚合資料最終會通過查詢介面提供給資源排程系統。
圖 4. 資源排程系統業務架構
資源排程作為排程系統核心業務模組,主要從資訊採集收取必要排程依據,通過一套排程策略,輸出排程計劃提供給接入和詢源業務。
資源排程系統主要通過運管平臺將個性化排程設定資訊落到資源排程系統。通過查詢資訊採集介面,查詢所需要的服務能力、服務質量、服務收益等資訊。通過匹配不同的排程策略,生成靜態排程計劃。
通過查詢資訊採集介面,查詢串流媒體資源位置及描述資訊。通過匹配排程策略,生成動態排程計劃。
最終排程計劃會以介面方式提供給業務方使用。
圖 5. 技術架構
圖 6. 部署方案