01.背景:代理倉庫的業(yè)務(wù)畫像
在研發(fā)領(lǐng)域,制品庫扮演著管理制品的關(guān)鍵角色。這里的制品是指由源代碼經(jīng)過編譯與打包后生成的二進(jìn)制文件,這些二進(jìn)制文件因開發(fā)語言的不同而呈現(xiàn)出不同的格式。這些二進(jìn)制文件通常用于運(yùn)行在服務(wù)器上或者作為編譯過程中的必要依賴項(xiàng)。通過制品庫的高效管理,研發(fā)團(tuán)隊(duì)能夠確保二進(jìn)制制品的有序存儲(chǔ)與便捷使用。
制品庫根據(jù)其管理制品的類型,主要可以從兩個(gè)維度進(jìn)行分類:一是按照制品的開發(fā)語言、二是按照制品的使用場(chǎng)景。在圖1中,展示了涵蓋主流開發(fā)語言的大部分制品倉庫,其中包括但不限于 Docker、Maven、npm、pypi、helm、composer、nuget、Conan等。
圖2深入展示了制品庫在不同應(yīng)用場(chǎng)景下的多樣化運(yùn)用。根據(jù)實(shí)際應(yīng)用需求,行業(yè)內(nèi)通常將制品庫分為以下幾類:
02.解密代理倉庫的玩法
在實(shí)際運(yùn)用三方依賴或官方鏡像的過程中,開發(fā)者們往往會(huì)遭遇一系列棘手問題,這些問題不僅影響了研發(fā)效率,還帶來了安全隱患。具體來說:
然而,這些問題在代理倉庫的“魔法”都能得到妥善解決。讓我們先通過圖 3 看看代理倉庫是什么。
代理倉庫,在制品庫中是一種特殊的倉庫,其核心價(jià)值在于能夠靈活配置代理多個(gè)源。當(dāng)私有倉庫內(nèi)找不到所需包時(shí),它會(huì)按照預(yù)設(shè)的配置順序,自動(dòng)從代理源中拉取并返回給用戶。這一過程中,通過采用憑證管理,既保證了操作的便利性,又確保了數(shù)據(jù)的安全性。
引入倉庫代理后,制品的拉取邏輯變得清晰而高效:
在代理倉庫尚未融入研發(fā)流程之時(shí),每個(gè)代碼倉庫或項(xiàng)目工程所需的三方組件,都要求研發(fā)團(tuán)隊(duì)逐一進(jìn)行依賴倉庫源的配置。這些配置的關(guān)系,在圖4中得到了直觀的呈現(xiàn)。
圖 4 展示的是一種相對(duì)比較簡(jiǎn)單的依賴關(guān)系。有些復(fù)雜的項(xiàng)目工程,可能依賴的倉庫源會(huì)是多個(gè),那么就需要在項(xiàng)目中配置多個(gè)依賴源和不同的拉取策略。使用代理后,研發(fā)對(duì)項(xiàng)目的依賴配置會(huì)進(jìn)一步精簡(jiǎn),只需要在項(xiàng)目工程中配置代理倉庫的信息即可。
使用了代理倉庫之后,代理倉庫憑借其高效的拉取策略,輕松解決了依賴?yán)【徛@一困擾研發(fā)團(tuán)隊(duì)的問題。同時(shí),通過代理跨網(wǎng)段的倉庫源,可以做到通過網(wǎng)絡(luò)策略的方式保障網(wǎng)絡(luò)可控的隔離且不影響依賴?yán)〉男剩蛔詈螅驗(yàn)樗械囊蕾囀褂茫家ㄟ^代理倉庫,這樣可以在代理倉庫中規(guī)劃安全策略,來實(shí)現(xiàn)依賴安全風(fēng)險(xiǎn)的可控。所以,代理倉庫處理了依賴管理的業(yè)務(wù)場(chǎng)景下一系列的經(jīng)典問題。下面,我們通過一些典型場(chǎng)景,來體會(huì)下代理倉庫的實(shí)際應(yīng)用效果。
03.代理倉庫在實(shí)踐中的力量
對(duì)于大多數(shù)的企業(yè),不管 IT 團(tuán)隊(duì)的大小,都會(huì)有訪問遠(yuǎn)程公共資源的的場(chǎng)景,例如:Maven Centra、Docker Hub、http://npmjs.org 等公共資源。然而,在利用這些寶貴資源的過程中,企業(yè)往往會(huì)遇到一系列挑戰(zhàn),包括:
針對(duì)上述的業(yè)務(wù)場(chǎng)景,我們可以基于代理倉庫的能力,建設(shè)企業(yè)私服依賴庫:DMZ 隔離區(qū) + 多級(jí)代理的方案解決該場(chǎng)景下問題。
如圖 5 中所示,業(yè)務(wù)區(qū)域,通過 DMZ 區(qū)實(shí)現(xiàn)與公共互聯(lián)網(wǎng)環(huán)境的隔離。DMZ 環(huán)境與組織內(nèi)部網(wǎng)絡(luò)之間,通過網(wǎng)絡(luò)策略連接。在 DMZ 區(qū)域,對(duì)拉取同步過來的依賴執(zhí)行安全掃描,并實(shí)施安全策略,對(duì)于不滿足安全要求的組件依賴,不允許其被拉取到業(yè)務(wù)生產(chǎn)區(qū)域使用。
基于這樣的設(shè)計(jì),中央倉庫、DMZ 私服庫、業(yè)務(wù)區(qū)域依賴庫三者間,形成多級(jí)的代理。業(yè)務(wù)區(qū)域構(gòu)建使用依賴,會(huì)優(yōu)先從依賴庫中拉取;在依賴庫中不存在的情況下從私服庫獲取,私服庫中可用的組件一定是滿足安全要求的制品;DMZ 區(qū)私服庫中不存在,則私服庫會(huì)從中央倉庫獲取,獲取后執(zhí)行安全掃描的動(dòng)作,不安全的依賴將會(huì)禁止內(nèi)部網(wǎng)絡(luò)使用。
在上述的網(wǎng)絡(luò)結(jié)構(gòu)和部署策略中,DMZ 區(qū)上的實(shí)例制品主要包括:
另外,業(yè)務(wù)區(qū)域(內(nèi)部環(huán)境)依賴庫中的實(shí)例制品,主要包括:
04.總結(jié)
在當(dāng)前行業(yè)發(fā)展趨勢(shì)中,各大企業(yè)愈發(fā)重視安全與效率的提升,代理倉庫的能力以及倉庫代理結(jié)合網(wǎng)絡(luò)拓?fù)?/span>模型的應(yīng)用已經(jīng)越來越普遍,也越來越體現(xiàn)出其價(jià)值。倉庫代理的能力已經(jīng)無需過多論證,也有類似嘉為科技、騰訊、華為等各大廠商提出了各種企業(yè)級(jí)解決方案。亟需行業(yè)從業(yè)者們繼續(xù)推廣,放大其價(jià)值。
SRE轉(zhuǎn)型:銀行SRE和虛擬IT組織的協(xié)作
查看詳細(xì)
提升軟件測(cè)試效率與質(zhì)量:基于CTest的結(jié)構(gòu)化測(cè)試用例設(shè)計(jì)與執(zhí)行
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE和DevOps團(tuán)隊(duì)的協(xié)作
查看詳細(xì)
嘉為藍(lán)鯨CPack制品庫:全新支持“純血”鴻蒙制品
查看詳細(xì)
DeepSeek 最新技術(shù)趨勢(shì):運(yùn)維人員如何提升告警管理效能?
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE模式推廣策略
查看詳細(xì)
申請(qǐng)演示