ServiceMesh(2)
上一篇介紹了
《ServiceMesh究竟解決什麼問題?》,當微服務架構體系越來越複雜的時候,需要将“業務服務”和“基礎設施”解耦,将一個微服務程序一分為二:

一個程序實作業務邏輯,biz,即上圖白色方塊
一個程序實作底層技術體系,proxy,即上圖藍色方塊,負載均衡、監控告警、服務發現與治理、調用鍊…等諸多基礎設施,都放到這一層實作
如此解耦之後:
- biz不管是調用服務,還是提供服務,都隻與本地的proxy進行本地通信
- 所有跨網的通信,都通過proxy之間進行
要聊ServiceMesh,就不得不提Istio,它是ServiceMesh目前最流行的實踐,今天說說Istio是幹啥的。
畫外音:不能落伍。
什麼是Istio?
Istio是ServiceMesh的産品化落地,它的一些關鍵性描述是:
- 幫助微服務之間建立連接配接,幫助研發團隊更好的管理與監控微服務,并使得系統架構更加安全
畫外音:Istio helps you to connect, secure, control, and observe microservices.
- 幫助微服務分層解耦,解耦後的proxy層能夠更加專注于提供基礎架構能力,例如:
(1)服務發現(discovery);
(2)負載均衡(load balancing);
(3)故障恢複(failure recovery);
(4)服務度量(metrics);
(5)服務監控(monitoring);
(6)A/B測試(A/B testing);
(7)灰階釋出(canary rollouts);
(8)限流限速(rate limiting);
(9)通路控制(access control);
(10)身份認證(end-to-end authentication);
畫外音:佩服,硬是湊齊了十條,其實SM還能提供更多基礎服務功能。
- 使得業務工程團隊與基礎架構團隊都更加高效的工作,各自專注于自己的工作,更好的彼此賦能
畫外音:說的還是解耦。
Istio官網是怎麼吹噓自己的?
畫外音:這個問題的另一個問法是“為什麼大家要來用Istio”。
Istio非常牛逼,如果要實施ServiceMesh,必須用Istio,因為:
- 可以通過,在現有伺服器新增部署邊車代理(sidecar proxy),應用程式不用改代碼,或者隻需要改很少的代碼,就能實作上述N項基礎功能
畫外音:你信了麼?
- 可以通過,控制背景,簡單改改配置,點點按鈕,就能管理和檢視上述N項基礎功能
- 以下特性,Istio在這個環節裡進行了附加說明:
(1)負載均衡支援多協定,HTTP, gRPC, WebSocket, TCP;
(2)通過路由、重試、故障轉移對流量進行細粒度流控;
(3)通過可插拔政策層以及可配置API,能夠支援流量通路控制、限速、配額管理;
(4)自動度量、日志收集、調用跟蹤;
(5)服務到服務的身份認證;
Istio的核心特性是什麼?
Istio強調了它提供的五項關鍵特性:
- 流控(traffic management)
畫外音:斷路器(circuit breakers)、逾時、重試、高可用、多路由規則、AB測試、灰階釋出、按照百分比配置設定流量等。
- 安全(security)
畫外音:加密、身份認證、服務到服務的權限控制、K8S裡容器到容器的權限控制等。
- 可觀察(observability)
畫外音:追蹤、監控、資料收集,通過控制背景全面了解上行下行流量,服務鍊路情況,服務運作情況,系統性能情況,國内微服務架構體系,這一塊做得比較缺乏。
- 平台無關系(platform support)
畫外音:K8s,實體機,自己的虛機都沒問題。
- 內建與定制(integration and customization)
畫外音:可定制化擴充功能。
Istio的吹噓與特性,對于國外很多通過RESTful提供内網服務的公司,很有吸引力,但相對于國内微服務架構,未必達到了很好的拉攏效果:
(1)國内基本都是TCP的RPC架構,多協定支援未必是必須的;
(2)RPC架構裡,路由、重試、故障轉移、負載均衡、高可用都是最基礎的;
(3)流控、限速、配額管理,是服務治理的内容,在微服務架構初期是錦上添花;
(4)自動度量,系統入口出口資料收集,調用跟蹤,可觀察和可操控的背景确實是最吸引人的;
(5)服務到服務的身份認證,微服務基本是内網通路,在架構初期也隻是錦上添花;
另外一個花邊,為什麼代理會叫sidecar proxy?
看了上圖就容易懂了,biz和proxy相生相伴,就像機車(motor)與旁邊的車廂(sidecar)。未來,sidecar和proxy就指微服務程序解耦成兩個程序之後,提供基礎能力的那個代理程序。
Istio這麼牛逼,它的核心架構如何呢?
且聽下回分解。
本文轉自“架構師之路”公衆号,58沈劍提供。