制品与 Artifact
artifact-management、nexus、artifactory。
25 分钟
Nexus 与 Artifactory 制品管理
可观测性解决「线上怎么看」;制品仓库(Artifact Repository) 解决「构建产物存哪、谁依赖谁、能否重现发布」。Sonatype Nexus 与 JFrog Artifactory 是 Maven/Docker/npm 制品的 Enterprise 标准。本课讲 hosted/proxy/group 仓库模型;CI 衔接见 DevOps 路线图 的 pipeline 节点,应用构建见 spring-boot-essentials,镜像部署见 kubernetes-essentials,可观测见 observability-essentials 与 prometheus-essentials。
学习目标
- 区分 hosted(私服)、proxy(缓存中央库)、group(聚合) 三类仓库
- 配置 Maven
settings.xml指向 Nexus,缓存 Maven Central - 理解 Docker registry 与 镜像扫描、晋级(dev → prod) 流程
仓库模型
Developer mvn deploy
└─ Nexus hosted (releases/snapshots)
├─ proxy → Maven Central(加速、离线容错)
└─ group → maven-public(统一 URL)
CI docker push
└─ Nexus Docker hosted 或 Artifactory local-docker
└─ K8s imagePullSecrets → 生产集群拉取
<!-- settings.xml 概念片段 -->
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>https://nexus.example.com/repository/maven-public/</url>
</mirror>
</mirrors>
Nexus vs Artifactory
| 特性 | Nexus 3 | Artifactory |
|---|---|---|
| 开源 | OSS 版功能足够中小团队 | 需付费(有免费 tier 限制) |
| 格式 | Maven、npm、Docker、PyPI | 同上 + 更强 HA |
| Xray 扫描 | 需 Sonatype IQ | 内置漏洞扫描(付费) |
| HA | Pro 版 | 成熟多节点 |
最佳实践:snapshot 与 release 分库;禁止 SNAPSHOT 进生产 K8s;每个 deploy 打 immutable tag(backend:1.2.3+gitsha),与 helm-gitops-essentials GitOps 版本 pin 一致。
与可观测性的关系
制品版本 ↔ 部署版本 ↔ metrics 的 version 标签 应对齐:发布 rollback 时,在 Grafana 按 version 对比 error rate(见 )。Incident 复盘需能 。