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