** 本文同步發表於 FB社群-軟體設計鮮思維 **
Client (用戶端)
- 通常爲使用者界面 (User Interface),例如網頁 (Web Page) 。
- 用戶端可以透過 API Gateway 取得系統提供的服務。
- 除了使用者介面外,也可以是其它裝置,例如 Mobile App,以及來自外部系統的 Request。
Identity Provider (身份辨識提供者)
- 將來自用戶端的請求 (request) 傳遞給身份提供者,身份提供者對客戶端的請求進行身份驗證並將請求傳達給 API Gateway。
- 通過定義良好 (well defined) 的 API Gateway,將請求轉派 (delegate) 至系統內部的微服務。
API Gateway
- 用戶端不直接調用 (invoke) 服務,而是透過 API Gateway (閘道) 擔任進入點 (entry point),將請求轉發至適當的微服務。
- 收到用戶端的請求後,內部架構由微服務組成,微服務通過訊息的相互傳遞,以處理用戶端請求。
使用 API Gateway 的好處
- 對所有的微服務形成良好的封裝 (encapsulation),內部微服務的變動不會影響到用戶端。
- 可以將外部通用的協定 (protocol),轉換為 Intranet 內部所使用特定的通訊協定。
- 可以提供系統橫切 (cross-cut) 的非功能性需求,例如安全性 (security)、負載平衡 (load balance) 等。
Static Content (靜態內容)
將微服務處理後的靜態內容,部署至雲端平台的存儲機制,該機制可以經由內容傳遞網絡 (CDN, Content Delivery Network) 傳回給用戶端,進而可以提供效能、可擴展與較低成本網路傳遞。
Service Discovery (服務檢索)
提供一種目錄服務 (directory service) 的方式,而可以透過多樣化的檢索方式來取得所對應的微服務。
System Management (系統管理)
負責系統節點 (node) 的負載平衡,以及檢測故障 (failures)。