跳到主要内容

网关组

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

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

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

例如,在下图中,公司中有两个团队正在使用 API 网关:支付团队和报价团队。支付团队拥有生产和 UAT 环境,而报价团队只有一个生产环境。在这种情况下,可以创建三个网关组:Payment ProdPayment UATQuote Prod,并且可以使用 Env:ProdEnv:UAT 对其进行标记。

网关组

关键功能

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

  • 业务对齐的网关分区:通过将企业的业务线和解决方案分配给专用的 API 网关组来进行隔离。这种架构方法可以更好地使 API 基础设施与组织的职能领域保持一致。

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

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

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

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

用例

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

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

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

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

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

跨不同区域管理多个集群

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

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

此外,API7 企业版支持多层网络,实现跨区域的无缝数据处理和合规性。如果一位名叫 John 的美国用户从欧洲登录,欧盟集群可以根据他的用户 ID 确定并将他的 API 请求重定向到北美集群。此功能可确保符合合规性和高效的 API 请求处理。

满足不同项目的服务等级目标

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

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