当前位置:首页 > 报告详情

系统精简之道如何以极低风险高效清理线上无用代码_马阳阳.pdf

上传人: 张** 编号:153116 2024-01-15 38页 6.11MB

1、系统精简之道系统精简之道:如何以极低风险,高效清理线上无用代码去哪儿旅行 基础架构部/资深研发工程师 马阳阳背景介绍背景介绍0102030405服务精简服务精简代码精简代码精简最终效果最终效果未来展望未来展望背景背景痛点痛点目标目标规划规划挖掘特征挖掘特征度量特征度量特征删除服务删除服务挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码目 录精简成果精简成果指标分析指标分析效果指标效果指标01 01 背景介绍背景介绍为什么去哪儿网会启动系统瘦身项目?背景背景痛点痛点目标目标规划规划2023-7-214系统瘦身背景系统瘦身背景01020304业务历史悠久短周期业务多复杂度单调递增人

2、员流动频繁背景背景痛点痛点目标目标规划规划2023-7-215系统瘦身背景系统瘦身背景&痛点痛点人均代码:10w人均应用:5个一年内无变更应用:20%线上方法行覆盖率:40%维护成本高估时误差大开发进度慢背景背景痛点痛点目标目标规划规划效效率率下下降降2023-7-216系统瘦身目标系统瘦身目标&挑战挑战50%50%目标高范围广无参考背景背景痛点痛点目标目标规划规划2023-7-217系统瘦身时间及组织架构规划系统瘦身时间及组织架构规划2022.52022.112022.7服务精简代码精简瘦身公共支撑团队(虚拟)机票酒店门票火车票其他通用工具技术支持提出需求获取帮助背景背景痛点痛点目标目标规划

3、规划2023-7-218系统瘦身两步走系统瘦身两步走能筛选出目标对象准、全、快背景背景痛点痛点目标目标规划规划2023-7-219挖掘挖掘特征特征度量度量特征特征收集收集数据数据匹配匹配特征特征筛选模型(方法论)筛选模型(方法论)从具体入手明确如何度量自动化背景背景痛点痛点目标目标规划规划背景介绍背景介绍0102030405服务精简服务精简代码精简代码精简最终效果最终效果未来展望未来展望背景背景痛点痛点目标目标规划规划挖掘特征挖掘特征度量特征度量特征删除服务删除服务挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码指标分析指标分析效果指标效果指标找找得得到到删删得得好好02 02

4、 服务精简服务精简如何自动化、低风险地精简服务?挖掘特征挖掘特征度量特征度量特征删除服务删除服务2023-7-2112可精简服务特征可精简服务特征分析分析删除删除合并合并挖掘特征挖掘特征度量特征度量特征删除服务删除服务2023-7-2113“找得到找得到”没流量网关定时任务Trace不迭代发布少Config挖掘特征挖掘特征度量特征度量特征删除服务删除服务2023-7-2114“删得好删得好”准全快准全快标准化自动化平台化挖掘特征挖掘特征度量特征度量特征删除服务删除服务2023-7-2115OR 回收主机回收应用删除起点计划中待下线下线中已下线完成人工确认人工确认观察 2 周03 03 代码精简

5、代码精简如何精准找到线上无流量的方法?挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码2023-7-2117可精简代码特征分析可精简代码特征分析未被引用的方法(静态)重构没有流量的方法(运行时)量大(效果效果)通用性(效率效率)挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码2023-7-2118“找得到找得到”方案选型方案选型方案一:AOP方案二:Agent 字节码插桩编写Agent加载AgentAgent记录日志上报、存储日志DB取出日志获取代码全集可精简代码集挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码2023-7-2119“找得到找得

6、到”方案选型方案选型方案三:基于 SA 工具1、猜测:有方法执行次数的计数器2、有办法用 java 代码读到方法计数值吗?Serviceability AgentCode解释执行编译执行起初执行多次后挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码2023-7-2120“找得到找得到”方案选型方案选型方案三:基于 SA 工具挖掘特征挖掘特征度量选型度量选型度量方案度量方案清理代码清理代码2023-7-2121“找得到找得到”方案选型方案选型方案方案性能损耗性能损耗故障风险故障风险实现复杂度实现复杂度AOP 拦截器高低高Agent 字节码插

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了去哪儿网启动的系统瘦身项目,旨在清理线上无用代码,降低维护成本,提高开发效率。项目背景包括业务历史悠久、短周期业务多、复杂度单调递增、人员流动频繁等问题。项目目标是在2022年5月至11月期间,通过服务精简和代码精简,实现人均代码减少50%,人均应用减少50%的目标。 关键点如下: 1. 项目采用两步走的策略,先挖掘特征和度量特征,然后删除可精简的服务和代码。 2. 服务精简通过自动化和低风险的方式进行,包括特征分析、删除合并服务等。 3. 代码精简通过找到线上无流量的方法,进行特征分析和方法删除。 4. 项目选用了AOP、Agent字节码插桩和SA工具等多种方案,并进行了性能损耗、故障风险和实现复杂度的评估。 5. SA方案详细设计包括性能无损跑数、跑数代码实现和计算可精简方法集等。 6. 项目取得了显著的成果,代码减少了50%,带来了开发域、测试域、交付域和运维域的多方面收益。 7. 未来展望包括继续探索值得的技术方向,如代码质量优化、架构优化等。
"系统瘦身如何降低风险?" "代码精简有哪些收益?" "未来系统瘦身有哪些探索方向?"
客服
商务合作
小程序
服务号
折叠