Istio到底是幹嗎的?

ServiceMesh(2)
上一篇介紹了《 ServiceMesh究竟解決什麼問題?》,當微服務架構體系愈來愈複雜的時候,須要將「業務服務」和「基礎設施」解耦,將一個微服務進程一分爲二:

  • 一個進程實現業務邏輯,biz,即上圖白色方塊安全

  • 一個進程實現底層技術體系,proxy,即上圖藍色方塊,負載均衡、監控告警、服務發現與治理、調用鏈…等諸多基礎設施,都放到這一層實現服務器

如此解耦以後:架構

  • biz無論是調用服務,仍是提供服務,都只與本地的proxy進行本地通訊app

  • 全部跨網的通訊,都經過proxy之間進行負載均衡

要聊ServiceMesh,就不得不提Istio,它是ServiceMesh目前最流行的實踐,今天說說Istio是幹啥的。
框架

畫外音:不能落伍。

什麼是Istio?ide

Istio是ServiceMesh的產品化落地,它的一些關鍵性描述是:微服務

  • 幫助微服務之間創建鏈接,幫助研發團隊更好的管理與監控微服務,並使得系統架構更加安全post

畫外音:
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這麼牛逼,它的核心架構如何呢?

且聽下回分解。

畫外音:實在太晚了,今天要睡覺了。

                                                  

相關文章
相關標籤/搜索