成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CTO問我,為什么需要API網關?

網絡 通信技術 開發工具
最近看到了一篇 API 網關的文章,介紹了其三種角色:API 管理、集群入口控制、API 網關模式,最后還講了與服務網格的關系,通過此文可以更全面的理解 API 網關的作用。

最近看到了一篇 API 網關的文章,介紹了其三種角色:API 管理、集群入口控制、API 網關模式,最后還講了與服務網格的關系,通過此文可以更全面的理解 API 網關的作用。

[[355665]] 

圖片來自 Pexels

這些年來,API 網關正在經歷一些有關他們是否真的起到作用的質疑:

  • 它們是否集中、共享了資源,從而促進了 API 對于外部調用的管理?
  • 它們是否集群入口(ingress)的控制器,從而可以嚴格管理用戶進入或離開集群嗎?
  • 或者它們是否某種 API 的鏈接器,從而讓 API 在指定的客戶端上更方便使用?
  • 當然,房間里的大象和最常見的問題是:“服務網格會使 API 網關過時嗎?

房間里的大象:英語習語,指的是一些雖然顯而易見,但卻由于可能造成尷尬、爭執、觸及敏感或禁忌等原因被人刻意忽視的事情。

一些背景

隨著技術發展日新月異,整個行業通過技術和架構模式的推陳出新進行快速洗牌,如果你說“所有這些都使我頭大”,也可以理解。

在本文中,我希望總結出“API 網關”的不同身份,闡明日常使用中,哪些群體可以使用 API 網關(或許一部人正碰到并在嘗試解決這個問題),并再次強調那些基本原則。

理想情況下,在本文結束時,您將更好地了解 API 基礎架構在不同層級、對不同對象的作用,同時明白如何從每個層級獲得最大價值。

在深入探討之前,讓我們先明確 API 一詞的含義。

我對 API 的定義:一個有著明確定義并且最終目的清晰的接口,通過網絡調用,使軟件開發人員能夠方便安全的對目標數據和功能進行程序訪問。

這些接口抽象了實現它們的技術架構細節。對于這些設計好了的網絡節點,我們希望獲得一定程度的使用指引、以及成熟的向下兼容性。

相反,如果僅僅是可以通過網絡與另一軟件進行交互,并不一定意味著那些遠程節點就是符合此定義的 API。

許多系統相互交互,但是這些交互比較隨意,并且因為系統之間耦合性和其他一些因素的關系,往往在即時性方面會受到影響。

我們創建 API 來為業務的各個部分提供完善的抽象服務,以實現新的業務功能以及偶然發現一兩個創新之舉。

在談論 API 網關時,首先要提到的是 API 管理。

API 管理

許多人從 API 管理的角度考慮 API 網關。這是合理的。但是,讓我們先快速看一下此類網關的功能。

通過 API 管理,我們嘗試去解決“如何控制給其他人使用當前有的 API”的問題。

例如,如何跟蹤誰在使用這些 API、對誰能使用這些 API 進行權限控制、建立一套完善的管理措施進行使用授權和認證,同時創建一個服務目錄,可以在設計時使用,提升對 API 的理解并為以后的有效治理奠定基礎。

我們想解決“我們有一些優秀的 API,并且我們希望別人來使用這些 API,但是希望他們按照我們的規則去使用”的問題。

API 管理當然也起到一些很好的用處,例如,它允許用戶(潛在的 API 使用者)進行自助服務,簽署不同的 API 使用計劃(請考慮:在給定時間范圍內,在指定價格點上,每個端點每個用戶的調用次數)。

有能力完成這些管理功能的基礎架構就是網關(API 流量所經過的)。在網關層,我們可以執行身份驗證,速率限制,指標收集,其它策略執行等一系列操作。

 

API Management Gateway

基于 API 網關的 API 管理軟件示例:

  • Google Cloud Apigee
  • Red Hat 3Scale
  • Mulesoft
  • Kong

在這個層級,我們考慮的是 API(如上定義)是如何最好地管理和允許對其進行訪問。

我們沒有考慮其他角度,例如服務器、主機、端口、容器甚至服務(這是另一個很難定義清楚的詞)。

API 管理(以及它們相應的網關),通常會被嚴格把控,并作為一種“平臺組件”、“一體化組件”和 API 的其他基礎組件一起生效。

需要注意的一件事:我們要小心千萬別讓任何業務邏輯進入這一層。

如前一段所述,API 管理是共享的基礎架構,但是由于我們的 API 流量經過了它,因此它傾向于重新創建“大包大攬的全能型”(認為是企業服務總線)網關,這會導致我們必須與之協調來更改我們的服務。

從理論上講,這聽起來不錯。實際上,這最終可能成為組織的瓶頸。

有關更多信息,請參見這篇文章:具有 ESB,API 管理和 Now…Service Mesh 的應用程序網絡功能?

  1. https://blog.christianposta.com/microservices/application-network-functions-with-esbs-api-management-and-now-service-mesh/ 

集群入口

為了構建和實現 API,我們將重點放在代碼、數據、生產力框架等方面。

但是,要想使這些事情中的任何一個產生價值,就必須對其進行測試,部署到生產中并進行監控。

當我們開始部署到云平臺時,我們開始考慮部署、容器、服務、主機、端口等,并構建可在此環境中運行的應用程序。

我們可能正在設計工作流(CI)和管道(CD),以利用云平臺快速遷移、更改的特點,將其快速展示在客戶面前等等。

在這種環境中,我們可能會構建和維護多個集群來承載我們的應用程序,并且需要某種方式直接來訪問這些集群中的應用程序和服務。

以 Kubernetes 為例思考。我們可能會通過一個 Kubernetes 入口控制器來訪問 Kubernetes 集群(集群中的其它所有內容都無法從外部訪問)。

這樣,我們就可以通過定義明確的規則(例如域/虛擬主機、端口、協議等),嚴格控制哪些內容可以進入(甚至離開)我們的集群。

在這個層級,我們可能希望某種“入口網關”成為允許請求和消息進入集群的流量監控人。

在這個層級,思考更多的是“我的集群中有此服務,我需要集群外的人能夠調用它”。

這可能是服務(公開 API)、現有的整體組件、gRPC 服務,緩存、消息隊列、數據庫等。

有些人選擇將其稱為 API 網關,而且實際上可能會做比控制流量進/出而言更多的事情,但重點是這個層級的問題是屬于集群操作級別的。

 

Cluster Ingress Gateway

這些類型的入口實現的示例包括如下:

Envoy Proxy 及其基礎上的項目包括:

  • Datawire Ambassador
  • Solo.io Gloo
  • Heptio Contour

基于其他反向代理/負載均衡器構建的其它組件:

  • HAProxy
  • OpenShift’s Router
  • Nginx
  • Traefik
  • Kong

此層級的集群入口控制器由平臺組件操作,但是,這部分基礎架構通常與更加分布式、自助服務的工作流相關聯(正如您對云平臺所期望的那樣)。

參見 The “GitOps” workflow as described by the good folks at Weaveworks:

  1. https://www.weave.works/blog/gitops-operations-by-pull-request 

API 網關模式

關于“ API 網關”一詞的另一種擴展是我在聽到該術語時通常想到的,它是與 API 網關模式最相似的。

Chris Richardson 在其“微服務模式”一書第 8 章很好地介紹了這種用法。簡而言之,API 網關模式是針對不同類別的使用者來優化 API 的使用。

這個優化涉及一個 API 間接訪問。您可能會聽到另一個代表 API 網關模式的術語是“前端的后端”,其中“前端”可以是字符終端(UI)、移動客戶端、IoT 客戶端甚至其他服務/應用程序開發人員。

在 API 網關模式中,我們明顯簡化了對一組 API 的調用,以模擬針對特定用戶、客戶端或使用者的“應用程序”內聚 API。

回想一下,當我們使用微服務構建系統時,“應用程序”的概念就消失了。API 網關模式有助于恢復此概念。

這里的關鍵是 API 網關,一旦實現,它將成為客戶端和應用程序的 API,并負責與任何后端 API 和其他應用程序網絡節點(不滿足上述 API 定義的節點)進行通信交互。

與上一節中的入口控制器不同,此 API 網關更接近開發人員的視角,而較少關注哪些端口或服務會公開以供集群外使用。

此“ API 網關”也不同于我們管理現有 API 的 API 管理視角。此 API 網關將對后端的調用聚合在一起。

這可能會公開 API,但也可能會涉及到一些 API 描述較少的東西,例如對舊系統的 RPC 調用,使用不符合“REST”的協議的調用(如通過 HTTP 但不使用JSON),gRPC,SOAP,GraphQL、WebSockets 和消息隊列。

這種類型的網關也可用來進行消息級轉換、復雜的路由、網絡彈性/回退以及響應的聚合。

如果您熟悉 REST API 的 Richardson Maturity 模型,就會發現相比 Level 1–3,實現了 API 網關模式的 API 網關集成了更多的 Level 0 請求(及其之間的所有內容)。

 

這些類型的網關實現仍需要解決速率限制、身份驗證/授權、電路斷路、度量收集、流量路由等問題。

這些類型的網關可以在集群邊緣用作集群入口控制器,也可以在集群內部用作應用程序網關。

 

API Gateway Pattern

此類 API 網關的示例包括:

  • Spring Cloud Gateway
  • Netflix Zuul
  • IBM-Strongloop Loopback/Microgateway

也可以使用更通用的編程或集成語言/框架,例如:

  • Apache Camel
  • Spring Integration
  • Ballerina.io
  • Eclipse Vert.x
  • NodeJS

由于這種類型的 API 網關與應用和服務的開發緊密相關,因此我們希望開發人員能夠參與幫助指定 API 網關公開的 API,了解所涉及的任何聚合邏輯以及能夠快速測試和更改此 API 基礎架構的能力。

我們還希望運維人員或工程師對 API 網關的安全性、彈性和可觀察性配置有一些想法。

這種層級的基礎架構還必須適應不斷發展的、按需的、自主服務開發人員的工作流。可以通過查看 GitOps 模型獲取更多這方面信息。

進入服務網格(Service Mesh)

在云基礎架構上運行服務架構的一部分難點是,如何在網絡中構建正確級別的可觀察性和控制。

在解決此問題的先前迭代中,我們使用了應用程序庫和一些專業的開發人員治理來實現此目的。

但是,在大規模和多種開發語言環境下,服務網格技術的出現提供了更好的解決方案。

服務網格通過透明地實現為平臺及其組成服務帶來以下功能:

  • 服務到服務(即東西向流量)的彈性。
  • 安全性包括最終用戶身份驗證、相互 TLS、服務到服務 RBAC/ABAC。
  • 黑盒服務的可觀察性(專注于網絡通信),例如請求/秒、請求延遲、請求失敗、熔斷事件、分布式跟蹤等。
  • 服務到服務速率限制,配額執行等。

精明的讀者會認識到,API 網關和服務網格在功能上似乎有所重疊。服務網格的目的是通過在 L7 透明地解決所有服務/應用程序的這些問題。

換句話說,服務網格希望融合到服務中(實際上它的代碼并沒有嵌入到服務中)。

另一方面,API 網關位于服務網格之上,和應用程序一起(L8?)。服務網格為服務、主機、端口、協議等(東西向流量)之間的請求流帶來了價值。

它們還可以提供基本的集群入口功能,以將某些此功能引入南北向。但是,這不應與 API 網關可以帶來北/南流量的功能相混淆。(一個在集群的南北向和一個是在一組應用程序的南北向)

服務網格和 API 網關在某些方面在功能上重疊,但是在它們在不同層面互補,分別負責解決不同的問題。

理想的解決方案是將每個組件(API 管理、API 網關、服務網格)合適的安置到您的解決方案中,并根據需要在各組件間建立良好的邊界(或在不需要時排除它們)。

同樣重要的是找到適合的辦法去分布式的處理這些組件,給到相應的開發人員和運營工作流。

即使這些不同組件的術語和標識存在混淆,我們也應該依靠基本原理,并了解這些組件在我們的體系結構中帶來的價值,從而來確定它們如何獨立存在和互補并存。

 

作者:蚊子squirrel 譯

編輯:陶家龍

出處:jianshu.com/p/9fab0982c6bb

原文:https://medium.com/solo-io/api-gateways-are-going-through-an-identity-crisis-d1d833a313d7

 

責任編輯:武曉燕 來源: 簡書
相關推薦

2020-07-07 07:54:01

API網關微服務

2023-12-21 21:39:44

2023-01-11 16:22:07

2023-09-07 10:56:36

2022-01-10 13:06:13

微服務API網關

2020-10-15 09:35:27

亂碼UTF-8GBK

2022-07-07 16:48:10

API應用安全

2011-02-16 09:42:04

DevOps

2025-04-02 08:05:00

數據庫3NF數據冗余

2020-03-26 10:41:02

API網關大公司

2016-11-23 10:56:35

2022-02-17 08:54:44

Service開發Mybatis

2018-12-27 09:10:45

2015-04-16 15:42:21

關系型數據庫NoSQL

2022-06-28 14:54:26

加密貨幣數組貨幣安全

2012-11-15 10:01:49

梁勝CloudStackCitrix

2015-02-26 09:41:50

2024-07-30 08:22:47

API前端網關

2016-02-25 18:10:16

WiFi信號WiFi

2023-09-25 13:01:57

物聯網智能家居
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩国产中文字幕 | 成人福利网 | 99久久免费精品视频 | 久久久久国产一区二区三区四区 | 日韩一区二区福利 | 欧美色综合天天久久综合精品 | 日韩高清一区 | 婷婷综合 | 狠狠综合网 | 亚洲精品欧美一区二区三区 | 97视频在线免费 | 色呦呦在线| xx视频在线观看 | 人人爽日日躁夜夜躁尤物 | 日日夜夜天天久久 | 久久天天躁狠狠躁夜夜躁2014 | 国产精品欧美一区二区 | 亚洲黄色av | av特级毛片 | 日韩欧美网 | 欧美一区二区三区在线免费观看 | 国产日韩电影 | 欧美久久久久久 | 亚洲一区二区三区在线视频 | 97在线播放 | 午夜欧美一区二区三区在线播放 | 在线观看成人av | 在线观看www高清视频 | 日本爱爱| 午夜电影日韩 | 青青激情网| 亚洲高清视频在线观看 | 亚洲午夜一区二区 | 免费观看的av毛片的网站 | 在线观看亚洲专区 | 成人午夜电影在线观看 | 日韩精品一区二区三区中文字幕 | 精品久久久久久久久久久久久久 | 久久成人午夜 | 天堂成人av | 成人免费共享视频 |