日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 架構(gòu)師社區(qū)
[導(dǎo)讀]最近看到一篇翻譯一篇API網(wǎng)關(guān)的文章,介紹了其三種角色:API管理、集群入口控制、API網(wǎng)關(guān)模式,最后還講了與服務(wù)網(wǎng)格的關(guān)系,通過此文可以更全面的理解API網(wǎng)關(guān)的作用。

來源 | https://urlify.cn/ZfyyIv

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

原文 API Gateways are going through an identity crisis

(地址如下:https://medium.com/solo-io/api-gateways-are-going-through-an-identity-crisis-d1d833a313d7)

這些年來,API網(wǎng)關(guān)正在經(jīng)歷一些有關(guān)他們是否真的起到作用的質(zhì)疑。

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

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

一些背景

隨著技術(shù)發(fā)展日新月異,整個(gè)行業(yè)通過技術(shù)和架構(gòu)模式的推陳出新進(jìn)行快速洗牌,如果你說“所有這些都使我頭大”,也可以理解。在本文中,我希望總結(jié)出“ API網(wǎng)關(guān)”的不同身份,闡明日常使用中,哪些群體可以使用API網(wǎng)關(guān)(或許一部人正碰到并在嘗試解決這個(gè)問題),并再次強(qiáng)調(diào)那些基本原則。理想情況下,在本文結(jié)束時(shí),您將更好地了解API基礎(chǔ)架構(gòu)在不同層級(jí)、對不同對象的作用,同時(shí)明白如何從每個(gè)層級(jí)獲得最大價(jià)值。

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

我對API的定義:

一個(gè)有著明確定義并且最終目的清晰的接口,通過網(wǎng)絡(luò)調(diào)用,使軟件開發(fā)人員能夠方便安全的對目標(biāo)數(shù)據(jù)和功能進(jìn)行程序訪問。

這些接口抽象了實(shí)現(xiàn)它們的技術(shù)架構(gòu)細(xì)節(jié)。對于這些設(shè)計(jì)好了的網(wǎng)絡(luò)節(jié)點(diǎn),我們希望獲得一定程度的使用指引、以及成熟的向下兼容性。

相反,如果僅僅是可以通過網(wǎng)絡(luò)與另一軟件進(jìn)行交互,并不一定意味著那些遠(yuǎn)程節(jié)點(diǎn)就是符合此定義的API。許多系統(tǒng)相互交互,但是這些交互比較隨意,并且因?yàn)橄到y(tǒng)之間耦合性和其他一些因素的關(guān)系,往往在即時(shí)性方面會(huì)受到影響。

我們創(chuàng)建API來為業(yè)務(wù)的各個(gè)部分提供完善的抽象服務(wù),以實(shí)現(xiàn)新的業(yè)務(wù)功能以及偶然發(fā)現(xiàn)一兩個(gè)創(chuàng)新之舉。

在談?wù)揂PI網(wǎng)關(guān)時(shí),首先要提到的是API管理。

API管理

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

通過API 管理,我們嘗試去解決“如何控制給其他人使用當(dāng)前有的API”的問題,例如,如何跟蹤誰在使用這些API、對誰能使用這些API進(jìn)行權(quán)限控制、建立一套完善的管理措施進(jìn)行使用授權(quán)和認(rèn)證,同時(shí)創(chuàng)建一個(gè)服務(wù)目錄,可以在設(shè)計(jì)時(shí)使用,提升對API的理解并為以后的有效治理奠定基礎(chǔ)。

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

API管理當(dāng)然也起到一些很好的用處,例如,它允許用戶(潛在的API使用者)進(jìn)行自助服務(wù),簽署不同的API使用計(jì)劃(請考慮:在給定時(shí)間范圍內(nèi),在指定價(jià)格點(diǎn)上,每個(gè)端點(diǎn)每個(gè)用戶的調(diào)用次數(shù))。有能力完成這些管理功能的基礎(chǔ)架構(gòu)就是網(wǎng)關(guān)(API流量所經(jīng)過的)。在網(wǎng)關(guān)層,我們可以執(zhí)行身份驗(yàn)證,速率限制,指標(biāo)收集,其它策略執(zhí)行等一系列操作。

你正在用的API網(wǎng)關(guān),真的起到了它該有的作用?

API Management Gateway

基于API網(wǎng)關(guān)的API管理軟件示例:

在這個(gè)層級(jí),我們考慮的是API(如上定義)是如何最好地管理和允許對其進(jìn)行訪問。我們沒有考慮其他角度,例如服務(wù)器、主機(jī)、端口、容器甚至服務(wù)(這是另一個(gè)很難定義清楚的詞!)。

API管理(以及它們相應(yīng)的網(wǎng)關(guān)),通常會(huì)被嚴(yán)格把控,并作為一種“平臺(tái)組件”、“一體化組件”和API的其他基礎(chǔ)組件一起生效。

需要注意的一件事:我們要小心千萬別讓任何業(yè)務(wù)邏輯進(jìn)入這一層。如前一段所述,API管理是共享的基礎(chǔ)架構(gòu),但是由于我們的API流量經(jīng)過了它,因此它傾向于重新創(chuàng)建“大包大攬的全能型”(認(rèn)為是企業(yè)服務(wù)總線)網(wǎng)關(guān),這會(huì)導(dǎo)致我們必須與之協(xié)調(diào)來更改我們的服務(wù)。從理論上講,這聽起來不錯(cuò)。實(shí)際上,這最終可能成為組織的瓶頸。有關(guān)更多信息,請參見這篇文章:具有ESB,API管理和Now…Service Mesh的應(yīng)用程序網(wǎng)絡(luò)功能?(https://links.jianshu.com/go?to=http%3A%2F%2Fblog.christianposta.com%2Fmicroservices%2Fapplication-network-functions-with-esbs-api-management-and-now-service-mesh%2F)

集群入口

為了構(gòu)建和實(shí)現(xiàn)API,我們將重點(diǎn)放在代碼、數(shù)據(jù)、生產(chǎn)力框架等方面。但是,要想使這些事情中的任何一個(gè)產(chǎn)生價(jià)值,就必須對其進(jìn)行測試,部署到生產(chǎn)中并進(jìn)行監(jiān)控。當(dāng)我們開始部署到云平臺(tái)時(shí),我們開始考慮部署、容器、服務(wù)、主機(jī)、端口等,并構(gòu)建可在此環(huán)境中運(yùn)行的應(yīng)用程序。我們可能正在設(shè)計(jì)工作流(CI)和管道(CD),以利用云平臺(tái)快速遷移、更改的特點(diǎn),將其快速展示在客戶面前等等。

在這種環(huán)境中,我們可能會(huì)構(gòu)建和維護(hù)多個(gè)集群來承載我們的應(yīng)用程序,并且需要某種方式直接來訪問這些集群中的應(yīng)用程序和服務(wù)。以Kubernetes為例思考。我們可能會(huì)通過一個(gè)Kubernetes 入口控制器來訪問Kubernetes集群(集群中的其它所有內(nèi)容都無法從外部訪問)。這樣,我們就可以通過定義明確的規(guī)則(例如域/虛擬主機(jī)、端口、協(xié)議等),嚴(yán)格控制哪些內(nèi)容可以進(jìn)入(甚至離開)我們的集群。

在這個(gè)層級(jí),我們可能希望某種“入口網(wǎng)關(guān)”成為允許請求和消息進(jìn)入集群的流量監(jiān)控人。在這個(gè)層級(jí),思考更多的是“我的集群中有此服務(wù),我需要集群外的人能夠調(diào)用它”。這可能是服務(wù)(公開API)、現(xiàn)有的整體組件、gRPC服務(wù),緩存、消息隊(duì)列、數(shù)據(jù)庫等。有些人選擇將其稱為API網(wǎng)關(guān),而且實(shí)際上可能會(huì)做比控制流量進(jìn)/出而言更多的事情,但重點(diǎn)是這個(gè)層級(jí)的問題是屬于集群操作級(jí)別的。

你正在用的API網(wǎng)關(guān),真的起到了它該有的作用?

Cluster Ingress Gateway

這些類型的入口實(shí)現(xiàn)的示例包括:Envoy Proxy 及其基礎(chǔ)上的項(xiàng)目包括:

基于其他反向代理/負(fù)載均衡器構(gòu)建的其它組件:

此層級(jí)的集群入口控制器由平臺(tái)組件操作,但是,這部分基礎(chǔ)架構(gòu)通常與更加分布式、自助服務(wù)的工作流相關(guān)聯(lián)(正如您對云平臺(tái)所期望的那樣)。參見The “GitOps” workflow as described by the good folks at Weaveworks(https://links.jianshu.com/go?to=https%3A%2F%2Fwww.weave.works%2Fblog%2Fgitops-operations-by-pull-request)

API網(wǎng)關(guān)模式

關(guān)于“ API網(wǎng)關(guān)”一詞的另一種擴(kuò)展是我在聽到該術(shù)語時(shí)通常想到的,它是與API網(wǎng)關(guān)模式最相似的。Chris Richardson在其“微服務(wù)模式”一書第8章很好地介紹了這種用法。我強(qiáng)烈建議您將此書用于此模式和其他微服務(wù)模式學(xué)習(xí)資料??稍谒膍icroservices.io網(wǎng)站進(jìn)行快速瀏覽,API Gatway Pattern(https://links.jianshu.com/go?to=https%3A%2F%2Fmicroservices.io%2Fpatterns%2Fapigateway.html)。簡而言之,API網(wǎng)關(guān)模式是針對不同類別的使用者來優(yōu)化API的使用。這個(gè)優(yōu)化涉及一個(gè)API間接訪問。您可能會(huì)聽到另一個(gè)代表API網(wǎng)關(guān)模式的術(shù)語是“前端的后端”,其中“前端”可以是字符終端(UI)、移動(dòng)客戶端、IoT客戶端甚至其它服務(wù)/應(yīng)用程序開發(fā)人員。

在API網(wǎng)關(guān)模式中,我們明顯簡化了對一組API的調(diào)用,以模擬針對特定用戶、客戶端或使用者的“應(yīng)用程序”內(nèi)聚API?;叵胍幌?,當(dāng)我們使用微服務(wù)構(gòu)建系統(tǒng)時(shí),“應(yīng)用程序”的概念就消失了。API網(wǎng)關(guān)模式有助于恢復(fù)此概念。這里的關(guān)鍵是API網(wǎng)關(guān),一旦實(shí)現(xiàn),它將成為客戶端和應(yīng)用程序的API,并負(fù)責(zé)與任何后端API和其他應(yīng)用程序網(wǎng)絡(luò)節(jié)點(diǎn)(不滿足上述API定義的節(jié)點(diǎn))進(jìn)行通信交互。

與上一節(jié)中的入口控制器不同,此API網(wǎng)關(guān)更接近開發(fā)人員的視角,而較少關(guān)注哪些端口或服務(wù)會(huì)公開以供集群外使用。此“ API網(wǎng)關(guān)”也不同于我們管理現(xiàn)有API的API管理視角。此API網(wǎng)關(guān)將對后端的調(diào)用聚合在一起,這可能會(huì)公開API,但也可能會(huì)涉及到一些API描述較少的東西,例如對舊系統(tǒng)的RPC調(diào)用,使用不符合“ REST”的協(xié)議的調(diào)用(如通過HTTP但不使用JSON),gRPC,SOAP,GraphQL、websockets和消息隊(duì)列。這種類型的網(wǎng)關(guān)也可用來進(jìn)行消息級(jí)轉(zhuǎn)換、復(fù)雜的路由、網(wǎng)絡(luò)彈性/回退以及響應(yīng)的聚合。

如果您熟悉REST API的Richardson Maturity模型,就會(huì)發(fā)現(xiàn)相比Level 1–3,實(shí)現(xiàn)了API網(wǎng)關(guān)模式的API網(wǎng)關(guān)集成了更多的Level 0請求(及其之間的所有內(nèi)容)。

你正在用的API網(wǎng)關(guān),真的起到了它該有的作用?

https://martinfowler.com/articles/richardsonMaturityModel.html

這些類型的網(wǎng)關(guān)實(shí)現(xiàn)仍需要解決速率限制、身份驗(yàn)證/授權(quán)、電路斷路、度量收集、流量路由等問題。這些類型的網(wǎng)關(guān)可以在集群邊緣用作集群入口控制器,也可以在集群內(nèi)部用作應(yīng)用程序網(wǎng)關(guān)。

你正在用的API網(wǎng)關(guān),真的起到了它該有的作用?

API Gateway Pattern

此類API網(wǎng)關(guān)的示例包括:

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

由于這種類型的API網(wǎng)關(guān)與應(yīng)用和服務(wù)的開發(fā)緊密相關(guān),因此我們希望開發(fā)人員能夠參與幫助指定API網(wǎng)關(guān)公開的API,了解所涉及的任何聚合邏輯以及能夠快速測試和更改此API基礎(chǔ)架構(gòu)的能力。我們還希望運(yùn)維人員或工程師對API網(wǎng)關(guān)的安全性、彈性和可觀察性配置有一些想法。這種層級(jí)的基礎(chǔ)架構(gòu)還必須適應(yīng)不斷發(fā)展的、按需的、自主服務(wù)開發(fā)人員的工作流。可以通過查看GitOps模型獲取更多這方面信息。

進(jìn)入服務(wù)網(wǎng)格(Service Mesh)

在云基礎(chǔ)架構(gòu)上運(yùn)行服務(wù)架構(gòu)的一部分難點(diǎn)是,如何在網(wǎng)絡(luò)中構(gòu)建正確級(jí)別的可觀察性和控制。在解決此問題的先前迭代中,我們使用了應(yīng)用程序庫和一些專業(yè)的開發(fā)人員治理來實(shí)現(xiàn)此目的。但是,在大規(guī)模和多種開發(fā)語言環(huán)境下,服務(wù)網(wǎng)格技術(shù)的出現(xiàn)提供了更好的解決方案。服務(wù)網(wǎng)格通過透明地實(shí)現(xiàn)為平臺(tái)及其組成服務(wù)帶來以下功能:

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

精明的讀者會(huì)認(rèn)識(shí)到,API網(wǎng)關(guān)和服務(wù)網(wǎng)格在功能上似乎有所重疊。服務(wù)網(wǎng)格的目的是通過在L7透明地解決所有服務(wù)/應(yīng)用程序的這些問題。換句話說,服務(wù)網(wǎng)格希望融合到服務(wù)中(實(shí)際上它的代碼并沒有嵌入到服務(wù)中)。另一方面,API網(wǎng)關(guān)位于服務(wù)網(wǎng)格之上,和應(yīng)用程序一起(L8?)。服務(wù)網(wǎng)格為服務(wù)、主機(jī)、端口、協(xié)議等(東西向流量)之間的請求流帶來了價(jià)值。它們還可以提供基本的集群入口功能,以將某些此功能引入南北向。但是,這不應(yīng)與API網(wǎng)關(guān)可以帶來北/南流量的功能相混淆。(一個(gè)在集群的南北向和一個(gè)是在一組應(yīng)用程序的南北向)

服務(wù)網(wǎng)格和API網(wǎng)關(guān)在某些方面在功能上重疊,但是在它們在不同層面互補(bǔ),分別負(fù)責(zé)解決不同的問題。理想的解決方案是將每個(gè)組件(API管理、API網(wǎng)關(guān)、服務(wù)網(wǎng)格)合適的安置到您的解決方案中,并根據(jù)需要在各組件間建立良好的邊界(或在不需要時(shí)排除它們)。同樣重要的是找到適合的辦法去分布式的處理這些組件,給到相應(yīng)的開發(fā)人員和運(yùn)營工作流。即使這些不同組件的術(shù)語和標(biāo)識(shí)存在混淆,我們也應(yīng)該依靠基本原理,并了解這些組件在我們的體系結(jié)構(gòu)中帶來的價(jià)值,從而來確定它們?nèi)绾为?dú)立存在和互補(bǔ)并存。

你正在用的API網(wǎng)關(guān),真的起到了它該有的作用?


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉