云原生集成開發(fā)環(huán)境——TitanIDE
通過網(wǎng)頁在任何地方更安全、更高效地編碼2022-06-09
827
服務(wù)網(wǎng)格在國內(nèi)開始有熱度不過是近兩年的事,業(yè)界有很多開源的服務(wù)網(wǎng)格框架,例如 Istio、linkerd2、kuma、nginMesh、maesh等,其中,Istio是目前服務(wù)網(wǎng)格領(lǐng)域最流行的開源項目,38% 的企業(yè)在生產(chǎn)中使用服務(wù)網(wǎng)格,其中有接近一半的選擇是Istio。
這篇文章,咱們來聊聊,Istio為何能火?
一、什么是 Istio
下面我們一起來看下 Istio 的架構(gòu):
Istio架構(gòu)圖
從上圖我們可以看出,Istio 服務(wù)網(wǎng)格從邏輯上分為數(shù)據(jù)平面(Data plane)和控制平面(Control plane):
· 數(shù)據(jù)平面(Data plane):直接處理入站和出站數(shù)據(jù)包,提供轉(zhuǎn)發(fā)、路由、健康檢查、負載均衡、熔斷、認證、鑒權(quán)、故障注入、可觀測能力。
· 控制平面(Control plane):提供服務(wù)發(fā)現(xiàn)、配置和證書管理能力。
在構(gòu)建大型分布式系統(tǒng)的時候,將控制面和數(shù)據(jù)面分離開是一種常見的模式。數(shù)據(jù)面會直接和具體的應(yīng)用交互,而控制面的組件會下發(fā)一系列的配置和指令,幫助數(shù)據(jù)面完成具體的工作。
二、Istio 的性能
使用兩臺阿里云 ecs.g6.2xlarge 機器,其中一臺部署壓測工具 Fortio,另外一臺部署Service A和 Service A 的邊車。在使用 fannel 網(wǎng)格插件的情況下,用 30 并發(fā)進行壓測,壓測場景如下圖所示,其中 Service A 接收到請求不做任何邏輯處理直接返回,F(xiàn)ortios 通過邊車調(diào)用 Service A 的平均響應(yīng)時間為 2.505ms。在同樣的并發(fā)下,不部署 Service A 的邊車,通過Fortios 調(diào)用 Service A 的平均響應(yīng)時間為 0.936ms。
無邊車壓測場景
平均延時
QPS
服務(wù)網(wǎng)格帶來的性能損耗包含兩個方面:
1、流量策略、可觀察性和安全通信帶來的損耗,這些損耗是任何微服務(wù)框架均存在的,需要不斷優(yōu)化 Envoy 本身的性能來提升。
2、服務(wù)網(wǎng)格微服務(wù)之間的調(diào)用經(jīng)過邊車后,與傳統(tǒng)服務(wù)框架相比,多了兩次網(wǎng)絡(luò)調(diào)用,這是服務(wù)網(wǎng)格額外帶來的性能損耗。
服務(wù)網(wǎng)格默認采用的是 iptables 流量劫持的方式,流量經(jīng)過邊車 Envoy 時,會經(jīng)過兩次 TCP/IP協(xié)議棧,圖 8 所示,當服務(wù)數(shù)量大的時候會有大量的 iptables 規(guī)則,影響網(wǎng)絡(luò)性能。目前業(yè)界的一個思路是使用 eBPF 這樣的技術(shù)來提高應(yīng)用性能,基于eBPF使微服務(wù)跟邊車直接通過 Socket 通訊,但是該技術(shù)對操作系統(tǒng)內(nèi)核的版本要求比較高,因此很少有企業(yè)能夠達到。
調(diào)用鏈路
樂魚創(chuàng)新對Istio探索和實踐——SolarMesh
1、SolarMesh,是基于 Istio 及容器技術(shù),提供流量監(jiān)控和管理,提供完善的非侵入式服務(wù)治理解決方案。
2、SolarMesh,可以幫助企業(yè)在紛繁復(fù)雜的微服務(wù)調(diào)度中快速定位問題,增強研發(fā)效率。
3、SolarMesh,可以通過流量灰度讓版本更新更加平滑,降低版本升級風險。
5、SolarMesh,支持實時反映真實集群狀態(tài),以流量的角度凸顯業(yè)務(wù)問題,增強運維能力。
6、SolarMesh,支持多集群管理,可對接任意數(shù)量的標準k8s集群,接入成本極低。
SolarMesh架構(gòu)設(shè)計
SolarMesh 對Istio社區(qū)的產(chǎn)品化改進
1、Istio的直連模式,在sidecar故障時提供秒級的直連流量切換;
2、多集群統(tǒng)一納管,為流量運維提供上帝視角;
3、可視化、規(guī)范化Istio操作,告別terminal;
4、反應(yīng)集群真實情況,流量可視化監(jiān)控;
5、為istio核心組件提供監(jiān)控能力;
6、服務(wù)質(zhì)量(SLO)檢測能力;
7、一鍵部署分布式鏈路追蹤組件jaeger;
8、一鍵部署數(shù)據(jù)可視化工具grafana,進一步提升流量監(jiān)控的體驗;
9、……
----------------
體驗SolarMesh,從這里開始>