微服務和 APIs(應用程式介面的縮寫)已經成為可持續現代應用程式開發中幾乎司空見慣的技術。
APIs 推動著微服務(一種將應用程式結構化為小型、自包含和可管理的服務/部分的架構設計),並且它們定義了消費者(API 的使用者)如何與並使用基礎服務互動。
對於企業和其他組織來說,APIs 已成為數位轉型戰略的核心。API 的使用增長促進了開發人員使用 API 管理解決方案,將其 API 發布給公眾或外部開發人員、內部開發人員以及其他合作夥伴。
API 管理工具可以幫助您:
- 將微服務公開為受管理的 API。
- 將多個微服務組合為公開的 API。
- 對內部和外部微服務應用安全性。
- 將遺留服務公開為現代 API。
- 從微服務和 API 的使用中獲取業務洞察,等等。
您是否正在尋找一個開源的 API 管理解決方案來為您的公司服務?那麼這個指南就是為您而製作的,請繼續閱讀。
以下,我們分享了您可以在您的 IT 基礎設施中使用的十大開源 API 閘道和 API 管理解決方案。請注意,以下列表沒有特定的排列順序。
1. Kong 閘道(OSS)
Kong Gateway (OSS) 是一個受歡迎的、開源的、先進的雲原生 API 網關,可通用部署:它可以在任何平台上運行。
它是用 Lua 編程語言 編寫的,支持混合和多雲基礎架構,並且針對微服務和分佈式架構進行了優化。
在其核心,Kong 是為高性能、可擴展性和可移植性而建立的。 Kong 也是輕量級、快速且可擴展的。它支持不需要數據庫的聲明性配置,僅使用內存存儲,並支持原生 Kubernative CRDs。

Kong 功能包括負載平衡(具有不同的算法)、日誌記錄、身份驗證(支持 OAuth2.0)、速率限制、轉換、實時監控、服務發現、緩存、故障檢測和恢復、集群等等。重要的是,Kong 支持節點和無服務器函數的集群。
它支持為您的服務配置代理並以 SSL 提供它們,或使用 WebSockets。它可以通過您上游服務的副本進行負載平衡,監控您服務的可用性,並相應地調整其負載平衡。
Kong 提供了一個命令行界面,讓您可以從命令行管理一個 Kong 集群。此外,Kong 非常可擴展,可使用插件和不同類型的集成。它可以使用其 RESTful API 進行管理,以獲得最大的靈活性。
2. Tyk
Tyk(發音為 Taik)是一個開源、強大、輕量級且功能豐富的 API 網關,從頭開始使用 Go 編程語言 開發。它是雲原生的,並且性能出色,具有易於擴展和可插拔的架構,基於開放標準。
它可以獨立運行,只需要 Redis 作為數據存儲。它允許用戶安全地發布和管理各種服務,包括遺留系統、REST 和 GraphQL(原生支持 GraphQL)。
Tyk 具有眾多功能,包括各種身份驗證方法、配額、速率限制、版本控制、通知和事件、監控和分析。它還支持服務發現、即時轉換和虛擬端點,並允許在發布前創建模擬 API。

更重要的是,Tyk支持API文檔並提供API開發者門戶,一個類似於CMS(內容管理系統)的系統,您可以在其中發布您管理的API和第三方開發者註冊、註冊到您的API並管理他們自己的密鑰。
重要的是,Tyk API Gateway只有一個版本,並且是100%開源的。無論您是社區版用戶還是企業用戶,您都可以獲得相同的API Gateway。
它提供了所有可能需要的部件,沒有功能鎖定,也沒有黑盒。使用Tyk,您可以確切地了解您的數據是如何被處理的。
3. KrakenD
同樣是用Go語言編寫的,並且以性能為重點,KrakenD是一個高性能的開源、簡單且可插拔的API網關,設計為無狀態架構。它可以在任何地方運行,並且不需要運行數據庫。它具有簡單的配置,支持無限的端點和後端。
KrakenD具有監控、緩存、用戶配額、速率限制、服務質量(並發調用、斷路器和精細超時)轉換、聚合(合併來源)、過濾(白名單和黑名單)和解碼等功能。
它提供了諸如負載平衡、協議轉換和Oauth等代理功能;以及諸如SSL和安全策略等安全功能。

您可以手动配置API网关行为,也可以使用KrakenDesigner,这是一个GUI,允许您从头开始设计您的API,或者恢复现有的API。此外,KrakenD的可扩展架构允许添加额外的功能、插件、嵌入式脚本和中间件,而无需修改其源代码。
4. Gravitee.io API 平台
Gravitee.io是一个开源的、基于Java的、易于使用的API管理平台,可帮助组织保护、发布、分析和记录其API。

它带有三个主要模块,分别是:
- API管理(APIM):一个开源的、简单而强大、灵活、轻量级且极快的API管理(APIM)解决方案,旨在让您的组织完全控制谁何时以及如何访问您的API。
- 访问管理(AM):一个灵活、轻量级、多功能且易于使用的开源身份和访问管理解决方案。它基于OAuth2/OpenID Connect协议,并充当身份提供者代理。它具有集中式身份验证和授权服务,用于保护您的应用程序和API。
- 警报引擎(AE):一个允许用户配置警报并接收通知以轻松高效地监视其API平台的模块。它支持多通道通知、可疑行为检测等功能。
Gravitee.io 隨附有 Cockpit,一個可協助您設計 API 並將其發佈到所有環境的工具,支援完整的多租戶支援。
它使您能夠從平台本身擴展您的 Gravitee.io 部署。以及 graviteeio-cli,一個簡單的命令行工具,用於管理 Gravitee.io 生態系統。
5. Gloo Edge
也是一個開源並基於 Go 的項目,Gloo Edge 是一個功能豐富的 Kubernetes 原生入口控制器(建立在 Envoy Proxy 之上),以及一個支援遺留應用程式、微服務和無伺服器的下一代雲原生 API 網關。它與您的環境整合,使您能夠選擇您喜愛的工具進行排程、持久性和安全性。
它提供強大的功能級路由(允許整合遺留應用程式、微服務和無伺服器),並設計用於支援使用不同種類的技術、架構和協議,在不同雲上運行的混合應用程式。

Gloo Edge 支援 API 網關功能,如速率限制、斷路器、重試、快取、外部身份驗證和授權。它還支援轉換、服務網格整合、完全自動化的發現和安全性。
Gloo Edge採用頂尖的開源項目,如GraphQL、gRPC、OpenTracing、NATS等,提供高品質的功能。此外,它支援未來可能出現的開源項目的整合。
6. Apache APISIX
Apache APISIX是一個動態、高性能和可擴展的API網關,旨在促進客戶端與微服務之間的無縫連接。基於強大的Nginx基礎構建,APISIX擁有靈活的架構,使用戶可以輕鬆自定義和擴展其功能。
它支援多種協議,如HTTP、HTTPS、TCP和UDP,確保多樣化的使用情況。通過用戶友好的儀表板和RESTful API,管理API配置變得簡單易行。

APISIX在負載平衡、流量控制和安全執行方面表現出色,提升了整個系統的韌性。作為Apache軟件基金會下的開源項目,APISIX賦予開發人員創建堅固高效的API生態系統的能力。
7. WSO2 API Microgateway
WSO2 API Microgateway是一個面向微服務的開源雲原生、開發者中心化和分散式API網關。主要使用Java構建,它簡化了在分佈式微服務架構中創建、部署和保護API的流程。
WSO2 API Microgateway 是一個輕量級的無狀態容器,佔用的記憶體較少,支援通過單一 API 組合多個微服務,同時支援運行時服務發現。它允許將遺留的 API 格式(請求和響應)轉換為現代格式,以便將它們暴露給現代的消費應用程式。

由於 WSO2 API Microgateway 使用 OpenAPI Specification(OAS),這使開發人員可以合作創建 API,然後獨立測試它們。此外,它具有高度可擴展性,因為它可以獨立運行,不依賴於其他組件。
它具有速率限制、服務發現、請求和響應轉換、負載平衡、故障轉移和斷路器等功能,無縫集成了 Docker 和 Kubernetes 等。它提供基於 OAuth2.0、API 密鑰、基本身份驗證和相互 TLS 的身份驗證和授權。
8. Fusio
Fusio 是一個開源的、基於 PHP 的 API 管理解決方案,用於構建和管理 REST API。它是一個 API 管理平台,因為它允許您開發可以從數據庫請求和轉換數據的 API 端點。它提供了所有必要的工具,不僅可以從不同的數據來源快速構建 API,還可以創建完全定制的響應。
它用於暴露業務功能、微服務、Javascript 應用程序和移動應用程序,提供速率限制、授權、RPC 支持、驗證、分析和用戶管理等功能。

Fusio支持OpenAPI生成和SDK生成,并帶有訂閱層,可幫助您構建API的發布/訂閱系統,以及一個簡單的支付系統來收費特定路由。
Fusio包含一個命令行客戶端,允許您直接與API交互並部署特定的YAML配置文件。Fusio-CLI自動包含在每個Fusio安裝中,但您也可以單獨運行CLI客戶端。Fusio生態系統中還有幾個其他工具。
9. Apiman
Apiman是一個開源的、基於Java的API管理工具,提供了豐富的API設計和配置層以及極快的運行時。它是一個獨立的系統,可以作為獨立系統運行,也可以嵌入到現有的框架和平台中。

其主要特點是靈活性和基於策略的運行時治理,具有豐富的管理層,完全異步。它支持節流和配額、集中式安全、計費和指標等許多其他功能。
10. API Umbrella
API Umbrella 是一個使用主要以 Ruby 構建的開源 API 管理解決方案。它是一個代理,位於您的 API 前面,使您能夠創建一個單一的、公共的入口點,無論您的 API 和微服務位於何處,都可以使用。它提供的功能包括 API 金鑰、速率限制、分析和緩存。
它支持多租戶,並且附帶一個管理員來管理 API Umbrella 的所有方面,例如 API 路由配置、用戶管理、查看分析等等。在 API Umbrella 下,所有管理功能也可以通過 REST API 使用。

結論
暫時就這些了!在本文中,我們回顧了 10 個您可以在 Linux 伺服器上使用的開源 API 網關和管理解決方案。如果您遇到了我們在本文中錯過的其他解決方案,請隨時告訴我們。
Source:
https://www.tecmint.com/open-source-api-gateways-and-management-tools/