制品库类型与布局是什么
制品库(Repository Manager / Registry)按用途分三层:代理缓存(proxy)向上游公网源拉取并缓存,私有托管(hosted)存放自研制品,聚合组(group / virtual)对外暴露统一入口、按顺序聚合多个仓库。布局时的关键决策是通道分离:宿主仓库拆成「快照」与「发布」两条,快照允许被覆盖、供开发迭代;发布通道开启不可变策略、供生产消费。这样清理策略与审计口径才能按通道各自成立。
基本信息
| proxy 代理 | 缓存公网源(npm、pypi、maven 中央仓等),加速并降低外网依赖 |
|---|---|
| hosted 托管 | 存放自研制品:快照与发布分开 |
| group/virtual | 对外暴露统一入口,按顺序聚合多个仓库 |
| 通道设计 | 快照通道可覆盖、发布通道不可变 |
| 典型产品 | Nexus、Artifactory、GitLab Registry 等 |
典型使用场景
- 内网加速依赖拉取:代理仓库缓存公网包,构建不再等慢速外网。
- 统一依赖出口审计:所有出网依赖都经过代理仓库,可统计、可限制来源。
- 私有制品分发:内部库与二进制经托管仓库发布,权限与命名规范集中管理。
- 依赖混淆防护:内部包与公网同名时,由聚合顺序与命名空间规则决定解析来源。
- 快照与发布隔离:开发快照不影响正式发布通道的不可变性。
布局示意
布局示意
group-public = [proxy-npm, proxy-pypi, hosted-releases]
hosted-snapshots(开发快照, 允许覆盖)
hosted-releases(正式发布, 开启不可变策略)
# 发布只写 hosted-releases; 依赖解析统一读 group-public三层角色对比
| 类型 | 内容来源 | 典型用途 |
|---|---|---|
| proxy | 公网上游缓存 | 加速、审计出网依赖 |
| hosted | 自研制品 | 快照与发布分发 |
| group | 聚合多个仓库 | 对外统一入口 |
依赖解析统一指向 group 地址:既防依赖混淆,也便于统一审计出网依赖。
快照与发布要放在两个宿主仓库:混放会让清理策略无法区分(正式制品有被误删的风险),审计时也分不清哪些版本承诺过稳定性。