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

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 系统精简之道:如何以极低风险, 高效清理线上无用代码 去哪儿旅行 基础架构部/资深研发工程师 马阳阳
2. 目录 01 背景介绍 背景 02 服务精简 挖掘特征 03 代码精简 04 最终效果 05 未来展望 挖掘特征 精简成果 痛点 目标 度量特征 度量选型 度量方案 指标分析 规划 删除服务 清理代码 效果指标
3. 01 背景介绍 为什么去哪儿网会启动系统瘦身项目? 背景 痛点 目标 规划
4. 背景 痛点 目标 规划 系统瘦身背景 业务历史悠久 复杂度单调递增 2023-7-21 01 02 短周期业务多 04 03 人员流动频繁 4
5. 背景 痛点 目标 规划 系统瘦身背景 & 痛点 人均应用:5个 维护成本高 2023-7-21 人均代码:10w 一年内无变更应用:20% 估时误差大 线上方法行覆盖率: 40% 开发进度慢 效 率 下 降 5
6. 背景 痛点 目标 规划 系统瘦身目标 & 挑战 50 % 50 % 目标高 2023-7-21 范围广 无参考 6
7. 背景 痛点 目标 规划 系统瘦身时间及组织架构规划 代码精简 服务精简 2022.5 提出需求 获取帮助 2023-7-21 2022.7 机 票 酒 店 门 票 2022.11 火 车 票 其 他 通用工具 技术支持 瘦身公共支撑团队(虚拟) 7
8. 背景 痛点 目标 规划 系统瘦身两步走 能筛选出目标对象 2023-7-21 准、全、快 8
9. 背景 痛点 目标 规划 筛选模型(方法论) 挖掘 特征 度量 特征 从具体入手 明确如何度量 2023-7-21 收集 数据 匹配 特征 自动化 9
10. 01 02 背景介绍 服务精简 痛点 背景 找 挖掘特征 目标 规划 删除服务 度量特征 得 得 03 代码精简 04 最终效果 05 未来展望 到 删 挖掘特征 度量选型 指标分析 度量方案 清理代码 效果指标 好
11. 02 服务精简 如何自动化、低风险地精简服务? 挖掘特征 度量特征 删除服务
12. 挖掘特征 度量特征 删除服务 可精简服务特征分析 删除 2023-7-21 合并 12
13. 挖掘特征 度量特征 删除服务 “找得到” 网关 没流量 Trace 发布少 不迭代 定时 任务 Config 2023-7-21 13
14. 挖掘特征 度量特征 删除服务 “删得好”– 准全快 标准化 2023-7-21 平台化 自动化 14
15. 起点 计划中 已下线 人工确认 待下线 下线中 观察 2 周 OR 回收 2023-7-21 主机回收 应用删除 完成 15
16. 03 代码精简 如何精准找到线上无流量的方法? 挖掘特征 度量选型 度量方案 清理代码
17. 挖掘特征 度量选型 度量方案 清理代码 可精简代码特征分析 量大 (效果) 通用性 (效率) 未被引用的方法(静态) 没有流量的方法(运行时) 重构 2023-7-21 17
18. 挖掘特征 度量选型 度量方案 清理代码 “找得到”方案选型 方案一:AOP 方案二:Agent 字节码插桩 2023-7-21 编写Agent 加载Agent Agent 记录日志 上报、 存储日志 可精简 代码集 获取 代码全集 取出日志 DB 18
19. 挖掘特征 度量选型 度量方案 清理代码 “找得到”方案选型 方案三:基于 SA 工具 Code 起初 解释执行 执行多次后 1、猜测:有方法执行次数 的计数器 编译执行 2、有办法用 java 代码读到方法计数值吗? Serviceability Agent 2023-7-21 19
20. 挖掘特征 度量选型 度量方案 清理代码 “找得到”方案选型 方案三:基于 SA 工具 2023-7-21 20
21. 挖掘特征 度量选型 度量方案 清理代码 “找得到”方案选型 方案选型 2023-7-21 方案 性能损耗 故障风险 实现复杂度 AOP 拦截器 高 低 高 Agent 字节码插桩 低 中 高 基于 SA 工具 无 无 低 21
22. 挖掘特征 度量选型 度量方案 清理代码 SA 方案详细设计 – 性能无损跑 数 重启 不接线上流量了 (进程还在) 发布 pre_offline 下线 post_offline 完成下线 进行 SA 跑 数 下线 2023-7-21 22
23. 挖掘特征 SA 方案详细设计 – 跑数代码实 现 度量选型 清理代码 Code 起初 解释执行 2023-7-21 度量方案 执行多次后 编译执行 23
24. 挖掘特征 SA 方案详细设计 – 解释执行方 法 度量选型 清理代码 Code 起初 解释执行 2023-7-21 度量方案 执行多次后 编译执行 24
25. 挖掘特征 SA 方案详细设计 – 编译执行方 法 度量选型 清理代码 Code 起初 解释执行 2023-7-21 度量方案 执行多次后 编译执行 25
26. 挖掘特征 度量选型 度量方案 清理代码 SA 方案详细设计 – 计算可精简方法集 聚合,取并集 有流量 方法集 取 差 通过 Spoon 2023-7-21 工程方 法全集 可精简 方法集 集 26
27. 挖掘特征 度量选型 度量方案 清理代码 SA 方案业务流程图 2023-7-21 27
28. 挖掘特征 度量选型 度量方案 清理代码 “删得好”- 多种手段 全自动手段 半自动手段 2023-7-21 28
29. 挖掘特征 度量选型 度量方案 清理代码 “删得好”- 最佳实践 否 全自动精简 是 业务 是否重要 否 半自动精简 是 大仓库 重要包 半自动精简 2023-7-21 按包路径 分重要性 不重要包 全自动精简 29
30. 挖掘特征 度量选型 度量方案 清理代码 验证“删得好” 04 03 02 01 2023-7-21 05 06 07 30
31. 04 最终效果 代码少了多少?带来了哪些收益? 精简成果 指标分析 效果指标
32. 精简成果 指标分析 效果指标 精简成果 目标回顾 50 % 50 % 达成情况 2023-7-21 32
33. 精简成果 指标分析 效果指标 效果指标分析 新人: 熟悉成本 需求估时 环境构建/ 更新时长 编译时长 告警量 发布耗时 需求耗时 开发域 2023-7-21 测试域 交付域 (CI/CD) 运维域 33
34. 精简成果 指标分析 效果指标 最终效果 270 244 3.02 2.69 需求耗时(天) 2023-7-21 9.0 3.5 6.0 8.0 9.5 7.5 3.0 5.5 0.5 2.0 1.0 4.0 6.5 8.5 10. 1.5 5.0 4.5 7.0 0.0 9 % 发布耗时(秒) 9.0 3.5 6.0 8.0 9.5 7.5 3.0 5.5 0.5 2.0 1.0 4.0 6.5 8.5 % 1.5 5.0 4.5 7.0 0.0 34
35. 05 展望未来 之后还有哪些方向和技术值得探索?
36. 未来展望 2023-7-21 36
37. Q & A
38.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-22 13:39
浙ICP备14020137号-1 $Map of visitor$