网关简介
网关是现代分布式系统中不可或缺的组件,负责连接不同网络、服务或系统,实现流量管理、安全防护、协议转换等功能。根据流量方向的不同,网关处理的流量主要分为南北向流量(North-South Traffic)和东西向流量(East-West Traffic)。此外,随着应用架构的演进,网关的功能也在不断扩展,从传统的流量网关到现代的云原生网关,逐步实现了更高层次的集成与优化。
一、流量
(一)南北向流量(North-South Traffic)
南北向流量通常指的是数据中心与外部用户或设备之间的通信流量。这种流量跨越了网络边界,例如防火墙、负载均衡器等安全设备。南北向流量的特点是对延迟和安全性敏感,因此需要通过负载均衡、CDN、防火墙等技术进行优化。
- 方向:
- 入向(南行):外部用户访问数据中心,例如用户通过浏览器访问网站。
- 出向(北行):数据中心向外部发送数据,例如服务器响应用户的请求。
- 特点:
- 流量跨越网络边界,需要经过防火墙、负载均衡器等设备。
- 对延迟和安全性敏感,需要优化用户体验并保障数据安全。
- 常见的优化技术包括全球负载均衡(Global Load Balancing)、Web应用防火墙(WAF)、SSL卸载等。
- 应用场景:
- Web服务:例如用户访问网站或应用程序。
- API接口:外部系统通过API调用内部服务。
- 用户下载/上传:例如文件上传、视频流等。
(二)东西向流量(East-West Traffic)
东西向流量指的是数据中心内部服务器、服务之间的通信流量。这种流量通常是横向的,例如微服务之间的调用、数据库同步等。东西向流量的特点是规模大、对带宽和实时性要求高,因此依赖于内部网络架构(如SDN、Overlay网络)进行优化。
- 方向:数据中心内部组件之间的交互,例如微服务通信、数据库同步。
- 特点:
- 流量规模大,通常占数据中心总流量的70%以上。
- 对带宽和低延迟要求高,依赖内部网络架构(如SDN、Overlay网络)。
- 需要高效的流量管理技术,例如服务网格(Service Mesh)、分布式存储网络等。
- 应用场景:
- 分布式系统:例如微服务架构中的服务间通信。
- 容器集群:例如Kubernetes集群中的Pod间通信。
- 数据库复制:例如主从数据库之间的数据同步。
(三)核心区别
维度 | 南北向流量 | 东西向流量 |
---|---|---|
流向 | 数据中心与外部 | 数据中心内部 |
关键设备 | 防火墙、负载均衡、CDN | 交换机、SDN、服务网格 |
优化重点 | 延迟、安全、用户体验 | 带宽、低延迟、服务协同 |
典型场景 | 用户访问Web、API调用 | 微服务通信、数据同步 |
(四)技术方案
- 南北向流量:
- 全局负载均衡(如DNS轮询、 GSLB)。
- Web应用防火墙(WAF)。
- SSL卸载(SSL Offloading)。
- CDN加速。
- 东西向流量:
- 软件定义网络(SDN)。
- 服务网格(如Istio、Linkerd)。
- 分布式存储网络(如Ceph、GlusterFS)。
(五)总结
南北向流量关注的是内外互通与用户体验,需要保障安全性和延迟。
东西向流量侧重于内部高效协同,需要优化带宽和实时性。
两者共同保障了现代分布式系统的性能与可靠性。
二、传统网关
传统网关通常分为两大类:流量网关与业务网关。
(一)流量网关
流量网关主要提供全局性的、与后端业务无关的策略配置。其功能包括:
- 负载均衡:将流量分发到多个后端服务器,提高系统可用性和性能。
- 安全防护:例如防火墙、IPS/IDS、WAF等,保护系统免受外部攻击。
- 协议转换:例如HTTP到TCP/UDP的转换,支持不同协议的通信。
- 流量监控:实时监控流量状态,提供日志记录和告警功能。
(二)业务网关
业务网关主要提供独立业务域级别的、与后端业务紧耦合的策略配置。其功能包括:
- 统一访问入口:降低服务受攻击面,简化外部访问路径。
- 跨域解决方案:处理跨域请求(CORS),简化开发流程。
- 统一日志与监控:便于统一管理和分析日志。
- 权限认证支持:增强安全性,例如OAuth、JWT等认证方式。
- 微服务限流:保护微服务免受过载或雪崩效应的影响。
(三)微服务网关
随着应用架构从单体架构演进到分布式微服务架构,业务网关也有了新的叫法——微服务网关。微服务网关的核心作用在于:
- 统一访问入口:将外部请求统一接入,降低服务暴露的风险。
- 服务发现与路由:根据请求内容动态路由到目标服务。
- 流量控制:通过限流、熔断等机制保护后端服务。
- 安全防护:集成WAF、身份认证、授权等安全功能。
- 日志与监控:提供统一的日志收集和监控能力,便于问题排查。
(四)传统网关的优缺点
- 优点:
- 功能明确,分工清晰(流量网关与业务网关分离)。
- 适用于单体架构或简单分布式架构。
- 配置灵活,支持多种协议和策略。
- 缺点:
- 网关数量多,运维复杂。
- 功能耦合性高,难以扩展。
- 对微服务架构的支持不足,难以满足复杂场景需求。
三、新网关——云原生网关
在容器和Kubernetes(K8s)主导的云原生时代,Ingress成为K8s生态中的网关标准,赋予了网关新的使命,使得流量网关、微服务网关和安全网关的集成成为可能。云原生网关通过与容器编排平台的深度集成,实现了更高的灵活性和扩展性。
(一)Ingress与Kubernetes
Ingress是Kubernetes中用于管理外部访问集群内服务的API资源,其核心功能包括:
- 流量路由:根据域名、路径等规则将流量路由到目标服务。
- 负载均衡:支持多种负载均衡算法(如轮询、加权轮询、IP哈希等)。
- SSL/TLS管理:支持SSL证书的自动颁发与管理(如通过Cert-Manager)。
- 安全防护:集成WAF、身份认证等安全功能。
(二)Higress 网关
Higress是一款高性能、高集成的云原生网关,其核心目标是简化网关的运维复杂度并提升性能。Higress通过内置WAF模块,实现了流量网关、微服务网关和安全网关的三合一能力。
- 核心功能:
- WAF防护:内置WAF模块,提供实时的攻击检测与防护。
- 流量分发:支持多种流量分发策略,例如基于路径、域名、权重等。
- 微服务治理:支持限流、熔断、重试等微服务治理功能。
- 可观测性:提供详细的流量日志、指标和tracing能力。
- 灰度发布:支持A/B测试、金丝雀发布等灰度发布策略。
- 优势:
- 高集成性:将流量网关、微服务网关和安全网关的功能集成到一个组件中。
- 高性能:通过优化协议栈和硬件加速,提升处理能力。
- 易用性:与Kubernetes深度集成,支持declarative的配置方式。
- 可观测性:提供丰富的监控和日志能力,便于问题排查。
(三)云原生网关的优势
- 统一入口:将流量网关、微服务网关和安全网关的功能集成,减少网关数量。
- 弹性扩展:支持水平扩展,满足高并发场景的需求。
- 自动化运维:与Kubernetes深度集成,支持自动化部署、扩缩容和升级。
- 高性能:通过优化协议栈和硬件加速,提升处理能力。
- 安全性:内置WAF、身份认证等安全功能,保障数据安全。
(四)云原生网关的未来发展趋势
- 智能化:通过AI/ML技术实现流量预测、异常检测等智能化功能。
- 边缘化:支持边缘计算场景,实现本地化的流量处理。
- 多云支持:支持多云和混合云场景,实现统一的流量管理。
- 可观测性增强:提供更丰富的监控和日志能力,提升运维效率。
四、总结
- 传统网关:分为流量网关和业务网关,分别处理全局策略和业务域策略。适用于单体架构或简单分布式架构。
- 微服务网关:在分布式架构中提供统一入口、跨域、日志、认证和限流功能,适用于微服务架构。
- 云原生网关:如Higress,将流量网关、微服务网关和安全网关集成,简化运维并提升性能。适用于容器化和Kubernetes主导的云原生架构。