易燃物匯聚 YouTube 有聲書與書評
深入理解邊緣計算:雲、邊、端工作原理與源碼分析 封面

深入理解邊緣計算:雲、邊、端工作原理與源碼分析

崔廣章

565人在讀
14.6萬字總字數
¥53.4定價

內容簡介

這是一本從環境搭建、部署配置、系統架構、工作原理、源碼分析、二次開發等維度系統講解如何打造協同的雲、邊、端系統的著作。全書一共9章,邏輯上分爲三大部分:第1部分 邊緣計算基礎(第1~2章)首先介紹了邊緣計算和邊緣計算系統的概念、組成、架構,以及邊緣計算系統的部署與管理;然後分別以Kubernetes、KubeEdge、EdgeX Foundry爲例講解了雲、邊、端的部署與配置。既給出了邊緣計算系統部署所需的自動化腳本,又分析了應用在雲數據中心部署和以雲、邊、端協同的方式部署的利弊。第二部分 工作原理(第3~6章)首先從整體上對邊緣計算系統的邏輯架構進行了介紹,然後從部署、配置、架構等角度對分別雲、邊、端的核心組件的工作原理進行了深入解析。第三部分 源碼分析(第7~9章)雲、邊、端的開源框架衆多,雲部分選擇Kubernetes、邊部分選擇KubeEdge、端部分選擇EdgeX Foundry,首先詳細介紹了這3種開發框架的開發環境搭建和源碼的整體架構,然後對他們的核心組件的源碼進行了深入分析,同時也對這3個框架的二次開發進行了講解。

讀者書評

★★★★★

2024.No23: 24年第6本技術書。因參加23年11月份軟考高級系統架構師考試,有個論文題是關於邊緣協同計算,於是翻閱此書。 因爲不是從事物聯網等相關行業,只能停留在快速翻閱的層次。值得肯定的是,本書對雲Kubernetes、邊KubeEdge、端EdgeX Foundry三個部分都有比較詳細的介紹、架構圖分析、及go語言源碼解讀。 如果有關於應用層面的講解會更好。技術類書籍應該有個Hello World。

★★★★★

這本書最大的特點是直接給出了實現雲邊端協同計算的一個實例,雲使用K8S,邊使用KubeEdge,端使用EdgeX Foundry,而不是僅停留在邊緣計算的概念和應用場景分析上。並且將“雲邊端協同”這個日常泛化的詞細化爲雲邊協同,邊端協同,雲邊端協同的不同模式,然後對K8S,KubeEdge,EdgeX Foundry分別進行了一些源碼分析。

★☆☆☆☆

可以當成一本瞭解邊緣計算的書籍,但是原理篇真談不上深入,源碼篇就更不盡人意了。堆一堆源碼,簡單介紹下,沒有一個全局的識圖,讀起來體驗不好。

★★★★★

這是一本從環境搭建、部署配置、系統架構、工作原理、源碼分析、二次開發等維度系統講解如何打造協同的雲、邊、端系統的著作。

★★★★★

生啃了十來天終於看完了! 總體而言,重於框架,輕於細節。前面的架構部分特別清晰,但到代碼而言就顯得稍粗了點。不過對於我剛剛入門邊緣計算的人來說,也是相當不錯了。 K8S組件: Kube-apiserver 外部接口 Kube-controller-manager 監聽狀態,維護狀態 kube-scheduler 資源(pod)調度 Kubelet 創建啓停pod Kube-proxy 服務通信,負載均衡 Kubeedge: 1.總體實現方法 Cobra :go語言用於創建命令行程序的庫 Beehive:go-channel消息傳遞實現併發單元通信的架構 組件使用cobra,模塊使用beehive 1)各個組件基於cobra實現爲命令行調用,向cobra註冊name,run函數等。 2)組件將各個模塊register到beehive中,放到一個map[string]Module的全局變量中。 功能模塊需要實現Module接口。 3)組件獲取Module的map,遍歷map依次啓動模塊,遍歷map依次關閉模塊。 功能模塊啓動時,傳入context作爲啓動參數,模塊依靠context可以通信 3)Module配置文件讀取使用了beehive的config包中的CONFIG進行讀取。 config.CONFIG是一全局變量,在init中初始化,加載文件。 init在包加載時被自動調用——Go中init函數會自動調用 4)啓動時傳入的beehiveContext.Context保存到模塊的context字段中。 beehiveContext.Context是一個基於go-channel的消息框架beehive。 基於context創建消息隊列,並傳入空的上下文ctx,從而利用ctx管理消息隊列 2.edgecore模塊 1.Edged啓動dockershim的grpc服務器,調用grpc,將具體操作傳遞給容器運行時。 2.DeviceTwin結構體由Context和DTcontroller組成,DTcontroller由DTcontext和DTModule組成,DTcontext實現模塊通信緩存,DTModule包含DTworker接口。 DeviceTwin啓動函數初始化並啓動DTcontroller,DTcontroller啓動時將數據庫加載到內存,啓動DeviceTwin中的所有module接口。 3.Edgehub結構體由Context和Controller組成,Controller爲Edgehub主要功能載體。 EdgeHub的初始化只是對Controller的初始化,Controller初始化時傳入edgeHubConfig 指針,直到啓動時,edgeHubConfig纔會真正初始化。EdgeHub啓動函數主要啓動Controller。 Controller啓動函數InitEdgehubConfig(),InitEdgehubConfig中執行getControllerConfig(),在getControllerConfig()中真正初始化edgeHubConfig。這裏是對配置的初始化。 Controller啓動函數還初始化了controller對象,獲取並初始化cloudhub的客戶端,向其他模塊廣播連接成功。啓動接收cloud信息轉發到edge模塊、發送edge信息到cloud和向cloud發送心跳的協程。 4.Eventbus註冊時讀取配置獲取mqtt的mode參數,生成eventbus實例並註冊;啓動時先接受存儲模塊通信管道,然後根據mode參數啓動mqtt代理,最後將cloud指令下發到evenbus上的設備。 5.MataManager 是edged和edgehub的橋樑,將必要數據緩存到數據庫中。 MataManager註冊時初始化到sqlite中;啓動時初始化配置,協程同步心跳,循環處理接受信息。 6.Edgemesh是edgecore中節點級別的通信模塊,節點內、節點間流量代理,節點內dns解析。啓動時,初始化代理,啓動服務,循環處理MataManager發送來的消息。

★★★☆☆

對於邊緣計算架構講解來說是一個比較不錯的介紹,只是最後的源碼部分有些不盡如人意

★★★☆☆

太過於泛泛而談了,基本就是各個技術的簡介水平

★★★☆☆

組成邊緣計算系統的雲、邊、端三部分的相關概念如下。 雲:涉及的概念包括Container、Pod、ReplicaSet、Service、Deployment、DaemonSet、Job、Volume、ConfigMap、NameSpace、Ingress等。 邊:目前邊緣系統的實現方式是通過對雲原有的組件進行裁剪並下沉到邊緣,所以邊涉及的概念是雲的子集,而且與雲保持一致。 端:部署在邊上的一套微服務,目前沒有引入新的概念。

★☆☆☆☆

kubeedge已經發展了多個版本了,本書使用的kubeedge版本較老還在v1.8,其中第1章基本概念和4、5、6原理基本分析還可以參考,其餘部分大多數內容參考價值不大。

書籍信息

作者崔廣章
出版社機械工業出版社
出版時間2021-06-01
ISBN9787111684220
分類科學技術-工業技術
格式EPUB
完結狀態連載中
章節數66