隨著DevOps、云計(jì)算、人工智能、平臺(tái)工程等各種新思想及新技術(shù)逐漸得到眾多企業(yè)的認(rèn)可,這些新技術(shù)也推動(dòng)社會(huì)從信息化向數(shù)字化演進(jìn),而在整個(gè)演進(jìn)的過(guò)程中,所需的技術(shù)體系構(gòu)建需要海量的知識(shí)與技術(shù)能力的支撐。開(kāi)源(Open Source)以開(kāi)放、平等、協(xié)作和共享的模式,加速技術(shù)迭代升級(jí),逐漸形成技術(shù)主流。開(kāi)源可以突破技術(shù)壁壘,推動(dòng)技術(shù)創(chuàng)新;但也因?yàn)樯鷳B(tài)的多樣性與不確定性,導(dǎo)致更多的不穩(wěn)定因素的引入,提高了問(wèn)題與風(fēng)險(xiǎn)發(fā)生的概率,給企業(yè)帶來(lái)機(jī)遇的同時(shí)也帶來(lái)了多重挑戰(zhàn)。因此,如何進(jìn)行有效地治理,成為目前企業(yè)亟需解決的問(wèn)題。
01. 開(kāi)源治理面臨的風(fēng)險(xiǎn)
從目前的發(fā)展形勢(shì)來(lái)看,開(kāi)源應(yīng)用主要面臨的風(fēng)險(xiǎn)為:管理風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)、安全風(fēng)險(xiǎn)及合規(guī)風(fēng)險(xiǎn)。
1)管理風(fēng)險(xiǎn)
開(kāi)源應(yīng)用相較于傳統(tǒng)應(yīng)用有著更為復(fù)雜的供應(yīng)鏈,而在使用過(guò)程中,通過(guò)各種組合、依賴等形成了錯(cuò)綜復(fù)雜的供應(yīng)關(guān)系,而使用者往往很難直觀地理清其中的脈絡(luò)。同時(shí),企業(yè)因缺乏體系化的治理理念,導(dǎo)致全生命周期缺乏有效的管理規(guī)則及對(duì)應(yīng)的管理手段,如:權(quán)責(zé)不清、引入及退出機(jī)制不夠完善、分析評(píng)估權(quán)重合理性存疑、合規(guī)性檢查缺乏時(shí)效性、錯(cuò)綜復(fù)雜的關(guān)聯(lián)依賴關(guān)系缺乏有效記錄等。從而導(dǎo)致治理工作難以覆蓋使用過(guò)程中的方方面面,使整個(gè)管理風(fēng)險(xiǎn)無(wú)限放大。
而其中最具代表性的是開(kāi)源應(yīng)用的多版本管理,從最初的版本到最新的版本可能都會(huì)存在使用,從而導(dǎo)致收斂度差,關(guān)系混亂。當(dāng)出現(xiàn)漏洞時(shí),為了明確哪些資產(chǎn)受到影響,往往需要使用人力去排查、統(tǒng)計(jì)及追溯,導(dǎo)致效率低下,且準(zhǔn)確性、時(shí)效性、全面性都無(wú)法得到有力保障。
2)技術(shù)風(fēng)險(xiǎn)
首先,從目前開(kāi)源的類型來(lái)看,開(kāi)源應(yīng)用包含產(chǎn)品、組件、框架、工具、代碼等多種類型,涉及軟件開(kāi)發(fā)、云服務(wù)、數(shù)據(jù)服務(wù)等諸多領(lǐng)域,因?yàn)楦碌欤嗷ブg存在錯(cuò)綜復(fù)雜且隱蔽的依賴關(guān)系,從而給企業(yè)的自主掌控、運(yùn)行維護(hù)帶來(lái)巨大的挑戰(zhàn);其次,由于很多開(kāi)源應(yīng)用是獨(dú)立開(kāi)發(fā)者憑興趣開(kāi)發(fā)與支撐,沒(méi)有商業(yè)盈利模式,從而無(wú)法保障安全與可靠性;再次,在使用過(guò)程中,企業(yè)因?yàn)楦嗟氖峭獠坎少?gòu),無(wú)法控制供應(yīng)商對(duì)開(kāi)源技術(shù)的引用,而自身技能儲(chǔ)備不夠,存在配置不當(dāng),導(dǎo)致運(yùn)行故障,從而影響系統(tǒng)的正常運(yùn)行,引發(fā)一系列的業(yè)務(wù)震蕩問(wèn)題。最后,日益復(fù)雜的國(guó)際形勢(shì)也對(duì)很多開(kāi)源軟件的國(guó)內(nèi)外供應(yīng)鏈帶來(lái)較大影響。
3)安全風(fēng)險(xiǎn)
開(kāi)源應(yīng)用從出生起就秉持“開(kāi)放、共享”精神,因其開(kāi)放的特性,在安全性上天然不足,而從業(yè)者的素質(zhì)參差不齊,產(chǎn)品質(zhì)量良莠不齊,導(dǎo)致漏洞更容易被發(fā)現(xiàn)并被利用,甚至?xí)霈F(xiàn)惡意代碼、被人惡意“投毒”也見(jiàn)怪不怪,這也正是很多開(kāi)源軟件提出免責(zé)聲明的重要原因。因此,在企業(yè)引用開(kāi)源應(yīng)用后,如不能精準(zhǔn)掌握并及時(shí)修復(fù)對(duì)應(yīng)的漏洞,就會(huì)把漏洞流入到生產(chǎn)環(huán)境,從而成為被滲透、攻擊的對(duì)象,引起服務(wù)中斷、數(shù)據(jù)泄露等嚴(yán)重事故,如何解決安全風(fēng)險(xiǎn)也必將成為開(kāi)源治理的重中之重。
4)合規(guī)風(fēng)險(xiǎn)
開(kāi)源應(yīng)用雖然代碼是對(duì)外公開(kāi)的,但是同樣受開(kāi)源許可協(xié)議的保護(hù),開(kāi)源許可證一樣是具有法律效力的合同。因此,在使用開(kāi)源應(yīng)用的時(shí)候,需要清晰了解許可證的使用范圍。但是,因開(kāi)源背后的許可問(wèn)題專業(yè)性較強(qiáng),而企業(yè)往往因?yàn)樯鎵毫ΑI(yè)務(wù)發(fā)展需求,以及提供業(yè)務(wù)應(yīng)用的供應(yīng)商能力高低不一,無(wú)法提供完整的使用清單,許可問(wèn)題極易被忽略。稍有不慎就會(huì)讓使用開(kāi)源應(yīng)用的企業(yè)面臨法律合規(guī)風(fēng)險(xiǎn),引起知識(shí)產(chǎn)權(quán)糾紛,甚至被迫開(kāi)放代碼,給企業(yè)帶來(lái)不可估量的損失。
02. 體系建設(shè)最佳實(shí)踐
對(duì)開(kāi)源應(yīng)用進(jìn)行治理已逐漸成為各行各業(yè)的共識(shí),嘉為藍(lán)鯨作為業(yè)界領(lǐng)先的數(shù)字研運(yùn)解決方案品牌,以“安全、合規(guī)、高效”為基本原則,結(jié)合開(kāi)源治理方法論,從組織架構(gòu)、管理體系、工具平臺(tái)等方面構(gòu)建開(kāi)源治理體系,開(kāi)展開(kāi)源治理的探索,逐步形成一套開(kāi)源應(yīng)用管理和使用的最佳實(shí)踐。
1)組建管理機(jī)構(gòu),明確分工權(quán)責(zé)
首先,可以根據(jù)企業(yè)自身發(fā)展需要,成立對(duì)開(kāi)源治理的組織(實(shí)體、虛擬都可),統(tǒng)籌規(guī)劃治理體系,同時(shí)協(xié)調(diào)架構(gòu)、運(yùn)維、安全、質(zhì)量與配管等過(guò)程管控團(tuán)隊(duì),依據(jù)“誰(shuí)引入、誰(shuí)負(fù)責(zé)”及“誰(shuí)使用、誰(shuí)保障”的方針原則,結(jié)合軟件產(chǎn)品全生命周期理念,制定開(kāi)源應(yīng)用全生命周期管理辦法,并按照各管控團(tuán)隊(duì)特性,分工制定對(duì)應(yīng)的規(guī)范、量化規(guī)則及評(píng)估模型。
其次,組織運(yùn)行機(jī)制上設(shè)立管理方、評(píng)審方、使用方;管理方統(tǒng)籌規(guī)劃治理流程、維護(hù)標(biāo)準(zhǔn)、方案實(shí)施決策與仲裁、同時(shí)推動(dòng)治理工作;評(píng)審方為各方技術(shù)專家組成的評(píng)審團(tuán)隊(duì),負(fù)責(zé)引入評(píng)審工作及制定對(duì)應(yīng)的評(píng)估機(jī)制、評(píng)估規(guī)則,同時(shí)負(fù)責(zé)日常問(wèn)題解決、持續(xù)改進(jìn)、技術(shù)決策等技術(shù)性工作;使用方一般為項(xiàng)目方,負(fù)責(zé)發(fā)起引入申請(qǐng)、完成使用中的漏洞處理和其他日常性功能事務(wù)。
最后,建議在評(píng)審團(tuán)隊(duì)中引入法務(wù)人員對(duì)合規(guī)性進(jìn)行研究,并提供法務(wù)支持。同時(shí),為了確保業(yè)務(wù)發(fā)展的安全性,應(yīng)引入安全及質(zhì)量人員,負(fù)責(zé)識(shí)別和跟蹤安全漏洞,提出解決方案,避免造成嚴(yán)重的安全風(fēng)險(xiǎn)。
2)制定管理制度,規(guī)范使用流程
科學(xué)、完備的管理制度是體系建設(shè)的前提條件,因此,構(gòu)建合理、可執(zhí)行的開(kāi)源治理體系需要從制度與規(guī)范開(kāi)始設(shè)計(jì),確立規(guī)范以支撐制度落地,健全制度以保障規(guī)范嚴(yán)格執(zhí)行,確保全生命周期做到“有法可依”。在制度層面,需要制定覆蓋開(kāi)源應(yīng)用全生命周期的管理規(guī)程,對(duì)開(kāi)源應(yīng)用的引入、使用、更新、退出全流程提出明確的規(guī)定,以保障引入的開(kāi)源應(yīng)用處于安全可控范圍;同時(shí),也需要制定對(duì)應(yīng)的緊急處理流程,建設(shè)“逃生通道”,以確保在風(fēng)險(xiǎn)發(fā)生時(shí)可以及時(shí)處理,將風(fēng)險(xiǎn)扼殺在萌芽。在規(guī)范層面,需要結(jié)合企業(yè)自身特色,制定對(duì)應(yīng)的選型依據(jù)、評(píng)分標(biāo)準(zhǔn)、漏洞定級(jí)、檢測(cè)方式等多維度的執(zhí)行標(biāo)準(zhǔn)。
除此之外,還需要打通全生命周期數(shù)據(jù)鏈。全過(guò)程數(shù)據(jù)聯(lián)動(dòng),以此來(lái)建設(shè)從引入到運(yùn)營(yíng)的關(guān)聯(lián)關(guān)系可視化視圖,提升追溯能力;同時(shí)建立從引入到運(yùn)營(yíng)管理節(jié)點(diǎn)的負(fù)責(zé)機(jī)制,落實(shí)責(zé)任,進(jìn)一步提高引入及運(yùn)營(yíng)管理的質(zhì)量。
3)融合管理規(guī)范,建設(shè)管理平臺(tái)
體系化的開(kāi)源治理,將“安全、合規(guī)、高效”作為整個(gè)建設(shè)的頂層戰(zhàn)略目標(biāo)。為了實(shí)現(xiàn)這個(gè)目標(biāo),除了需要完備的管理制度,規(guī)范化的流程,用來(lái)落地實(shí)踐的工具平臺(tái)也是必不可少的。制度、流程、平臺(tái)三者應(yīng)該相輔相成,相互閉環(huán),形成三位一體的立體化開(kāi)源治理體系方案(如圖1)。具體體現(xiàn)如下:
為了使上述管理架構(gòu)、規(guī)范制度真正落地,持續(xù)提升開(kāi)源治理能力,建議圍繞資產(chǎn)庫(kù)打造“1+2+3”整體解決方案。即:1個(gè)統(tǒng)一資產(chǎn)庫(kù)(由1個(gè)前置子庫(kù),1個(gè)過(guò)程子庫(kù),1個(gè)生產(chǎn)子庫(kù)組成1個(gè)虛擬統(tǒng)一資產(chǎn)庫(kù)),2個(gè)生命周期(開(kāi)源治理生命周期、軟件研發(fā)生命周期),3個(gè)核心工具平臺(tái)(DevOps平臺(tái)、安全工具平臺(tái)、流程管控平臺(tái))。其中最重要的資產(chǎn)庫(kù)架構(gòu)設(shè)計(jì)如圖2。
使用統(tǒng)一的資產(chǎn)庫(kù)的目的在于結(jié)束重復(fù)建設(shè)后帶來(lái)的管理混亂,同時(shí)達(dá)到資產(chǎn)統(tǒng)一管控的目標(biāo),統(tǒng)一資產(chǎn)庫(kù)收納的資產(chǎn)內(nèi)容主要包含:自研、開(kāi)源、供應(yīng)商提供的資產(chǎn);各資產(chǎn)庫(kù)作用如下:
① 前置庫(kù)設(shè)置在DMZ區(qū)域,用來(lái)聯(lián)通外部源,各類型庫(kù)啟用臨時(shí)庫(kù),當(dāng)外部的應(yīng)用需要進(jìn)入前置庫(kù)的時(shí)候,先進(jìn)入臨時(shí)庫(kù),并通過(guò)安全、質(zhì)量、合規(guī)(開(kāi)源常見(jiàn)協(xié)議許可請(qǐng)參考圖3)相關(guān)檢測(cè)工具進(jìn)行檢測(cè),同時(shí),由評(píng)審團(tuán)隊(duì)對(duì)引入的開(kāi)源應(yīng)用進(jìn)行評(píng)審,通過(guò)后進(jìn)入正式庫(kù);并將對(duì)應(yīng)的開(kāi)源應(yīng)用加入清單。
② 過(guò)程庫(kù)主要用于保障研發(fā)過(guò)程的需求,依賴庫(kù)直接將代理指向前置庫(kù);同時(shí)在使用過(guò)程中,對(duì)接相關(guān)工具平臺(tái),對(duì)于依賴及依賴間的組合進(jìn)行檢測(cè),并生成對(duì)應(yīng)的關(guān)聯(lián)依賴圖,保障整個(gè)制品包的穩(wěn)定可靠;
③ 當(dāng)上線申請(qǐng)通過(guò)后,由流程自動(dòng)將過(guò)程庫(kù)中的上線制品推送到生產(chǎn)庫(kù),保障后續(xù)上線及升級(jí)。并將對(duì)應(yīng)的服務(wù)器信息反饋到資產(chǎn)庫(kù),通過(guò)資產(chǎn)建立對(duì)應(yīng)的關(guān)聯(lián)關(guān)系,便于后期風(fēng)險(xiǎn)排查及追溯。
同時(shí),建議各資產(chǎn)庫(kù)按照開(kāi)源類型進(jìn)行分類,各類型庫(kù)分類存儲(chǔ)的開(kāi)源應(yīng)用類型如圖4。
為了實(shí)現(xiàn)開(kāi)源治理從“引入、使用、退出”全生命周期的管控,同時(shí)為了提高整體治理效率,建議將整個(gè)治理過(guò)程按照研發(fā)生命周期階段進(jìn)行劃分及對(duì)應(yīng);通過(guò)流程進(jìn)行結(jié)合,將整個(gè)治理能力嵌入端到端研發(fā)過(guò)程中,進(jìn)行分類、分階段管控,從而實(shí)現(xiàn)安全、高效的管理;同時(shí)按照引入的內(nèi)容建立內(nèi)部的關(guān)聯(lián)依賴關(guān)系,便于在出現(xiàn)問(wèn)題后的快速追溯及定位。
整個(gè)實(shí)現(xiàn)過(guò)程為:
① 引入:起始點(diǎn)對(duì)齊研發(fā)生命周期的設(shè)計(jì)階段,開(kāi)源應(yīng)用的引入,需要架構(gòu)團(tuán)隊(duì)主導(dǎo),聯(lián)合安全、質(zhì)量、運(yùn)維依據(jù)相關(guān)規(guī)范及開(kāi)源應(yīng)用清單進(jìn)行評(píng)估,確保引入的開(kāi)源應(yīng)用的安全可靠;
② 使用:各引入團(tuán)隊(duì)按照自身需求,使用對(duì)應(yīng)的開(kāi)源應(yīng)用;借助DevOps平臺(tái)流水線在實(shí)現(xiàn)活動(dòng)標(biāo)準(zhǔn)化編譯的同時(shí),采用統(tǒng)一的資產(chǎn)庫(kù),確保來(lái)源合法性與唯一性。同時(shí)在流水線不同環(huán)節(jié)加入檢測(cè)及門禁功能,確保最終版本的安全與穩(wěn)定;
③ 退出:退出的前提是不能影響業(yè)務(wù)的正常運(yùn)行。因此,在不降低業(yè)務(wù)連續(xù)性的影響的前提下,首先在有突發(fā)風(fēng)險(xiǎn)時(shí),應(yīng)先使用防護(hù)硬件及工具做緩沖,減輕集中的升級(jí)壓力,避免引起不可預(yù)期的風(fēng)險(xiǎn);然后按照業(yè)務(wù)系統(tǒng)重要程度、升級(jí)難度及可能受攻擊面的大小進(jìn)行評(píng)估后按計(jì)劃升級(jí);其次需要定時(shí)定期地組織專家團(tuán)隊(duì),從開(kāi)源應(yīng)用使用情況、歷史漏洞情況等多方面對(duì)已在用的開(kāi)源應(yīng)用進(jìn)行綜合評(píng)估,并聯(lián)合研發(fā)、配管等職能團(tuán)隊(duì)制定退出計(jì)劃,推動(dòng)應(yīng)用升級(jí),并將退出的軟件加入對(duì)應(yīng)的黑名單。達(dá)到清理存量、管住增量的目標(biāo),同時(shí)逐步向統(tǒng)一化演進(jìn)。
流程是管理制度現(xiàn)實(shí)的保障手段,嚴(yán)謹(jǐn)、科學(xué)、符合發(fā)展的開(kāi)源治理流程可以有效地降低沖突、控制風(fēng)險(xiǎn),開(kāi)源應(yīng)用生命周期管理所涉及的引入、使用、退出流程建議按照最新的價(jià)值流理念,將流程中有價(jià)值的活動(dòng)進(jìn)行組件化,便于后期靈活適配與標(biāo)準(zhǔn)化;因此,流程大致上應(yīng)該包含:引入、檢測(cè)、審核、查詢、上傳/同步、下載/引用、清退等活動(dòng)。而引入流程建議參考圖5。
03. 實(shí)現(xiàn)階段及過(guò)程
為了實(shí)現(xiàn)“安全、合規(guī)、高效”的目標(biāo),將整個(gè)治理過(guò)程分成三個(gè)階段進(jìn)行。
第一階段管理機(jī)制建設(shè);包括組織級(jí)團(tuán)隊(duì)建設(shè)與規(guī)章制度建設(shè)
第二階段:能力建設(shè);主要包含基礎(chǔ)能力、平臺(tái)能力、過(guò)程能力建設(shè)
能力建設(shè)應(yīng)以場(chǎng)景建設(shè)為出發(fā)點(diǎn),逐步在各領(lǐng)域建設(shè)構(gòu)建治理能力;以“以點(diǎn)帶面,橫縱結(jié)合”的方式,逐步從試點(diǎn)到推廣分步走,同時(shí)與開(kāi)發(fā)、安全、質(zhì)量、合規(guī)、運(yùn)維等多部門配合,確保平臺(tái)建設(shè)方案落地,給治理工作提供平臺(tái)支撐。
第三階段:全場(chǎng)景覆蓋能力建設(shè)
逐步將開(kāi)源治理工作從組織級(jí)往項(xiàng)目級(jí)管控轉(zhuǎn)變,將治理的具體工作通過(guò)賦能、規(guī)則等方式將職責(zé)與權(quán)限下放到項(xiàng)目級(jí);同時(shí)覆蓋自研、供應(yīng)商、供應(yīng)商+自研等所有應(yīng)用場(chǎng)景。
04. 治理成效
從2022年6月到目前為止,嘉為藍(lán)鯨輔助某大型金融企業(yè)進(jìn)行開(kāi)源治理體系建設(shè),已經(jīng)基本完成了企業(yè)級(jí)治理體系建設(shè);并通過(guò)對(duì)組織架構(gòu)、規(guī)范化流程、管理平臺(tái)等方案的落地實(shí)踐,驗(yàn)證了方案的可行性與可靠性,在確保了治理體系的高效運(yùn)轉(zhuǎn)的同時(shí),化解了開(kāi)源應(yīng)用引入帶來(lái)的安全風(fēng)險(xiǎn),有力地保障了全生命周期管理過(guò)程可追溯、可度量、可評(píng)價(jià)。在整個(gè)建設(shè)過(guò)程中,累計(jì)清退開(kāi)源應(yīng)用已超500個(gè),總計(jì)完成200次以上的版本升級(jí),消除潛在風(fēng)險(xiǎn)隱患100余次。
然而,由于開(kāi)源的特性,開(kāi)源生態(tài)中良莠不齊,現(xiàn)有的安全漏洞無(wú)法全面涵蓋整個(gè)生態(tài),存在明顯的局限性。同時(shí)也不能排除別有用心的個(gè)人和組織從源頭“投毒”,也給整個(gè)治理工作帶來(lái)了很多不確定的因素,出現(xiàn)了很多不可預(yù)料的狀況。盡管如此,但可視化的依賴關(guān)聯(lián)關(guān)系圖譜在應(yīng)對(duì)風(fēng)險(xiǎn)時(shí)發(fā)揮了巨大作用。通過(guò)該圖譜,整個(gè)使用過(guò)程變得清晰可見(jiàn),實(shí)現(xiàn)了真正的端到端聯(lián)動(dòng),并能在秒內(nèi)定位問(wèn)題。這大大縮短了溝通時(shí)間,總計(jì)超過(guò)300小時(shí),使整個(gè)治理工作更加高效。
05. 未來(lái)發(fā)展思考與探索
開(kāi)源的技術(shù)發(fā)展日新月異,同時(shí)也是一個(gè)不斷演化的過(guò)程,也就導(dǎo)致了開(kāi)源治理體系建設(shè)注定是一個(gè)長(zhǎng)期而艱苦的過(guò)程。因此,一方面需要適應(yīng)新技術(shù)的迭代與變化,持續(xù)改進(jìn)治理體系;另一方面,通過(guò)持續(xù)完善治理體系,加強(qiáng)規(guī)范化管理能力,提高應(yīng)用的整體安全可控性。可以進(jìn)一步滿足業(yè)務(wù)發(fā)展需求,同時(shí)促進(jìn)企業(yè)自動(dòng)化、數(shù)字化的轉(zhuǎn)型需要。
隨著新技術(shù)的發(fā)展,AI、智能化的不斷演進(jìn),未來(lái)在開(kāi)源治理體系中可以引入對(duì)應(yīng)的技術(shù),通過(guò)風(fēng)控模型、態(tài)勢(shì)感知、大數(shù)據(jù)匹配、智能判斷等手段進(jìn)一步促進(jìn)開(kāi)源治理體系的發(fā)展。
SRE轉(zhuǎn)型:銀行SRE模式推廣策略
查看詳細(xì)
從設(shè)備到數(shù)據(jù):存儲(chǔ)監(jiān)控的關(guān)鍵與實(shí)踐
查看詳細(xì)
AI破圈爆火!殊不知運(yùn)維才是幕后“定海神針”!
查看詳細(xì)
AI賦能DevOps:智能排錯(cuò)、代碼修復(fù)與需求生成,打造高效開(kāi)發(fā)新范式!
查看詳細(xì)
LLMOps+DeepSeek:大模型升級(jí)一體化運(yùn)維
查看詳細(xì)
DeepSeek賦能企業(yè)研發(fā):DevOps+AI 新時(shí)代再升級(jí)!
查看詳細(xì)
申請(qǐng)演示