-API 閘道器和服務網格(來源:Liran Katz)
實施 API 閘道器以促進跨境通信;他們控制著南北和東西向的交通。外部或邊緣 API 閘道器將來自客戶端的入站請求路由到適當的服務;內部 API 閘道器促進了各種服務網格範圍之間的通信。服務網格促進特定範圍內的服務到服務通信。
API 閘道器架構可以是整體式的,也可以是分佈式的。
在整體式API 閘道器架構中,通常只有一個 API 閘道器部署在企業網路的邊緣(例如,非軍事區 (DMZ)),並在企業級為 API 提供所有服務。
在分佈式API閘道器架構中,有多個微閘道器實例,部署在更靠近微服務API的地方。微閘道器通常是低的覆蓋區,其可以被用來定義和執行自定義策略,因此適合用於基於微服務的應用程序,必須通過特定的服務的安全策略來保護可腳本API閘道器。
微閘道器通常作為使用 Node.js 等開發平台的獨立容器實現。它不同於服務網格架構的 sidecar 代理,後者是在 API 端點本身實現的。
來源:來源:NIST SP 800-204
服務網格(Service Mesh)
服務網格是一個專用的基礎設施層,它通過服務發現、路由和內部負載平衡、流量配置、加密、身份驗證和授權、指標和監控來促進服務到服務的通信。
服務網格為微服務應用程序中的每個服務創建一個小型代理服務器實例。這種專門的代理汽車有時在服務網格術語中被稱為“ sidecar 代理”。Sidecar 代理形成了數據平面,而執行安全性(訪問控制、通信相關)所需的運行時操作是通過從控制平面向 sidecar 代理注入策略(例如訪問控制策略)來啟用的。這也提供了在不修改微服務代碼的情況下動態更改策略的靈活性。
來源:NIST SP 800-204
API閘道器(API Gateway)
API 閘道器的主要功能是始終將入站請求路由到正確的下游服務,可選擇執行協議轉換 (即 Web 協議之間的轉換,例如 HTTP 和 WebSocket,以及內部使用的 Web 不友好協議,例如作為 AMQP 和 Thrift 二進制 RPC)並且有時組合 requests。在極少數情況下,它們被用作前端后端 (BFF) 的一部分,從而支持具有不同外形因素(例如,瀏覽器、移動設備)的客戶端。
來自客戶端的所有請求首先通過 API 閘道器,然後將請求路由到適當的微服務。API 閘道器通常會通過調用多個微服務並聚合結果來處理請求。
由於API閘道器是微服務的入口點,所以它應該配備必要的基礎服務(除了其主要的請求整形服務),如服務發現、認證和存取控制、負載平衡、緩存、提供自定義API對於每種類型的客戶端,應用感知健康檢查、服務監控、攻擊檢測、攻擊響應、安全日誌記錄和監控以及斷路器。
來源:NIST SP 800-204
參考
. NIST SP 800-204
. 網路層複習
. 服務網格與 API 閘道器:有什麼區別?
. API 閘道器和服務網格的區別
. API 閘道器與服務網格
. API 閘道器和服務網格:打開應用現代化的大門
資料來源: Wentz Wu QOTD-20210823
PS:此文章經過作者同意刊登 並且授權可以翻譯成中文