企业功能概览
API7 网关基于 Apache APISIX 构建并运行相同的代理引擎,因此路由、上游、消费者和插件的行为相同。API7 网关在此基础上增加了网关外围的管理层:用于同时治理多个网关实例的控制面、面向运维人员和系统的身份与权限模型、记录每次配置变更的审计日志,以及用于向消费者发布 API 的开发者门户。
本页先列出该管理层提供的功能,再对两个产品进行逐项比较,帮助你判断哪一个更符合需求。
网关组
网关组将一个或多个网关实例组合成共享配置的逻辑单元,使一个控制面能够治理多个环境和地域。
组织和 RBAC
组织用于管理用户、角色和许可证,RBAC 则控制谁可以操作哪些网关组和资源。
权限策略和权限边界
权限策略定义允许的操作和资源,权限边界则限制用户无论持有何种角色都不能超过的权限上限。
控制台单点登录
通过 OIDC、SAML、LDAP 或 CAS 使用企业身份提供商登录控制台,并映射身份提供商中的角色。
审计日志
记录每项控制台、Admin API 和 ADC 操作,包括操作人、时间、资源和源 IP,且记录不可更改。
高可用性
控制面不可访问时 ,网关实例仍可继续处理流量,配置也可以回退到对象存储。
自定义插件
从控制台上传和管理自定义 Lua 插件,再将其分配给指定网关组和服务。
凭证
凭证将身份认证与消费者解耦,使一个消费者可以持有多个凭证,并在不中断服务的情况下轮换凭证。
匿名消费者
允许未通过身份认证的调用方以具名消费者身份访问受保护路由,通常使用低于已认证层级的限流配置。
密钥提供者
可在任意插件字段中引用 HashiCorp Vault 或 AWS Secrets Manager 中的密钥,或将密钥加密存储在 API7 网关中。
告警和联系人
超过 20 种内置事件(例如实例不健康或证书即将过期)可通过电子邮件或 Webhook 通知团队。
安全加固
敏感字段使用每个网关组独立的密钥环进行静态加密,审计日志会被脱敏,控制面到数据面 的流量使用 mTLS。
合规
通过经过 FIPS 验证的 OpenSSL 3.0 实现 FIPS 140-2 Level 1,并以数据脱敏和 WAF 集成支持法规要求。
API 门户
将 API 作为产品发布,并允许开发者注册应用、订阅以及管理自己的凭证。
Apache APISIX 与 API7 网关对比
Apache APISIX 会在每个版本中持续增加功能,请查看你所运行版本的 Apache APISIX 文档。
流量处理
两个产品运行相同的数据面引擎和插件集,因此代理、负载均衡、身份认证、转换和可观测性的行为相同。
| 功能 | Apache APISIX | API7 网关 |
|---|---|---|
| 协议 | HTTP、HTTPS、gRPC、TCP/UDP | 相同 |
| 内置插件 | 完整的插件集,可在插件中心浏览 | 相同 |
| 自定义插件开发 | Lua、适用于 Java、Go 和 Python 的外部插件运行器,以及 Wasm | Lua;可从控制台上传并分配给网关组。自定义插件可访问完整的网关运行时,且不在沙箱中运行 |
| 流量身份认证 | key-auth、jwt-auth、basic-auth、hmac-auth、ldap-auth、openid-connect、forward-auth 等 | 相同 |
| 凭证 | credential 资源,允许一个消费者持有多个凭证 | 相同,并可通过控制台管理 |
| 灰度发布 | traffic-split 插件,支持基于权重或条件的发布 | 相同的插件,可通过控制台配置 |
大规模管理网关
| 功能 | Apache APISIX | API7 网关 |
|---|---|---|
| Admin API | 支持 | 支持,与 APISIX 兼容,并限定到网关组作用域 |
| Web 界面 | 内置控制台,通过 :9180/ui/ 提供且默认启用。它使用 Admin API Key 进行身份认证,因此任何能调用 Admin API 的人员都可以使用 | 提供用户账户、角色和 SSO 的控制台,每项操作均可追溯并记录审计日志 |
| 声明式 CLI | ADC 是由 API7 维护的 Apache-2.0 工具,可将 Apache APISIX 作为后端;控制台路线图也将其用于 GitOps 工作流。内置 apisix CLI 用于控制进程,而不是配置。独立模式还支持从磁盘加载声明式 YAML | 使用相同的 ADC 连接 API7 网关后端,并增加服务端验证、应用前差异预览,以及用于在网关组之间迁移配置的导出功能 |
| 配置存储 | 需要自行部署和运维的 etcd 集群 | PostgreSQL、MySQL 或 SQL Server。DP Manager 通过嵌入式 kine 提供兼容 etcd v3 的 API,因此无需运维 etcd 集群 |
| 部署角色 | traditional、解耦的控制面和数据面,或无 etcd 的 standalone | 解耦的控制面和数据面,支持 Helm Chart、OpenShift、AMD64 和 ARM64 上的 Docker,以及离线安装 |
| 多集群和多环境 | 面向单个集群设计。控制台路线图明确表示没有管理多个网关环境的计划 | 通过网关组让一个控制面管理多个组,每个实例只属于一个组 |