OSCAR 分享之螞蟻開源治理的方法和實踐
OSCAR 是開源產業大會,學術界、產業界共同探討開源的使用、共享和治理等相關話題,2022 年的開源產業大會於 2022 年 9 月 16 日在北京成功舉辦,大會上螞蟻技術專家才楚做了關於螞蟻開源治理的方法和實踐主題分享,此文進行了一些總結。
1.開源治理的必要性
用不用開源技術不再是個問題,如何用好開源技術才是,這是這些年來大家普遍的共識。應用雲原生化之後,釋出到線上的製品中超過 90% 的程式碼是非開發人員編寫的程式碼,而是框架、元件、庫等。研發的主要工作從「 程式碼編寫」進化到了「 介面編排」,在大幅度提升了效率的同時,開源技術的風險隨著大規模自動化的持續交付流水線進入了線上生產環境。即使事後定位到某個元件的問題,影響分析、穩定性保障、版本升級都是非常大的難題。
近年 fastjson、log4j 這些高危遠端執行漏洞,GPL 協議引起的訴訟等問題都說明這類問題發生的必然性,並且此類問題造成的損失十分巨大,此前認為開源技術和免費技術是一回事的觀點必須要拋棄了,尤其是對風險敏感的金融相關技術研發組織。
2.資料驅動的治理
開源治理的難點主要在於沒有資料:
- 在治理決策時,不清楚用了哪些開源元件、不清楚開源元件的開源風險現狀是什麼、不清楚開源元件被誰在用
- 在治理執行時,開源治理規則沒有地方統一管理、治理規則無法動態分發、治理進展無法資料化跟蹤
所以,我們需要使用製造業供應鏈管理的理念:
- 對使用了哪些原材料需要有清單
- 這些原材料如果有質量問題則需要記錄
- 知道這些原材料哪些產品在用(便於交付前質檢和交付後溯源、審計)
因此,開源治理時必須要達到的四目標:
- 知道研發組織使用了哪些開源元件
- 知道開源元件的風險分析結果
- 知道開源元件被哪些應用在使用
- 能夠高效、精準地形成持續交付管控切面,必要時阻斷
3.開源治理的工具
資料驅動的治理的關鍵在於需要工具能在研發活動中,將風險透過研發工具透出給開發者,並輔助開發者處理。
4.螞蟻的治理實踐
從治理決策出發,持續治理執行和治理評估,研發人員和治理規則定義者之間保持持續迭代的關係,透過輔助工具,如 IDEA 自定義快速檢查功能和 SmartUnit 保障程式碼單元測試質量。
- 治理決策,基於現狀定義治理目標、流程管控規則
- 治理執行,線上存量問題、線下增量問題聯動治理
- 研發體驗,儘量在研發最早期提示風險和輔助使用者升級
在治理決策時,透過 10 個指標明確風險現狀,定義治理頭部元件/應用,定義出治理規則,這些清單資料來自於構建活動中透過 SCA 工具收集的資料,統一製品庫對接開源元件風險分析工具提供的介面,拿到風險分析結果並以製品後設資料的形式進行持久化,前端查詢展示為資料大盤。
在治理執行時,治理規則統一管理,透過資料大盤可以瞭解到當前執行了哪些規則、規則分類、規則分級以及應用響應的情況等,這些資料能夠和 Rule enforce 客戶端互動,客戶端在執行 enforce 的時候透過 API 從管理端拉取最新規則,在 IDEA 本地執行校驗。
在開發者本地,透過 IDEA 自定義功能選單的方式就可以快速執行檢查,當然命令列手動執行命令檢查同樣是支援的,在流水線中同樣是支援的。這種動態規則的拉取是螞蟻對 apache maven enforce plugin 進行了深度改造定製實現的,透過這個客戶端可以透出升級操作指引給開發者,輔助開發者操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69904796/viewspace-2916824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 螞蟻金服微服務實踐 | 開源中國年終盛典分享實錄微服務
- 螞蟻金服資料質量治理架構與實踐架構
- 乾貨分享:螞蟻金服前端框架和工程化實踐前端框架
- 螞蟻金服分散式事務開源以及實踐 | SOFA 開源一週年獻禮分散式
- 螞蟻金服 Service Mesh 深度實踐
- 螞蟻金服 Service Mesh 實踐探索
- 螞蟻開源的 SOFABoot,和 Spring Boot 有啥關係?Spring Boot
- 螞蟻金服 DB Mesh 的探索與實踐
- 螞蟻金服開源的機器學習工具 SQLFlow,有何特別之處?機器學習SQL
- 詩和遠方:螞蟻金服 Service Mesh 深度實踐 | QCon 實錄
- 螞蟻金服 Service Mesh 實踐探索 | Qcon 實錄
- 螞蟻實時低程式碼研發和流批一體的應用實踐
- 數字遊戲;及螞蟻螞蟻分析遊戲
- 螞蟻區塊鏈BaaS平臺架構與實踐區塊鏈架構
- Demo Show | 螞蟻金服 mPaaS IDEA 外掛實踐Idea
- 一文讀懂螞蟻金服自研技術的發展和實踐
- 螞蟻金服Service Mesh新型網路代理的思考與實踐
- 如何在微信小程式上開發一個「螞蟻森林」和「螞蟻莊園」結合體?微信小程式
- 螞蟻螞蟻;及周長最長分析
- 實時智慧決策引擎在螞蟻金服風險管理中的實踐
- 螞蟻金服SOFAMesh在多語言上的實踐 | CNUTCon 實錄
- 螞蟻金服開源的 SOFAMesh 的通用協議擴充套件解析協議套件
- [如何在微信小程式上開發一個「螞蟻森林」和「螞蟻莊園」結合體?](轉)微信小程式
- 螞蟻微貸互動營銷技術體系實踐
- 螞蟻區塊鏈平臺BaaS技術解析與實踐區塊鏈
- 螞蟻大規模 Sigma 叢集 Etcd 拆分實踐
- 螞蟻區塊鏈在司法存證領域的探索與實踐區塊鏈
- 開源|螞蟻金服AntVG62.1:一路伴你同行
- 資料治理實踐 | 網易某業務線的計算資源治理
- 開篇 | 模組化與解耦式開發在螞蟻金服 mPaaS 深度實踐探討解耦
- iOS開發實踐-OOM治理iOSOOM
- 網路螞蟻的廣告條如何實現和破解的! (74字)
- 從平臺到中臺 | Elasticsearch 在螞蟻金服的實踐經驗Elasticsearch
- 深度 | 金融級訊息佇列的演進 — 螞蟻金服的實踐之路佇列
- 讓 AI 無處不在:滴滴與螞蟻金服開源共建 SQLFlowAISQL
- DLRover:螞蟻開源大規模智慧分散式訓練系統分散式
- 螞蟻金服開源服務註冊中心 SOFARegistry | SOFA 開源一週年獻禮
- 螞蟻金服楊軍:螞蟻資料分析平臺的演進及資料分析方法的應用