对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构

作者:古建国


关于美洽


美洽作为全球智能云客服服务商,10 年来深耕智能客服领域,旗下拥有在线客服、呼叫中心、客服机器人、工单系统、语音机器人等智能客服系列产品矩阵,覆盖不同行业客户服务场景,致力于帮助企业获客、销售和服务场景的效率提升。目前,美洽全链路产品已经服务超过 40 万家企业客户,覆盖互联网软件、教育培训、医疗、电子商务、金融、生活服务和房地产等行业领域。


需求背景


  1. 多条业务线使用了了不同编程语言,在微服务化演进的路上困难重重;
  2. 历史架构使用多个流量转发中间件导致流量路径冗长、复杂且故障排查困难(LB + OpenResty + Nginx + Caddy + SpringCloud-Gateway);
  3. WebSocket 长连接服务在多重路由层上不支持热更新,维护成本高。


历史架构的流量拓扑图如下:



需求目标


  1. 找到一个统一网关,能够一次性解决流量网关和业务网关的路由转发需求;
  2. 支持路由规则热更新,解决 WebSocket 连接在路由更新或网络抖动时产生的重连风暴;
  3. 前置 API 请求权限校验、签名校验、WAF 拦截、CC 拦截;
  4. 可视化统一网关的后台操作,让普通员工也能上手;
  5. 多云架构下私有化部署支持。


方案横向对比


通过对目前市面上流行的网关产品进行详细的横向对比,再结合美洽对统一网关的需求目标,我们从对比的表格当中,看到了 Higress 所带来的最佳对比结果。


同时美洽重点关注的几个点:K8S Ingress 支持、WebSocket 支持、Nacos 服务发现、路由配置热更新、WASM 插件都得到了很好的支持。


image.png


为什么选择 Higress


面向多云架构友好

Higress 在阿里云上有成熟的企业版产品:MSE 云原生网关,我们从 2021 年开始使用这款产品,这是一款全托管,完全免运维的 SaaS 网关产品,并且具备强劲的性能和丰富的功能,相比自建同吞吐的网关,整体成本是更低的,因此我们在阿里云上直接使用了这款产品。


美洽除了阿里云,在其他云上也有部署业务,我们希望能统一多云的统一网关技术架构,开源版 Higress 正好符合我们的需求,相比商业版,在控制台功能上,开源版目前的能力相对较少,但大部分功能也都可以通过自己定义 K8s CRD 配置的方式来实现,完全满足我们的需求。


原生支持 K8s Ingress

美洽从 2021 年便已经全面迁移到 Kubernetes 进行资源调度,遇到最大的困难是历史的网关中间件,在容器化的架构里面,各种水土不服,要么需要借助 Nginx-Ingress-Controller,要么需要外部的 SLB 进行服务之间的负载均衡与网络通信。这导致了比容器化之前更加复杂的流量路径,一度让我们下定决心,必须、必须、必须要解决统一网关的问题,还必须云原生的。


2021 年底开始,我们开始尝试使用阿里云 MSE 网关 SaaS 产品,开始将部分服务从 Nginx 路由迁移到 MSE 网关上,很快解决了Ngxin Configuration 配置维护复杂,故障频发的问题,尝到甜头后,我们便开始计划进一步扩大 MSE 网关的使用,结合 Nacos 和 K8S 的服务发现,将 80% 大部分容器化服务路由转发全部迁移到了云原生网关上。这带来的收益就包括:


  1. 简化了流量路径,公网流量通过 SLB 直接到达网关,网关路由直达容器 Pod;
  2. 释放了使用 ECS 自建的 Nginx 、OpenResty 、Caddy 服务,降低了大量服务器成本;
  3. 服务发现和服务治理,以及各个服务当前的健康状态都以可视化的 Dashborad 呈现出来;


控制面和数据面解耦的架构

控制面和数据面解耦是一种很好的设计模式,把管理控制逻辑和运行处理逻辑分开,这样可以更好地管理和扩展系统。


  1. Console 负责管理 和 Gateway 负责处理请求,灵活可扩展,互不干扰;
  2. 整个系统的性能和可用性可以得到很好的保障;
  3. 即使控制面出现问题,数据面仍然可以继续处理请求,反之亦然。


在美洽客服自己的产品中,也大量使用了控制面和数据面分离的这种架构设计模式,在选择 Higress 统一网关的落地实践中,也更好的可以和美洽产品的架构进行配合,例如控制台采用微前端技术统一美洽运维控制台,Higress 控制台,Nacos 控制台。


容易上手的后台 Dashboard

在早期,美洽在 2021 年开始使用阿里云 MSE 云原生网关时,就已经对网关的控制台使用有了很多的经验基础,团队中 QA 同学也能熟练使用了。目前在其他云上的项目,私有化部署的开源版 Higress,在控制台方面功能与操作和阿里云 MSE 产品的交互保持一致,团队使用很快便上手了。



插件方面,美洽使用了 JWT Auth 鉴权,Key Rate Limit 限流,HMAC Auth 请求签名,Bot Detect 和 WAF 功能有涉及。


image.png


美洽的落地实践


采用 Helm 在 K8s node 上 一键部署


helm repo add higress.io <https://higress.io/helm-charts>
helm install higress higress.io/higress -n higress-system --create-namespace


完全替代了 Nginx 、OpenResty、Caddy 、SLB-Intranet



彻底解决 WebSocket 断线重连问题

美洽的智能客服产品侧使用了 WebSocket 进行长连接保持和消息通信,所以非常依赖网络的稳定,以及更新网关配置所带来的副作用。在使用 Nginx + OpenResty 方案的期间,每一次的配置变更都会带来极大的代价,断线重连风暴时常发生。一次配置变更 Pendding 或者变更失败带来的瞬时断联是极其痛苦的。


image.png


在迁移到 Higress 上之后,路由配置热更新特性,不再需要像 Nginx 一样需要 Reload Gateway,解决配置更新 reload 带来的断线重连风暴问题。另外,在 WebSocket Server 服务升级过程中,通过给 Pod 打上 stage 标签,在 Higress 侧通过标签路由进行新老版本无损流量切换,给产品快速迭代升级带了巨大的杠杆效应。


熔断限流

在面向 2B 的 SaaS 产品业务场景中,经常会发生某一个客户突发海量流量,占据大量带宽,影响其他客户正常使用的情况,这时我们需要针对客户规模对单个客户的 API 并发上限做灵活的动态限流,使用 Higress 的插件Key Rate Limit 就很好的解决了这个问题,根据流量大盘随时调整限流水位红线,做到精准,灵活的限流。


image.png


经验总结


Higress 网关的落地,给企业全面落地云原生微服务架构提供强有力的支持,对我们技术人员来说,这绝对是一个杠杆级别的开源产品,另外,在阿里云上又有对等的 SaaS 产品,这样的配合,将公有云和私有化部署的统一网关一次性全部解决,对企业来说是绝对的利好。


  1. 统一流量网关+业务网关能力,实现了给企业降本,为研发增效;
  2. 为云原生架构提供很好的基座,在异构语言服务化层面排除了网络通信难题;
  3. 路由热更新、无损升级、可视化 Console、开放的插件、基于 Kubernetes 和 Istio,给技术演进带来了更多的可能性。


最后,我们祝愿 Higress 在云原生的道路上越走越远,大家一起用开源、开放、分享的心态将 Higress 建设地越来越好。

相关文章
|
8天前
|
人工智能 自然语言处理
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
RWKV-7是RWKV系列的最新大模型架构版本,具有强大的上下文学习能力,超越了传统的attention和linear attention范式。本文详细介绍了RWKV-7的主要功能、技术原理及其在多语言处理、文本生成等领域的应用场景。
66 7
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
|
3月前
|
人工智能 自然语言处理 搜索推荐
AI战略丨SaaS 遇见 AI, 企业教培开启新范式
“我们会不断完善整体的工程能力,争取以最低的成本,帮助用户训练他们所需要的、好用的 AI 产品。”
|
1月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
1月前
|
负载均衡 Java API
项目中用的网关Gateway及SpringCloud
Spring Cloud Gateway 是一个功能强大、灵活易用的API网关解决方案。通过配置路由、过滤器、熔断器和限流等功能,可以有效地管理和保护微服务。本文详细介绍了Spring Cloud Gateway的基本概念、配置方法和实际应用,希望能帮助开发者更好地理解和使用这一工具。通过合理使用Spring Cloud Gateway,可以显著提升微服务架构的健壮性和可维护性。
44 0
|
2月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
253 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
1月前
|
编解码 人工智能 开发者
长短大小样样精通!原始分辨率、超长视频输入:更灵活的全开源多模态架构Oryx
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据。其核心创新在于能够对图像和视频进行任意分辨率编码,并通过动态压缩器模块提高处理效率。Oryx 在处理长视觉上下文(如视频)时表现出色,同时在图像、视频和3D多模态理解方面也展现了强大能力。该模型的开源性质为多模态研究社区提供了宝贵资源,但同时也面临一些挑战,如选择合适的分辨率和压缩率以及计算资源的需求。
37 3
|
1月前
|
安全
企业远程控制,SaaS和私有化部署方案对比?
随着疫情和信息技术的发展,办公方式日益灵活,不再局限于固定场所。然而,如何高效地远程访问公司电脑或设备成为关键。个人和企业在选择远程办公方案时,需考虑不同的因素。个人用户可选择市面上的SaaS服务,满足偶尔的远程需求;而企业则需关注安全性、部署便捷性、使用管理和与现有系统的集成。内信互联DoLink企业远程控制系统专为企业设计,支持私有化部署,提供高安全性和可定制化解决方案,帮助企业根据自身需求选择合适的远程控制方案。
45 0
|
3月前
|
存储 监控 安全
SaaS业务架构:业务能力分析
【9月更文挑战第20天】在数字化时代,软件即服务(SaaS)模式逐渐成为企业软件解决方案的首选。SaaS 业务架构设计对于提供高效、可靠的服务至关重要。其核心业务能力包括:用户管理(注册登录、角色权限)、数据管理(存储备份、安全共享)、业务流程管理(设计定制、工作流自动化)、应用集成(第三方应用、移动应用)及客户服务(支持培训、反馈改进)。通过优化这些能力,可为企业提供更高效、可靠的 SaaS 服务。
71 11
|
2月前
|
存储 前端开发 数据库
一文搞懂SaaS应用架构:应用服务、应用结构、应用交互设计
【10月更文挑战第21天】本文介绍了 SaaS 应用服务的多租户服务、安全服务和更新与维护服务,以及 SaaS 应用的前后端结构和交互设计。多租户服务涉及数据隔离和资源分配;安全服务包括身份认证与授权及数据安全;更新与维护服务涵盖版本管理和技术支持。前端结构关注用户界面设计和前端技术选型;后端结构则涉及微服务架构和数据库管理。交互设计强调租户与应用的交互和应用内部模块间的交互。
249 0
|
2月前
|
前端开发 JavaScript NoSQL
无界SaaS商群扶持金详解:解决企业融资难缺乏现金流难题
该内容概述了一个复杂的系统转化任务,涉及用户管理、信用评估、数据流量追踪、资金管理等多个模块。技术栈建议使用Node.js或Python作为后端,MySQL或MongoDB作为数据库,React或Vue.js构建前端界面,React Native或Flutter开发移动应用,可选区块链技术实现去中心化管理。提供了一个简化的Node.js后端示例代码,涵盖用户注册、登录及V值管理等功能,强调了安全性、扩展性、测试和部署的重要性。