注册配置、微服务治理、云原生网关三箭齐发,阿里云 MSE 持续升级

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: MSE 云原生网关作为托管型的独享实例,与部署业务应用的资源解耦,并支持过载保护、故障自愈、限流降级等功能,确保流量高峰时的稳定性。其优异的性能表现使费芮不需要高规格的资源配置即可支撑大规模的业务调用。

作者:MSE


背景


  • 注册中心是日常使用频率很高的微服务组件,通过较低的资源溢价帮助客户缩短微服务的构建周期、提升可用性; 


  • 微服务治理实现了 0 门槛就能接入全链路灰度、无损上下线、限流降级、环境隔离、数据库治理等能力,轻松完成开源到稳定生产的跨越; 


  • 云原生网关则将网络入口的流量调度能力和后端的服务发现、服务治理能力相结合,从架构层面来提升全链路的性能和安全性。


这是 MSE 提供的三大核心产品能力之间的底层关联,产品研发团队保持每月至少迭代一次的投入,来持续提升产品竞争力。基于此,我们将 MSE 近期发布的重要能力做了一次汇总。


注册配置中心更新版本体系、升级产品能力


新增开发版,开发测试环境也能使用 Nacos2.0、ZooKeeper3.8 的引擎版本


MSE 最早提供的是基础版和专业版,但是哪个版本适用于生产、哪个版本适用于测试,并不显而易见,增加了客户选型的时间成本;基础版不支持 Nacos2.0、ZooKeeper3.8,使得使用开源 Nacos2.0、ZooKeeper3.8 的客户,在测试环境也必须购买价格更高的专业版。


在最新发布的版本中,MSE 取消基础版、上线开发版,并且开发版也支持 Nacos2.0、ZooKeeper3.8 ,这样一来,就降低了客户测试环境的使用成本,也屏蔽了测试、生产不同环境版本选型的干扰。


MSE Nacos 专业版新增推送轨迹功能,读写性能提升 40%+


是否能平滑迁移是客户选型商业化产品优先会考虑的条件之一。新版本中,MSE Nacos 提供了低版本到高版本、自建 Nacos 到 MSE Nacos 的平滑迁移方案,并且支持 Eureka 协议、ACM 协议。


注册中心的调用和配置变更都是高频使用功能,一旦出现异常,问题排查就成了用户最大的困惑,是注册和配置中心导致的,还是上下游业务自身的问题呢?新版本中,MSE Nacos 专业版提供可视化的数据观测界面和推送轨迹能力,从而非常清晰地观测到 Nacos 推送功能的履约情况,极大的提高问题的排查效率。


1.png


开源性能优化是开源自建的必修课,往往也是商业化服务会去精耕细作的能力。MSE Nacos 专业版基于阿里高性能 JDK Dragonwell 构建并且深度调优,并且 Nacos 本身基于企业级场景进行性能调优,使得 MSE Nacos2.0.4.0 版本性能比历史版本提升 40%+。


此外,与阿里云产品体系无缝对接,例如日志服务、服务治理、SSL 证书、观测、压测工具等,减少了云上的接入成本,支持注册中心 RAM 鉴权,整体支持管控策略配置,安全性也获得了全面提升。


MSE ZooKeeper 丰富可观测能力、多可用区部署,提高集群稳定性,读写性能大幅提升


开源 ZooKeeper 在可观测姓比较欠缺,这也导致较高的故障排查成本。MSE ZooKeeper 专业版和普罗米修斯进行了深度集成,并且可以免费使用,提供了 20 多个 Zookeeper 常用的观测指标,4 个核心资源观测指标,开放 70 多个 Metrics 指标,极大地提升了可观测性。


托管是起点、可观测是核心过程、保平安是最终目的。MSE ZooKeeper 专业版默认支持多可用区部署,获得更高的容灾级别,加强了最后一道防线。image.gif


2.png


MSE ZooKeeper 专业版基于阿里高性能 JDK Dragonwell 构建并且深度调优,读性能提升 1 倍,写性能提升 10% 以上,GC 时间降低 80%。


微服务治理升级流量治理、新增数据库治理和 Go 技术栈支持


限流降级全面升级为流量治理,全面增强弹性、依赖中间件的稳定性及流量调度的性能


当流量超过系统负载时,可以通过限流降级来保障应用稳定性。限流降级是流量治理范畴比较常见、使用范围较大的能力,但仅仅是限流降级并无法解决所有的应用稳定性问题。MSE 微服务治理基于开源 OpenSergo 的微服务治理标准,提供全方位的、无入侵的、零门槛的应用视角治理能力,将限流降级和灰度发布、无损上线等流量治理能力融合在一起,提供单机流量防护、集群流量防护和网关流量防护。


3.png


此外,升级后的流量治理可应用于微服务的全链路,比如在流量入口层,可通过网关方式接入、在微服务层面不仅可保护微服务自身,也可以保护微服务依赖的中间件、如缓存、数据库等三方依赖、若通过 ACK 或者 Agent 方式接入,则无需改造一行代码即可轻松接入,若有高阶流量治理的需求,如自定义埋点,可通过 SDK 方式接入。


发布数据库治理能力,加固端到端的稳定性


在分布式系统架构中,业务的流量都是端到端的。每个请求都会经过很多层处理,比如从入口网关再到 Web Server 再到服务之间的调用,再到服务访问缓存或 DB 等存储。对于我们的系统来说,数据库是非常重要的一块。因此无论是在稳定性的治理上,还是在开发提效等场景下,数据库相关的治理能力都是我们系统所需具备的能力。


  • 慢 SQL 治理:MSE 提供了秒级的 SQL 调用监控,再根据 MSE 自动识别的 SQL 语句,可以对出现慢 SQL 的应用配置线程数维度的流控或降级规则,防止过多的慢 SQL 语句执行把资源耗尽。 


  • 连接池治理:MSE 通过提前建连、"坏"连接剔除、访问控制,来有效地提前识别系统中存在的风险。 


  • 数据库灰度:MSE 通过影子表的方式,用户可以在不需要修改任何业务代码的情况下,实现数据库层面全链路灰度。 


  • 动态读写分离:MSE 提供了一种动态数据流量治理的方案,可以在不需要修改任何业务代码的情况下,实现数据库的读写分离能力。 


4.png


发布面向 Go 技术栈的限流降级能力


随着 Go 语言、云原生的广泛采用,Go 语言在微服务场景中使用的越来越广泛,对 Go 语言微服务的治理、限流降级需求也越来越强。在 Go 语言中,虽然社区提供了 go.uber.org/ratelimit 等限流库,但其一,对多语言支持不足,只支持 Go,其二,功能上,限流降级会细分为流控、隔离、熔断、热点等功能,也不支持动态配置,在功能支持度上不够完善。


MSE 结合 Sentinel,给 Go 语言、Java 语言应用带来微服务治理能力。在微服务应用中,限流降级主要分为三步:


  • Target: 针对什么样的流量
  • Strategy: 限流降级的策略
  • FallbackAction: 触发后的行为 


比如,针对订单创建接口(Target),我们限制请求为 1000QPS(Strategy),触发限流后,请求返回异常(FallbackAction)。在 MSE 支持通过开源 Sentinel 的方式来定义资源,并从 MSE 获取、应用限流降级规则,整体接入如下:


5.png


OpenSergo 全面覆盖流量路由、流控降级与容错等微服务治理领域


OpenSergo 是阿里巴巴、字节、bilibili 等企业一起共建的一套开放通用的、面向云原生服务、覆盖全链路异构化生态的微服务治理标准,并根据标准提供一系列的 API 与 SDK 实现。


OpenSergo 标准基于微服务治理中相关领域的实践与场景抽象,覆盖了服务元信息、流量治理、服务容错、数据库/缓存治理(微服务应用视角)、服务注册发现、配置治理等十几个关键领域,覆盖了完整的微服务生命周期(从开发态到测试态,到发布态,再到运行态)。无论我们是希望针对 Spring Cloud + Dubbo 服务链路配置流量灰度隔离,还是希望针对一个 Go gRPC 服务进行流量控制,还是希望针对服务访问数据库的慢 SQL 调用进行自动熔断,我们都可以利用 OpenSergo spec 中定义的 CRD 标准来进行统一配置,而无需关注各框架不同的声明式 API 及互不兼容的配置格式。


6.png


OpenSergo 项目涵盖服务元信息、服务注册发现、流量治理、服务容错、数据库治理、缓存治理等领域。在我们的首个版本 v1alpha1 版本中,社区一起发布了 服务契约(元数据)、流量路由、流控降级与容错、数据库治理 这几个领域的 CRD 标准。MSE 作为微服务治理的企业级产品,原生支持 OpenSergo 标准。


云原生网关升级产品能力,无缝融入 Kubernetes 生态、提效微服务上云


无缝兼容 Nginx Ingress 注解:迁移成本更低、功能与性能更高


MSE Ingress Controller 通过 List-Watch 机制获取关联的 ACK 集群中 Ingress 资源的变化,然后以热更新的方式动态更新 MSE 云原生网关的路由规则。当 MSE 云原生网关收到请求时,匹配 Ingress 转发规则转发请求到后端 Service 所对应的 Pod。


相比 Nginx Ingress Controller,MSE Ingress Controller 是以热更新的方式秒级生效监听到的 Ingress 资源,这种无需重启数据面即可生效配置的方式大大提高了集群入口网关的稳定性,有效保障了业务流量无损。更重要的是,MSE Ingress Controller 可以进行多集群管理,即同时作为多个集群的入口网关,意味着可以同时监听多个集群中的 Ingress 资源,解决用户跨 Kubernetes 集群流量调度和流量治理问题。


  • 平滑迁移:兼容 Nginx Ingress 注解 80%+使用场景
  • 架构安全:相比 Nginx Ingress 采用数据面、控制面分离部署且资源隔离,架构设计更安全
  • 扩展丰富:相比 Nginx Ingress 提供更丰富的扩展注解,例如认证鉴权、Header 控制、限流、安全防护
  • 性能强劲:支持 HTTPS 硬件加速,QPS 性能提升约 86%


支持 HTTP 转 Dubbo:帮助传统微服务用户快速上云


Dubbo 作为 RPC 服务对外提供服务,而 RPC 不适合直接暴露在公网上提供南北向流量的用户请求。通常情况下,公网上的流量都会走 HTTP 或 HTTPS,接收到公网流量后,由第一层的网关做协议转换,转为 Dubbo ,再由网关将 Dubbo 的请求分发给后端的 Dubbo provider。


云原生网关也对上述典型场景提供了支持。在 Envoy 侧插入了 Dubbo 的 Transcoder filter ,由它完成 HTTP 请求到 Dubbo 请求的协议转换。第一阶段,转换功能会支持 HTTP 转 Dubbo 2.X 版本,并支持从 Nacos 订阅 Dubbo 注册信息。后续将支持从 Zookeeper 订阅 Dubbo 注册信息,以及支持 HTTP 转 Dubbo 3.0。image.gif


7.png


此外,MSE 云原生网关集成 Sentinel 限流降级且支持一键压测,来快速提升高可用建设能力,安全防护能力也获得了大幅提升,通过信通院最高安全评测等级,并且支持版本自升级及业务服务的主动健康检测,以提升服务自治能力。


费芮移动:不改运维习惯、平滑迁移、构建更高性能和稳定性的下一代网关架构


MSE 云原生网关已经成为容器化过程中,升级网关架构、提升网关性能和稳定性的新选择。例如费芮互动每日处理粉丝交互超过 1 亿次, 电子券系统发放 6 亿+张电子券,4 万+门店使用费芮移动支付解决方案,支付系统每月处理 3000 万+ 笔。如此大规模的业务流量对网关接入层的性能和稳定性提出较大的挑战。


费芮的业务应用部署在阿里云容器服务 ACK 上,基于 Nginx 的 K8s Ingress 入口网关,与业务应用混布在同一集群中,对于突发流量的应对以及横向扩缩容能力有限,同时海量 C 端用户发起的 HTTPS 请求会产生大量的 TLS 加解密操作,对服务器的 CPU 造成了很大的压力,从而影响业务系统的稳定性。


8.png


另外,费芮在容器化改造后仍有一些传统的单体应用,服务之间通过域名方式调用,无法统一使用 K8s Service 进行统一管理。客户急需高性能、高可用的网关接入层,能够对南北向和东西向的流量进行统一管理,同时希望能平滑迁移存量路由配置,减少网关替换的工作量:


  • 选用 MSE 云原生网关作为阿里云容器服务 ACK 的 Ingress 网关,可将 ACK 集群内服务一键导入与自动同步,并支持多个 ACK 集群复用同一个网关实例; 


  • 兼容 K8s Ingress 规范,且支持 Nginx Ingress 核心功能注解的无缝转换。通过 ack-mse-ingress-controller 组件,可自动监听、解析 K8s 集群中 Ingress 资源,将 ACK 中的 Ingress 路由直接同步至云原生网关中生效; 


  • 直连业务 Pod IP,不经过传统 Cluster IP,RT 更低;通过对 OS 内核参数与组件调优,QPS 比 Nginx 提升约 40%;利用硬件卸载 TLS 证书验证加速, HTTPS QPS 提升 80%; 


  • 利用 MSE 云原生网关的路由管理能力,既能实现南北向流量调度将服务对外暴露,也能支持东西向流量调度协助传统应用的服务间调用。丰富的负载均衡、限流降级、流量分发策略,可保证系统的稳定性,并满足业务快速迭代需求。


MSE 云原生网关作为托管型的独享实例,与部署业务应用的资源解耦,并支持过载保护、故障自愈、限流降级等功能,确保流量高峰时的稳定性。其优异的性能表现使费芮不需要高规格的资源配置即可支撑大规模的业务调用。灵活的路由策略使费芮可以对新老应用的服务调用进行统一的配置和管理,而对 Ingress 标准及 Nginx 常用注解的全面兼容,使费芮很低成本地完成了网关这个关键组件的迁移,且不需要改变平时的操作和运维方式。


MSE 注册配置首购 8 折,首购 1 年及以上 7 折。MSE 云原生网关预付费全规格享 9 折优惠。点击此处,即享优惠!

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
523 69
|
9天前
|
Java 网络安全
zookeeper的环境搭建和配置
本文介绍了如何在多台节点上搭建和配置Zookeeper环境。内容包括Zookeeper的下载、解压、环境变量配置、配置文件修改、zkdata目录创建、myid文件设置,以及将Zookeeper及其配置文件复制到其他节点。还提供了运行测试的命令,包括启动、状态检查和停止Zookeeper服务。
zookeeper的环境搭建和配置
|
1月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
185 12
|
26天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 08 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
人工智能 Java 测试技术
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
就AI 基础设施的演进与挑战问题之ZooKeeper的稳定性提升配置优化的问题如何解决
|
2月前
|
负载均衡 Java Nacos
EureKa详解:微服务发现与注册的利器
EureKa详解:微服务发现与注册的利器
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2024 年 07 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
2月前
|
Kubernetes Nacos 微服务
微服务注册与发现的原理与实现
微服务注册与发现的原理与实现
|
2月前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
47 0
|
2月前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
110 0

相关产品

  • 微服务引擎
  • 下一篇
    无影云桌面