如何評價微軟的微服務構建框架Dapr?
時間:2022-09-01 11:00:01 | 來源:網站運營
時間:2022-09-01 11:00:01 來源:網站運營
最近 dapr 1.0 正式release,已經達到了生產就緒所需的穩(wěn)定性和企業(yè)準備。
在這個時間節(jié)點再來看待Dapr的價值和未來。
Dapr 是一個可移植的,事件驅動的運行時,可以使任何開發(fā)人員都可以輕松構建在云和邊緣上運行并包含多種語言和開發(fā)人員框架的彈性,無狀態(tài)和有狀態(tài)的應用程序。
Dapr 本身是一種 Sidecar 模式(雖然Dapr也提供了SDK,但是個人認為這并不是Dapr以后的發(fā)展方向)。Sidecar 模式的意義在于, 解耦了基礎設施和核心業(yè)務。
我曾經回答過關于Service Mesh的的一個問題。以Istio為首的Service Mesh 解決方案也是一種Sidecar 模式,只不過Service Mesh 側重于網絡。而Dapr側重于業(yè)務邏輯。
大家可以自行閱讀,加深對Sidecar 模式的理解。
簡單來看,Dapr的意義在于:
- 對于小公司,甚至沒有基礎架構和中間件團隊的公司,Dapr 提供了開箱即用的基礎設施功能,可以讓小公司輕松構建彈性,分布式應用。
- 對于中等單位,具備一定的基礎架構能力,在使用Dapr的過程中,可能Dapr并不能完全滿足需求,那么也可以在Dapr框架體系下,花費較小的成本進行自定義擴展。
- 對于大公司,Dapr 提供了一種思路。相信基礎架構團隊會越來越傾向于通過交付Sidecar的形式來提供基礎設施。
長遠來看,Dapr背后的架構模式是符合未來架構趨勢(多運行時架構)和云原生發(fā)展趨勢的。
通過該圖,我們可以清晰看到Dapr的重要性。其中Envoy部分正是代表了Service Mesh。
此外,雖然Dapr支持vm部署,但是kubernetes無疑是最佳的宿主。
Dapr 和 Service Mesh 存在一些交叉的部分。
所以個人覺得,Dapr 和 Service Mesh 解決方案結合,是接下來一個非常重要的方向。
于2021年3月5日補:
最近有人給Envoy社區(qū)提交了一個proposal -- 繼Lua和Wasm之后,增加Golang作為Envoy 第三種L7 network 擴展方式。
Golang 擴展相比lua,擁有更豐富的生態(tài)和各種SDK,相比Wasm,有著更低的內存拷貝和更好的性能。
如果這個proposal一旦被接受,那么這意味著,Dapr的 Golang SDK 可以作為Envoy的filter,完美解決Envoy(Service Mesh)和 Dapr的結合。
大致如下: