基於CDN的邊緣計算平台設計和思考
- 2019 年 12 月 12 日
- 筆記
11月28日晚,阿里雲技術專家吳龍輝老師在邊緣計算社區社群里分享基於CDN的邊緣計算平台設計和思考,本文為吳老師分享實錄。全文共3600字,預計閱讀15分鐘。
一
CDN和邊緣計算的關係
CDN的全稱是ContentDelivery Network,即內容分髮網絡。CDN是構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平台的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。
以上是來自來自百度百科的解釋,簡單的說CDN就是用空間換時間,空間的話就是分部在離終端用戶較近的邊緣節點,時間上就是終端用戶直接從邊緣節點直接獲取資源,這樣就不需要直接訪問源站,從而提升用戶體驗。
舉一個不是很恰當的類比,比如現在國內電商平台建立物流系統:在一二城市會建立大型物流中心(源站),三四線城市會建立小型物流中心(邊緣節點),像雙十一這種大促,會根據大數據計算提前在各地的小物流中心準備好商品(預熱),這樣用戶就可以快速獲取包裹(就近獲取)。所以CDN可以認為是目前整個互聯網的物流系統,只不過CDN分發的不是包裹,而是圖片、視頻、軟件安裝包。一般一家CDN服務商需要有成百上千個邊緣節點,才可以具備比較好的服務質量。
CDN已經是一個充分驗證過的成熟技術,可以不誇張地說,CDN扛住了整個互聯網大部分的流量,沒有CDN就沒有現在繁榮的各種視頻網站、直播平台和小視頻APP。同時經常長期的發展,CDN在供應鏈體系、節點建設、網絡運維都有非常成熟的經驗和沉澱。
隨着互聯網智能終端設備數量的急劇增加,以及 5G 和物聯網時代的到來,傳統雲計算中心集中存儲、計算的模式已經無法滿足終端設備對於時效、容量、算力的需求。將雲計算的能力下沉到邊緣側、設備側,並通過中心進行統一交付、運維、管控,將是雲計算的重要發展趨勢。
IDC 預計,到 2020 年全球將有超過 500 億的終端與設備聯網,超過 40% 的數據要在網絡邊緣側進行分析、處理與存儲,這對邊緣計算提供了充分的場景和想像空間。
邊緣計算分層結構包括雲、邊、端。
- 雲Centralized Cloud :傳統雲計算的中心節點,資源豐富,計算力強,擴展性強,服務多區域,但離終端用戶遠。同時雲中心是邊緣計算的管控端,負責全網算力和數據的統一管理、調度、存儲;
- 邊Infrastructure Edge :通常服務特定的一個區域,如市、縣、區等,部署在目標服務區域 10~30 公里的地方,提供滿足目標服務區域的計算、存儲、網絡服務。InfrastructureEdge邊緣通常位於IDC內,擁有充足的算力和存儲容量,和中心有專線或骨幹網連接,如CDN節點等;
- InfrastructureEdge 又可分為 Access Edge 和 Aggregation Edge 兩層,其中 Access Edge 靠近 Device Edge,與用戶或設備端更近,Aggregation Edge 聚合一個或多個 Access Edge 的數據,與雲端進行交互。
- 邊 DeviceEdge :終端設備,如手機、智能家電、各類傳感器、攝像頭等。

可以認為CDN是邊緣計算的一種形態,並且是當前來看規模最大、算力最強的形態、也是成熟度最高的業務形態。但是CDN的業務形態也需要做技術架構升級,才能支撐更多的邊緣計算場景。
二
邊緣計算的技術形態
邊緣計算技術形態也可以按照傳統的邏輯劃分為IaaS、PaaS和SaaS:
- IaaS:在邊緣測提供虛擬機,這個跟在雲中心購買ECS差不多,只不過機器是部署在邊緣IDC(這裡的邊緣IDC其實是相對於雲中心IDC),但是在網絡情況和穩定性上是跟雲中心不一樣的,畢竟雲中心有幾萬台機器的規模冗餘,有專門的駐場人員、機房和網絡維護,而邊緣節點有時候是不具備這些條件的,但是在使用場景上肯定也是不一樣的,比如:不建議在邊緣部署對數據可靠性要求非常高的業務。
- PaaS:提供虛擬機的方式對於有些用戶來說,可能運維起來有點麻煩:比如機器是分部在不同地方和不同運營商的,各地的網絡不大一樣,機房也有網絡割接的時候,管理這些虛擬機也會有不小的成本,難以快速進行業務切換調度。這樣一來就需要有個邊緣場景的PaaS服務,來幫助用戶管理和調度邊緣的資源,容器和K8S的話是一個在運維調度層面很好的解決方案。在解決運維的問題後,用戶對於PaaS的需求也會上升到更加多樣的能力,特別對於各種中間件對需求,EdgeKV,EdgeStore等等,比如KV需要具備全網數據同步的能力。
- SaaS:CDN就是典型的SaaS服務,主要包含包含靜態文件(文件、圖片、視頻)加速、動態加速,衍生的形態還包括安全、P2P加速。另外視頻AI也是後續一個重要的SaaS能力,比如自動駕駛、IOT場景的一個重要需求就是需要在邊緣能夠直接進行視頻AI出來來保證延時。
- 可編程CDN:除了往通用計算轉型,CDN的一個重要方向是往可編程CDN轉型,簡單的說就是通過函數計算或者腳本來控制CDN邏輯,比如Cloudfare的EdgeWorker,在邊緣支持V8引擎來運行JS腳本,這種技術方案相比於容器的優勢在於更加輕量級、成本更低、啟動時間更快。
可以看出邊緣計算並不是孤立存在的,邊緣計算一定是需要跟雲計算進行協同,所謂雲邊端協同。一種比較形象的說法:如果把雲計算比作整個計算機智能系統的大腦。那麼邊緣計算就是這個系統的眼睛耳朵和手腳。
完全依賴雲計算的計算機系統就好比每一件事都要請示司令部的軍隊,在需要大量和外界互動的時候會顯得僵化,反應遲緩,而且一旦網絡有點問題就徹底歇菜。加上邊緣計算之後就好比讓中低層軍官也開始發揮主觀能動性,能一定程度上自主做出智能判斷和行動決策,同時也只需要把一部分經過篩選的信息上傳到司令部。大大緩解了網絡通訊的壓力。即使在和總司令部暫時失去聯繫的情況下,也能自主做出部分決策。
邊緣計算跟雲計算相比也面臨著諸多挑戰,以CDN為例,邊緣節點分佈廣,單節點規模小(1~100機器),大部分節點是沒有駐場人員,所以維修周期長(1~2周)。同時節點的網絡複雜並且不可控,網絡割接、運營商封禁是常有的事情,省與省,國與國(海外)之間都有着非常複雜的網絡鏈路。
面對這些問題,就需要對調度/容災能力、運維能力要有比較高的要求,CDN本身的業務形態就是天然容災和可調度的:一個節點掛了,流量就可以切換到其他節點上。CDN節點架構也相對比較簡單,經典三層架構:四層負載均衡(LVS)+七層負載均衡(Nginx或者HaProxy)+緩存服務(Squid),所以CDN運維也是比較簡單的,機器上主要是緩存數據,機器掛了整體影響不大,不需要做數據遷移。
但是CDN要轉型到通用邊緣計算平台,調度/容災能力和運維能力就會變得規模化的一個主要瓶頸,怎麼做調度、怎麼做容災、怎麼做運維,這些問題在邊緣場景更加突出。因此容器的輕量級和Devops屬性,加上K8S的調度,目前看來是非常是非常適合邊緣計算。
三
容器在邊緣計算的落地形態
容器和K8S的落地場景主要還是在中心大集群場景,目前在邊緣的落地形態也是在探索和實踐中,目前針對邊緣場景的K8S有:
- K3S: K3S是Rancher開源的輕量級Kubernetes發行版,K3S是通過大量裁剪K8S代碼,只保留主要核心代碼,這是是為了在邊緣計算環境中運行在x86、ARM64和ARMv7處理器上的小型設備上。可以看出K3S主要是適配端(Device Edge)上的場景,通過簡化K8S來保證可以運行在終端設備上。
- KubeEdge:KubeEdge是華為貢獻給開源社區的一個項目,從名字上可以看出也是面向邊緣場景, KubeEdge的優勢在於設備連接,它可以支持多種協議,並使用基於標準MQTT的通信,這有助於有效地使用新節點和設備擴展邊緣集群。KubeEdge主要的場景在於邊緣接入層 (Access Edge),解決各種IOT終端設備接入的問題。
- ACK@Edge:ACK@Edge是阿里雲ACK(K8S)適配邊緣的形態,ACK@Edge在實現上保存了原生k8s的所有能力,所有邊緣相關的特性均通過Addon實現,Master是部署在雲中心,Node在邊緣端。ACK@Edge比較適合基礎設施邊緣 (Infrastructure Edge),比如CDN場景。

以CDN場景的落地場景來說,形態上就是在雲中心部署Kuberentes Master,將雲中心所在Region附近的CDN節點接入到Kubrentes中,最後Kuberente之上構建Fedration能力,進行全局容器調度。這樣就能利用K8S調度能力和容器的Devops能力。
這塊可以參考
https://yq.aliyun.com/articles/711767

四
未來展望和趨勢判斷
1. CDN轉型邊緣計算平台
CDN已經是一個非常成熟技術和業務,也是因為成熟,所以同質化嚴重,同時因為CDN的業務粘性不夠(改個DNS業務就切走了),所以目前國內CDN的商業環境並不是太好,CDN行業變成價格戰紅海,所以CDN廠商也紛紛在進行戰略轉型邊緣計算平台,但是5G還未大規模商用,轉型之路面臨著諸多問題:落地場景存不確定因素,客戶接受程度不夠等等。但是改變可能失敗,不改變必定掉隊,所以當務之急是先修鍊好內功,把新技術(虛擬化/容器/AI)在CDN進行落地和磨鍊,同時積極挖掘各種新業務和場景。
2.安全容器是重要能力
容器天然適合邊緣計算,但是容器也是比較大的硬傷,那就是安全和隔離,這也是為什麼現在邊緣計算的主要對外售賣形態還是虛擬機。所以安全容器就是一個最佳解決方案,具備容器的Devops屬性,又有比較好的隔離和安全保證。今年Kata安全容器發展迅猛,所以安全容器是邊緣計算的一個關鍵技術。
3.視頻AI和邊緣計算天生一對
視頻AI目前已經有不少落地場景:人臉識別門禁、自動垃圾分類、食堂自助結賬等等,可以預見視頻AI將會繼續快速發展。但是隨着規模的擴大和場景的挖掘,視頻AI對於低延時的需求會日漸強烈,如果能把視頻AI能力部署在邊緣節點上:雲中心進行大數據計算和AI訓練,AI訓練結果下沉到邊緣節點,邊緣負責視頻接入,直接在邊緣進行處理。