《系統精簡之道如何以極低風險高效清理線上無用代碼_馬陽陽.pdf》由會員分享,可在線閱讀,更多相關《系統精簡之道如何以極低風險高效清理線上無用代碼_馬陽陽.pdf(38頁珍藏版)》請在三個皮匠報告上搜索。
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 字節碼插樁低中高基于 SA 工具無無低方案選型挖
7、掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2122SA SA 方案詳細設計方案詳細設計 性能性能無損跑無損跑數數不接線上流量了 (進程還在)重啟重啟發布發布下線下線進行 SA 跑數pre_offline下線post_offline完成下線挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2123SA SA 方案詳細設計方案詳細設計 跑數代碼實跑數代碼實現現Code解釋執行編譯執行起初執行多次后挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2124SA SA 方案詳細設計方案詳細設計 解釋執行方解釋執行
8、方法法Code解釋執行編譯執行起初執行多次后挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2125SA SA 方案詳細設計方案詳細設計 編譯執行方編譯執行方法法Code解釋執行編譯執行起初執行多次后挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2126SA SA 方案詳細設計方案詳細設計 計算可精簡方法集計算可精簡方法集聚合,取并集有流量方法集通過 Spoon工程方法全集取取差差集集可精簡方法集挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2127SA SA 方案方案業務流程圖業務流程圖挖掘特征挖掘
9、特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2128“刪得好刪得好”-多種手段多種手段全自動手段半自動手段挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2129“刪得好刪得好”-最佳實踐最佳實踐全自動精簡半自動精簡按包路徑按包路徑分重要性分重要性業務業務是否重要是否重要大倉庫大倉庫否是否是半自動精簡全自動精簡重要包不重要包挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼2023-7-2130驗證驗證“刪得好刪得好”01070205030406挖掘特征挖掘特征度量選型度量選型度量方案度量方案清理代碼清理代碼04 04 最終效果
10、最終效果代碼少了多少?帶來了哪些收益?精簡成果精簡成果指標分析指標分析效果指標效果指標2023-7-2132精簡成果精簡成果精簡成果精簡成果指標分析指標分析效果指標效果指標50%50%目標回顧達成情況2023-7-2133效果指標分析效果指標分析開發域測試域交付域(CI/CD)運維域新人:熟悉成本需求估時需求耗時需求耗時環境構建/更新時長編譯時長發布耗時發布耗時告警量精簡成果精簡成果指標分析指標分析效果指標效果指標2023-7-2134最終效果最終效果3.022.69需求耗時(天)%0.00.51.01.52.03.03.54.04.55.05.56.06.57.07.58.08.59.09.50.00.51.01.52.03.03.54.04.55.05.56.06.57.07.58.08.59.09.5270244發布耗時(秒)10.9%精簡成果精簡成果指標分析指標分析效果指標效果指標05 05 展望未來展望未來之后還有哪些方向和技術值得探索?2023-7-2136未來未來展望展望Q&AQ&A