+ZHIPINKU
制品库
光大科技智能云计算部
智能化平台团队
···●
●···
团队介绍
我们是光大科技智能云计算部智能化平台团队Devops项目组,专注于金融传统行业研发效能的提升和快速交付。通过自动化技术的应用,以及敏捷协同管理工具链的研发,助力金融传统行业Devops落地。团队拥有Devops领域经验丰富的研发工程师和专家,将不定期分享敏捷领域的原创文章,共同探索Devops落地最佳实践。
一、什么是制品库
软件制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,这些二进制通常可以直接运行在服务器上。
制品库用以管理源代码编译后的构建产物,支持 Docker/Image、Maven/Jar、Helm/Kubernetes、npm/Node.js包等常见制品库类型。制品库可以跟源代码协同进行版本化控制,可以与本地各构建工具和云上的持续集成、持续部署无缝结合,并支持漏洞扫描等特性,是一种企业处理软件开发过程中产生的所有包类型的标准化方式。
注:此图源于网络
二、为什么需要制品管理
当下不少研发组织依然使用着粗粒度的制品管理(比如搭建简易 FTP 来提供制品的上传、下载功能),甚至没有进行基本的制品管理。在这种粗放式的制品管理方式下,不同类型包的存储与获取是一件头疼的事情,版本追踪极其混乱,团队协作也是障碍不少。
标准化的制品管理帮助企业组织解决上述困扰。从下图可以看出来【制品管理】就是我们整个DevOps流水线的枢纽,在 DevOps 自动化流水线当中,持续集成的构建物自动存入制品库中,在部署时按需获取对应的版本。只有引入了制品库,才能真正实践“Once Integration,run anytime anywhere.”,才能真正无缝实现所测即所部署。
注:此图源于网络
三、Nexus Repository Manage
●
3.1 简介
Nexus的全称是Nexus Repository Manager,是Sonatype公司的一个产品。号称全球排名第一的制品管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus用户可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
●
3.2 基本功能特征
(1)支持所有流行的构建工具
-
存储和分发Maven / Java、npm、NuGet、Helm、Docker、P2、OBR、APT、GO、R、Conan组件等。
-
管理从开发到交付的所有组件:二进制文件、容器、组件和制成品。
-
对Java虚拟机(JVM)生态系统的高级支持,包括Gradle、Ant、Maven和Ivy。
-
与流行的工具兼容,如Eclipse、IntelliJ、Hudson、Jenkins、Puppet、Chef、Docker等。
注:此图源于网络
(2)企业级高可用性
-
提供高可用性群集(HA-C)功能,旨在通过在单个数据中心内具有冗余NXRM“节点”(实例)群集来提高正常运行时间。
-
整个软件开发生命周期中使用的组件的唯一真实来源。
-
与现有的用户和访问供应系统轻松集成,包括LDAP、Atlassian Crowd等。
-
SAML/SSO身份验证可增强安全性和单点登录体验。
注:此图源于网络
(3)漏洞扫描、安全分析功能
-
存储库运行状况检查(RHC)提供了最新的组件智能,因此您的团队可以尽早做出明智的决策。
-
查看需要修复的组件(按漏洞的严重性排序)。
-
轻松避免Maven / Java、npm、NuGet和PyPI等组件的已知安全和许可证问题。
注:此图源于网络
(4)持续创新的现代特征
-
用您选择的构建或部署工具,或者直接通过HTTP,直接部署到所需的存储库。
-
通过专用的安全性和自动规则验证来暂存和管理发布。
-
可在开发人员组之间共享二进制制品,也可以随时对制品进行测试、升级或丢弃。
四、Nexus制品管理
使用Nexus作为二进制制品管理仓库,二进制制品的上传主要可以通过三种方式来进行,结合Apache Maven Deploy Plugin进行操作、通过Nexus提供的UI界面进行或者通过Nexus提供的API进行操作。
Maven Deploy Plugin
UI界面上传制品
Nexus API 上传制品
五、小结
本篇前两小节主要讲什么是制品、制品库,为什么需要制品管理,从而引出制品库。第三小节以Nexus为例,简要介绍了目前主流制品库的一些功能特征。第四小节概述了Nexus制品上传的实操。
篇幅有限,所以此篇介绍的不是特别详细,前期调研过很多制品库,比如Nexus、Harbor、JFrog ARTIFACTORY等等,对其特性有一定了解,也实操过。若大家有兴趣,欢迎随时交流沟通。
参考资料
https://guides.sonatype.com/
https://www.sonatype.com/
https://goharbor.io/
https://www.jfrogchina.com/
https://blog.csdn.net/justyman/article/details/105173303
····●