注册配置、微服务治理、云原生网关三箭齐发,阿里云 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 推送功能的履约情况,极大的提高问题的排查效率。

开源性能优化是开源自建的必修课,往往也是商业化服务会去精耕细作的能力。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 专业版默认支持多可用区部署,获得更高的容灾级别,加强了最后一道防线。

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

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

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

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

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

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

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

  • 慢 SQL 治理:MSE 提供了秒级的 SQL 调用监控,再根据 MSE 自动识别的 SQL 语句,可以对出现慢 SQL 的应用配置线程数维度的流控或降级规则,防止过多的慢 SQL 语句执行把资源耗尽。
  • 连接池治理:MSE 通过提前建连、"坏"连接剔除、访问控制,来有效地提前识别系统中存在的风险。
  • 数据库灰度:MSE 通过影子表的方式,用户可以在不需要修改任何业务代码的情况下,实现数据库层面全链路灰度。
  • 动态读写分离:MSE 提供了一种动态数据流量治理的方案,可以在不需要修改任何业务代码的情况下,实现数据库的读写分离能力。

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

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

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

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

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

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

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

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

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。

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

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

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

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

另外,费芮在容器化改造后仍有一些传统的单体应用,服务之间通过域名方式调用,无法统一使用 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 常用注解的全面兼容,使费芮很低成本地完成了网关这个关键组件的迁移,且不需要改变平时的操作和运维方式。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新零售标杆 SKG 全面拥抱 Serverless,实现敏捷交付

项目背景 SKG 公司是一家专注于高端健康产品的研发、设计与制造的企业。专注为消费者提供精致、时尚的高端产品,以及极致的按摩仪产品体验。 随着市场需求的迅速变化,SKG 的 IT 系统也逐渐面临着库存不准确、线上线下渠道无法协同、部署架构不灵活、IT…

Mobius函数计算 定义+代码模板

Mobius函数定义为,输入一个正整数N,当N1时,函数值为1,当N不为1时,首先在稿纸上将它分解质因数,若某质因数的个数大于1,则函数值为0,如N45,453*3*5,3出现了两次&#xff0…

不仅有0.0075元的深度冷归档,更有对下一代云存储的重新定义

前言:重新定义下一代云存储,需要继续保障稳定、安全、可靠和低成本,进一步演进 Serverless 能力,智能适配负载变化,提供智能数据管理能力以及全场景覆盖不断发展的新负载。 阿里云存储的创新活力,不仅拓展了…

一图看懂镜像

原文链接 本文为阿里云原创内容,未经允许不得转载。

数值方法求积分 详解+模板代码

什么是数值积分 数值积分可以用来求定积分的近似值。对于很多函数来说,我们是可以使用初等函数来表示出其积分的,对于这种函数,只需要求出不定积分然后代入值就能得到定积分了。 可是除此之外还有许多难求的函数和没法使用初等函数表示的函数…

用积木讲运维,这样的IT人太会了

积木的拼搭,是件细致工作。用不同的积木,进行组合变换,小孩子可能会用积木搭高楼、搭汽车、搭公路,而IT人则选择通过搭建小积木,讲解可观测的大乾坤。 大家所熟知的日志服务SLS不只是“日志存储”,更是一个…

再谈数据湖3.0:降本增效背后的创新原动力

前言:2022年3月 31 日,阿里云全球数据湖峰会上,阿里云从“湖管理、湖存储和湖计算“这三个方面,为观众带来了“数据湖 3.0” 的重磅升级方案。在时隔两百多天的云栖大会上,阿里云存储对数据湖的能力,进行了…

原码 反码 补码 详解

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 3 &…

谈谈 PolarDB-X 在读写分离场景的实践

在数据库使用过程中经常会遇到一些场景: 业务写流量一直相对比较稳定,但随着时间,数据不断增加,数据库的压力也会越来越大,写操作会影响到读请求的性能,做任何优化可能都达不到最终的效果;在应…

开源数据库 PolarDB 为什么能捕获娃哈哈的心?

一、娃哈哈的需求 娃哈哈已经使用PostgreSQL多年,使用了大量逻辑复制,且备库仅提供一些业务的只读服务。同时,其重要业务的数据库运行在共享SAN存储上。因此,它存在主备库延迟较大、逻辑复制不稳定且延迟大的痛点。 二、使用Pola…

数据库 PolarDB 开源之路该如何走?听听他们怎么说

阿里巴巴集团副总裁、阿里云数据库事业部负责人李飞飞出席了沙龙并致开场辞:PolarDB 是阿里云的明星产品,做出将PolarDB 开源的决策需要非常大的勇气。将最核心的数据库产品对外开源,且使用了最友好的协议,阿里云是全球头部云厂商…

通过定时 SQL 提取阿里云API 网关访问日志指标

背景 阿里云API网关服务提供API托管服务,提供了强大的适配和集成能力,可以将各种不同的业务系统API实现统一管理。API网关同时支持将API访问日志一键存储到日志服务,通过日志服务强大的查询分析能力,用户可以针对访问日志自定义计…

2022云栖现场|体验阿里巴巴工作数字化实践

越来越多的企业主动拥抱数字化转型,借助数字化工具提高企业运营效率,实现企业目标落地、帮助员工成长。 2022云栖大会,阿里巴巴企业智能带来阿里数字化工作方法与企业IT解决方案,展示着阿里内部在办公协同与IT管理上的实际应用场…

K8s 场景下 Logtail 组件可观测方案升级-Logtail 事件监控发布

背景 随着K8s和云的普及,越来越多的公司将业务系统部署到云上,并且使用K8s来部署应用。Logtail是SLS提供的日志采集Agent,能够非常好的适应K8s下各种场景的日志采集,支持通过DaemonSet方式和Sidecar方式采集Kubernetes集群的容器…

一图看懂,阿里云飞天企业版如何支持政企数智创新

杭州,2022年11月5日 – 今日,在云栖大会专有云技术和应用实践论坛,阿里云重磅发布飞天企业版在建云、管云、用云方面的全面升级,并邀请行业专家、政企客户代表和合作伙伴面向未来十年共话新一代政企IT发展趋势,分享阿里…

关于HTTPDNS,你知道多少?

什么是HTTPDNS? HTTPDNS是面向多端应用(移动端APP,PC客户端应用)的域名解析服务,具有域名防劫持、精准调度、实时解析生效的特性。 HTTPDNS工作流程 客户端直接访问HTTPDNS接口,获取业务在域名配置管理系…

当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界

导读 用户生成内容(User Generated Content,UGC)是互联网上多模态内容的重要组成部分,UGC数据级的不断增长促进了各大多模态内容平台的繁荣。在海量多模态数据和深度学习大模型的加持下,AI生成内容(AI Gen…

使用 EasyCV Mask2Former 轻松实现图像分割

导言 图像分割(Image Segmentation)是指对图片进行像素级的分类,根据分类粒度的不同可以分为语义分割(Semantic Segmentation)、实例分割(Instance Segmentation)、全景分割(Panoptic Segmentation)三类。图像分割是计算机视觉中的主要研究方向之一,在医…

八皇后问题详解(最短代码)

八皇后问题算法分析: 分析1:八皇后由一个64格的方块组成,那么把八个皇后放入不考虑其他情况利用穷举法,有8^64种 可能。 分析2:显然任意一行有且仅有1个皇后,使用数组queen[0->7]表示第i行的皇后位于哪一…

5个编写技巧,有效提高单元测试实践

1. 什么是单元测试 “在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最…