JFrog助力民生銀行打造企業(yè)級(jí)單一可信源
在開發(fā)方面,由于我行開發(fā)語言種類較多,不同的語言需要不同的私服,不便于管理維護(hù)和安全掃描;在投產(chǎn)方面,SVN+FTP傳遞制品的方式已經(jīng)無法滿足上云的應(yīng)用,在多種產(chǎn)品的選型中,我們選取了JFROG-Artifactory作為民生銀行統(tǒng)一制品倉庫,來管理、存儲(chǔ)、分發(fā)全行級(jí)的制品。經(jīng)過一年多的適配,制品倉庫已經(jīng)與我行DEVOPS平臺(tái)(pset+eva)、工單流程平臺(tái)、容器平臺(tái)、CMDB等關(guān)鍵系統(tǒng)絲滑對(duì)接。我們建設(shè)的初衷是,規(guī)范民生銀行制品投產(chǎn)流程,提高制品質(zhì)量,加速制品投產(chǎn)效率。我們從SVN+FTP切換到制品倉庫的理念是,把更多的工作做到DEVOPS平臺(tái)上,盡可能對(duì)用戶無感,減輕科技人員負(fù)擔(dān)。
民生銀行制品倉庫的應(yīng)用
支持全開發(fā)語言依賴
全行級(jí)制品管理
適配行內(nèi)系統(tǒng)
接下來建設(shè)計(jì)劃
一、支持全開發(fā)語言依賴
1.1 統(tǒng)一私服
由于開發(fā)語言種類多,各項(xiàng)目組根據(jù)情況搭建自己的私服。這樣不便于依賴的管理和安全掃描。而且許多公網(wǎng)的依賴源,各個(gè)私服自己代理,這樣會(huì)造成很多不易排查的問題。
以maven為例,部分項(xiàng)目組在自己私服上傳了jar包而沒有上傳pom文件,私服默認(rèn)根據(jù)gav創(chuàng)建了一個(gè)沒有依賴的pom文件。這樣各項(xiàng)目組在本地自己構(gòu)建的時(shí)候沒問題,如果在pset集中構(gòu)建,有可能先構(gòu)建的是錯(cuò)誤的pom文件的項(xiàng)目,后續(xù)也有這個(gè)依賴的項(xiàng)目由于拉不到傳遞依賴就有可能會(huì)構(gòu)建失敗。
制品倉庫對(duì)公網(wǎng)的主流倉庫進(jìn)行了代理,并且將公網(wǎng)倉庫作為優(yōu)先的依賴源,這樣可以避免因?yàn)楣W(wǎng)依賴導(dǎo)致的構(gòu)建問題。
并且我們提供了一套用于上傳的公共倉庫,解決了公共依賴上傳重復(fù),維護(hù)混亂的問題。
1.2 權(quán)限管理
各種私服大多數(shù)是對(duì)單個(gè)用戶進(jìn)行授權(quán),權(quán)限關(guān)系不好維護(hù)。
因?yàn)橹破穫}庫在身份認(rèn)證和準(zhǔn)入管理方面有user,group和permission三種資源,我們?cè)陂_發(fā)環(huán)境能夠更加方便的從pset同步權(quán)限。我們編寫代碼并做成每日定時(shí)任務(wù),從pset同步用戶和權(quán)限。pset每個(gè)模塊都有只讀,編輯和管理員三種權(quán)限,在制品倉庫中也根據(jù)模塊創(chuàng)建三個(gè)group分配同步pset三種權(quán)限中的用戶;然后為每個(gè)模塊創(chuàng)建permission將對(duì)應(yīng)的group和需要操作的倉庫進(jìn)行關(guān)聯(lián),這樣就可以將pset對(duì)應(yīng)模塊對(duì)應(yīng)權(quán)限的用戶與制品倉庫的訪問權(quán)限綁定上,無需每個(gè)用戶單獨(dú)配置權(quán)限。用戶與模塊,模塊與倉庫的關(guān)系非常清晰,易于管理。生產(chǎn)環(huán)境從cmdb也采用相同的方式進(jìn)行權(quán)限同步和維護(hù),同時(shí)也實(shí)現(xiàn)了各個(gè)模塊之間權(quán)限的隔離。
1.3 倉庫管理
制品倉庫分local倉庫,remote倉庫和virtual倉庫。由于local倉庫的可以上傳的特性,我們將其作為行內(nèi)公共包和項(xiàng)目組私有包的上傳倉庫。對(duì)于項(xiàng)目組之前自己搭的私庫中的文件,也可以使用插件將文件同步到自己的私庫中,所以用戶可以很方便的切換到制品倉庫。
remote倉庫可以代理其他遠(yuǎn)端的倉庫,我們用來代理之前行內(nèi)的公共倉庫和公網(wǎng)的一些公共倉庫。如果用戶發(fā)現(xiàn)自己依賴的公網(wǎng)包在現(xiàn)代理的公網(wǎng)倉庫中沒有的情況下,可以跟我們反饋,我們根據(jù)情況申請(qǐng)代理,代理對(duì)應(yīng)的公網(wǎng)倉庫。
virtual倉庫里面可以維護(hù)local,remote和virtual三種類型的倉庫。以maven倉庫為例,其實(shí)公共倉庫,包括之前行內(nèi)的公共倉庫和代理公網(wǎng)的公共倉庫有將近三十個(gè)倉庫,我們將其整合成三個(gè)虛擬倉庫作為公共倉庫供用戶使用,后續(xù)我們調(diào)整倉庫或者新增倉庫,對(duì)于用戶都是不受影響的,這就解決了用戶老是修改依賴倉庫配置的問題。為用戶創(chuàng)建的倉庫有release和snapshot兩個(gè)虛擬倉庫,release和snapshot兩個(gè)local倉庫,并在release虛擬倉庫中添加了release的local倉庫以及兩個(gè)公共的release虛擬倉庫,在snapshot虛擬倉庫中添加了snapshot的local倉庫和公共的snapshot虛擬倉庫。用戶在配置上傳和下載倉庫的時(shí)候只需要配置他們模塊的兩個(gè)虛擬倉庫就可以滿足上傳需求,能夠同時(shí)下載到自己項(xiàng)目的包和公共倉庫的包。
1.4 高可用
開發(fā)環(huán)境采用的是雙節(jié)點(diǎn)高可用,如果其中一個(gè)節(jié)點(diǎn)異常,流量可以自動(dòng)分配到另外一個(gè)節(jié)點(diǎn),提供服務(wù)。
生產(chǎn)主從高可用F5架構(gòu),正常馬坡集群向外提供服務(wù),在馬坡集群異常的情況,F(xiàn)5可以將流量切換到鵬博士集群繼續(xù)提供服務(wù)。由于開發(fā)環(huán)境投產(chǎn)文件是向馬坡和鵬博士兩個(gè)集群雙推的,來確雙數(shù)據(jù)中心一致。
二、全行級(jí)制品管理
2.1 投產(chǎn)文件按照標(biāo)準(zhǔn)目錄格式進(jìn)行存放管理
標(biāo)準(zhǔn)目錄結(jié)構(gòu)如下:
-模塊倉庫
-版本名稱
-服務(wù)單元名稱(如果包含中文轉(zhuǎn)成拼音小寫)
-文件分類
-文件名稱
文件分類分為5種類型,作用分別如下:
artifact 存儲(chǔ)鏡像、tar、jar、war等二進(jìn)制文件
config 存儲(chǔ)配置文件
sql 存儲(chǔ)sql文件
yaml 存儲(chǔ)yaml等部署文件
other 存儲(chǔ)其他類型的文件
2.2 為存儲(chǔ)的文件添加元數(shù)據(jù)
制品倉庫支持對(duì)存儲(chǔ)的文件添加元數(shù)據(jù),現(xiàn)在已經(jīng)把jira號(hào)作為元數(shù)據(jù)添加到投產(chǎn)文件上面,后續(xù)還要打測試相關(guān)的質(zhì)量數(shù)據(jù),來做質(zhì)量門禁。
2.3 開源軟件黑名單
在開發(fā)、測試、安全掃描、生產(chǎn)運(yùn)營等過程中,一旦發(fā)現(xiàn)某個(gè)開源軟件及相關(guān)版本有安全、嚴(yán)重性能等問題,即可申請(qǐng)將其加入黑名單。
加入黑名單的申請(qǐng),由安全條線審核,是否加入黑名單。由安全條線根據(jù)CVE等安全漏洞網(wǎng)站發(fā)布的漏洞信息,定期(如半年/一年)對(duì)開源軟件倉庫里的開源軟件進(jìn)行安全檢查, 一旦發(fā)現(xiàn)問題,立即加入黑名單。
一旦加入黑名單,立即從開源軟件倉庫移除,并通知所有使用的項(xiàng)目組,按期整改。
三、適配行內(nèi)系統(tǒng)
3.1 與pset對(duì)接
pset(軟件工程支撐平臺(tái)),負(fù)責(zé)軟件需求到軟件交付的全生命周期管理。制品倉庫通過與pset集成,來實(shí)現(xiàn)對(duì)上層用戶透明,用戶只需要少量配置,即可從DTR、SVN、FTP切換到制品倉庫,通過與pset協(xié)定,使用不同成熟度的倉庫,并按照規(guī)范存放制品。
3.2 與itoms對(duì)接
itoms(IT運(yùn)維管理系統(tǒng)),負(fù)責(zé)數(shù)據(jù)中心所有變更流程。制品分發(fā)到生產(chǎn)環(huán)境必須與流程相關(guān)聯(lián)。通過與itoms工單系統(tǒng)對(duì)接,實(shí)現(xiàn)了工單審批通過,同步傳輸制品到生產(chǎn)環(huán)境。
3.3 與eva對(duì)接
eva(伊娃自動(dòng)化運(yùn)維平臺(tái)),負(fù)責(zé)數(shù)據(jù)中心所有調(diào)度、發(fā)布任務(wù)。在制品存放路徑標(biāo)準(zhǔn)化的基礎(chǔ)上,與eva實(shí)現(xiàn)了容器應(yīng)用一鍵發(fā)布,運(yùn)維人員只需選擇發(fā)布的版本號(hào),即可關(guān)聯(lián)出所有投產(chǎn)制品和發(fā)布流程。
四、接下來建設(shè)計(jì)劃
4.1 帶寬擴(kuò)容
計(jì)劃對(duì)帶寬進(jìn)行擴(kuò)容,以增加制品倉庫的傳輸速度和響應(yīng)時(shí)間。
4.2 支持總行以外的機(jī)構(gòu)部門
目前主要是總行的項(xiàng)目使用制品倉庫存儲(chǔ)構(gòu)建介質(zhì)和流轉(zhuǎn)生產(chǎn)介質(zhì),后續(xù)總行以外的信用卡中心和分行也將使用總行的制品倉庫進(jìn)行投產(chǎn)。
4.3 版本升級(jí)
(1) peer-to-peer:
在k8s集群的機(jī)器上面安裝插件,插件會(huì)收集鏡像的下載信息,當(dāng)集群中的部分機(jī)器因?yàn)橐馔夤收现貑⒅笮枰匦孪螺d鏡像的時(shí)候,優(yōu)先從集群中的其他有該鏡像的機(jī)器進(jìn)行下載,從而有效減輕,當(dāng)數(shù)據(jù)中心級(jí)災(zāi)難時(shí),幾千上萬個(gè)容器節(jié)點(diǎn)同時(shí)從制品倉庫下載鏡像爆發(fā)式的壓力。
(2) edge:
edge相當(dāng)于是只有下載功能的Artifactory,由于edge成本低和不能修改的特性,可以讓研發(fā)中心使用Artifactory,讓總行、信用卡、分行等機(jī)構(gòu)使用edge,edge承擔(dān)一個(gè)分流的角色,通過研發(fā)中心Artifactory分發(fā)制品給各個(gè)數(shù)據(jù)中心edge,然后各個(gè)數(shù)據(jù)中心從本地的edge消費(fèi)。
下載JFrog Artifactory企業(yè)版(免費(fèi)試用):
https://www.jfrogchina.com/artifactory/free-trial/
下載JFrog Artifactory 開源版(代替 Nexus):
http://www.jfrogchina.com/open-source/
下載JFrog JCR 免費(fèi)版Docker 鏡像倉庫:
https://jfrog.com/container-registry/
掃描下方添加JFrog小助手微信,可加入DevOps技術(shù)交流群。
關(guān)注“JFrog杰蛙DevOps”公眾號(hào),了解更多國內(nèi)外 DevOps 實(shí)戰(zhàn)案例
免責(zé)聲明:市場有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣依據(jù)。
相關(guān)閱讀
- (2023-01-05)喜上添花癸卯歲,玉兔呈祥待新春——2023中國癸卯(兔)年喜字形金銀紀(jì)念章全國首發(fā)
- (2023-01-05)“紅牛之戰(zhàn)”最新進(jìn)展,華彬紅牛經(jīng)銷商被判侵權(quán)
- (2023-01-04)浩柏國際(08431)委任汪倫為董事會(huì)主席
- (2023-01-03)御用工藝 璀璨千年·國家非遺“花絲鑲嵌”系列藏品上線十八數(shù)藏
- (2023-01-01)揚(yáng)子江藥業(yè)集團(tuán)2022年年終工作會(huì)議召開
- (2022-12-30)守正創(chuàng)新再獲肯定 南京云錦研究所獲頒文化產(chǎn)業(yè)示范基地
熱點(diǎn)推薦
- (2023-01-06)當(dāng)前熱文:1月6日外匯市場行情走勢分析:歐元/美元上漲 歐洲各國通脹率差異大
- (2023-01-06)微動(dòng)態(tài)丨今日六大貨幣對(duì)多空情緒分析報(bào)告(2023/1/6)
- (2023-01-06)觀天下!外匯市場行情走勢分析:美元指數(shù)越來越顯示出逆轉(zhuǎn)的跡象
- (2023-01-06)外匯市場最新行情走勢展望:澳元/美元將延續(xù)盤整
- (2023-01-06)天天觀速訊丨中信建投期貨1月6日交易策略
- (2023-01-06)最資訊丨經(jīng)濟(jì)觀察 | 中國跨境電商“加速跑” 從規(guī)模型跑量向品牌塑造轉(zhuǎn)變
最近更新
- (2023-01-06)當(dāng)前熱文:1月6日外匯市場行情走勢分析:歐元/美元上漲 歐洲各國通脹率差異大
- (2023-01-06)微動(dòng)態(tài)丨今日六大貨幣對(duì)多空情緒分析報(bào)告(2023/1/6)
- (2023-01-06)觀天下!外匯市場行情走勢分析:美元指數(shù)越來越顯示出逆轉(zhuǎn)的跡象
- (2023-01-06)外匯市場最新行情走勢展望:澳元/美元將延續(xù)盤整
- (2023-01-06)天天觀速訊丨中信建投期貨1月6日交易策略
- (2023-01-06)最資訊丨經(jīng)濟(jì)觀察 | 中國跨境電商“加速跑” 從規(guī)模型跑量向品牌塑造轉(zhuǎn)變
- (2023-01-06)強(qiáng)鏈保供守好經(jīng)濟(jì)生命線
- (2023-01-06)每日熱議!新茶飲研究報(bào)告:新茶飲線上訂單占比顯著提升
- (2023-01-06)焦點(diǎn)速訊:我國國產(chǎn)體外膜肺氧合治療(ECMO)產(chǎn)品獲批上市
- (2023-01-06)XM外匯:美國原油庫存增加,WTI油價(jià)自周線低位反彈,攀升至73.50美元附近
- (2023-01-06)世界熱議:嘉盛集團(tuán):美元全盤走強(qiáng),紐元/美元下跌處在兩日低位0.6210附近
- (2023-01-06)環(huán)球精選!歐元區(qū)最新數(shù)據(jù)預(yù)測:歐元區(qū)12月調(diào)和CPI年率-未季調(diào)初值(%)預(yù)期值 9.7,或利好歐元
- (2023-01-06)今日外匯市場主要貨幣阻力支撐位預(yù)測(2023/1/6)
- (2023-01-06)環(huán)球即時(shí):今日重點(diǎn)關(guān)注的財(cái)經(jīng)數(shù)據(jù)和事件及主要數(shù)據(jù)解讀(2023年1月6日)
- (2023-01-06)世界新動(dòng)態(tài):加快油茶產(chǎn)業(yè)發(fā)展三年行動(dòng)方案印發(fā)
- (2023-01-06)環(huán)球微動(dòng)態(tài)丨年貨節(jié)助力市場活力持續(xù)釋放
- (2023-01-06)全球快看點(diǎn)丨新疆阿克蘇地區(qū)著力打造能源資源產(chǎn)業(yè)基地
- (2023-01-06)全球熱頭條丨市場監(jiān)管總局指導(dǎo)免稅行業(yè)健康有序發(fā)展
- (2023-01-06)開曼群島元怎樣換算英鎊?開曼群島元對(duì)美元匯率是多少?
- (2023-01-06)黎巴嫩磅對(duì)人民幣匯率怎樣?1000黎巴嫩磅是多少英鎊?
- (2023-01-06)老撾基普對(duì)人民幣匯率如何?1萬老撾基普等于多少美元?
- (2023-01-06)100泰銖等于多少人民幣?泰銖怎樣兌換馬來西亞元?
- (2023-01-06)臺(tái)幣與澳門元匯率怎樣兌換?2000臺(tái)幣等于多少人民幣?
- (2023-01-06)世界今亮點(diǎn)!上海技能人才工資增幅為近三年最高
- (2023-01-06)焦點(diǎn)速看:外匯主要貨幣對(duì)技術(shù)分析:美元、歐元、英鎊、日元、澳元(2023/1/5)
- (2023-01-06)今日最新!1月5日外匯市場行情走勢分析:由于市場懷疑美聯(lián)儲(chǔ)的承諾,歐元兌美元突破步履蹣跚
- (2023-01-06)世界熱資訊!1月5日外匯市場行情走勢分析:美元兌日元處于關(guān)鍵匯合區(qū),美國數(shù)據(jù)即將公布
- (2023-01-06)當(dāng)前資訊!今日晚間白銀行情分析(2023年1月5日)
- (2023-01-06)1月6日重點(diǎn)數(shù)據(jù)和大事件前瞻