OpenYurt 如何 “0 侵入” 攻破云边融合难点
作者 | 何淋波
來源|阿里巴巴云原生公眾號
隨著 5G、IoT、直播、CDN 等行業和業務的發展,越來越多的算力和業務開始下沉到距離數據源或者終端用戶更近的位置,以期獲得很好的響應時間和成本,這是一種明顯區別于傳統中心模式的計算方式——邊緣計算。
然而,在邊緣計算的規模、復雜度正逐日攀升的同時,短缺的運維手段和運維能力也終于開始不堪重負。在這個背景下,“云、邊、端一體化運維協同”已經開始成為一種架構共識。通過云原生加持,云邊融合的進程也正在被急劇加速。在這樣的趨勢下,引入云原生理念、全面轉型邊緣應用的運維管理模式成為亟需解決的問題。
本文整理自作者阿里云容器服務技術專家,OpenYurt 作者 & 初創人員之一何淋波(新勝)于 1 月 26 日在阿里云開發者社區“周二開源日”的直播分享,將站在實際落地場景的角度,探索云原生技術和邊緣計算的融合挑戰,詳細介紹基于 OpenYurt 的云原生邊緣計算平臺架構和行業實踐。
點擊回看完整視頻:https://developer.aliyun.com/live/246066
什么是邊緣計算(Edge Computing)
邊緣計算是相對傳統集中通用計算而言,指將工作負載部署在邊緣的一種計算方式。最近幾年,邊緣計算非常火熱,主要是因為 5G、IoT 等業務和場景發展越來越快,包括智能終端設備越來越多,造成對邊緣計算業務的下沉訴求越來越多。如果所有的處理全部放在中心,很難滿足大規模邊緣智能設備的增長。邊緣計算目前在各行各業都開始大規模使用,例如汽車、運輸、能源等。總結來說,邊緣計算就是讓計算離用戶或者離數據源更近。
1. 邊緣計算頂層架構
業界定義的邊緣計算的分層結構,主要引用 Gartner、IDC。
Gartner 定義的分層結構如下圖所示:Endpoint > Near edge > Far edge > Cloud > Enterprise。
-
Near Edge :非標準服務器或設備,在距離端側最近的地方。
-
Far Edge :標準的 IDC,可以分三種類型:IDC(為主)、MEC、CDN 等;相對來說,計算能力比較強,比如運營商的機房、云服務提供商的級聯機房等等。
-
Cloud :公共云或專有元服務,特征為資源集中、中心化管理。
IDC 定義的分層結構如下圖所示:
-
Heavy Edge:數據中心維度;集中式計算平臺;CDN,自建 IDC。
-
Light Edge:低功耗計算平臺,適用于工業控制,數據處理、傳輸等物聯網場景。
由上圖可以看出,Gartner 定義與 IDC 定義其實是相互依存,相互關聯的。另外,邊緣計算與云計算不是替代關系,而是相互補充、相互關聯的關系。
2.?邊緣計算行業趨勢
邊緣計算行業趨勢可以從以下三個方面(維度)來講:第一是行業的業務,第二是行業的架構,第三是行業的規模與變化。
趨勢一:AI 、IoT 與邊緣計算的融合
近幾年來,邊緣計算和 AI、IoT 的結合非常多,邊緣智能設備的數量增加之后,包括所有的數據或視頻全部回傳到云端去處理,整個成本與效率都非常不合適,所以直接靠近設備這一側進行 AI 處理或 IoT 處理的需求越來越多。比如 AI,會在云上或在中心云做訓練,然后在邊緣做推理,有非常多這種形式。調查顯示:
-
到?2024? 年,有 50%? 的計算機視覺和語音識別模型將在邊緣運行。
-
到 2023 年,近 20% 用于處理 AI 工作負載的服務器部署在邊緣側。
-
到 2023 年,中國 70 % 的物聯網項目將包含 AI 功能,追求實時性、降低帶寬、數據合規。
-
到 2023 年,中國 75 % 的企業將在網絡邊緣對物聯網數據進行處理。
趨勢二:云延伸,IT 去中心化,設施自治,邊緣托管
邊緣計算跟云計算是相互補充、相互依賴的關系。再延伸一步說,邊緣計算其實是云計算往邊緣的一個延伸,把云上的一些能力往邊緣上延伸。一是要求 IT業務在邊緣這一側去中心化,另外因為邊緣業務或設施是自治的,云和邊之間網絡斷開的情況下,有一定控制能力,再有邊緣托管能力。未來架構趨勢將向云延伸、IT 中心化、設施自治、邊緣托管的發展路線演進:
-
混合云 - 到 2023 年, 10%?的企業負載將運行位于本地數據中心和邊緣資源上。
-
去中心化 - 到 2023 年,超過 30% 新基礎架構將部署在邊緣位置。
-
設施自治 - 到 2024 年,50% 核心企業數據中心和 75% 主要邊緣 IT 站點將改變運維方式。
-
邊緣托管 - 到 2022 年,50% 的公司將依靠托管服務來提高基于邊緣人工智能的性能和投資回報率。
趨勢三:5G 與邊緣計算引爆新增長
最近幾年,5G 的快速發展,對邊緣計算是一個新的增長引爆點。預計到 2024 年,邊緣應用程序的數量將增長 800% ,可以想象這個行業后面會是什么樣的增長情況。典型應用場景將包括車聯網(自動駕駛/車路協同)、智能電網(設備巡檢/精準負荷控制)、工業生產控制、智慧醫療(遠程B超/遠程會診)等。
3. 邊緣計算現狀
邊緣云促使管理的復雜性迅速上升
隨著邊緣計算的形態、規模、復雜度的日益增長,邊緣計算領域的運維手段、運維能力越來越難以滿足邊緣業務的創新速度;而“未來企業都在全力追求超規模、超高速、超連接”,又進一步加劇運維管理的復雜度。邊緣云促使管理的復雜性迅速上升,主要來自以下四個方面:
-
第一,互聯網智能終端設備數量的急劇增加;數據、業務下沉的訴求增多。
-
第二,邊緣計算規模和業務復雜度提升,邊緣智能、邊緣實時計算、邊緣分析等新型業務不斷涌現。傳統云計算中心集中存儲、計算的模式已經無法滿足邊緣設備對于時效、容量、算力的需求。
-
第三,云邊端協同難度大,缺少統一的交付、運維、管控標準,且邊緣服務和邊緣數據的安全風險控制難度較高。
-
第四,異構資源支持困難,對不同硬件架構、硬件規格、通信協議的支持,以及基于異構資源、網絡、規模等差異化提供標準統一的服務能力的挑戰。
云邊一體的邊緣云原生
1. 什么是云原生?
云原生的定義:云原?是一套開放、標準的技術體系。基于云原生技術體系,可以為用戶敏捷的構建和運行高彈性、容錯性好、易于管理的一套業務系統。整個技術體系有很多熱門技術,如 Cloud Native、Serverless、Kubernetes、Container、Docker 等等,業界廣泛使用的這些技術。
現在各大云廠商、云服務提供商都在大力投入云原生,云原生也越來越成為廣大用戶使用云計算能力的入口。云原生技術體系能夠幫助企業最大化利?云的能?,最大化發揮云的價值。
2. 豐富的云原生產品家族
以阿里云為例,云原生產品家族主要分三塊,如下圖所示:
-
第一塊是新的應用負載,包括:數據&智能、分布式應用、DevOps,現在都是通過云原生承載業務。
-
第二塊包括:Serverless、容器編排,是一個新的業務系統。
-
第三塊包括:公共云、專有云、邊緣云是一個新的資源承載系統。
3. 云邊一體云原生基礎設施
云邊一體云原生基礎設施,是在云端做管控、邊緣自治的云原生系統。如下圖所示:
在中心這一側,可以提供原生的云中心的管控能力和產品化能力,例如利用 Kubernetes+存儲/+AI/+大數據等能力可以在中心提供出來;中心的這些能力通過管控通道,下沉到邊緣計算,比如標準化的 CDN、 Infrastructure 、Edge、ENS,或者是上圖右邊的智慧工廠、智慧園區、樓宇、機場等等的設備網關;在邊緣,可以就近接入各種設備,比如傳感器、視頻、控制器等等,可以支持各種通訊設備接入。這樣便形成了云邊端一體化的云原生基礎設施。
云計算擅長需要海量可擴展存儲能力,非實時且周期相對較長的數據處理和分析,而邊緣計算脫胎于云計算,它擅長的是局部短周期數據的實時處理和分析,云計算與邊緣計算之間不是替代關系,而是互相協同的關系,二者之間緊密結合才能更好地滿足各種需求場景的匹配。
4. 云邊一體價值
云原生的概念最早是在 2013 年被提出,經過這幾年的發展,尤其是從 2015 年 Google 牽頭成立 CNCF 以來,云原生技術開始進入公眾的視線并逐漸演變成包括 DevOps、持續交付、微服務、容器、基礎設施,Serverless,FaaS 等一系列的技術,實踐和方法論集合。云原生加速了多云、云邊融合,云邊一體的價值是:
-
一是可以為用戶在任何基礎設施上提供和云上一致的功能和體驗,實現云邊端一體化的應用。
-
二是可以利用容器的隔離性,利用系統的流量控制、網絡策略等能力,保證運行在邊緣上業務的安全性。
-
三是通過容器化,通過容器和資源之間的解耦,對異構資源的支持上能夠有很好的適配。
5. 云原生與邊緣計算融合難點
隨著邊緣計算的形態、規模、復雜度的日益增長,邊緣計算領域的運維手段、運維能力越來越難以滿足邊緣業務的創新速度;而未來企業都在全力追求“超規模、超高速、超連接”,又進一步加劇運維管理的復雜度。
云原生與邊緣計算融合要解決什么問題?在實際的解決問題的過程中,總結出以下 4 個關鍵點:
第一點:邊緣計算規模和業務復雜,邊緣資源的分散在不同地域,各個區域內部的邊緣應用的生命周期管理,升級,擴縮容,區域內部流量閉環都面臨挑戰。
舉個例子,比如 CDN 場景,全國各地可能有成百上千個機房,每個機房的資源或者機器可能都不一樣,機器上面運行的業務承載的流量可能也不太一樣。這時如果是用原生 Kubernetes 的 workload 來管理是非常不足的,會形成非常大的挑戰,容易出錯,整個運維效率非常低。
第二點:云邊網絡連接不可靠。通常情況下,云和邊之間會通過公網連接,在一些客觀因素的影響下,云邊之間的網絡可能出現斷聯,對邊緣業務的持續運行形成很大挑戰。因為網絡斷開的情況下,節點會脫離云端管控,在原生K8s下會對該Pod進行驅逐。但實際情況下無論是業務重啟還是機器重啟,都需要保證邊緣業務可以持續運行。因此邊緣需要一定的自治能力。
第三點:云邊端運維協同難度大,由于邊緣的機器是部署用戶防火墻內部的,公網無法主動連接。因此,一些需要從中心拉取數據的K8s原生運維能力就無法使用,造少缺少統一的交付、運維、管控標準,且邊緣服務和邊緣數據的安全風險控制難度較高。
第四點:異構資源支持困難,對不同硬件架構、硬件規格、通信協議的支持,以及基于異構資源、網絡、規模等差異化提供標準統一力的挑戰。
OpenYurt 邊緣計算云原生平臺
CNCF 邊緣云項目 OpenYurt:延伸原生 Kubernetes 到邊緣計算的智能開放平臺。
1. 邊緣自治、中心(云)管控
OpenYurt 架構是非常簡潔的云邊的一體化的架構,如上圖所示,云上有藍色和橙色兩部分,藍色部分是原生 K8s 的一些組件,然后橙色部分是 OpenYurt 的組件;邊緣的每個節點上,Edge Note 上每個節點上也有藍色的部分和橙色的部分,藍色部分也是原生的 K8s 的組件,或者設置的一些云原生的一些組件,橙色部分是 OpenYurt 的組件。
大家能看到 OpenYurt 對 K8s 或者對云原生的這種原生的架構是 0 修改、非侵入式的,OpenYurt 項目是業界首個非侵入式增強 K8s 的一個邊緣計算云原生平臺。其他的邊緣計算云原生項目,或多或少可能都對 K8s 做了一定的修改或者裁剪,這也是 OpenYurt 最大的區別,因此也就保證了 OpenYurt 的標準化。
-
OpenYurt 可以緊跟 Kubernetes 版本升級節奏。
-
非侵入式的理念,OpenYurt 與云原生主流技術,如 ServeiceMesh、Serverless 等,可以同步衍進。
OpenYurt 在 2020 年 9 月份進入 CNCF sandbox,是一個非常中立的項目,一是技術、架構上的中立,二是這個項目運營上的中立。
OpenYurt 的品質和穩定性也是有保障的,在阿里集團內部,使用非常廣泛,已經管理數百萬核的規模。
2. OpenYurt 如何解決原生與邊緣計算融合難點
-
第一,邊緣單元化。大規模業務下,因為邊緣單元分比較分散,因此通過邊緣單元化,對單元內業務進行一個單元化的管理以及流量閉環的管理。
-
第二,邊緣自治能力。為了應對云邊網絡不可靠,通過給邊緣增加一個自治的能力,云邊網絡斷開的情況下,也可以保證的業務可以持續運行。
-
第三,無縫轉換。主要是為了降低 OpenYurt 的使用門檻,通過提供一個無縫轉換的能力,使 K8s 與 OpenYurt 集群之間可以一鍵式切換,一條命令可以把一個標準的 K8s 集群轉換成 OpenYurt 集群,反向切換也可以,這也是業界首創的能力。
-
第四:是解決云端訪問主動訪問邊緣的問題,提供了云邊協同的能力來解決運維的難題。
下面,針對每一個能力具體介紹。
1)單元化能力
提供邊緣場景下應用模型能力,主要包括以下三點:
-
NodePool 可以對節點做單元化批量管理。
-
流量管理支持原生 service 的流量拓撲管理。
-
UnitedDeployment 提供原生 APPs 模型單元化部署。
單元化主要是提供邊緣場景下應用模型的能力,在資源這塊提節點池,可以對每一個地域的一個節點,進行一個池化的管理,如上圖邊緣單元一,假如是北京的一個機房,這些節點都可以放到北京池里面,可以對這些節點進行一個批量化的標簽等功能統一的管理,這樣就相同的一批機器整體特性管理操作起來就非常方便。UnitedDeployment 這個資源是基于節點池,以節點池為單元,對節點池的業務進行部署管理。
根據上圖舉例,單元一部署兩個實例,單元二部署三個實例,把配置提交給 OpenYurt 集群之后,就可以自動把部署信息下發到邊緣,然后可以啟動相對應的實例數,這就解決了單元管理的時每個單元獨立去操作的問題,通過一個統一的視角,UnitedDeployment 可以管理各個單元。
2)邊緣自治能力
為邊緣業務持續運行護航,具體包括以下兩點:
-
YurtHub 緩存云端的數據,云邊斷網時,所有系統組件均從 YurtHub 獲取數據。
-
Yurt-Controller-Manager 解決云邊網絡連接不穩定時造成的邊緣業務驅逐問題。
邊緣自治能力為邊緣業務持續運行護航,在云邊網絡斷聯的情況下,也可以保證邊緣業務持續運行。主要涉及到兩個組件,一個是 YurtHub,一個是 Yurt-Controller-Manager。
YurtHub 是部署在邊緣節點上,每個節點上以容器化的形式部署的一個組件, 通過上圖,了解處理流程,從請求 Kubelet、KubeProxy、Flannel 這種原生組件,之前都是直接連的云端 APIServer,現在調整為先連 YurtHub 再把請求轉發給 APIServer。
這樣的優點就是當請求過來之后,云邊網絡沒有斷開的情況下,有一個 health check 模塊,會檢測云邊網絡的連通性,如果云邊網絡正常,請求就直接到負載均衡模塊,然后選擇一個云端服務器轉發過去,結果返回,一個是可以返回一個請求端,另外一個結果數據緩存在本地磁盤,持續化在本地磁盤。
如果云邊網絡斷開了,節點要重啟,網絡斷開的情況下,它可以通過 local proxy 把本地緩實際化的數據提取出來,返回一個請求方,從而恢復邊緣的業務,保證邊緣業務的一個持續運行。
3)無縫轉換能力
無縫轉換能力是用 yurtctlconvert 組件完成。主要用于標準 K8s 和 OpenYurt 集群之間的一鍵式轉換;目前支持 minikube,kubeadm,ack 等工具部署的集群。
當轉換的情況下,因為集群里面有很多節點,每個節點要轉成邊緣節點,就往邊緣上部一些 yurthub static pod 組件,kubelet 參數修改等。如下圖所示:
通過阿里另外一個云原生開源項目 OpenKruise 的 broadcastJob,可以保證在每個節點上運行 pod 這樣一個 job,來完成每個節點到節點的轉換。目前我們 Yurtctl 工具,在 minikube,kubeadm,ACK 等工具部署的集群上,進行了比較完整的驗證,后續會支持更多類型的集群,也歡迎更多感興趣的同學在社區做貢獻。
4)云邊協同能力
如下圖所示:
在云端部署 YurttunnelServer 組件,邊緣每個節點會部署一個 Yurttunnel Agent,Yurttunnel Agent 啟動時由里面的 ANP Proxy Agent 模塊,通過公網云端與 ANP Proxy server 模塊建立雙向認證的加密通道。這個通道是 gRPC 協議來做的。
通道建立之后,云端訪問節點的時候,Yurttunnel Server 里面的 iptable manager 會把節點訪問的請求流量導入到 Yurttunnel Server 上,request Interceptor 攔截器模塊會把請求攔截過來,要轉化成 gRPC 通信協議格式,然后把這個請求轉發給邊緣端的 TunnelAgent,TunnelAgent 再把請求轉發給 Kubelet 或者 pod。這樣的話,就打通了云邊運維協同能力。使原生的 Kubernetes 運維操作能力,都可以無感知地運行在 OpenYurt 集群或云邊場景上。另外云邊運維通道基于 gRPC?種協議,通過壓縮 Tunnel 帶寬可以大大降低成本,相比原生 TCP 通信最大減少 40% 流量。
OpenYurt 案例介紹
案例一:邊緣 AI
第一個案例是邊緣 AI 場景,這個是盒馬鮮生的新零售線下業務。
盒馬鮮生基于阿里云容器服務 ACK@Edge 產品為底座,進行了云原生的轉型升級,構建了一個“人貨場”數字化全鏈路的云、邊、端一體化協同的天眼 AI 系統。首先在云上有一個云端的控制面,然后在邊緣離門店比較近的區域,購買了 ENS 節點服務,這樣就不用自己為門店構建機房,然后通過云邊一體系統把門禁控制系統或者建模系統,部署到邊緣的 ENS 服務上,之后跟門店里面的監控視頻流推送,然后業務承載之后進行分析,得到結果,在控制業務系統這邊,把計算的結果返回到云端做分析。
基公云于云+邊緣的形式,低成本的實現了云端天眼系統、阿里云邊緣匯聚節點 ENS、盒馬門店物理場的業務架構,具備強大的彈性能力、混合資源管理能力、以及云原生的運維能力。實現新門店開服效率提升 70%,和 50% 以上的資源成本節省;共享算力。如下圖所示:
案例二:視頻上云
視頻上云案例,現在全國各地用的特別多,如圖所示:
從下往上看,比如在高速上,輕量型網關或標準型網關,會有一些視頻拍攝流,把這些視頻拍好之后,傳到離邊緣比較近的 ENS 或 CDN 服務器上,做視頻監控,比如一些省級、市縣級的機房里面處理,做視頻管理、匯聚轉發等處理之后,把最后結果再上傳到中心云上的云控平臺。然后在云控平臺可以做很多處理,比如可以跟高德地圖來做一些事件的發布,或信息通知等等,形成云邊端一體化的服務管理平臺。
通過云邊端一體化的服務管理平臺包括:應用部署/配置、設備/應用狀態、結構化數據上云的實現,使整個運維效率、管控效率都大大提升。
以上就是本次關于 OpenYurt 的分享,如果大家對 OpenYurt 感興趣,歡迎掃碼加入我們的社區交流群,以及訪問 OpenYurt 官網和 GitHub 項目地址:
-
OpenYurt 官網:
https://openyurt.io -
GitHub 項目地址:
https://github.com/openyurtio/openyurt -
釘釘掃碼加入社區交流群:
“Kubernetes 與云原生應用開源實踐大講堂”
4 場云原生與 Kubernetes 技術前沿話題直播、70 節經典課程、3 本云原生電子書,來“Kubernetes 與云原生應用開源實踐大講堂”,和阿里云容器技術專家一起,將熱門的容器開源項目和前沿的云原生應用落地實踐一網打盡!點擊直達“Kubernetes 與云原生應用開源實踐大講堂”!
總結
以上是生活随笔為你收集整理的OpenYurt 如何 “0 侵入” 攻破云边融合难点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为了让你在“口袋奇兵”聊遍全球,Serv
- 下一篇: 应云而生,幽灵的威胁 - 云原生应用交付