《A1--王興龍--螞蟻研發效能極速交付實踐.pdf》由會員分享,可在線閱讀,更多相關《A1--王興龍--螞蟻研發效能極速交付實踐.pdf(43頁珍藏版)》請在三個皮匠報告上搜索。
1、螞蟻研發效能極速交付實踐王興龍螞蟻高級技術專家 支付寶小程序云云效能技術負責人 OpenSumi 負責人王興龍螞蟻高級技術專家,先后參與螞蟻前端中間件、工程化平臺建設及螞蟻云研發從0到1建設,目前專注于 IDE 技術及支付寶小程序云云效能嘉賓照片目錄CONTENTS螞蟻研發效能現狀01 面臨的挑戰與解決方案02 具體解決方法與技術實踐03 內部落地效果與云效能實踐04 展望未來05 01螞蟻研發效能現狀研發效能定義和關鍵要素01效率02質量03持續性04有效業務價值單個研發活動的效率+協作效率,通過提高自動化、智能化程度,制定標準化流程,增強一致性和確定性等來提高效率。質量是效率的基石,對質量
2、的忽視必然會帶來長遠效率的損失高質量和高效是相輔相成的,質量是保證長期效率的基礎。軟件交付的“可持續”強調的是短期效率與長期效率的平衡,避免由于對短期效率的追求而產生的技術債,進而帶來長期效率的損耗軟件交付的最終目的是帶來有效的業務價值。有效性是指,從用戶和客戶視角出發,某一次的價值交付是有用的、能解決實際問題的04安全在問題產生前,提前發現和規避問題;問題產生時,快速修復問題和降低影響面;問題結束后,總結和完善能力以降低問題產生的概率研發效能成熟度定義M5 全智能化M4 部分智能化M3 自動化M2 平臺化M1 人工化效能成熟度變更前置時間定義阿里集團研發效能愿景:2-1-1在 Google
3、發布的 DevOps 報告中,精英團隊的 變更前置時間 為 1小時內,高效團隊為 1天到1周內。DevOps 全球調查報告全球調查報告螞蟻效能指標從當前的效率數據來看,我們有一半的代碼,寫好(commit)到發布需要近兩周,每個需求平均上線的時間需要近四周,因此交付效率面臨的核心問題之一:當前代碼和需求的交付速度還不夠快。問題定義降本增效,資源有限的背景下,需求交付效率還遠不夠快。距離高效能和精英還有一定的距離。業務定義是指盡可能地降低 CTP(Commit To Product),提高從代碼到生產發布前的需求交付效率,達到“小時級”交付的目標客戶畫像所有研發同學業務價值提高業務研發效率,降低
4、研發成本讓業務價值能夠更高效的交付給用戶02面臨的挑戰與解決方案螞蟻研發活動現狀研發階段研發活動研發平臺1開發編碼中間件接入服務接入應用配置庫表變更新應用申請構建問題排查本地環境mock數據單元測試構建部署接口測試資源申請搭建聯調環境聯調驗證問題排查構建部署mock數據CR質量風控門禁安全準入門禁編寫測試用例執行測試CI流量驗證功能驗收mock數據灰度引流監控構建部署應急回滾2自測3聯調4準入5測試6灰度7發布生產發布應急回滾問題排查問題排查LinkE AntCode/IDE/LinkW/天戈/瓦力/覆蓋率/ACI/九州業務痛點(TOP 3)基建中間件問題無法自主排查問題解決信息獲取效率低云研
5、發功能插件缺失本地環境拉起難自測數據準備耗時耗力構建部署慢線下聯調環境不穩定,性能差接口變更無法及時感知流量不充分,無法常態化運維質量組件重復多次執行質量門禁規則不夠靈活,審批長準入組件執行串行等待測試組件執行耗時長,不穩定mock數據難度大,耗時長人肉編寫用例,缺乏有效工具精細化引流能力弱,為了全場景覆蓋需要長時間灰度 2小時研發測試工程師面臨的挑戰開發大量的時間耗費在非代碼域:各種環境準備、數據準備,等待各類組件執行的反饋,并進行修復,再執行。研發流開發研發階段研發域質量域環境域架構劃分子域風控域易用性開發效率準確性測試效率驗收效率發布效率隔離環境可用性技術關注點子域核心問題發布域預發搶占
6、灰度等待隨機引流標準引流安全檢測隱私檢測軍規檢測加簽審批本地無法啟動環境穩定性構建部署慢單測集測耗時不穩定測試用例編寫(天級別)自測數據準備(小時級)流量精準度問題環境準備難文檔查找難中間件接入難造數據困難問題排查難自測聯調準入測試灰度發布研發域的挑戰 新同學/新項目環境安裝時間長新同學裝機新項目1找軟件 2 下載軟件3安裝軟件 4 配置軟件5配置環境6配置應用1安裝軟件 2 申請資源3資源配置 4 安裝依賴5安裝插件6啟動項目5天2天研發域的挑戰 本地無法啟動項目版本離散基線不統一service mesh演進中間件下沉AliOSTEngineJDKOBProxy基線服務構建服務部署服務CLo
7、udEnginedockerfileimage本地環境準備困難PodAPP ContainerSidecar ContainerMOSNRPC Msg CacheODP本地啟動MSON困難質量域&風控域挑戰測試安全合規隱私單測通過率代碼覆蓋率無安全漏洞無合規問題無隱私問題符合螞蟻軍規無license風險基礎設施團隊禁用部分依賴錯誤的用法配置檢查SQL檢查集測執行測試覆蓋率掃描軍規掃描安全掃描隱私掃描依賴檢查單測執行測試BU自定義檢查代碼注釋檢查復雜度檢查為了盡早暴露問題,每次部署都會全量檢測一遍短則10+min,長則30+min質量域&風控域挑戰環境域的挑戰A1C1ABCA2C2DEV1DEV
8、2StableSIT環境Dev+Stable環境(80%研發活動)預發環境灰度環境生產環境Master代碼穩定性差搶占&風險高等待時間長編碼代碼提交編譯構建部署遠程調試創建環境本地IDE環境中心本地IDEA開始結束2min20min5min30min后修改代碼N次開發驗證流程長,出錯率高一站式云研發解決方案Cloud IDE 一站式云研發工作臺開發自測聯調準入灰度發布異步化檢測流程編排組件執行結果復用實時反饋主動反饋卡點提示代碼定位環境統一環境應用啟動熱部署極速驗證組件能力中心單元測試PMDSTC覆蓋率螞蟻軍規SQL掃描隱私掃描.決策中心Pipeline動態決策CI運行決策CI增聯執行CD準入
9、決策風險決策應用復雜度模型風險分級模型風險回歸能力模型異步化專注代碼研發創作高頻反饋實時決策提高吞吐率顛覆現有研發模式03具體解決方法與技術實踐環境安裝問題解決方案基礎研發容器鏡像標準運行環境螞蟻研發場景場景級環境 場景開放平臺自定義場景自定義運行環境自定義回收策略自定義內置插件自定義 IDE 配置自定義容器規格倉庫級環境devContainer環境安裝 開箱即用云上工程啟動鏡像拉取容器調度Maven依賴拉取代碼索引生成IDE插件&配置加載20+s5+s60+s30+s10+s開箱即用解決方案OSS緩存物理機POD-空間1POD-空間2任務型PODOverlay 讀寫層只讀層Overlay 讀
10、寫層只讀層索引生成DaemonSet緩存服務Maven緩存索引緩存索引同步服務制品中心質量&風控解決方案調試開發代碼+云盤代碼是否有變動是否能編譯通過發起異步掃描+增量掃描否否是是阻塞型問題準實時異步反饋專注開發上云后的想象空間感知一切開發自測解決方案Dev branch編碼代碼提交Dev branch編譯構建部署Dev branch遠程調試創建環境本地IDE環境中心本地IDEA開始結束2min20min5min30min后修改代碼N次申請服務器服務器初始化代碼提交發起PR配置檢測編碼環境中心Local-IDELinkE研發平臺10min10min120min代碼檢查CodeReview構建部
11、署安全掃描單元測試隱私掃描規范掃描15min結束修改代碼N次現有方案二:自測服務器,每次手動觸發構建部署優點:時間相對縮短(1015min)缺點:問題發現后置,推預發或生產才能發現現有方案一:PR自動觸發部署,伴隨所有前置掃描優點:流程自動化,能提前發現問題缺點:單次部署等待時間長(15-40min)開發自測解決方案-即改即測Dev branch創建云開發環境Dev branch啟動(熱部署)測試Dev branch遠程調試編碼環境中心云IDE本地IDEA開始結束10s 2min鏈 路 長,耗 時 長本地IDECode倉庫環境中心構建中心本地IDECode倉庫環境中心構建中心1.縮寫代碼2.提
12、交代碼3.觸發重新部署流程5.重新部署應用部署平臺部署平臺4.請求打包代碼鏡像耗時長UserUser簡 潔、快UserUser云IDE云IDE1.編寫代碼2.使用云IDE啟動應用非???!V S04內部落地效果與云效能實踐上云新問題-編碼體驗統一的云端研發體驗有代碼的地方就有 Cloud IDE業務按需定義符合場景訴求的云端研發環境開放生態支持業務快速接入上云新問題-編碼體驗統一的云端研發體驗有代碼的地方就有 Cloud IDE業務按需定義符合場景訴求的云端研發環境開放生態支持業務快速接入一站式多端適配-跨端插件框架極致體驗最后一公里-熱部署完整演示體驗支付寶小程序云 云效能云效能云端 IDE流
13、水線代碼托管項目管理終端測試制品庫項目管理云效能工作臺Cloud IDE代碼托管代碼掃描安全檢查單測集測編譯構建鏡像倉庫服務部署終端云測一鍵構建部署經典 CI/CD 自動化解決方案 極速交付場景解決方案模板免密鑒權自測左移小程序研發云托管(服務端)開放平臺(移動端)https:/ 路 長,耗 時 長本地IDECode倉庫云托管構建中心本地IDECode倉庫云托管構建中心1.縮寫代碼2.提交代碼3.觸發重新部署流程5.重新部署應用部署平臺部署平臺4.請求打包代碼鏡像耗時長UserUser簡 潔、快、與 客 戶 p o d 環 境 一 致UserUser云IDE云IDE1.編寫代碼2.使用云IDE
14、啟動應用非???!V S客戶環境VPC(test/pre/prod)商品服務訂單服務營銷服務Cloud IDE Pod客服系統05展望未來業務代碼生成極速交付下一站:AI Native IDE中間件DBOpenAPI功能 API 生成設計圖2代碼通用代碼生成補全生成解釋翻譯重構CR注釋Commit msg代碼優化找 bug智能修復問題診斷啟動失敗運行錯誤性能問題安全問題修復方案開發工程初始化前端 App后端 App測試Code2單測變更2流量生成變更2測試計劃變更2mock聯調變更2云測用例發布快速過灰度CodeFuse感謝聆聽支付寶掃碼了解云效能云效能:https:/Cloud IDE:https:/