API網(wǎng)關(guān)概述

本文翻譯自云原生新銳創(chuàng)業(yè)公司 solo.io的官方文檔(網(wǎng)紅posta大叔所在的公司),文中對于api gateway這個概念以及發(fā)展演變過程做了詳細(xì)的論述,覺得寫的很好,對于想了解api網(wǎng)關(guān)的人都應(yīng)該閱讀一下。

什么是API網(wǎng)關(guān)?

API網(wǎng)關(guān)是位于外部世界(客戶端或最終用戶)與數(shù)據(jù)中心或云中的后端服務(wù)之間的基礎(chǔ)架構(gòu)。 API(應(yīng)用程序編程接口)是一組協(xié)議和功能,用于定義應(yīng)用程序服務(wù)如何通信而不必知道如何實現(xiàn)。 此接口可用于彼此集成應(yīng)用程序服務(wù),并可以簡化開發(fā)周期。 API網(wǎng)關(guān)用于接受傳入的請求(流量),根據(jù)組織定義的一組規(guī)則和策略將它們路由到適當(dāng)?shù)暮蠖朔?wù),然后將適當(dāng)?shù)慕Y(jié)果返回給最終用戶或客戶端。

API網(wǎng)關(guān)與API管理

API網(wǎng)關(guān)是整個API管理系統(tǒng)的一部分,盡管它不是新的概念,但隨著我們采用自動化的自助服務(wù)平臺(如Kubernetes和公有云),API網(wǎng)關(guān)的角色正經(jīng)歷身份認(rèn)同危機(jī)。 API管理被定義為更廣泛的學(xué)科,包括創(chuàng)建、發(fā)布、管理、報告和貨幣化API的過程。

傳統(tǒng)的API網(wǎng)關(guān)解決方案并非為Kubernetes等高度動態(tài)的環(huán)境而設(shè)計,而是需要其他基礎(chǔ)設(shè)施來保持運行、高可用性以及生產(chǎn)就緒等工作。 另外,與現(xiàn)代應(yīng)用程序常用的分布式部署方式不同,這些解決方案通常以集中方式進(jìn)行部署。

根據(jù)組織的需求以及您構(gòu)建和維護(hù)的應(yīng)用程序組合,可能需要API網(wǎng)關(guān)和管理工具。 當(dāng)今的應(yīng)用程序團(tuán)隊需要考慮其現(xiàn)有的API網(wǎng)關(guān)是否可以滿足現(xiàn)有服務(wù)之外的新應(yīng)用程序和基礎(chǔ)架構(gòu)的需求。

API網(wǎng)關(guān)可以做什么?

API網(wǎng)關(guān)位于外部環(huán)境和基礎(chǔ)設(shè)施之間,以攔截所有傳入流量,并按照管理員實施的規(guī)則和策略將其路由到適當(dāng)?shù)暮蠖朔?wù)。

從架構(gòu)上來說,API網(wǎng)關(guān)由數(shù)據(jù)平面和控制平面組成。 數(shù)據(jù)平面是流量從外部客戶端和用戶通過代理流向后端服務(wù)的地方。 這通常稱為南北流量。 控制平面是定義和維護(hù)配置和策略的地方。 這些配置被推送到代理以調(diào)整流量或添加安全性檢查(如身份驗證)。 隨著向云原生架構(gòu)的發(fā)展,諸如 Envoy Proxy 之類的技術(shù)應(yīng)運而生,以實現(xiàn)分布式系統(tǒng)所需的高性能應(yīng)用程序通信。 Envoy由Lyft開發(fā)并于2016年開源,已成為邊緣側(cè)代理以及 servic mesh 架構(gòu)中sidecar實現(xiàn)的首選。

隨著組織采用微服務(wù)和Kubernetes應(yīng)用程序模式,若想在訪問由潛在的數(shù)百種不同后端服務(wù)組成的應(yīng)用程序時確保良好的最終用戶體驗,API網(wǎng)關(guān)的作用至關(guān)重要。 API網(wǎng)關(guān)不僅限于微服務(wù),還可以支持各種應(yīng)用程序工作負(fù)載,包括單體應(yīng)用和serverless functions。 API是應(yīng)用程序服務(wù)通過其進(jìn)行通信的接口,而網(wǎng)關(guān)是路由、整形和保護(hù)該流量的控制點。 當(dāng)API網(wǎng)關(guān)攔截傳入的請求時,可以應(yīng)用安全規(guī)則來檢查請求,對客戶端或最終用戶進(jìn)行身份驗證以及對請求進(jìn)行速率限制,以保護(hù)后端服務(wù)免受攻擊或失敗。 此外,API網(wǎng)關(guān)可以路由和調(diào)整流量,以支持諸如金絲雀部署和影子流量之類的用例,以確保更安全的應(yīng)用程序部署并維持最終用戶體驗。

挑戰(zhàn)

對遺留的整體應(yīng)用程序進(jìn)行現(xiàn)代化改造既耗時又昂貴。 現(xiàn)有的解決方案不夠靈活,這使IT團(tuán)隊面臨著艱難的任務(wù),即在支持現(xiàn)有業(yè)務(wù)和為客戶提供新價值之間尋求平衡。

  • 完全重寫遺留應(yīng)用既昂貴又耗時
  • 為開發(fā)全新的應(yīng)用程序而放棄遺留應(yīng)用是不現(xiàn)實的

解決

通過現(xiàn)代的API網(wǎng)關(guān)Gloo可以重新控制IT轉(zhuǎn)型,從而擴(kuò)展您現(xiàn)有IT投資的價值,同時使您能夠以業(yè)務(wù)步伐集成新技術(shù)而不會受到干擾。

  • 將遺留的單體、微服務(wù)和無服務(wù)器函數(shù)連接到一個混合應(yīng)用程序中
  • 向現(xiàn)有應(yīng)用程序添加微服務(wù)和無服務(wù)器函數(shù)新功能

原文地址:https://www.solo.io/solutions/api-gateway/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容