天天看點

簡述服務網格的優劣勢

Service Mesh是一個專門處理服務通信的基礎設施層。它的職責是在由雲原生應用組成服務的複雜拓撲結構下進行可靠的請求傳送。在實踐中,它是一組和應用服務部署在一起的輕量級的網絡代理,且對應用服務透明,服務網格的出現帶來了很多變化。

1、服務網格的優勢
  • 可觀察性。因為服務網格是一個專用的基礎設施層,所有的服務間通信都需要通過它,是以它在技術堆棧中處于獨特的位置,以便在服務調用級别上提供統一的遙測名額。這意味着,所有服務都被監控為“黑盒”。服務網格捕獲諸如來源、目的地、協定、URL、狀态碼、延遲、持續時間等線路資料。這在本質上等同于Web伺服器日志可以提供的資料,但是服務網格可以為所有服務捕獲這些資料,而不僅僅是單個服務的Web層。需要指出的是,收集資料隻是解決微服務應用程式中可觀察性問題的一部分。存儲與分析這些資料則需要額外功能的機制補充,并作用于警報或執行個體自動伸縮等。
  • 流量控制。服務網格可以為服務提供智能路由(藍綠部署、金絲雀釋出、A/B測試)、逾時重試、熔斷、故障注入、流量鏡像等各種控制功能。以上這些是傳統微服務架構所不具備的功能,但對系統來說是至關重要的功能。這是因為服務網格承載了微服務之間的通信流量,是以可以在服務網格中通過規則進行故障注入,模拟部分微服務出現故障的情況,對整個應用的健壯性進行測試。由于服務網格的設計目的是有效地将來源請求調用連接配接到其最優目标服務執行個體中,是以這些流量控制特性是面向目的地的。這正是服務網格流量控制功能的一大特點。
  • 安全。在某種程度上,單體架構應用受其單位址空間的保護。然而,一旦單體架構應用被分解為多個微服務,網絡就會成為一個重要的入侵面。更多的服務意味着更多的網絡流量,這對黑客來說意味着擁有更多的機會來入侵資訊流。而服務網格恰恰提供了保護網絡調用的功能和基礎設施。服務網格安全的相關好處主要展現在以下3個核心領域:服務的認證、服務間通信的加密,以及安全相關政策的強制執行。
2、服務網格的劣勢
  • 增加了複雜度。服務網格将Sidecar代理和其他元件引入已經很複雜的分布式環境中,會極大地增加整體鍊路和操作運維的複雜性。
  • 運維人員需要更專業。在容器編排工具(如Kubernetes)上添加Istio之類的服務網格,需要運維人員成為這兩種技術的專家,以便充分使用二者的功能,以及定位環境中遇到的問題。
  • 延遲。從鍊路層面來講,服務網格是一種侵入性的、複雜的技術,可以為系統調用增加明顯的延遲。雖然這個延遲是毫秒級别的,但是在特殊業務場景下,這個延遲可能是令人難以容忍的。
  • 平台的适配。服務網格的侵入性迫使開發人員和運維人員适應平台并遵守平台的規則。

繼續閱讀