1、代码变更风险可视化系统建设与实践美团到家事业群自我介绍刘桂来,2019年加入美团在服务端质量保障体系建设上持续深耕与探索,当前主要负责履约业务质量保障建设工作,在代码变更风险分析、自动化测试、测试效能提升方面有丰富实战经验。目录(一)软件系统风险与变更(二)代码变更风险可视化(后羿)系统建设(三)代码变更风险可视化(后羿)系统实践(四)未来规划与展望(一)软件系统风险与变更软件系统风险与变更运营商网络变更基础硬件变更操作系统变更用户流量变更政策法规变更第三方组件变更第三方服务变更用户需求变更机房集群变更开发语言变更服务功能变更系统配置变更系统重构变更算法模型变更性能调优变更系统服务变更迭代流程
2、变更线上发布变更架构升级变更技术人员变更系统内部变更外部变更基础设施变更云服务容器变更变更是软件系统进化的推动力,也是孕育风险的温床!典型软件系统典型软件系统变更风险引发的典型线上事故外部变更代码变更代码变更配置变更人为变更到家业务形态加剧变更风险蝴蝶效应AA服务BB服务Service-F履约系统CC服务DD服务Service-G分单系统运力接入运力筛选Service-J运力系统X工程Y算法Service-H询价系统结算服务A结算服务BService-K结算系统结算服务A结算服务BService-B结算系统交易服务A交易服务BService-D交易系统活动配置活动运营Service-C活动系统
3、骑手终端用户终端用户终端商家终端商家终端业务平台履约平台美团内部业务Service-n服务2Service-N其他系统骑手终端业务多业务接入多参与方配合微服务架构超长业务链超复杂调用链配置强依赖用户商家骑手业务配置中心降级配置平台灰度配置平台算法配置平台美团外部业务变更风险的质量建设做功点系统内部变更引发故障占比较高,且与代码变更有直接或间接关系。问题一:代码变更风险是否可以被可视化感知?问题二:能否建立代码变更风险的质量保障体系?rpcinterface任务多线程Var变量事务链路分页类方法Xml配置文件DB库表消息httpinterface代码特征树举例Code(二)代码变更风险可视化(后
4、羿)系统建设代码变更风险的质量保障建设思路传传统统测测试试模模式式典型问题一:对代码变更缺少全面可视化能力变更了哪些特征?变更了哪些链路?典型问题二:影响范围评估更多依赖RD/QA经验过大:无效、重复过小:漏测、资损不清楚:盲测、低效代码验证变更与实现一致性业务Code CR需求文档技术方案测试用例变更实现变更来源(一)代码变更感知(一)代码变更感知 代码分析技术选型 支持代码不同存在形态 支持java多类型工程模式(二)代码特征刻画(二)代码特征刻画 支持基本特征(类.)业务特征刻画(接口.)调用链路分析(跨服务.)(三)应用场景生态圈(三)应用场景生态圈 变更影响面评估 风险特征预警与拦截
5、 配置变更风险预警 到家质量效能部打造的变更风险可视化系统,旨在全方位提升变更风险感知与拦截能力,赋能质效提升代码变更风险的质量保障整体方案基础组件层图数据库ES存储MYSQLASM库JavaParser库业务应用层长期赋能OpenApiOpenApi层层智能化已落地建设中长期规划特征刻画层代码分析层静态字节码分析抽象语法树分析动态链路分析定制化规则分析Jar包分析rpc服务分析web服务分析跨服务链路分析多module类型AI技术(代码克隆、检索)单module类型多线程特征分页类特征中间件特征DB类特征代码特征化标注代码结构化标注类结构化标注链路结构化标注接口结构化标注消息结构化标准测试提
6、效加强版codediff影响面评估影响接口评估方法链路跨服务链路测试方案推荐功能测试方案风险库智能挖掘用例/流量智能化推荐测试策略智能化推荐风险特征智能化识别代码分析能力输出代码结构化信息输出代码特征信息输出可视化应用场景输出到家BG美团公司测试行业异常类特征资损类特征算法类特征消息类特征配置链路专项测试方案技术方案缺失项诊断接口项缺失配置项缺失任务项缺失消息项缺失配置变更风险诊断一致性校准测试覆盖默认值校准影响接口用例精准推荐接口级用例方法级推荐服务级推荐迭代级推荐后羿可视化系统的关键流程代码特征特征标注结果后羿主站入口服务可视化分析入口(人工触发)FSD平台组件化接入自动触发分析代码可视化