Dapr PPT 講稿
PPT 大綱
簡單介紹
Mecha:將 Mesh 進行到底
Service Mesh 是一個基礎設施層,用於處理服務間通訊。現代雲原生應用有着複雜的服務拓撲,服務網格負責在這些拓撲中實現請求的可靠傳遞。
在實踐中,服務網格通常實現爲一組輕量級網絡代理,它們與應用程序部署在一起,而對應用程序透明。
何爲 “分佈式能力抽象層”?
如上圖所示,左側是分佈式應用存在的四大類需求:生命週期、網絡、狀態、綁定。從需求上說 Multi-Runtime 要爲分佈式應用提供這四大類需求下所列出的各種具體的分佈式能力。以 Sidecar 模式爲應用提供這些能力容易理解,但關鍵在於 Multi-Runtime 提供這些能力的方式。和 Service Mesh 採用原協議轉發不同,Multi-Runtime 的方式是:
-
將能力抽象爲 API:很多分佈式能力沒有類似 HTTP 這種業界通用的協議,因此 Multi-Runtime 的實現方式是將這些能力抽象爲和通訊協議無關的 API,只用於描述應用對分佈式能力的需求和意圖,儘量避免和某個實現綁定。
-
爲每種能力提供多種實現:Multi-Runtime 中的能力一般都提供有多種實現,包括開源產品和公有云商業產品。
-
開發時:這裏我們引入一個 “面對能力編程” 的概念,類似於編程語言中的 “不要面對實現編程,要面向接口編程”。Multi-Runtime 中提倡面向“能力(Capability)” 編程,即應用開發者面向的應該是已經抽象好的分佈式能力原語,而不是底層提供這些能力的具體實現。
-
運行時:通過配置在運行時選擇具體實現,不影響抽象層 API 的定義,也不影響遵循 “面對能力編程” 原則而開發完成的應用。
Any language, any framework, anywhere
即:可以使用任意編程語言開發,可以和任意框架集成,可以部署在任意平臺。下圖是 Dapr 目前已有的構建塊和他們提供的能力的簡單描述:
標準化
-
完善的多語言支持和應用輕量化的需求推動中間件將更多的能力從應用中分離出來。
-
Sidecar 模式會推廣到更大的領域,越來越多的中間件產品會 開始 Mesh 化,整合到 Runtime。
-
對廠商鎖定的天然厭惡和規避,會加劇對可移植性的追求,從而進一步促使爲下沉到 Runtime 的中分佈式能力提供標準而業界通用的 API。
-
API 的標準化和社區認可,將成爲 Runtime 普及的最大挑戰,但同時也將推動各種中間件產品改進自身實現,實現中間件產品和社區標準 API 之間的磨合與完善。
作爲標準的舉例, Docker 的 moby 與 kubernetes 的 etcd 和 CRI
雲供應商無關的雲事件總線
https://github.com/silverswords/pulse
Google go-cloud 項目
google 有一個 go-cloud 項目 https://github.com/google/go-cloud
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
The Go CDK provides generic APIs for:
-
Unstructured binary (blob) storage
-
Publish/Subscribe (pubsub)
-
Variables that change at runtime (runtimevar)
-
Connecting to MySQL and PostgreSQL databases (mysql, postgres)
-
Server startup and diagnostics: request logging, tracing, and health checking (server)
事件驅動架構
Smart Runtime, Dumb Pipes
Dapr 部分源碼解析
https://www.yuque.com/dapr/dapr/sourcecode-v1
社區現狀
實踐
大部分實踐可以只使用某一些 component.
Microsoft 的實踐
極小改動完成底層消息總線的替換
Ali 實踐
kubecon 的視頻分享
多語言
雲原生分佈式應用運行時 Dapr 在阿里的實踐
雲間遷移
通過 Dapr 的可移植性,上層的釘釘文檔應用現在可以和底層的基礎設施(如消息系統)解耦,從而實現在不同的雲平臺之間平滑遷移:
傳統企業的實踐
如何與 Dapr 集成打造 Apache APISIX 網關控制器
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/cbU7jfetJqOLGYg4hdg1nw