Service Mesh簡介

什麼是Service Mesh

Service Mesh被譯作服務網格,實質是一種網絡代理服務。網絡代理代理就是中介,可以對請求進行攔截修改,最簡單的例子就是電信運營商在流量中插入廣告。

Service Mesh 可以看做是傳統代理的升級版,用來解決現在微服務框架中出現的問題(網絡相關),可以把 Service Mesh 看做是分佈式的微服務代理。

傳統意義的代理的主體更強調底層網絡數據,而Service Mesh 等強調程序級別的api級別的通用功能,和業務邏輯有一定關心,是以應用(服務)為具體核心服務對象的。是把和網絡api基本配置相關的通用功能獨立出來。

Service Mesh 是把和網絡相關、但不依賴於具體流程、可以獨立抽象出來的功能抽出一層,並提供一個公共的數據和控制面板,方便用戶使用。

Service Mesh 為獨立的異構微服務體系提供統一的網絡相關標準服務,方便服務管理,並且提高開發效率,同時增加其可維護性。Service Mesh 可以為遺留的老項目套上一層殼,可以在不改變代碼的情況下為其添加提安全,容錯等高級服務,減輕維護負擔。

Service Mesh 是整個網絡層管理,不是隻針對服務api ,還包括數據庫redis等等,是全面的網絡層控制。

Service Mesh 功能

四個層面

  1. 連接(Connect):智能控制服務之間的調用流量,能夠實現灰度升級、AB 測試和紅黑部署等功能
  2. 安全加固(Secure):自動為服務之間的調用提供認證、授權和加密。
  3. 控制(Control):應用用戶定義的 policy,保證資源在消費者中公平分配。
  4. 觀察(Observe):查看服務運行期間的各種數據,比如日誌、監控和 tracing,瞭解服務的運行情況。

具體功能

服務註冊與發現

服務的伸縮控制

反向代理與負載均衡

路由控制

流量切換

日誌管理

性能度量、監控與調優

分佈式跟蹤

過載保護

服務降級

服務部署與版本升級策略支持

錯誤處理

解決方案 istio

https://github.com/istio/istio

istio 是對envoy的封裝,通過k8s資源文件來描述和使用,使用更方便,提供了一個控制面板,對k8s 和envoy提供了適配接口,增加了數據監控接口(普羅米修斯)。


分享到:


相關文章: