01. 制品&制品庫
不同開發(fā)語言的源碼編譯構(gòu)建打包的二進(jìn)制文件,例如Java JAR,WAR,EAR格式;Android AAR格式;其他軟件包格式,例如NuGet軟件包,Ruby gems,NPM軟件包;Docker鏡像和Helm charts;普通ZIP或.tar.gz、dmg等壓縮文件;可執(zhí)行文件格式,例如.exe 或.sh 文件,以及Android APK、Apple IPA等各種安裝程序格式。
使用場景上,分為三類:
1)制品倉庫
存放流水線構(gòu)建的通用文件類型的倉庫,以及部署時拉取文件的倉庫,如:
① Generic——例如普通ZIP或.tar.gz、dmg等壓縮文件;
② 可執(zhí)行文件格式,例如.exe 或.sh 文件,
③ Android APK、Apple IPA等各種安裝程序格式
2)鏡像倉庫
通過k8s 服務(wù)部署應(yīng)用時,需要從鏡像倉庫拉取鏡像,如:
① Docker,Docker鏡像
② Helm,Helm charts
3)依賴倉庫
各種開發(fā)語言的依賴包管理倉庫,通常會搭建nexus私服來通過代理拉取各個中央倉庫的開源依賴包,也叫三方包;由企業(yè)公共組件開發(fā)團(tuán)隊或合作公司提供的依賴包或SDK,也叫二方包,如:
Maven——Java JAR,WAR,EAR格式;Android AAR格式(包含Gradle、Ivy方式)
NPM——NodeJS包
PyPI——Python包
Go——golang包
Composer——PHP包
NuGet——.NET包
RPM——rpm和yum包
Conan——C/C++語言的包
CocoaPods——iOS包
其中maven和npm是當(dāng)前使用比較多的類型,還有其他類型語言的依賴包管理倉庫,這里就不一一列舉了。
再來看看DevOps以及DevSecOps的理念和研發(fā)過程,就可以看到到制品庫在其中起到的重任。DevOps將開發(fā)、測試、運維拉到同一戰(zhàn)線,使產(chǎn)品持續(xù)開發(fā)、持續(xù)集成、持續(xù)測試、持續(xù)部署、持續(xù)監(jiān)控,非常頻繁地發(fā)布新版本。
DevSecOps是一種遵循DevOps的思想,并將安全無縫集成到其中的研發(fā)模式。在國內(nèi),央國企、泛金融、運營商、通信、互聯(lián)網(wǎng)等頭部行業(yè),已經(jīng)開始在實踐DevSecOps。
02. DevOps&DevSecOps中的安全風(fēng)險
安全隱患明顯:第三方依賴包下載管理混亂,缺乏安全漏洞掃描和安全準(zhǔn)入設(shè)置,極易引入漏洞,造成生產(chǎn)事故。
制品管理混亂:對不同類型制品缺乏統(tǒng)一管理平臺,冗余制品無法及時清理造成資源管理混亂。
無法溯源管理:缺乏對開發(fā)、構(gòu)建、測試和部署等制品全生命周期的過程管控,無法歷史溯源。
服務(wù)中斷風(fēng)險:缺少高可用時,存在因故障引起服務(wù)中斷的風(fēng)險,影響研發(fā)和運維工作。
gt31">運維成本高昂:缺乏集群部署,存在重復(fù)建設(shè)的問題,維護(hù)成本高,且無法進(jìn)行多地區(qū)節(jié)點的制品同步分發(fā)。
一個合格的制品庫,除了要支持常用的制品類型的存儲功能以外,還必須提供倉庫代理、版本管理、訪問控制、安全掃描、依賴分析、制品同步等重要功能,是一種企業(yè)處理軟件開發(fā)過程中產(chǎn)生的所有包類型的標(biāo)準(zhǔn)化方式。實現(xiàn)對制品全生命周期的流程、風(fēng)險、權(quán)限和質(zhì)量等多維度管控,支撐企業(yè)在開發(fā)、構(gòu)建、測試和部署等階段對制品的管理和使用,可以大幅提升軟件工程的管控與效能。
03. 制品管理工具介紹
1)Nexus
大多數(shù)中小研發(fā)團(tuán)隊會選擇sonatype的nexus,免費版無高可用,可以滿足大部分基礎(chǔ)業(yè)務(wù)場景
2)Harbor
VMware公司開源的鏡像倉庫,支持Docker和Helm倉庫
3)Jfrog Artifactory
一家在美上市的以色列公司,提供制品庫商用解決方案,按年訂閱付費
4)核心推薦:嘉為藍(lán)鯨CPack
嘉為藍(lán)鯨CPack制品管理平臺是一款企業(yè)級制品管理解決方案,基于國產(chǎn)自研技術(shù)體系,致力于為企業(yè)打造現(xiàn)代化制品管理能力。
① 多類型制品支持:支持Generic、Maven、NPM、PYPI、Docker、Helm等多種常見類型,支撐多種不同語言的研發(fā)團(tuán)隊使用
② 制品統(tǒng)一管理:提供代理功能,通過設(shè)置多個代理源實現(xiàn)本地倉庫、私有倉庫和中央倉庫的制品統(tǒng)一管理,打造企業(yè)唯一可信源。
③ 制品溯源追蹤:基于制品元數(shù)據(jù)和準(zhǔn)入準(zhǔn)出規(guī)則,進(jìn)行制品晉級,以制品維度記錄從需求到發(fā)布的過程數(shù)據(jù),實現(xiàn)需求、編碼、構(gòu)建、測試、質(zhì)量和部署全生命周期過程的強管控,實現(xiàn)可信追溯與安全審計。
④ 制品安全掃描:提供自定義掃描計劃和質(zhì)量規(guī)則,滿足企業(yè)對開源組件的漏洞安全和許可證合規(guī)性方面的檢測管控要求。
⑤ 保障服務(wù)穩(wěn)定:支持集群部署和健康監(jiān)控,為企業(yè)提供穩(wěn)定的性能服務(wù)。
⑥ 降低運維成本:多地數(shù)據(jù)中心集群方式部署,支持橫向多節(jié)點擴展,以靈活的同步策略應(yīng)對高并發(fā)下載場景。
補充:
1)嘉為藍(lán)鯨CPack使用場景
1. 單環(huán)境:私服依賴倉庫+項目隔離的制品倉庫+制品晉級+部署發(fā)布
2. 多地中心:CI流水線+多節(jié)點制品庫+同步分發(fā)+應(yīng)用發(fā)布自動化+部署
3. 私服依賴庫:DMZ隔離區(qū)+多級代理
2)其他制品推薦:對制品管理以及軟件供應(yīng)鏈管理有興趣的同學(xué),還可以去了解:
2021年5月,美國政府發(fā)布行政令,要求供應(yīng)商提供SBOM
2022年4月,Docker Desktop v4.7.0更新中,增加一個新插件用-sbom命令生成docker鏡像的SBOM
2022年6月,中國信通院主辦“軟件供應(yīng)鏈安全論壇”,發(fā)布了國內(nèi)首本《軟件物料清單(SBOM)安全應(yīng)用白皮書》
2022年7月,微軟開源了內(nèi)部的SBOM 生成工具Salus
2)Google SLSA 框架(Supply-chain Levels for Software Artifacts 軟件構(gòu)件的供應(yīng)鏈級別)
3)軟件成分安全分析SCA(Software Compostition Analysis)
4)依賴包漏洞掃描工具Dependency-Check
5)容器鏡像漏洞掃描工具Trivy
6)許可證掃描工具scancode toolkit
CMDB治理:CMDB消費場景規(guī)劃指南
查看詳細(xì)
CTest測試管理平臺:上新用例結(jié)構(gòu)化設(shè)計
查看詳細(xì)
CCode代碼管理平臺:代碼合并前CI任務(wù)狀態(tài)校驗
查看詳細(xì)
嘉為藍(lán)鯨WeOps:高效監(jiān)控Kubernetes集群的三大關(guān)鍵點
查看詳細(xì)
CFlow價值流管理平臺:從流程線上化到價值可視化,研運黑盒破解之道
查看詳細(xì)
CPack制品庫:制品黑白名單,為軟件供應(yīng)鏈安全護(hù)航
查看詳細(xì)
申請演示