跳到主要内容
版本:3.10.x

网关组

网关组是组合一个或多个 API 网关实例的逻辑单元。这些实例在处理 API 请求时共享相同的配置和行为。这确保了一致的 API 处理并简化了整个网关组的管理。

默认的网关组足以满足只有单个集群或生产环境的简单场景。高级网关组用于复杂场景,针对不同子公司、业务线、集群和环境(例如 UAT 和 Staging)具有单独的 API 策略。虽然API7 网关缺乏多集群和多环境的概念,但您可以通过命名和标记网关组来达到相同的目标。

一个网关组包含一个或多个网关实例,但每个网关实例只属于一个网关组。网关实例可以部署在相同或不同的虚拟机、裸金属服务器或Kubernetes节点上。这种组合可以满足用户跨业务线、集群、工作区和环境的多样化需求。

例如,在下图中,公司中有两个团队正在使用 API 网关:付款团队和报价团队。付款团队拥有生产环境和 UAT 环境,而报价团队只有一个生产环境。此时可以创建三个网关组:Payment ProdPayment UATQuote Prod,并分别标记为Env:ProdEnv:UAT

付款团队和报价团队示例图:三个网关组,付款团队的付款产品和付款 UAT,报价团队的报价产品,每个都包含自己的网关实例并标有 Env 或环境:UAT

主要特点

  • API网关组管理:将 API 网关集合作为共享相同配置的逻辑单元进行管理。这简化了管理并确保整个网关实例策略执行的一致性。

  • 业务对齐网关分区:通过将企业的业务线和解决方案分配给专用的 API网关组来隔离它们。这种架构方法可以更好地协调 API 基础设施和组织的功能域。

  • 物理隔离:网关组在不同的物理环境(包括数据中心、云平台、虚拟机)中隔离多个 API网关实例。有效防止网关组之间的干扰,增强系统的稳定性和安全性。

  • 弹性伸缩:网关组根据流量波动动态添加或删除API网关实例,满足业务需求。这提高了资源利用率并降低了运营成本。

  • 可扩展且灵活的基础设施:API网关组的逻辑架构与单个网关实例的物理部署分离。这种方法为 API 基础设施提供了更高的灵活性和可扩展性。

  • 细粒度的权限控制:网关组为不同的网关实例和 API 启用不同的权限配置,以遵守合规性要求。

用例

网关组的多功能性体现在其多样化的用例中,本节将详细探讨这些用例。

隔离开发、测试、UAT 和生产环境

API的部署和发布会经历不同的阶段和环境,具体取决于企业的API管理流程。假设您的公司有四个环境:Dev、Test、UAT 和 Prod。如果不使用网关组,您需要部署 4 个独立的 API7 网关实例,每个实例都有独立的控制面和数据面。开发人员、QA、Ops工程师需要通过不同域名访问API7 网关的控制面来开发、测试和发布相同的API。

这种方法有很大的缺点。当您有5条业务线,每条业务线有4个环境时,总共需要部署20套API7 网关,造成资源浪费,增加管理成本。

通过利用 API7 网关的网关组功能,您可以轻松克服这一挑战。您可以创建 20 个不同的网关组,遵循组合业务线和环境名称的命名约定,并添加用于过滤和选择的标签。此外,还可以应用基于角色的访问控制(RBAC)来实现细粒度的权限控制。这样,开发者只能在开发环境中修改配置。

管理跨不同区域的多个集群

跨多个区域和集群管理 API 服务,同时确保拥有全球客户群的公司的数据合规性是一项挑战。假设您的公司在 NA、EU 和 APAC 区域运营,每个区域有 4 个生产集群。如果没有网关组,则需要维护 12 套 API 网关控制面和数据面。然而,这种方法很容易出现配置差异。即使大多数 API 网关配置一致,也需要付出额外的努力来确保其他组件(例如记录器、密钥管理器和可观测性工具)的加密、隐私和合规性相关设置保持一致。

API7 网关的网关组提供了一种使用单个控制面跨多个区域集中管理和配置 API 网关集群的解决方案。您可以通过环境变量、服务发现、注册中心等方式简化和统一管理维护,降低整体维护成本。

此外,API7 网关支持多层组网,实现跨区域的无缝数据处理和合规性。如果名为 John 的美国用户从欧洲登录,EU 集群可以根据他的用户 ID 确定他的 API 请求并将其重定向到 NA 集群。此功能可确保合规性和高效的 API 请求处理。

满足不同项目的服务水平目标

不同项目中的服务的服务级别目标 (SLO) 各不相同。例如,支付服务的 SLO 可以是 99.999%,而历史订单服务的 SLO 可能是 99%。每个服务都可以使用特定的策略,以与其各自的 SLO 保持一致。

基础设施和运营团队可以在多个区域部署支付服务,然后为这个网关组分配更多的网关实例和更高质量的机器资源,并为其设置严格的告警策略和详细的可观测性指标。相反,SLO 要求较低的历史订单服务可以采用轻量级部署策略,放宽告警和监控,以减少资源分配。