天天看點

基于邊緣容器的阿裡雲CDN雲原生實踐

2019年阿裡雲上海峰會,由阿裡雲智能進階技術專家黃玉奇、阿裡雲智能技術專家吳龍輝共同講述了基于邊緣容器的阿裡雲CDN雲原生實踐, 演講内容涵蓋了邊緣容器的背景和趨勢,Edge@ACK的能力、架構,以及基于邊緣容器建構阿裡雲CDN的雲原生體系的詳細過程,期望能夠給聽衆帶來了一場“使用阿裡雲容器服務打造雲邊端一體基礎設施”的分享。 視訊直播回放 雲原生專場PPT下載下傳 以下為精彩視訊内容整理:

邊緣容器的介紹

随着網際網路智能終端裝置數量的急劇增加,以及5G和物聯網時代的到來,傳統雲計算中心集中存儲、計算的模式已經無法滿足終端裝置對于時效、容量、算力的需求,将雲計算的能力下沉到邊緣側、裝置側,并通過中心進行統一傳遞、運維、管控,将是雲計算的重要發展趨勢。IDC預計,到2020年全球将有超過500億的終端與裝置聯網,超過40%的資料要在網絡邊緣側進行分析、處理與存儲,這對邊緣計算提供了充分的場景和想象空間。邊緣計算按功能角色主要分為三個部分:

雲 – 傳統雲計算的中心節點,有豐富的雲計算産品形态和資源,是邊緣計算的管控端,負責全網算力和資料的統一管理、排程、存儲。

邊 – 雲計算的邊緣側,又分為基礎設施邊緣(Infrastructure Edge)和裝置邊緣(Device Edge)。基礎設施邊緣通常位于IDC内,擁有充足的算力和存儲容量,和中心有專線或骨幹網連接配接,如CDN節點等;裝置邊緣通常指非傳統IT基礎設施的邊緣節點,這類資源更靠近裝置和資料源,比較常見的一般是資料網關。

端 – 終端裝置,如手機、智能家電、各類傳感器、攝像頭等。

邊緣雲計算--“雲邊端一體”

基于邊緣容器的阿裡雲CDN雲原生實踐

邊緣計算目前面臨的主要挑戰有:

雲邊端協同:缺少統一的傳遞、運維、管控标準。

安全:邊緣服務和邊緣資料的安全風險控制難度較高。

網絡:邊緣網絡的可靠性和帶寬限制。

異構資源:對不同硬體架構、硬體規格、通信協定的支援,以及基于異構資源、網絡、規模等差異化提供标準統一的服務能力的挑戰。

邊緣雲計算是基于雲計算技術的核心和邊緣計算的能力,構築在邊緣基礎設施之上的雲計算平台。雲計算上已經具有很成熟的大規模的應用管理及資源管理的能力,希望複用該能力,開展邊緣計算的業務,而這也是雲邊端一體的核心概念;

邊緣雲要素--标準化

邊緣雲的五個要素分别為低延時、邊緣自制、資源管理、安全性及标準化。其中最關鍵的要素為标準化,因為在雲原生的時代,标準化是雲原生要解決的核心問題。标準化可以讓使用者在基于不同的雲資源形态以及不同的雲提供商上開展其業務,這正是基于雲原生而擷取到的标準化的能力,在邊緣雲裡面同樣也希望能夠做到标準化。此外,标準化的另一個好處是能夠在邊緣雲的場景裡面可以很好複用以往在雲上建構的能力。

随着邊緣雲規模越來越壯大,除了标準化之外,資源管理也是急需解決的問題,而減少資料傳輸,資料在邊緣端閉環,則是低延遲時間和安全性的考慮。

基于邊緣容器的阿裡雲CDN雲原生實踐

雲邊端--一體化協同

以下作為标準化的一個構想。将标準化的一個雲原生能力向邊緣端複制,需要分為三個層次:

 第一個層次是能夠在雲端提供标準化的接口、管控能力,或者是标準的雲服務和雲資源的接入能力。其中我們能夠看到kubernetes的身影;

 第二個層次是基于CDN的場景和邊緣雲的基礎設施的場景下,能夠高效的管理處在整個邊緣端的衆多資源,其中包括在邊緣端應用的效率問題。一個典型的場景是CDN的場景,計算力豐富;第二個典型場景可以了解是邊緣雲的基礎設施,主要是面向物聯網IoT的場景,如智慧樓宇、智慧工廠等,其顯著的特點是資源和計算力不是特别的豐富,但是分布非常廣,總的體量是比較大的。例如一個智慧小區裡面有兩到三台或者三到五台的邊緣節點伺服器,用來部署其IoT業務(I o T網管或音視訊分析應用等)。

 第三層次是典型的IoT場景中的端裝置,例如智慧樓宇智能停車裝置,環境監測藍牙裝置、人臉識别裝置等。基于以上三層的邏輯劃分和一些雲原生方案,希望能夠在雲邊端打造一體化協同的基礎設施。下圖展示了雲邊端一體化協同的基礎設施。

基于邊緣容器的阿裡雲CDN雲原生實踐

Edge@ACK的能力和架構

阿裡雲容器服務--Edge@ACK

基于邊緣容器的阿裡雲CDN雲原生實踐

阿裡雲容器服務最核心的業務就是給終端使用者提供标準的K8s的托管服務,主要解決了K8s的更新、擴縮容以及日志監控等運維問題,所有運維的事情都交給阿裡雲容器服務進行處理。阿裡雲容器服務核心提供很多垂直領域的K8s的托管服務,比如大資料AI領域,基因領域等托管服務。邊緣容器也是基于容器服務的K8s的托管底座推出的。

基于邊緣容器的阿裡雲CDN雲原生實踐

邊緣容器面向邊緣計算場景,提供了一個具備邊緣能力的K8s的服務,并保留了K8s原生的一緻性體驗。基于K8s強大的插件機制,邊緣容器将很多邊緣應用和邊緣資源的管理能力通過插件化的形式內建到了邊緣K8s裡面,且都是非侵入式的,是以可以提供标準的K8s API供上層領域PaaS內建,也可以把邊緣的托管K8s提供給終端使用者直接使用,還可以很靈活的基于K8s以往的運維經驗開展新的邊緣計算的業務。Managed K8s托管服務已經打通與阿裡雲其它雲服務的連接配接,這些能力也是EdgeK8s天然所具備的。

邊緣K8s核心的價值點主要有兩點:第一是能夠支援諸多類型的邊緣異構計算資源的接入,包括CDN領域的資源,ENS(邊緣節點服務Edge Node Service)資源接入。第二是自有資源的接入,通過雲端标準的K8s管理和運維,邊緣容器提供便捷的接入體驗,執行一條指令即可完成快速接入;

此外,雲上的很多創新業務也會向邊緣端下沉,給邊緣計算賦能。希望通過邊緣的K8s做二、三方雲産品的下沉通道,使邊緣端能夠便捷的使用雲上産品能力。

Edge@ACK的邊緣自制能力

在邊緣場景中,邊緣的worker節點和雲上管控通過公網鍊路互動,而公網通常是不可靠的,這也是邊緣場景的弱網絡連接配接問題;而k8s的設計原則需要管控源源不斷的接收到worker節點上報的心跳,作為資源管理和應用排程的依據;而一旦接收不到邊緣節點的心跳,并且超過最大容忍時間之後,k8s管控就會對節點上的應用做驅逐處理,這個在邊緣場景裡面是不可接受的。是以,邊緣托管在邊緣節點上增加了一個核心元件Edge-Hub

,在斷網的情況下替代雲端的管控,給邊緣節點上所有的agent提供配置資料,保證斷網場景下節點自治;

Edge-Hub能夠保證Worker節點上的Agent正常運作,但是節點自治除此之外還要保證節點上應用的持續運作;例如,在斷網情況下,節點或者應用重新開機需要能夠保證應用元資訊不變,例如保證Pod的IP不變。這些都是邊緣容器在k8s體系下做的邊緣場景适配。

當然,業界也有很多其他邊緣自治方案,包括将整個K8s管控下沉的辦法來解決邊緣端的自治;下圖為Edge@ACK 邊緣自治能力流程圖。

基于邊緣容器的阿裡雲CDN雲原生實踐

阿裡雲容器服務邊緣容器已經正式開始公測,未來還将在邊緣容器領域持續發力,包括:基于OpenKruise實作的邊緣場景的排程政策和業務模型的封裝,以及像函數計算、安全容器等創新業務的落地,等等。

基于邊緣容器的阿裡雲CDN雲原生實踐

Edge@ACK的落地案例--IoT智慧樓宇

雖然邊緣容器的公測時間稍微有些晚,但是在阿裡内部已經實施了一年多的時間。最開始支撐的使用者是公司内部的IoT團隊,主要覆寫一些智慧樓宇、智慧工廠的業務場景,與前面講到的雲邊端分層結構吻合,通過邊緣K8s建構IoT領域的PaaS,其次把邊緣節點接入到邊緣叢集裡面,邊緣節點上部署了IoT智能網關等IoT應用來管理整個智慧樓宇裝置,也很符合前面講到的雲邊端一緻性體驗的分層結構。下圖為阿裡雲容器服務Edge@ACK的整體架構。

基于邊緣容器的阿裡雲CDN雲原生實踐

基于邊緣容器打造阿裡雲CDN邊緣計算的架構體系

基于邊緣容器的阿裡雲CDN雲原生實踐

邊緣容器除了在IoT做了一些嘗試之外,另外一個比較大的場景,就是CDN場景。CDN不僅規模比較大,而且也能錘煉整個邊緣叢集的穩定性和大規模的服務能力。

CDN是内容分發網絡,目前是屬于雲服務的一個基本件。當一個網站配置了CDN以後,當終端使用者通路這個網站的時候,系統可以排程到離使用者最近的邊緣節點。現在CDN除了傳統的圖檔視訊加速以外,已經衍生出視訊處理、AI處理、以及邊緣計算的業務體系。目前,阿裡CDN在全球有超過2500個節點,120T的帶寬儲備。

CDN的重要性不僅僅在于CDN的業務本身,更重要的是CDN的基礎設施屬性,它天生具備分布式邊緣計算平台特點。CDN節點是全球分布的,随着5G的正式商用,目前來看,CDN的規模最大、算力最強,将成為布局邊緣計算最佳的位置。

Apsara Edge Stack技術體系

傳統CDN是以内容分發為主的服務形态,随着5G場景對低延時以及新場景的訴求,就需要CDN轉變成一個更通用的,包含計算、存儲、以及網絡傳輸的通用邊緣計算平台。在這個背景下,阿裡雲已經生産出另一個産品叫ENS,目前該産品已經具備了完整的IaaS能力,使用者可以在ENS上購買一台邊緣的虛機,以及在虛機裡面部署自己的能力。

除了IaaS的工作以外,在資源層級上可以通過容器和ACK來打造PaaS和Serverless的服務能力,整個體系包含底層的IaaS、容器、以及上層的SaaS。下圖展示了Apsara Edge Stack的技術體系。

基于邊緣容器的阿裡雲CDN雲原生實踐

基于Edge@ACK的資源排程

基于邊緣容器的阿裡雲CDN雲原生實踐

從上文提到的邊緣ACK來說,主要是看中容器資源的彈性能力,以及K8s标準化的能力。ACK能夠支撐異構資源的接入,包括CDN的實體機和ENS的虛拟機都可以直接接入到ACK裡面,我們把所有的CDN以及一部分的ENS接入到ACK進行資源的整合。CDN和ENS的節點是全球分布的,政策上主要根據業務類型和區域,在阿裡雲的中心機房建立ACK的Master服務,然後就近把邊緣節點接入到ACK Master中。

目前的規劃是一個ACK接入20~30個邊緣機房,全網會部署100多個ACK叢集,然後在ACK之上,我們會建構PaaS,PaaS的一個主要能力就是多K8S叢集邦聯,同時把容器排程跟CDN的流量排程打通的。

基于Edge@ACK的中台管控

當把資源接到ACK以後,就要開始部署業務,部署業務是管控運維的能力。CDN已經具備了比較完整的釋出運維的體系,針對容器本身的特點需要做一些增強。

除了上述介紹的基于邊緣ACK本身的邊緣自治的能力之外,另外CDN自有的内容分發的管道能力是能夠實作秒級全網節點的資料分發和同步,基于這個能力,目前可以用這個通道下發一些業務的配置,以及針對容器下發一些指令。

另外一個問題是怎樣将鏡像高效的分發到各個節點呢?首先會在每個機房内去部署一個Mirror鏡像倉庫,通知配置CDN本身的加速實作全球鏡像分發。基于資料管控、鏡像通道及管控通道,我們能夠保證業務在CDN的環境上快速的DevOps。下圖為基于Edge Kuberentes的中台管控流程圖。

基于邊緣容器的阿裡雲CDN雲原生實踐

CDN邊緣節點架構更新

将CDN原有的服務與整個雲原生的體系打通,政策上跟中心機房的業務沒有本質的差別,過程是容器化接入到K8s以後,把裡面通用的一些能力API化,通過Servicemesh提供出去。目的是将CDN的資源和能力充分的利用起來,在雲原生的背景之下提供創新服務,這種創新服務包括剛剛公測上線的可程式設計的CDN,所謂可程式設計CDN,是指通過CDN邊緣腳本EdgeScript,可以用簡單易學的文法實作CDN複雜配置,快速建構CDN個性化業務體系并進行靈活的業務疊代。目前,EdgeScript已經支援定制化鑒權、緩存控制、請求頭/響應頭控制、A/BTesting、改寫/重定向和限速等應用場景,這也将是未來重要的發展方向,歡迎大家來申請公測。

同時,也可以在CDN的環境上去部署像函數計算等的Serverless業務、将CDN原有的緩存服務通過API給到函數計算串接起來。下圖展示了CDN邊緣節點的架構更新。

基于邊緣容器的阿裡雲CDN雲原生實踐

基于Edge@ACK的邊緣計算體系

原來阿裡雲CDN已經是一個完整的邊緣生态,其中有供應鍊的管理,以及一些中台的能力。在這個基礎之上,現在通過邊緣容器以及ACK雲原生的能力,打通上下遊,實作能力的串通,支撐邊緣計算業務爆發。下圖為基于Edge@ACK的CDN邊緣計算體系

基于邊緣容器的阿裡雲CDN雲原生實踐

繼續閱讀