您好,登錄后才能下訂單哦!
博云技術社區(ID:bocloudresearch)由博云研究院運營,專注IT進化研究,探索云技術與行業應用的深度融合,為行業數字化轉型帶來完善的解決方案。
導讀
2018年,Service Mesh在國內大熱,有多家公司推出自己的Service Mesh產品和方案。本篇文章結合Service Mesh領域內關注度較高的幾種開源方案,從架構層面出發,進行初步解讀。
服務網格(ServiceMesh)是什么?
Willian Morgan——Bouyant CEO給出的 Service Mesh 定義: 服務網格是一個用于處理服務間通信的基礎設施層,它負責為構建復雜的云原生應用傳遞可靠的網絡請求。在實踐中,服務網格通常實現一組和應用程序部署在一起的輕量級的網絡代理,但對應用程序來說是透明的。 具體來說,Service Mesh 是服務的前置代理層的實現,采用 sidecar 設計模式,用來管理 inbound 和 outbound 流量,并且針對攔截的流量和具體配置,實現路由轉發,策略控制,認證授權,數據監測等功能。將與業務服務緊密結合的外圍支撐組件從服務組件中剝離,形成獨立的基礎設施層,進而讓服務回歸業務本身,不再考慮外圍支撐,實現真正的服務無關性、無侵入式治理。 由于目前社區對 Service Mesh 實現都基于容器之上實現,因此本文中重點介紹 基于Kubernetes 的 Service Mesh 方案,并對其中的優劣勢做出對比說明。目前社區比較活躍的 Service Mesh 實現主要有3個:Linkerd2、Istio、SOFAMesh。 服務網格對比 Linkerd2 Linkerd是基于 Kubernetes 和其他框架的服務網格。它通過為你提供運行時調試,可觀察性,可靠性和安全性,使運行服務更容易,更安全,而無需對代碼進行任何更改。 Istio Istio 有助于降低這些部署的復雜性,并減輕開發團隊的壓力。它是一個完全開源的服務網格,可以透明地分層到現有的分布式應用程序上。它也是一個平臺,包括允許它集成到任何日志記錄平臺、遙測或策略系統的 API。Istio的多樣化功能集使你能夠成功高效地運行分布式微服務架構,并提供保護、連接和監控微服務的統一方法。 SOFAMesh SOFAMesh 是基于 Istio 改進和擴展而來的 Service Mesh 大規模落地實踐方案 。 架構 Linkerd2 Linkerd2 整體上分為數據平面和控制平面兩部分。為了能夠更好的契合Kubernetes 容器環境,基于 Rust 和 Golang 重寫 Linkerd 所有功能組件,主要包括控制器,管理控制臺,數據采集器,數據展示平臺。 控制器(Controller) 控制器部分有多個容器(public-api,tap,destination,proxy-api)組成,這些容器提供了控制平面的大部分功能。 管理控制臺(Web) 提供 Linkerd2 對外呈現的 Dashboard,方便運維人員以可視化的方式實時查看服務運行狀態。 數據采集器(Prometheus) Linkerd2 中 Prometheus 組件和開源 Prometheus 組件區別在于,Linkerd2中 Prometheus 針對 Linkerd2 的特殊實現,Linkerd2 中公開的所有監測指標都通過 Prometheus 進行操作,并且完成數據的持久化存儲。 數據展示平臺(Grafana) Grafana 與 Prometheus 集成,作為 Linkerd2 收集的性能監測數據可視化展示平臺。 Istio 從 SOFAMesh 架構圖可以看出,SOFAMesh 源自 Istio,區別在于 SOFAMesh 在繼承 Istio 強大的功能和豐富特性的基礎上,根據阿里的實踐經驗做了以下增強: 采用 Golang 編寫的 MOSN(Modular Observable Smart Net-stub)取代 Enovy,同時保證完全兼容 Envoy API; 合并 Istio 中 Mixer 組件的 check policy 功能到數據平面,有效解決大規模服務部署情況下,Mixer 一級緩存在進行策略檢查時引發的“笛卡爾積問題”,同時保留 Mixer 中遙測數據上報的功能。 針對客戶的實際使用情況,增強 Pilot 的服務發現能力,在保留原有能力基礎上,增加對 Dubbo,SOFA Registry 的支持,后續將進一步增加對 Zookeeper 支持; 增加數據同步模塊,實現多個服務注冊中心數據同步; 增加 Open ServiceRegistry API,提供標準化的服務注冊功能; 支持更多的協議處理(SOFA RPC、DUBBO RPC 等)。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。