天天看點

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

作者 | OpenYurt 社群

雲計算的出現促使物聯網實作爆炸式增長。在裝置規模和業務複雜度不斷攀升的趨勢之下,邊緣計算因其能夠将計算能力更靠近網絡邊緣和裝置,進而帶來雲性能成本的降低,也在這波浪潮之下得到快速發展。

誠然,物聯網邊緣計算尚處發展初期,有許多挑戰需要被解決。比如在大量軟體及通信協定極為複雜的裝置異構環境下,需要具備快速處理業務資料,并對異常情況作出快速響應的能力;另外,在大多數情況下,出于安全或其他考慮,邊緣節點在實體上無法從雲節點直接通路,使部署變得困難,也無法實作雲到邊緣的管理。這些問題都使業務的連續性、穩定性和可用性遭受威脅。

現在,企業和開發者通過開源社群就能夠找到應對以上問題的解決方案。近日,OpenYurt 與開源項目 eKuiper 正式達成合作,完成了內建對接:從 v0.4.0 版本開始,OpenYurt 将正式支援部署和管理 eKuiper ,雙方将共同幫助開發者輕松、高效地解決物聯網邊緣計算場景下流式資料處理和運維挑戰。

eKuiper:輕量級 IoT 資料分析和流處理開源軟體

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

物聯網邊緣計算很多場景下需要流式資料處理能力。所謂流資料是指一組順序、大量、快速、連續到達的資料序列。一般情況下,流資料可被視為一個随時間延續而無限增長的動态資料集合,它可以幫助使用者實時了解系統裝置的狀态,并對異常情況做出快速響應。

在邊緣端,計算資源(CPU,記憶體等)不像在雲端一般豐富,是以傳統的流式資料處理架構類似于 Apache Spark 或者 Apache Flink 等,由于其安裝包過大,或者部署結構與過程過于複雜、運作時的高消耗等原因,并不适合于在這些資源受限的邊緣裝置(工控機、網關,或者配置不高的 X86 或者 ARM 伺服器等裝置)上運作。而 eKuiper 就是為了解決在物聯網邊緣裝置上的這些問題而設計開發。

eKuiper 的前身是由開源物聯網資料基礎設施軟體供應商 EMQ 于 2019 年正式開源的 Kuiper 項目。2021 年 6 月,Kuiper 項目加入 LF Edge 基金會并更名為 eKuiper,開始作為獨立的項目營運。eKuiper 的本質是一個輕量級物聯網資料分析和流處理軟體,可以運作在各類資源受限的邊緣裝置上,希望使邊緣端的流式資料處理擁有如 Spark 與 Flink 的能力。

如下圖所示,eKuiper 整體架構大緻分為三部分:

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  
  • 左側為 Sources,代表資料來源的位置,資料來源可能是 OpenYurt 裡部署邊緣端的 MQTT Broker,也可能是消息隊列、檔案和資料庫等;
  • 右側為 Sinks,代表資料處理完成後所要存儲的位置,也就是目标系統,目标可以是 MQTT,可以将其存到檔案、資料庫裡面,也可以調用 HTTP 服務;
  • 中間部分為 eKuiper 的運作時,最上層為資料業務邏輯處理,這個層面提供了 SQL 與規則解析器,SQL 處理器進行處理後并将其轉化成 SQL 執行計劃;下面層為流運作時和 SQL 運作時, 運作最終執行出來的執行計劃;最底層為存儲,存儲在運作過程中需要持久化的一些資訊。

在 eKuiper 中,使用者可通過

管理儀表闆

來管理一個或多個 eKuiper 執行個體。通常,這些儀表闆部署在雲節點中,用于管理跨多個邊緣節點的 eKuiper 執行個體。正如前文所述,由于大多數情況下邊緣節點在實體上無法從雲節點通路, 使得部署變得困難,無法進行高效的 eKuiper 雲邊管理。

OpenYurt

則改變了這種情況。

OpenYurt:非侵入式的邊緣雲原生智能平台

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  
OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

雲原生技術已經無處不在,并被應用于“新的應用負載” ,“新的計算形态”和“新的實體邊界”。作為雲原生的技術基石,容器和 Kubernetes 正在通過越來越多的計算形态承載,豐富的形态也開始從傳統的中心雲走向邊緣計算、走向終端。

通常來說,邊緣場景下計算規模龐大、業務複雜,采取原生 Kubernetes 的 workload 管理模型遠不能滿足現實中雲原生邊緣計算的落地需求;并且雲邊網絡通過公網相連,網絡連接配接有很大不可控因素,可能帶來邊緣業務運作的不穩定因素,而且由于邊緣節點一般位于使用者網絡的防火牆内部,會造成雲邊網絡隻能單向連通的客觀條件,給原生的 Kubernetes 運維監控帶來很大挑戰;最後,無可避免地要面對邊緣資源種類的多樣、異構,使邊緣标準化支援面臨困難。

OpenYurt 基于原生 Kubernetes 建構,是業界首個對 Kubernetes 無侵入的邊緣計算雲原生開源平台。OpenYurt 是阿裡雲容器服務産品 ACK@Edge 的核心架構,由阿裡雲于 2020 年 5 月以開源的方式反哺業界,并通過捐贈給 CNCF,實作更加中立、開放的社群環境,成為生态相容場景下邊緣雲原生平台首選項目。

如下圖所示,OpenYurt 的架構設計非常簡潔,是一個典型的“中心-邊緣”模式。在雲端(K8s Master)上通過增加 Yurt Controller Manager, Yurt App Manager 以及 Tunnel Server 元件。而在邊緣端(K8s Worker)上增加了 YurtHub 和 Tunnel Agent 元件:

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

這樣的架構設計給邊緣場景下的原生 Kubernetes 能力獲得以下增強:

  • 邊緣單元化:通過 Yurt App Manager 元件,從單元化的視角,管理分散在不同地域的邊緣資源,并對各地域單元内的業務提供獨立的生命周期管理、更新、擴縮容、流量閉環等能力;且業務無需進行任何适配或改造
  • 邊緣自治: 因為每個邊緣節點增加了具備緩存能力的透明代理 YurtHub,進而可以保障雲邊網絡斷開,如果節點或者業務重新開機時,可以利用本地緩存資料恢複業務
  • 雲邊協同(運維監控):通過 Tunnel Server/Tunnel Agent 的配合,為位于防火牆内部的邊緣節點提供安全的雲邊雙向認證的加密通道,即使邊到雲網絡單向連通的邊緣計算場景下,使用者仍可運作原生 kubernetes 運維指令(如 kubectl proxy/logs/exec/port-forward/attach 等)。同時中心式的運維監控系統(如 prometheus, metrics-server 等)也可以通過雲邊通道擷取到邊緣的監控資料
  • 雲原生生态相容:所有功能均是通過 Add-on 或者 controller 形式來增強 Kubernetes,是以保證對 Kubernetes 以及雲原生社群生态的 100% 相容;另外,OpenYurt 還提供了一個 YurtCtl 工具,可以用于原生 Kubernetes 和 OpenYurt 叢集的一鍵式轉換

簡而言之,OpenYurt 使使用者能夠管理在邊緣基礎設施中運作的應用程式,就像它們在雲基礎設施中運作一樣。

使用 OpenYurt 部署和管理 eKuiper

從 v0.4.0 版本開始,OpenYurt 項目正式支援部署 eKuiper 及其儀表闆,使用者可以利用 yurt- tunnel雲邊隧道,通過 eKuiper 的 Web 管理控制台實作對 eKuiper 執行個體進行配置管理,實作高效、輕量的 IoT 邊緣流處理能力。

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

eKuiper 和 eKuiper Dashboard 元件采用原生 Helm Chart 直接部署,其中eKuiper 元件整個運作在邊緣端,而 ekuiper Dashboard 運作在雲端(管控端)。同時 OpenYurt 的 Yurt-Tunnel 元件通過 dns 和 iptables dnat 等機制,會自動攔截雲邊網絡通信。是以 eKuiper 元件可以在對雲邊隧道無感覺狀态下完成雲端對邊緣端的指令下發。

基于以上方式,使用者可以直接在 OpenYurt 平台上通過儀表闆,在邊緣場景下輕松管理 eKuiper,并且在浏覽器中通過儀表闆來及時檢視服務是否健康:

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  
OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

社群合作規劃

未來,雙方還将面向 IoT 行業繼續探索高效的雲原生邊緣中間件解決方案,并吸引更多輕量級 IoT 相關中間件加入 OpenYurt 生态,使邊緣中間件真正以雲原生的方式獲得部署支援。此外,作為 eKuiper 的貢獻者,EMQ 也将繼阿裡雲、VMWare、Intel 後,正式成為由 OpenYurt 發起的雲原生 IoT SIG 企業成員。

希望更多開發者支援并加入 OpenYurt 和 eKuiper 社群,共建面向雲原生 IoT 開源生态。

釘釘掃描二維碼,加入 OpenYurt 開源社群:

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

微信掃描二維碼,加入 eKuiper 開源社群:

OpenYurt 聯手 eKuiper,解決 IoT 場景下邊緣流資料處理難題eKuiper:輕量級 IoT 資料分析和流處理開源軟體OpenYurt:非侵入式的邊緣雲原生智能平台使用 OpenYurt 部署和管理 eKuiper社群合作規劃擴充閱讀  

擴充閱讀  

如果您想了解 LF Edge eKuiper 與 CNCF OpenYurt 的更多特性,請閱讀下面的參考資料:

繼續閱讀