蚂蚁金服 Service Mesh 大规模落地系列 - 质量篇

监控告警落地的本质:从指标采集到告警响应的工程化闭环 监控(monitoring)与告警(alerting)是现代可观测性体系的核心能力,其底层依赖时间序列(time series)数据的持续采集、存储与分析。真正有效的监控并非简单堆砌Dashboard或设置阈值,而是围绕业务黄金信号构建可度量、可推理、可响应的全链路闭环——涵盖指标(metrics)定义、告警策略分级、可视化认知设计及数据治理。尤其在微服务与多云架构下,脱离业务语义的指标、缺乏抑制逻辑的告警、违背人因工程的Dashboard,以及标签爆炸导致的time series失真,都会使系统沦为‘数据 阅读详情

本文为《蚂蚁金服 Service Mesh 大规模落地系列》最后 一篇 - 质量篇,该系列从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。

前言

Service Mesh 在蚂蚁金服内部已经大规模落地,并经历双十一的检阅,将现有的体系快速演进至 Service Mesh 架构,无异于给飞机换发动机。本主题主要分享在蚂蚁金服当前的体量下,我们如何做到在确保不出问题的前提下给飞机换发动机。

本文结合蚂蚁金服 Mesh 化落地质量保障落地的思考,给大家带来如下三个方面的一些质量保障的分享:

  • Mesh 化质量保障体系;

  • Mesh 化测试技术;

  • Mesh 化双十一大规模落地的性能保障;

质量保障体系

首先给大家介绍下我们的质量保障体系。

测试保障体系

我们从测试环境、测试用例、基础功能测试原子镜像能力、测试工具平台、测试场景组合调度、测试方案制定、线上巡检监控、灰度发布三板斧、交付验证、性能、自动化测试等多个方面进行系统性测试保障。通过内外部的质量数据度量和双十一大促来检阅我们的质量能力。

Mesh 测试技术

在开始介绍测试技术之前,我们先了解一下什么是 Service Mesh 以及 Service Mesh 是如何工作的,在蚂蚁金服的技术架构中是以什么形式存在,发挥着怎样的作用。

简单的说 Service Mesh 存在两个面,一个面叫数据面(比如 MOSN),就是处理应用数据请求的一个独立代理模块,脱离于应用,为应用提供请求代理及一些复杂通信逻辑处理,另外一个叫控制面(比如 SOFAMesh),管理应用配置及业务规则等(比如业务开关/服务路由规则),通过下发配置“指挥”数据面去执行,满足不同阶段实现不同的业务支持。

Mesh 框架简图

我们先简单介绍下经典微服务请求路由。

经典微服务模式请求路由

经典微服务模式下 Docker 镜像化服务在一个 Pod 一般只有一个业务应用容器在运行,这种情况下测试框架只要关心业务应用即可。

经典微服务测试架构

Mesh 测试架构改进

Mesh 测试架构在经典微服务测试架构上也做了新的演进。MOSN 作为 Sidecar 与业务容器共存在一个 Pod,资源与业务应用容器共享,每个业务逻辑都需要通过 MOSN 去处理,因而只关心业务应用肯定不够,需要再扩展支持到 MOSN 这类 Sidecar 的测试验证。在 MOSN 中集成了控制面 xds client,与控制面 pilot 建立通信,用于接收 pilot 下发的配置信息。在蚂蚁金服技术架构存在三地五中心/同城双活等容灾能力,因而产生了 LDC,一个集群多个 zone 情况,控制面 pilot下发是可以配置集群+zone+应用+ip 组合粒度,要验证这个多 zone 下发规则准确性,那就需要创建多个 xds client(或者 MOSN)。另外 Sidecar 是不能直接访问的,通过测试应用暴露出接口,给上层测试。演进后的 Mesh 测试架构简述如下:

Mesh 化测试架构

构建高仿真测试环境

那么,我们测试环境要做到足够仿真,面临哪些挑战呢?首先看下我们自研的 MOSN 具备的能力和技术复杂性。

 MOSN 能力大图

MOSN:https://github.com/mosn/mosn

应对 MOSN 测试场景复杂性,我们搭建了一套高仿真测试环境,这里以 MOSN 中的 RPC 功能为例,阐述这套环境的构成要素及环境部署架构。

集成测试环境构成要素

这里可以举一个 RPC 路由的例子来详细讲述。我们知道,业务在做跨 IDC 路由时,主要通过跨域 VIP 实现,这就需要业务在自己的代码中设置 VIP 地址,如果 VIP URL 指定了 12200 端口,却又同时指定了 http,这种配置是不合法的,就会出现问题,这时候测试环境就需要跨 zone、跨  LDC 的测试环境。我们在多数复杂产品测试里都会遇到,极度复杂测试场景无法 100% 分析充分。一般对于这种场景,我们可以借助于线上流量回放的能力,将线上的真实流量复制到线下,作为我们测试场景的补充。这也需要非常仿真的测试环境做 MOSN 的流量回放支撑。

兼容性测试

MOSN 兼容性验证

我们通过一个例子来详细阐述:老版本的 RPC 中我们支持 TR 协议,后续的新版支持 BOLT 协议,应用升级过程中,存在同时提供 TR 协议和 BOLT 协议服务的情况,如下图:

应用升级过程中,相同接口提供不同的协议服务

首先,应用向 MOSN 发布服务订阅的请求,MOSN 向配置中心订阅,配置中心返回给 MOSN 两个地址,分别支持 TR 和 BOLT,MOSN 从两个地址中选出一个返回给应用 APP。

这里兼容性风险是:MOSN 返回给 APP 的地址是直接取配置中心返回的第一条数据,这里可能是 TR 也可能是 BOLT。

如果 MOSN 返回给应用的地址是支持 BOLT 协议的服务端,那么后续应用发起服调用时,会直接以 BOLT 协议请求 MOSN,MOSN 选址时,会以轮询的方式两个服务提供方,如果调用到 Server1,就会出现协议不支持的报错。因此我们针对各种兼容性具体场景都要做好分析和相应的测试。

MOSN 的鲁棒测试(稳定性、健壮性)

从 MOSN 的视角来看,其外部依赖如下:

MOSN 外部依赖图

除了验证 MOSN 自身的功能外,我们还通过故障注入的方式,对 MOSN 的外部依赖做了专项测试。通过这种方式,我们发现了一些上述功能测试未覆盖的场景,这里以应用和 MOSN 之间的 12199 端口举例。

应用 APP 接入 MOSN 后,原先应用对外提供的 12200 端口改由 MOSN 去监听,应用的端口修改为 12199,MOSN 会向应用的 12199 端口发送心跳,检测应用是否存活。

如果应用运行过程中出现问题,MOSN 可以通过心跳的方式及时感知到。

MOSN 与 APP 心跳断连处理示意图

如图所示,如果 MOSN 感知到心跳异常后,会向配置中心取消服务注册,同时关闭对外提供的 12200 端口服务。这样做的目的是防止服务端出现问题后,仍收到客户端的服务调用,导致请求失败。

测试该场景,我们通过自动化故障注入系统 drop 掉 APP 返回给 MOSN 的响应数据,人为制造应用 APP 异常的场景。通过这种方式,自动对比期望结果,判断是否异常,后自动进行故障恢复,继续下一个故障注入测试。

Service Mesh 双十一大规模落地的性能保障

Mesh 在落地过程中首先遇到的问题就是,蚂蚁金服如此大体量下,如何不出性能问题。MOSN 从能力上集成了中间件多种能力,因此线下压测比较复杂,在线上全链路压测开始之前,线下我们基于中间件的压测能力做了一轮自身的压测,上线后从业务角度再做全链路压测,问题就会少很多,蚂蚁全链路压测部分,是非常成熟的技术,各种材料也介绍过多次,相信大家都已经非常熟悉。蚂蚁金服中间件线下压测部分介绍比较少,因此我总结归纳给大家介绍下,如下图:

举个控制面 gc 压测分析的例子:

CRD 下发能力是控制面核心,加密通信也是基于 CRD 下发开关触发,而下发的关键性能点在于以下几个因素:

  • pilot 支持的 client 并发数;

  • 另外对配置下发实时性比较高,因而配置下发到 client 的耗时也是重要指标;

在压测过程中,没有足够资源来创建那么多 xds client,因而开发了 mock client(简化版 xds client),只保留核心通信模块,单 pod 可以支持万级的 client 模拟。在持续压测一段时间,我们发现内存频繁在 GC,导致耗时很高,pprof 分析内存。

MessageToStruct 和 FromJsonMap 最占内存,都是在对数据进行转换,MessageToStruct 之前有过同类优化,因此很快解决,但是 CRD 数据转换的核心 FromJsonMap,需要将数据转成 K8s 能识别的 yaml 信息。我们进行了改造,将一部分内存进行重用,并优化转换函数,耗时下降了好几倍,降到了毫秒级别。

总结

本文分享了 MOSN 落地过程中,我们的测试开发技术。Service Mesh 在蚂蚁金服还将持续演进,我们的质量防控体系还需持续建设,我们面临的挑战还很大。热烈欢迎有兴趣的同学加入蚂蚁金服中间件质量团队。

关于作者

张伟(花名:柑橘) 蚂蚁金服中间件质量团队负责人,关注领域:中间件测试开发技术。

王斌(花名:西经)蚂蚁金服 Service Mesh 质量主要负责人,主要 Focus 领域:MOSN。

吕超才(花名:柏翘)蚂蚁金服 Service Mesh 控制面质量负责人,主要 Focus 领域:SOFAMesh。

蚂蚁金服 Service Mesh 大规模落地系列文章

本文归档在 sofastack.tech。

 

程序员终身学习方法论:从高原期突破到知识织网 学习能力不是天赋,而是可训练的神经回路系统——它源于对问题本质的敏感、对知识转化的深度加工,以及将学习嵌入真实工作流的工程化实践。在AI辅助编程日益普及的今天,‘会学’比‘学会’更重要:Copilot能生成代码,但无法替代你判断何时该深挖原理、何时该重构设计;大模型能总结文档,却无法帮你建立HTTP状态码与JWT认证、Nginx配置、前端拦截器之间的动态知识网络。本文聚焦程序员最常遭遇的认知断层:高原期停滞、经典书读不懂、学习时间难合规、知识碎片难成体系。通过‘织网式学习’‘最小闭环验证’‘认知重启三线法’ 阅读详情

相关推荐

【信息科学与工程学】【产品体系】第三十九篇 IT产品系列需求01 互联网行业的需求

经过多轮补充,现整理出覆盖存储、网络、计算、安全、数据治理、AI治理、物联网/工控、管理与经营​ 八大领域的完整需求目录,共60条​ 详细需求。

weixin_49199313的博客 1402

蚂蚁集团技术专家山丘:性能优化常见压测模型及优缺点

陈显铭(山丘)读完需要6分钟速读仅需 2 分钟陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构、服务化、性能优化等有深入的理解。参与支付宝支付链路核心系统,设计、调优应用系统关键能力,...

中生代技术 703

【信息科学与工程学】【云计算】计算机科学与自动化——第十五篇 云计算10 云计算领域架构

​:作为前端请求的统一入口,负载均衡器基于预设算法(如轮询、最小连接数)动态分配流量至后端服务器集群。​:通过IP哈希或Cookie绑定,保障同一用户请求由同一服务器处理(如电商购物车场景)。​:Nginx(HTTP/HTTPS反向代理)、HAProxy(TCP层负载均衡)。​:实时监控服务器状态(如响应时间、连接数),自动剔除故障节点,确保服务连续性。​:本地资源满载时,将流量分流至公有云(如AWS + 私有云混合架构)。​:LSTM预测流量峰值,强化学习动态调整权重(如阿里云智能负载均衡)。

weixin_49199313的博客 1858

蚂蚁金服 API Gateway Mesh 思考与实践

本文整理自蚂蚁金服高级技术专家贾岛在12月28日Service Mesh Meetup杭州站现场分享。 MOSN 完成孵化, 启用独立 Group 2020.2019.12.18,MOSN 项目负责人、蚂蚁金服应用网络组负责人涵畅宣布 MOSN 完成从 SOFAStack 的孵化,将启用独立 Group 进行后续运作,欢迎大家共同建设社区。 MOSN 是一款使用 Go 语言...

weixin_42121754的博客 1338

Win10系统VS2019+Cmake+qhull_8.0.0环境配置

1 qhull 1.1 简要介绍 qhull是一个强大的计算几何库,可以用于计算高维的convex hull, Delaunay triangulation, Voronoi diagram等。 1.2 依赖库 qhull不依赖其他库。 1.3 源码包下载 qhull源码地址:github:https://github.com/qhull/qhull.git 2 Cmake构建项目 2.1 路径 源代码路径:D:/ThirdParty/qhull/qhull_8.0.0构建项目路径:D:/Thi.

wangchenxue的博客 2491

保姆级教程:用YOLOv8n模型在RKNN和Horizon平台完成目标检测(附C++部署代码与性能实测)

本文提供了一份详尽的YOLOv8n模型在RKNN和Horizon平台上的部署指南,涵盖环境配置、模型优化、跨平台适配及性能调优。通过实战案例和C++部署代码,帮助开发者在嵌入式设备上高效实现目标检测,显著提升推理性能。

weixin_42659194的博客 468

阿里中间件-全链路压测 总结

文章目录前言全链路压测文章地址具体流程要点 前言 这几天在面蚂蚁金服的国际支付事业部,刚好有个面试题是:全链路压测怎么设计?(ps:我当时有点闷逼的,因为我们一般就是用jmeter去进行压测,至于全链路怎么搞呢) 全链路压测 文章地址 全链路压测体系建设方案的思考与实践 具体流程 大概流程: 首先要做流量染色 ->流量识别->然后agent用字节码技术->改写sql 将数据落到影子表 要点 1.染色然后如何在全链路进行传递? A:这个可以参考阿里开源中间件sofatrace里面spa

大鸡腿的博客 1008

【AI编程】Cursor编程工具使用教程:下载、配置、使用、运行Java项目

【AI编程】Cursor编程工具使用教程:下载、配置、使用、运行Java项目

funfan的博客 5198

蚂蚁金服 Service Mesh 大规模落地系列 - 核心篇

揭秘 2019Service Mesh 双十一大考蚂蚁金服很早开始关注 Service Mesh,并在 2018 年发起 ServiceMesher 社区,目前已有 4...

金融级分布式架构 955

拼多多Android面试题及参考答案

Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。

大模型大数据攻城狮的专栏 1284

【x265编码器】章节6——x265的码率控制

对于CRF模式而言,右边这部分是是固定值m_rateFactorConstant,在初始化的时候确定,跟分辨率,qCompress这个参数是外部可设参数,默认值0.6,因此QP的选择只跟编码复杂度有关,跟码率无关,编码复杂度越高,QP值越高,因此可以一定程度上说CRF模式是恒定质量的编码模式。其中Complex表示当前帧的编码复杂度,x265中用lookahead模块计算的SATD作为衡量当前帧的复杂度,c为模型参数,qscale是率失真优化中的拉格朗日乘子,R为编码当前帧需要的比特数。

vcvdv123的博客 1万+

蚂蚁金服缘何自研Service Mesh?

2018年,微服务方兴未艾,Service Mesh(服务网格)又快速崛起。有观点认为,2018年可被称之为“Service Mesh元年”,在未来两年中,Service Mesh将迎来爆发式增长,成为下一代的微服务架构。那么,Service Mesh到底是什么?自2016年被提出,为何不到两年就获得了如此高的人气?Service Mesh又能为企业解决哪些问题?在近日召开的GIAC全球互联网架构...

msup789的博客 1569

解决QT5调用软键盘qvirtualkeyboard时崩溃问题ime_pinyin::MatrixSearch::init_user_dictionary

但是偶尔也会出现问题,譬如,我这边在Arm系统上跑着程序的时候,点击用户编辑框,输入法弹出,但是再次点击密码输入框,连程序都给我崩溃了。只是提示错误:void ime_pinyin::MatrixSearch::init_user_dictionary。首先确保你的Arm版QT库已经编译了软键盘,位置有时候就和lib同级目录,qtvirtualkeyboard。QT5中的软键盘qvirtualkeyboard很好用,很多人开发嵌入式端应用的时候都会用到。此外还有很多其他的输入法字典,像。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2067

复星金服微服务_蚂蚁金服 Service Mesh 大规模落地系列 - 质量篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》最后一篇 - 质量篇,该系列从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。前言Service Mesh 在蚂蚁金服内部已经大规模落地,并经历双十一的检阅,将现有的体系快速演进至 Service Mesh 架构,无异于给飞机换发动机。本主题...

weixin_34942564的博客 148

在VINS-FUSION上处理KITTI数据集(双目+GPS)

VINS-Fusion 是一个开源的实时多传感器状态估计库,主要由香港科技大学的沈邵劼教授领导的研究团队开发。它是 VINS-Mono(单目视觉惯性系统)的扩展,支持多种传感器组合,如双目、立体相机和IMU。

如果想成为中心,那么就到中心去吧。 1206

〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)

测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 "操作" 这一部分又是建立在 "selenium" 元素定位的基础之上的。所以对元素对象的定位就显得越发的重要,接下来我们就学习一下常用的元素定位方法有哪些。......

易编橙 · 终身成长社群,相遇已是上上签! 4万+

蚂蚁金服 Service Mesh 大规模落地质量管控

作者张伟(花名:柑橘) 蚂蚁金服中间件质量团队负责人,关注领域:中间件测试开发技术。王斌(花名:西经)蚂蚁金服 Service Mesh 质量主要负责人,主要 Focus 领域:MOSN...

weixin_45727359的博客 799

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蚂蚁金服 Service Mesh 大规模落地系列 - Operator 篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第六篇 - Operator 篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service ...

金融级分布式架构 556

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蚂蚁金服在 Service Mesh 监控落地经验分享

1引言Service Mesh 是目前社区最为炙手可热的技术方向,去年双11在蚂蚁金服得到全面的应用,并平稳顺滑的支撑了大促服务。作为目前规模最大的 Service Mesh 集群,本...

金融级分布式架构 971

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SOFA Weekly | Service Mesh 系列直播预告、Seata 发布

SOFA WEEKLY | 每周精选,筛选每周精华问答同步开源进展,欢迎留言互动SOFAStack(ScalableOpenFinancialArchitecture Stack)...

金融级分布式架构 352

2026年Java程序员核心技能与面试指南

分布式系统与云原生技术正在重塑Java开发者的技能图谱。从基础原理来看,分布式架构设计需要掌握数据分片、最终一致性等核心概念,而中间件深度应用则涉及Kafka、Redis等组件的性能调优。这些技术通过提升系统吞吐量和稳定性,在电商秒杀、金融交易等高并发场景中发挥关键作用。随着企业研发效能要求的提高,JVM调优和CI/CD实践也成为Java高级开发的必备技能。当前大厂面试特别关注候选人在分布式事务、ZGC垃圾回收器等领域的实战经验,建议开发者通过金字塔学习法系统构建知识体系。

weixin_33831196的博客 281

Python与Java技术选型实战指南:从设计哲学到生产落地

编程语言选型本质是工程约束下的理性决策,而非语法优劣之争。Python以动态类型、解释执行和丰富胶水生态著称,擅长快速原型、数据科学与自动化脚本;Java依托JVM平台、强类型系统与成熟企业级框架,保障高并发、长周期、多团队协作系统的稳定性与可维护性。二者差异根植于运行机制(解释器vsJIT)、类型模型(鸭子类型vs契约先行)与生态定位(轻量敏捷vs稳健可控)。在微服务架构、AI中台、金融核心等真实场景中,技术价值体现在开发效率、运行时确定性、运维可观测性及团队适配成本。本文基于2020年典型工程切片,解析

weixin_33700350的博客 315

蚂蚁金服的Service Mesh实践和展望

蚂蚁金服是国内最早一批使用 Service Mesh 的公司,并在蚂蚁金服内部大面积铺开,应用数百个,容器数量(pod 数)远超 10 万,具备目前全球最大的 Service Mesh ...

架构文摘 567

从蚂蚁金服实践入手,带你深入了解 Service Mesh

本文整理自蚂蚁金服高级技术专家敖小剑在 QCon 上海 2018 上的演讲。我是来自蚂蚁金服中间件团队的敖小剑,目前是蚂蚁金服 Service Mesh 项目的 PD。我同时也是 Servicemesher 中国技术社区的创始人,是 Service Mesh 技术在国内最早的布道师。我今天给大家带来的主题是\u0026quot;长路漫漫踏歌而行:蚂蚁金服 Service Mesh 实践探索\u00...

cpongo011702 2986

Service Mesh 在中国工商银行的探索与实践

Service Mesh 是下一代的微服务架构基础。蚂蚁集团从 2018 年初就开始了技术探索并进行了落地试点。目前, Service Mesh 覆盖了蚂蚁数千个应用,实现了核心链路全覆盖。 蚂蚁集团通过 Service Mesh 的大规模落地,向云原生走出了坚实的一步,验证了可行性,真切看到了基础设施下沉后无论是对业务还是对基础设施团队都带来了研发和运维效率的提升,成本的降低。 与此同时,蚂蚁也在积极将成熟的技术开放给社会,目前已将自研数据面 MOSN 开源,欢迎开源爱好者一起共建。 https://g.

金融级分布式架构 377
上一篇: 云原生网络代理 MOSN 平滑升级原理解析 | 开源
下一篇: 剖析 | SOFARPC 框架 合辑
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值