制品管理,其實(shí)并不是一個(gè)嶄新的概念。
早在工業(yè)革命時(shí)期,制造業(yè)就創(chuàng)造性地通過將制品管理標(biāo)準(zhǔn)化,完整串聯(lián)起從原料倉儲、半成品管理、成品運(yùn)輸?shù)脚渌徒桓蹲詈笠还锏墓ぷ髁髋c信息流。標(biāo)準(zhǔn)化管理的生產(chǎn)模式,大幅度提升了工業(yè)制造整體的生產(chǎn)質(zhì)量與交付效能,延續(xù)至今日,形成了現(xiàn)代化的科學(xué)生產(chǎn)體系與生產(chǎn)追溯系統(tǒng)。
現(xiàn)如今,當(dāng)企業(yè)紛紛談?wù)撈餓T研運(yùn)轉(zhuǎn)型,提升數(shù)字業(yè)務(wù)的研發(fā)質(zhì)效,但由于IT組織先天的場景獨(dú)特化、工作非標(biāo)化以及業(yè)務(wù)復(fù)雜化,導(dǎo)致企業(yè)在打造DevOps工藝體系時(shí),容易忽略或者沒能清晰認(rèn)知到,要全面實(shí)現(xiàn)企業(yè)級IT研運(yùn)體系轉(zhuǎn)型,也需要推動(dòng)軟件制品的標(biāo)準(zhǔn)化管理。
今天,作為嘉為科技的DevOps首席咨詢師,非常高興能跟大家進(jìn)行關(guān)于“DevOps之制品管理最佳實(shí)踐”的課題分享。接下來,就讓我們通過三部曲來詳細(xì)剖析今日的課題,去深挖在軟件研發(fā)的“工業(yè)革命”——DevOps轉(zhuǎn)型里,制品管理會有哪些難題,怎么通過制品管理打造企業(yè)唯一可信源,以及國內(nèi)大廠騰訊的制品管理最佳實(shí)踐。
*注:以下內(nèi)容整理自:嘉為科技DevOps首席咨詢師 汪珺 于 嘉為藍(lán)鯨2022研運(yùn)一體創(chuàng)新峰會的精彩分享——《DevOps之制品管理最佳實(shí)踐》。
01. 軟件研發(fā)的“工業(yè)革命”
提及軟件研發(fā)的“工業(yè)革命”,自2016年以來,隨著DevOps建設(shè)在國內(nèi)的逐步深化,企業(yè)都可以放心無礙地去構(gòu)建CI、CD甚至CO工藝。
但是隨著DevOps技術(shù)應(yīng)用的逐漸加深,期間大量的軟件制品被源源不斷地生產(chǎn)出來。這里面既有不同語言產(chǎn)生的制品類型,諸如Java語言的Maven、JavaScript語言的NPM和Python語言的Pypi等,也有基于IT技術(shù)應(yīng)用產(chǎn)生的制品類型,諸如Docker、Helm、RPM和Nuget等。
它們誕生自數(shù)字業(yè)務(wù)研發(fā)生命周期的每個(gè)環(huán)節(jié)里,它們存在于產(chǎn)品、研發(fā)、測試和運(yùn)維的各個(gè)團(tuán)隊(duì)中,它們既可以是無數(shù)開發(fā)共研共享的重要組件,它們也可以成為企業(yè)寶貴的私有資產(chǎn)。
在IT組織未具規(guī)?;蛭崔D(zhuǎn)型DevOps前,各開發(fā)測試團(tuán)隊(duì)可能會通過分散式地建設(shè)Nexus和Harbor等開源制品管理技術(shù)棧,甚至是SVN和FTP來管理和傳輸制品。
因?yàn)榇藭r(shí)的開發(fā)業(yè)務(wù)簡單,制品的類型不多,交付給運(yùn)維的頻率也不快,由于制品管理而導(dǎo)致生產(chǎn)事故發(fā)生的概率并不高。而且工具開源免費(fèi),對企業(yè)而言也不會產(chǎn)生額外的購買預(yù)算。
因此在業(yè)務(wù)發(fā)展的初始階段,在很多IT管理者看來,制品管理似乎并不存在成本代價(jià)和風(fēng)險(xiǎn)管理的概念。
但隨著IT規(guī)模的擴(kuò)充和業(yè)務(wù)的擴(kuò)張,開源制品庫的缺陷也隨之暴露出來,造成了開發(fā)組織內(nèi)部、開發(fā)與運(yùn)維之間、以及運(yùn)維總分部在制品使用上的大量摩擦,源源不斷地產(chǎn)生了軟件開發(fā)過程的“車禍現(xiàn)場”。
歸結(jié)下來,造成軟件開發(fā)“撞車”的原因,主要是當(dāng)今國內(nèi)制品管理存在三大難點(diǎn):
1)第一大點(diǎn)在于,技術(shù)管理的混亂性
前面已經(jīng)提及,在軟件開發(fā)過程中存在著不同類型的制品,而不同的制品類型,需要不同的底層管理技術(shù)。
單靠企業(yè)內(nèi)各開發(fā)團(tuán)隊(duì)去自主建設(shè),既會重復(fù)建設(shè)造成資源上浪費(fèi),又會在研發(fā)資產(chǎn)流動(dòng)上形成各種數(shù)據(jù)壁壘,這對企業(yè)整體而言就是一種慢性消耗。
同時(shí),開源制品庫只是單純的效率工具,對企業(yè)管理而言它缺乏必須的管控能力。在實(shí)際開發(fā)場景里,PMO或者開發(fā)管理者會發(fā)現(xiàn),開源制品庫既缺乏項(xiàng)目隔離和成員權(quán)限等組織級管理能力,也缺少倉庫管理和版本管理等精細(xì)化管理能力。
此外,制品庫作為連接開發(fā)和運(yùn)維的重要技術(shù)中轉(zhuǎn)站,背后是開發(fā)維護(hù)的技術(shù)棧與運(yùn)維維護(hù)的技術(shù)棧之間錯(cuò)綜復(fù)雜的交互關(guān)聯(lián),而這種錯(cuò)綜復(fù)雜的關(guān)系極其容易導(dǎo)致開發(fā)和運(yùn)維的“各自為政”。一旦進(jìn)行DevOps轉(zhuǎn)型或者組織擴(kuò)張,隨著軟件迭代升級速度的加快和研發(fā)運(yùn)維工作交集的加深,拉錯(cuò)包發(fā)布等生產(chǎn)風(fēng)險(xiǎn)將呈指數(shù)級上升。
2)第二大點(diǎn)在于,CICD工作流的紊亂性
如同現(xiàn)代制造業(yè),產(chǎn)品從生產(chǎn)制造一直到交付客戶手上,中間要?dú)v經(jīng)非常多的環(huán)節(jié),這是一個(gè)完整的工作流。
而在現(xiàn)有軟件研發(fā)的CICD工作流上,一旦缺乏成熟的制品管理技術(shù)在背后作支撐,就會導(dǎo)致CI工作流與CD工作流之間,形成業(yè)務(wù)上的隔斷與流動(dòng)上的紊亂。
萬一軟件發(fā)布出現(xiàn)問題,企業(yè)缺乏可溯源的血緣關(guān)系圖譜,就會無法快速追蹤該軟件包相關(guān)的開發(fā)是誰、測試是誰、安全負(fù)責(zé)人是誰,以及運(yùn)維是誰。生產(chǎn)鏈路無法追溯,責(zé)任歸屬難以辨別。
同時(shí),在中大型企業(yè)內(nèi)部,軟件版本、制品數(shù)量以及發(fā)布環(huán)境的規(guī)模也是日益膨脹,這就要求企業(yè)要根據(jù)業(yè)務(wù)發(fā)展需求,提前做好版本管理、制品清理和多節(jié)點(diǎn)同步分發(fā)等制品管理能力,保障好CICD工作的高效流動(dòng)性。
3)第三大點(diǎn)在于,開源治理和可信合規(guī)的新要求
前面有提到,企業(yè)級制品管理需要建立起CICD工作流的血緣關(guān)系圖譜,才能在企業(yè)內(nèi)形成有效的研發(fā)資產(chǎn)溯源機(jī)制。但在實(shí)際業(yè)務(wù)研發(fā)的過程中,安全隱患并不是只存在于企業(yè)內(nèi)部的工作流。
危險(xiǎn),往往從開發(fā)決定引用外部依賴就存在了。
2021年年末,幾乎所有Java應(yīng)用都會使用的maven制品(Log4j2組件)被曝嚴(yán)重漏洞,此次事件直接導(dǎo)致大量國內(nèi)服務(wù)器遭國外黑客操縱,被列為最高級別漏洞,這是實(shí)打?qū)崕Ыo國內(nèi)企業(yè)的一次深刻教訓(xùn)。
捫心自問,萬一在此次事故中,影響波及到了自身企業(yè)的業(yè)務(wù)安全,我們能否迅速地排除哪些制品和業(yè)務(wù)存在問題、立馬停止所有問題制品使用、準(zhǔn)確指揮開發(fā)運(yùn)維解決危機(jī),并在日后建立起開源制品的合規(guī)使用機(jī)制,轉(zhuǎn)危為安,贏得戰(zhàn)役,給老板交付滿意的答卷?
02. 打造企業(yè)唯一可信源
針對前面提及的國內(nèi)企業(yè)制品管理三大難點(diǎn),我們在此倡議,企業(yè)應(yīng)盡早打造企業(yè)唯一可信源,確保數(shù)字業(yè)務(wù)交付的安全合規(guī)、過程可控與高效協(xié)同。我們也為各位提供一個(gè)可供參考的建設(shè)方案:
1)第一步,開源治理
2)第二步,CI優(yōu)化
3)第三步,CD優(yōu)化
在這里,我們也想向各位分享兩個(gè)嘉為藍(lán)鯨建設(shè)的制品管理典型案例,為各位建設(shè)企業(yè)唯一可信源提供參考:
在案例一中,一所國內(nèi)知名的大型金融企業(yè)出于對業(yè)務(wù)發(fā)展和業(yè)務(wù)安全的考慮,找到嘉為藍(lán)鯨,提出想要為自身打造企業(yè)唯一可信源。
針對該金融客戶重點(diǎn)提出的:因研發(fā)團(tuán)隊(duì)/項(xiàng)目多導(dǎo)致制品管理混亂難題,以及基于業(yè)務(wù)安全性出發(fā)導(dǎo)致研發(fā)和投產(chǎn)環(huán)境間制品同步難問題。嘉為藍(lán)鯨因地制宜,打造了最適合金融客戶的制品管理解決方案:
1)搭建唯一可信源
通過企業(yè)私服的搭建,讓企業(yè)內(nèi)所有開發(fā)團(tuán)隊(duì)都只能使用經(jīng)檢驗(yàn)合規(guī)的組件,規(guī)范了企業(yè)內(nèi)100+研發(fā)項(xiàng)目、250+制品倉庫、50w+制品數(shù)量和50TB+制品容量的制品使用。
2)制品擺渡機(jī)制
通過專門為金融客戶設(shè)置的制品擺渡方案,在保障生產(chǎn)安全性的同時(shí),突破網(wǎng)絡(luò)隔離和物理障礙,實(shí)現(xiàn)制品的自動(dòng)晉級與快速同步,保障生產(chǎn)上線的時(shí)效性與安全性。
在案例二中,國內(nèi)某大型運(yùn)營商出于對全國多生產(chǎn)中心的應(yīng)用發(fā)布自動(dòng)化建設(shè)考慮,希望嘉為藍(lán)鯨能同步規(guī)范優(yōu)化全國多節(jié)點(diǎn)下的制品統(tǒng)管場景。
針對該運(yùn)營商客戶重點(diǎn)提出的:因外包研發(fā)測試團(tuán)隊(duì)居多導(dǎo)致外包團(tuán)隊(duì)與企業(yè)運(yùn)維總部間制品管理混亂難題,以及基于全國多節(jié)點(diǎn)應(yīng)用發(fā)布場景下部署包統(tǒng)一性保障難題。嘉為藍(lán)鯨對癥下藥,不僅為該客戶打造了基于藍(lán)鯨的統(tǒng)一發(fā)布自動(dòng)化平臺,保障了150+應(yīng)用,16000+的應(yīng)用發(fā)布任務(wù),在此之上還打造了最適合運(yùn)營商客戶的唯一可信源建設(shè)方案:
3)制品自動(dòng)晉級
通過結(jié)合嘉為藍(lán)鯨CCI持續(xù)集成服務(wù),實(shí)現(xiàn)所有研發(fā)團(tuán)隊(duì)在研發(fā)過程中制品的自動(dòng)化晉級與規(guī)范化管理。利用CI流水線自動(dòng)在制品內(nèi)寫入元數(shù)據(jù),便于后期運(yùn)維總部可根據(jù)制品元數(shù)據(jù)快速溯源制品完整生產(chǎn)鏈路,保障眾多外包研發(fā)團(tuán)隊(duì)所提供制品的合規(guī)性與可控性
4)多節(jié)點(diǎn)同步機(jī)制
通過專門為多投產(chǎn)環(huán)境企業(yè)客戶所打造的制品同步分發(fā)服務(wù),統(tǒng)一了集團(tuán)內(nèi)15+投產(chǎn)環(huán)境下,200+制品倉庫、1w+制品數(shù)量和13TB+制品容量的制品使用,成功抵御了多外包研發(fā)團(tuán)隊(duì)以及集團(tuán)多地生產(chǎn)中心的技術(shù)棧紊亂風(fēng)險(xiǎn),保障了錯(cuò)綜復(fù)雜關(guān)聯(lián)關(guān)系下的制品一致性。
03. 騰訊共研的殷實(shí)碩果
通過上述的制品管理最佳實(shí)踐以及兩個(gè)實(shí)際客戶案例分享,相信大家對于打造企業(yè)唯一可信源已經(jīng)有了更深刻的認(rèn)知與更多的了解,那嘉為藍(lán)鯨又是如何通過硬實(shí)力滿足眾多企業(yè)制品管理需求的呢?
這是由于嘉為藍(lán)鯨CPack制品管理平臺,是多年來嘉為藍(lán)鯨與騰訊技術(shù)共研,通過國產(chǎn)技術(shù)體系所打造的制品庫。CPack不僅目前已經(jīng)在騰訊內(nèi)部得到了100w+制品倉庫、3億+制品數(shù)量和10PB+制品容量的大規(guī)模實(shí)踐數(shù)據(jù),同時(shí)也在積極響應(yīng)國家信創(chuàng)號召,完成了與眾多國產(chǎn)技術(shù)棧的兼容適配,諸如飛騰和鯤鵬服務(wù)器,銀河麒麟和統(tǒng)信操作系統(tǒng),以及海光CPU等等。
在制品管理能力上,CPack不僅支持 Generic、Docker、Maven等10+常見制品庫類型,而且為企業(yè)提供倉庫代理、版本管理、制品溯源、安全掃描、同步分發(fā)和權(quán)限控制等一系列制品管理能力,實(shí)現(xiàn)對制品全生命周期的多維度管控。
對于企業(yè)開源治理和合規(guī)可信需求,CPack提供一整套適用于企業(yè)級制品管理的安全掃描解決方案,實(shí)現(xiàn)“制品安全一手掌控”、“開源許可一鍵獲知”和“組件漏洞一個(gè)不落”。
針對企業(yè)內(nèi)制品庫與CICD工作流的集成難題,CPack既支持獨(dú)立部署,與企業(yè)原有的Jenkins和Ansible等CICD技術(shù)棧實(shí)現(xiàn)良好融合,也通過深度集成CCI持續(xù)集成平臺和ADA應(yīng)用發(fā)布中心等嘉為藍(lán)鯨CICD技術(shù)棧,支持企業(yè)對包括CICD工藝在內(nèi)的一體化技術(shù)升級,降低企業(yè)工藝集成難度的同時(shí),為企業(yè)業(yè)務(wù)發(fā)展打造更強(qiáng)大的技術(shù)支撐體系。
未來,嘉為藍(lán)鯨CPack制品管理平臺將持續(xù)深耕和不斷改進(jìn),力求更好地服務(wù)于國內(nèi)企業(yè)唯一可信源的建設(shè)需求,為國內(nèi)企業(yè)研發(fā)運(yùn)維業(yè)務(wù)數(shù)字化轉(zhuǎn)型提供強(qiáng)大的制品管理技術(shù)保障。
CMDB治理:CMDB數(shù)據(jù)消費(fèi)與應(yīng)用指南
查看詳細(xì)
1分鐘解鎖開箱即用價(jià)值流:研發(fā)效率飆升實(shí)戰(zhàn)指南
查看詳細(xì)
CCI持續(xù)集成平臺:高效集成K8s集群,流水線容器構(gòu)建集群上線
查看詳細(xì)
嘉為藍(lán)鯨CCI持續(xù)集成平臺:Matrix Job 帶你開啟流水線編排 2.0 時(shí)代
查看詳細(xì)
告警管理:如何從零散事件中挖出關(guān)鍵信息
查看詳細(xì)
嘉為藍(lán)鯨CPack制品庫:全新ML模型管理功能,助力AI交付與企業(yè)級DevOps實(shí)踐無縫結(jié)合
查看詳細(xì)
申請演示