微服务和APIs(即应用程序编程接口)已经成为可持续现代应用程序开发中几乎司空见惯的事物。
APIs推动了微服务(一种将应用程序结构化为小型、自包含和可管理服务/组件的架构设计),并且它们定义了消费者(API的使用者)如何与和使用底层服务进行交互。
对于企业和其他组织来说,APIs已经成为数字转型战略的核心。API使用的增长导致开发人员使用API管理解决方案将其API发布给公众或外部开发人员,内部开发人员以及其他合作伙伴。
API管理工具可以帮助您:
- 将微服务公开为受管理的API。
- 将多个微服务组合为公开的API。
- 对内部和外部微服务应用安全性。
- 将传统服务公开为现代API。
- 从微服务和API的使用中获取业务洞察,以及更多。
您是否正在寻找一种开源的API管理解决方案来满足您公司的需求?那么这份指南就是专为您准备的,请继续阅读。
下面,我们分享了您可以在IT基础设施中使用的十大开源API网关和API管理解决方案。请注意,以下列表按照没有特定顺序组织。
1. Kong Gateway(OSS)
Kong 网关(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网关只有一个版本,而且是100%开源的。无论您是 社区版 用户还是企业用户,您都可以获得相同的API网关。
它提供了所有可能需要的部件,没有功能锁定,也没有黑盒。通过 Tyk,您可以准确了解您的数据是如何被处理的。
3. KrakenD
也是用Go语言编写的,并且考虑了性能问题,KrakenD 是一个高性能的开源、简单和可插拔的API网关,设计为无状态架构。它可以在任何地方运行,并且不需要数据库运行。它有一个简单的配置,并支持无限的端点和后端。
KrakenD 特性包括监视、缓存、用户配额、速率限制、服务质量(并发调用、断路器和精细的超时)、转换、聚合(合并源)、过滤(白名单和黑名单)以及解码。
它提供了代理特性,如负载平衡、协议转换和Oauth;以及安全特性,如SSL和安全策略。

您可以通过手动配置或使用KrakenDesigner来设计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规范(OAS),这使开发人员能够协作创建API,然后独立测试它们。此外,它具有高度可扩展性,因为它可以独立运行,不依赖于其他组件。
它具有速率限制、服务发现、请求和响应转换、负载均衡、故障转移和断路器等功能,与Docker和Kubernetes集成无缝。它基于OAuth2.0、API密钥、基本身份验证和双向TLS提供身份验证和授权。
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设计和配置层以及快速的运行时。它是一个独立的系统,可以作为单独系统运行,也可以嵌入到现有的框架和平台中。

其主要特点是灵活性和基于策略的API运行时治理,丰富的管理层,以及完全异步。它支持节流和配额,集中式安全性,计费和指标,以及许多其他功能。
10. API Umbrella
API Umbrella 是一个开源的 API 管理解决方案,主要使用 Ruby 构建。它是一个代理,位于您的 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/