API7 网关概览
API7 网关是一款面向云原生应用和微服务的现代高性能 API 网关。它基于强大的开源项目 Apache APISIX 构建,为 API 的管 理、安全防护和可观测性提供稳健、可扩展且灵活的解决方案。
本文面向 DevOps 工程师和解决方案架构师,对 API7 网关进行整体介绍。你将了解其核心概念、架构、主要功能,以及如何根据基础设施需求进行部署。
旧版文档
如需查阅此前的 API7 企业版文档,仍可访问 docs.api7.ai/enterprise/introduction。
为什么选择 API7 网关?
在当今的分布式架构中,管理数百甚至数千个服务之间的通信带来了重大挑战。组织需要一种统一方式来处理流量、实施安全策略并洞察 API 生态,同时不能牺牲性能。API7 网关正是为解决这些问题而设计。
| 挑战 | API7 网关的解决方式 |
|---|---|
| 微服务复杂性 | 为不同上游服务的路由、负载均衡和流量管理提供统一控制点,简化整体架构。 |
| 安全与合规 | 通过丰富的身份认证和授权插件以及细粒度访问控制保护 API,保持稳健的安全态势。 |
| 性能瓶颈 | 提供亚毫秒级延迟和卓越性能,即使在高流量下也不会让网关成为瓶颈。 |
| 缺乏可观测性 | 与 Prometheus、Grafana 和 OpenTelemetry 等业界标准可观测性工具无缝集成,深入洞察 API 性能和行为。 |
| 运维效率低下 | 采用完全动态的配置模型,可在不中断服务的情况下实时更新,实现敏捷高效的运维。 |
核心功能
API7 网关提供管理整个 API 生命周期所需的完整功能。
- 高级流量管理:通过动态负载均衡、灰度发布、蓝绿部署和熔断等功能,控制请求如何路由到服务。
- 稳健的安全能力:使用 OIDC、JWT、HMAC、Key Auth 等身份认证插件、用于传输层安全的双向 TLS(mTLS)以及细粒度访问控制来保护 API,防范常见漏洞。
- 丰富的插件生态:使用丰富的预构建插件扩展网关功能,或使用 Lua 开发自定义插件以满足特定业务需求。
- 深度可观测性:全面洞察 API 流量。网关支持与 Prometheus 指标、OpenTelemetry 分布式追踪及多种日志方案集成。
- 平台 无关:API7 网关可以部署在公有云、私有数据中心或混合环境,并可运行在裸机、虚拟机和 Kubernetes 上。
架构概览
API7 网关采用解耦架构,将**控制面(CP)与数据面(DP)**分离,从而提供可扩展性、灵活性和韧性。
- 控制面:所有配置的集中管理点。它提供易用的 Dashboard 和稳健的 API,管理员可以在其中定义路由、配置插件并管理 API 策略。控制面会将配置变更实时推送到数据面。
- 数据面:处理所有 API 请求的高性能流量代理。它从控制面接收配置,并执行身份认证、限流和路由等已定义策略。数据面节点是无状态的,可以轻松横向扩展。
下图展示了基本架构:
这种解耦设计确保即使控制面暂时不可用,数据面也能继续不间断运行,保障 API 的高可用性。
部署模式
API7 网关采用容器优先设计,通过不可变镜像确保不同基础设施环境中的架构一致性和运维可靠性。
1. 生产级编排
- Kubernetes(标准/托管):主要部署方式是使用 Helm Chart。API7 网关在 Kubernetes 中作为高性能无状态集群运行,并保留完整的 API 管理能力,为企业内服务提供高级流量控制和安全策略。
- OpenShift:原生支持 Red Hat OpenShift,包括预配置的**安全上下文约束(SCC)**以及与 OpenShift 专用监控栈的集成。
2. 企业基础设施
- 私有云/裸机(通过 Docker):在不使用 Kubernetes 的环境中,API7 以 Docker 容器形式部署在 Linux 主机上。它同时支持 AMD64 和 ARM64 架构,在保持容器隔离和简化升级优势的同时提供高性能。
- 离线环境:专为安全隔离网络优化。API7 以容器镜像形式分发,便于将制品镜像到私有仓库,适合金融或政府等行业的离线部署。
3. 快速开发与 GitOps
- 轻量开发:API7 提供 Docker Compose 模板,可在数分钟内启动完整环境(控制面、数据面和 Dashboard),用于本地开发、原型设计和集成测试。
- 支持 GitOps:所有基于容器的部署都可与 **ADC(API Declarative CLI)**协同工作,平台工程师可通过声明式 YAML 文件和自动化 CI/CD 流水线管理网关配置。
关键特性
架构师和 DevOps 工程师看重 API7 网关的以下非功能特性:
- 高性能