# 制品库管理

制品库管理是项目实施过程中必不可少的一个环节,它可以辅助项目负责人对制品的版本进行控制,也可以与CI、CD环节做到无缝衔接,同时为制品的安全扫描、依赖扫描提供了便利,DevOps默认支持关联nexus、artifactory作为项目介质管理的三方服务,支持关联harbor、artifactory作为项目镜像管理的三方服务,支持拓展集成。

DevOps中的制品库支持环境控制,确保开发库、测试库与生产库独立管理,各个环境做到数据隔离,同时存放至制品库的制品包也会按项目独立记录,保证不同项目间相同制品库中的制品数据互不可视,保证制品安全性。

制品库环境涉及到的业务字典:

工件仓库种类 (DPS_CI_ARTIFACT_REPO_CATEGORY)

工件仓库种类环境映射 (DPS_CI_ARTIFACT_REPO_CATEGORY_ENV_MAPPING)

  • # 制品仓库配置

以Nexus服务说明,项目创建后,应由平台配管在平台管理-配置管理-介质库-Nexus介质仓库配置初始化项目的制品库。

一般情况下,需要创建一个snapshot库作为开发库,需根据实际情况按需创建。

需要创建一个snapshot库作为测试库。

需要创建一个release库作为生产库。

需要创建一个raw库作为开发配置库。

为避免snapshot库无限扩大,可以选择在介质服务器配置对应snapshot库的清理策略

再由平台配管在平台管理-配置管理-介质库-项目关联将创建好的制品库关联至项目。

  • # 项目制品管理

DevOps默认环境类型包括如下6种,支持自定义。

项目负责人需要对不同的角色分配不同的环境权限,并授予项目成员对应的角色,提高生产环境数据安全性。

eg. 项目经理拥有全部环境权限,开发、测试相关人员拥有开发、测试环境权限,运维人员拥有生产环境权限等。

eg. 项目负责人可以看到全部环境的制品库。

eg. 开发人员可以看到开发、测试环境的制品库。

项目成员可以在介质页面上传介质到当前用户拥有环境权限的制品库。

eg. 上传文件至zxytest-raw库,artifactId用来标识制品名称,version指定制品版本,别名用来部署时快速指定制品,组件涉及到应用部署成功后全链路追溯制品来源。

通常场景下通过构建流水线上传制品。

eg. 一条标准构建流水线,打包demoWar示例源码,工件路径配置制品的相对路径,groupId配置制品在制品库中的分组名称,artifactId配置制品在制品库中的标识名称,version配置制品版本信息。

额外说明:artifactory类型介质库支持制品晋级、创建安全扫描功能。

制品晋级背后的核心理念就是单一制品原则,也就是构建一次,多次部署,制品晋级一般都是会有多个制品库,可以是多个服务器,也可以是多个目录,比如,当制品在测试环境验证通过后,人工晋级到预发布环境的制品仓库,制品晋级功能支持以目录层级晋级制品。

创建安全扫描功能依靠Xray为测试工具来扫描制品安全漏洞。

制品对比能力可以查看制品之间commit提交记录差异以及文件差异。

  • # 制品元数据

点击制品可以查看制品元数据信息,包括基本信息、关联工作项、代码库、构建、发布、质量、依赖、安全合规信息。

质量信息来源于构建流水线执行sonarqube代码质量扫描产生。

依赖信息来源于构建流水线执行maven构建时增加额外参数"org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom",并在上传制品任务时勾选上传bom文件,配置正确的bom文件路径,或者在生成制品后,选择上传物料清单能力上传bom文件。

安全合规信息来源于创建安全合规扫描,一种方式通过流水线任务"安全合规扫描",一种方式可以在制品页面使用创建安全扫描功能。

上次更新: 2023-4-24 17:56:30