阿里雲 CDN 業務基於邊緣容器的雲原生轉型實踐

本文基於邊緣容器的阿里雲 CDN 雲原生實踐, 涵蓋了邊緣容器的背景和趨勢,邊緣託管集羣 ACK Managed Edge K8s(文中簡稱「Edge@ACK」) 的能力、架構,以及基於邊緣容器構建阿里雲 CDN 的雲原生體系的詳細過程,指望與讀者分享使用阿里雲容器服務打造雲邊端一體基礎設施過程當中的體會。編程

文章整理自 2019 年阿里雲上海峯會,阿里雲智能高級技術專家黃玉奇、阿里雲智能技術專家吳龍輝演講。「阿里巴巴雲原生」公衆號後臺回覆「724",可 得到雲原生專場所有 PPT。緩存

視頻直播回放
瞭解 ACK 容器服務安全

邊緣容器的介紹

隨着互聯網智能終端設備數量的急劇增長,以及 5G 和物聯網時代的到來,傳統雲計算中心集中存儲、計算的模式已經沒法知足終端設備對於時效、容量、算力的需求。將雲計算的能力下沉到邊緣側、設備側,並經過中心進行統一交付、運維、管控,將是雲計算的重要發展趨勢。服務器

IDC 預計,到 2020 年全球將有超過 500 億的終端與設備聯網,超過 40% 的數據要在網絡邊緣側進行分析、處理與存儲,這對邊緣計算提供了充分的場景和想象空間。邊緣計算按功能角色主要分爲三個部分:網絡

  •  – 傳統雲計算的中心節點,有豐富的雲計算產品形態和資源,是邊緣計算的管控端,負責全網算力和數據的統一管理、調度、存儲;
  •  – 雲計算的邊緣側,又分爲基礎設施邊緣 (Infrastructure Edge) 和設備邊緣 (Device Edge)。基礎設施邊緣一般位於 IDC 內,擁有充足的算力和存儲容量,和中心有專線或骨幹網鏈接,如 CDN 節點等;設備邊緣一般指非傳統 IT 基礎設施的邊緣節點,這類資源更靠近設備和數據源,比較常見的通常是數據網關;
  •  – 終端設備,如手機、智能家電、各種傳感器、攝像頭等。

邊緣雲計算--「雲邊端一體」

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

  • 雲邊端協同:缺乏統一的交付、運維、管控標準;
  • 安全:邊緣服務和邊緣數據的安全風險控制難度較高;
  • 網絡:邊緣網絡的可靠性和帶寬限制;
  • 異構資源:對不一樣硬件架構、硬件規格、通訊協議的支持,以及基於異構資源、網絡、規模等差別化提供標準統一的服務能力的挑戰。

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

邊緣雲要素--標準化

邊緣雲的五個要素分別爲低延時、邊緣自治、資源管理、安全性及標準化。其中最關鍵的要素爲標準化,由於在雲原生時代,標準化是雲原生要解決的核心問題。less

標準化可讓用戶在基於不一樣的雲資源形態以及不一樣的雲提供商上開展其業務,這正是基於雲原生而獲取到的標準化的能力,在邊緣雲裏面一樣也但願可以作到標準化。此外,標準化的另外一個好處是可以在邊緣雲的場景裏面能夠很好複用以往在雲上構建的能力。運維

隨着邊緣雲規模愈來愈壯大,除了標準化以外,資源管理也是急需解決的問題,而減小數據傳輸,數據在邊緣端閉環,則是低時延和安全性的考慮。分佈式

雲邊端--一體化協同

「雲邊端一體化協同」做爲標準化的一個構想,將標準化的一個雲原生能力向邊緣端複製,須要分爲三個層次:

  • 第一個層次是可以在雲端提供標準化的接口、管控能力,或者是標準的雲服務和雲資源的接入能力。其中咱們可以看到 Kubernetes 的身影;
  • 第二個層次是基於 CDN 的場景和邊緣雲的基礎設施的場景下,可以高效的管理處在整個邊緣端的衆多資源,其中包括在邊緣端應用的效率問題。
  1. 一個典型的場景是 CDN 的場景,計算力豐富;
  2. 第二個典型場景能夠理解是邊緣雲的基礎設施,主要是面向物聯網 IoT 的場景,如智慧樓宇、智慧工廠等,其顯著的特色是資源和計算力不是特別的豐富,可是分佈很是廣,總的體量是比較大的。

例如一個智慧小區裏面有兩到三臺或者三到五臺的邊緣節點服務器,用來部署其 IoT 業務(IoT 網管或音視頻分析應用等)。

  • 第三層次是典型的 IoT 場景中的端設備,例如智慧樓宇智能停車設備,環境監測藍牙設備、人臉識別設備等。

基於以上三層的邏輯劃分和一些雲原生方案,但願可以在雲邊端打造一體化協同的基礎設施。下圖展現了雲邊端一體化協同的基礎設施。

Edge@ACK 的能力和架構

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

阿里雲容器服務最核心的業務就是給終端用戶提供標準的 K8s 的託管服務,主要解決了 K8s 的升級、擴縮容以及日誌監控等運維問題,全部運維的事情都交給阿里雲容器服務進行處理。

阿里雲容器服務核心提供不少垂直領域的 K8s 的託管服務,好比大數據 AI 領域,基因領域等託管服務。邊緣容器也是基於容器服務的 K8s 的託管底座推出的。

邊緣容器面向邊緣計算場景,提供了一個具有邊緣能力的 K8s 的服務,並保留了 K8s 原生的一致性體驗。

基於 K8s 強大的插件機制,邊緣容器將不少邊緣應用和邊緣資源的管理能力經過插件化的形式集成到了邊緣 K8s 裏面,且都是非侵入式的,因此能夠提供標準的 K8s API 供上層領域 PaaS 集成,也能夠把邊緣的託管 K8s 提供給終端用戶直接使用,還能夠很靈活的基於 K8s 以往的運維經驗開展新的邊緣計算的業務。

Managed K8s 託管服務已經打通與阿里雲其它雲服務的鏈接,這些能力也是 EdgeK8s 自然所具有的。

邊緣 K8s 核心的價值點主要有兩點:

  • 第一是可以支持諸多類型的邊緣異構計算資源的接入,包括 CDN 領域的資源,ENS(邊緣節點服務 Edge Node Service)資源接入;
  • 第二是自有資源的接入,經過雲端標準的 K8s 管理和運維,邊緣容器提供便捷的接入體驗,執行一條命令便可完成快速接入。

此外,雲上的不少創新業務也會向邊緣端下沉,給邊緣計算賦能。但願經過邊緣的 K8s 作2、三方雲產品的下沉通道,使邊緣端可以便捷的使用雲上產品能力。

Edge@ACK 的邊緣自治能力

在邊緣場景中,邊緣的 worker 節點和雲上管控經過公網鏈路交互,而公網一般是不可靠的,這也是邊緣場景的弱網絡鏈接問題;而 K8s 的設計原則須要管控接收到 worker 節點源源不斷上報的心跳,做爲資源管理和應用調度的依據。

一旦接收不到邊緣節點的心跳,而且超過最大容忍時間以後,K8s 管控就會對節點上的應用作驅逐處理,這個在邊緣場景裏面是不可接受的。

所以,邊緣託管在邊緣節點上增長了一個核心組件 Edge-Hub,在斷網的狀況下替代雲端的管控,給邊緣節點上全部的 agent 提供配置數據,保證斷網場景下節點自治。Edge-Hub 可以保證 Worker 節點上的 Agent 正常運行,可是節點自治除此以外還要保證節點上應用的持續運行。例如,在斷網狀況下,節點或者應用重啓須要可以保證應用元信息不變,例如保證 Pod 的 IP 不變。這些都是邊緣容器在 K8s 體系下作的邊緣場景適配。

固然,業界也有不少其餘邊緣自治方案,包括將整個 K8s 管控下沉的辦法來解決邊緣端的自治;下圖爲 Edge@ACK  邊緣自治能力流程圖。

阿里雲容器服務邊緣容器已經正式開始公測,將來還將在邊緣容器領域持續發力,包括:基於 OpenKruise 實現的邊緣場景的調度策略和業務模型的封裝,以及像函數計算、安全容器等創新業務的落地等等。

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

雖然邊緣容器的公測時間稍微有些晚,可是在阿里內部已經實施了一年多的時間。

最開始支撐的用戶是公司內部的 IoT 團隊,主要覆蓋一些智慧樓宇、智慧工廠的業務場景,與前面講到的雲邊端分層結構吻合,經過邊緣 K8s 構建 IoT 領域的 PaaS;其次把邊緣節點接入到邊緣集羣裏面,邊緣節點上部署了 IoT 智能網關等 IoT 應用來管理整個智慧樓宇設備,也很符合前面講到的雲邊端一致性體驗的分層結構。

下圖爲阿里雲容器服務 Edge@ACK 的總體框架。

基於邊緣容器打造阿里雲 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 的技術體系。

基於 Edge@ACK 的資源調度

從上文提到的邊緣 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 原有的服務與整個雲原生的體系打通,策略上跟中心機房的業務沒有本質的區別,過程是容器化接入到 K8s 之後,把裏面通用的一些能力 API 化,經過 Servicemesh 提供出去。

目的是將 CDN 的資源和能力充分的利用起來,在雲原生的背景之下提供創新服務,這種創新服務包括剛剛公測上線的可編程的 CDN,所謂可編程 CDN,是指經過 CDN 邊緣腳本 EdgeScript,能夠用簡單易學的語法實現 CDN 複雜配置,快速構建 CDN 個性化業務體系並進行敏捷的業務迭代。目前,EdgeScript 已經支持定製化鑑權、緩存控制、請求頭/響應頭控制、A/BTesting、改寫/重定向和限速等應用場景,這也將是將來重要的發展方向,歡迎你們來申請公測。

同時,也能夠在 CDN 的環境上去部署像函數計算等的 Serverless 業務、將 CDN 原有的緩存服務經過 API 給到函數計算串接起來。下圖展現了 CDN 邊緣節點的架構升級。

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

原來阿里雲 CDN 已是一個完整的邊緣生態,其中有供應鏈的管理,以及一些中臺的能力。在這個基礎之上,如今經過邊緣容器以及 ACK 雲原生的能力,打通上下游,實現能力的串通,支撐邊緣計算業務爆發。下圖爲基於Edge@ACK 的 CDN 邊緣計算體系。

原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索