鼠年春節,一個特別的春節。受疫情影響,假期比往年長了一些。這么長時間宅在家中,想必大家除了睡覺,花費時間最多的就是“刷劇”了。今天講的技術主題就和“刷劇”有關,它是CDN。
我們通過觀察CDN的技術來看CDN的產業發展,就能看出CDN將是云計算不可分割的一部分。那么,CDN究竟是什么,和“刷劇”有什么關系?CDN有哪些分類?本文做一個細致的梳理。
刷劇和CDN有什么關系?
CDN的全稱是Content Delivery Network,即內容分發網絡,也稱內容傳送網絡。它是構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率,能夠解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用于站點加速、點播、直播等場景。
百度智能云CDN國內節點分布圖
到這里,相信你能明白為什么CDN和“刷劇”緊密相關。沒有CDN,看劇就是“卡卡卡”;沒有CDN,“刷劇”會變得毫無樂趣。
CDN是如何起作用的?
CDN實現的原理是什么?
傳統的http訪問過程是用戶在瀏覽器填入要訪問的域名;瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址,并通過這個IP地址,向域名的服務主機發出數據訪問請求,得到請求數據,最終返回所需要的內容。
CDN服務流程圖
使用了CDN緩存后的網站訪問過程:
2.瀏覽器調用域名解析庫對域名進行解析,由于CDN對域名解析過程進行了調整,所以解析函數庫一般得到的是該域名對應的CNAME記錄,為了得到實際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用全局負載均衡 DNS解析,并根據地理位置信息解析對應的IP地址,使得用戶能就近訪問;
雖然我們刷劇看到的只是幾秒甚至更短的等待時間,殊不知背后CDN有那么多“小動作”。
如何構建CDN?
CDN如此重要,那如何構建一套CDN系統?
從功能組成看,典型的CDN系統由分發服務系統,負載均衡系統和運營管理系統組成:
百度智能云CDN服務架構圖
- 分發服務系統:最基本的工作單元就是Cache設備,cache(邊緣cache)負責直接響應最終用戶的訪問請求,把緩存在本地的內容快速地提供給用戶。同時cache還負責與源站點進行內容同步,把更新的內容以及本地沒有的內容從源站點獲取并保存在本地。Cache設備的數量、規模、總服務能力是衡量一個CDN系統服務能力的最基本指標。
- 負載均衡系統:主要功能是負責對所有發起服務請求的用戶進行訪問調度,確定提供給用戶的最終實際訪問地址。兩級調度體系分為全局負載均衡(GSLB)和本地負載均衡(SLB)。GSLB主要根據用戶就近性原則,通過對每個服務節點進行“最優”判斷,確定向用戶提供服務的cache的物理位置。SLB主要負責節點內部的設備負載均衡。
- 運營管理系統:分為運營管理和網絡管理子系統,負責處理業務層面的與外界系統交互所必須的收集、整理、交付工作,包含客戶管理、產品管理、計費管理、統計分析等功能。
每個部分各司其職,共同組成了CDN,這其中最核心的當屬負載均衡系統,它是整個系統的大腦。
CDN如何對視頻直播 進行完美支撐?
盡管CDN的組成看起來十分清晰明了,就三大部分,但實際情況并不是有了這三大件就萬事大吉了。
CDN發展到今天已經不是這么簡單的事情,不僅需要拼資源,還需要拼技術,這也是為什么今天主流CDN服務商已經都是大型云服務商的根本原因,CDN已經發展成為巨頭之間的競爭。
以百度智能云為例,不僅CDN資源豐富,而且技術領先。具體來說,百度智能云CDN有四個方面的優勢:
強大充足、彈性化的資源
百度智能云擁有遍布國內30多個省市1000+個優質加速節點,覆蓋全球五大洲50+個國家的200+個節點分布。總帶寬100T+帶寬、單節點80G-160G、支持IPV6等高優特性。
百萬域名精準調度
百度智能云CDN做到每周三次IP數據更新,對用戶GPS完成大數據矯正;針對億級用戶作出高效的質量反饋,杜絕節點亞健康,故障容災基本做到1分鐘內快速切換。
高并發請求處理
采用Cache一致性hash和百度搜索等量級的HTTPS加速技術,高效簡化完成請求熱點突發檢測與遷移,可以做到海量域名配置分鐘級別的更新。
自研高性能Cache
結合分片存儲、并行IO、分級緩存、合并回源等策略,基本保證1個文件僅進行1次回源。與此同時,針對源站狀態實時監控,并且主備源站能夠做到同時支持。
所有這些優勢結合基于大規模實時流媒體計算集群和強大的音視頻信號處理算法,百度智能云視頻直播能給用戶提供“清晰流暢、低時延、高并發”的音視頻直播服務。
百度智能云CDN直播架構
CDN對視頻直播的支撐
CDN+邊緣計算創新探索
值得一提的是,百度智能云CDN已結合邊緣計算技術,從內容分發Content Delivery向計算分發Computing Delivery轉型。
將云計算的能力下沉和延伸至CDN節點,在距離上離終端用戶更近,提供更“低延遲、大帶寬”的邊緣計算能力。在此基礎上,發展出一種新型的分布式運算的架構,將原本完全由中心節點處理大型服務加以分解,切割成更小與更容易管理的部分,分散到CDN節點去處理,使數據的產生、采集、分析等流程都在更接近數據來源地完成處理。
由當前“云端協同”的CS架構演進為“云邊端三體協同”的CES計算架構,滿足“低成本、本地化”的計算需求場景。
針對視頻場景,在視頻內容分發的基礎上,CDN上的邊緣計算服務開放算力,支持客戶靈活自定義分發的業務邏輯。包括加密、審核、調度等任務都能在邊緣節點上進行,無需和源站進行交互。大幅度降低傳輸成本的同時,保證了低延遲,使得用戶體驗進一步提升。
同時和百度智能云CDN的完美結合,也能滿足不同客戶的定制化需求,實現計算型CDN能力開放,更好的支撐業務落地。