转载

Service Mesh

最近很常看到這個詞: Service Mesh ,源自於 Buoyant - CEO Willian Morgan 在 APRIL 25, 2017 發表的文章: What’s a service mesh? And why do I need one?

Mesh 可以翻譯為:網、網狀物

Service Mesh 中文翻譯成 服務網格 ,可以這樣解釋:

  • 一種基礎架構 (infrastructure layer) 的服務,負責處理的是 Service 跟 Service 之間通訊的安全、可靠、速度。
  • 現代網路的基礎協議是 TCP/IP,Microservice 的通訊就是 Service Mesh

Microservice 雖然聽起來很美好、很流行、很夯、很潮,實踐上都會用語言重新造輪子,像是認證、Discover、可靠機制 … 等,像是 Java 的 Spring Cloud 。但微服務實際上只是一種方法、手段,技術是要解決問題,滿足商業目標。

技術上來講,跟這些類似:

  • API Gateway
  • Reverse Proxy
  • Enterprise Service Bus (ESB)

但實際上,概念卻是不一樣的。

寫 Web App ,實際上只要知道 HTTP,卻不需要知道 TCP 概念是一樣的。

演進過程,出現過 Sidecar 這樣的名稱,負責類似的事情。

最後出現了 Service Mesh

目前比較有名的實作有:

  • Linkerd : 來自 Buoyant, written Scala (JVM), 已加入 CNCF
  • Istio : 來自 Goolgle、IBM、Lyft 共同協作 (富爸爸)。支援 k8s
  • Envoy : 來自 Lyft, written by C++, 已加入 CNCF
  • nginmesh : Nginx 的實作

小節 Service Mesh:

  • Service Mesh 是通用組件
  • 解決 Microservice 之間通訊的問題,包含 Discover, Security, Reliability, Traffic Control
  • Service Mesh 跟 API Gateway 是不一樣的。前者是內部服務溝通,後者是外部溝通節點。詳細參考: Service Mesh vs API Gateway
    • 兩者個功能面有些重疊,都有 observability, logging, traffic control, auth … 等功能
原文  http://rickhw.github.io/2018/02/06/Terms/Service-Mesh/
正文到此结束
Loading...