API 网关部署模式


API 网关部署有4 种众所周知的模式: 集中式边缘网关、两层网关、微网关和边车。在这篇文章中,我们将介绍这些模式,并为您提供一个为您的业务选择正确的 API 网关部署模式的想法。

什么是 API 网关?
API 网关是一种管理工具,位于消费客户端和后端服务集合之间的系统边缘,并充当已定义 API 组的单一入口点。消费者可以是最终用户应用程序或设备,例如单页 Web 应用程序或移动应用程序、另一个内部系统或第三方应用程序或系统。

API网关部署组件
API 网关由两个高级基础组件实现:控制平面和数据平面。这些组件通常可以打包在一起或单独部署。控制平面是操作员与网关交互并定义路由、策略和所需遥测的地方。数据平面是控制平面中指定的所有工作发生、路由网络数据包、实施策略和发出遥测数据的位置。 例如,APISIX 针对不同的生产用例具有三种不同的部署模式(传统、解耦和独立)。

集中式边缘网关
API 网关通常部署在系统的边缘,但在这种情况下“系统”的定义可以非常灵活。对于初创公司和许多中小型企业,API 网关通常会部署在数据中心或云端的边缘。在这些情况下,可能只有一个 API 网关(通过多个实例部署和运行以实现高可用性)充当整个后端资产的前门,并且 API 网关将提供所有边缘功能。

API网关提供用户认证、授权、请求速率限制、缓存、超时/重试、请求/响应转换等横切需求,可以提供指标、日志和跟踪数据,以支持系统内可观察性的实现.
此外,许多 API 网关提供额外的功能,使开发人员能够管理 API 的生命周期,协助使用 API 的开发人员的入职和管理(例如提供开发人员门户和相关的帐户管理和访问控制),并提供企业治理.

二级网关
对于大型组织和企业,API 网关通常会部署在多个位置,通常作为数据中心周边初始边缘堆栈的一部分,并且可能会部署其他网关作为每个产品、业务线或组织部。在这种情况下,这些网关通常是单独的实现,并且可能会根据地理位置(需要治理)或基础设施功能(在低功率边缘计算资源上运行)提供不同的功能。
如下图所示,Apache APISIX API 网关通常位于公共互联网和专用网络的demilitarized zone(DMZ) 之间。

微网关
Microgateway完全是为微服务之间的内部通信而设计的。每个单独的微网关可能有一组不同的策略和安全规则,并且需要聚合来自多个服务的监控和指标。


这个概念是为管理微服务的各个团队提供能力(专用网关),以控制他们将如何安全地公开服务。同一个开发团队将管理和维护他们的微服务和微网关,因此他们可以修复错误、提供更新、独立执行改进,并快速将更改推送到生产中,同时减少与其他依赖项的交互,并且不会影响部署中的其他应用程序。

边车 API 网关
边车Sidecar将 API 网关实现为附加到独立运行时(例如Kubernetes )中的服务的容器。Sidecar 是一种模式,对应于附在摩托车上的sidecar,类似地,它附在父应用程序(称为服务网格的软件组件)上,并为应用程序提供支持功能。Sidecar 还与父应用程序共享相同的生命周期,与父应用程序一起创建和退出,并引入了额外的功能,例如监控、日志记录、配置和网络服务。
采用这种模式的好处是每个服务运行时都可以以最佳方式配置自己的 API 网关。因为启用 API 网关功能和设置的要求可能因服务而异。同时,如果共享 API 网关基础设施中出现问题,那么所有服务都不会受到影响,它会分离关注点。例如,Amesh是另一个基于Apache APISIX的服务网格解决方案。


上图说明了作为 API 负载均衡器和资源路由器进入每个服务端点的入口。服务的入口点不是服务端点本身,而是一个 sidecar API 网关。除了将流量路由到服务端点之外,Sidecar 还可以执行 API 网关提供的任何功能。

结论
据我们了解,没有适合所有情况的单一部署模式。有时您可以在系统中使用一个或多个网关。部署的选择取决于业务的复杂性和需求。