1.1 Nexus 制品库简介

Nexus Repository(通常简称 Nexus)是由 Sonatype 公司开发的企业级制品管理平台,是 DevOps 工具链中存储、管理、分发二进制制品(如 JAR、WAR、Docker 镜像、npm 包、PyPI 包、NuGet 包等)的核心组件。它充当了“制品中央仓库”的角色,连接持续集成(CI)与持续部署(CD)流程,确保制品从构建到交付的完整可追溯性。

核心定位:Nexus 不是代码仓库(如 GitLab),也不是 CI/CD 引擎(如 Jenkins),而是专注于二进制制品的存储、版本管理、安全扫描与分发。它是 DevOps 中“构建产物”的唯一可信源。

1.1.1 核心功能矩阵

功能域 具体能力 说明
制品存储 多格式支持 Maven/Gradle、npm、Docker、PyPI、NuGet、Raw、Yum、APT、Helm 等 30+ 格式
代理缓存 远程仓库代理 代理 Maven Central、npmjs.org、Docker Hub 等,缓存制品到本地,加速构建并减少外网依赖
仓库组 统一聚合入口 将多个 hosted(宿主)和 proxy(代理)仓库聚合成一个 group 仓库,客户端只需配置一个 URL
安全与合规 漏洞扫描 + 策略 集成 Sonatype IQ Server,对制品进行已知漏洞(CVE)检测,支持自定义安全策略
高可用 集群部署 支持 Active/Active 或 Active/Standby 集群模式,通过共享 Blob Store(如 S3、NFS)实现数据一致性
审计与追溯 完整操作日志 记录所有制品的上传、下载、删除、覆盖操作,满足合规审计要求

1.1.2 在 DevOps 中的定位与价值

Nexus 在 DevOps 流水线中处于“承上启下”的关键位置。下图展示了 Nexus 在典型 DevOps 工具链中的核心定位:

Nexus 在 DevOps 工具链中的核心定位 CI 持续集成 Jenkins / GitLab CI / GitHub Actions Nexus Repository 制品存储 · 代理缓存 · 安全扫描 CD 持续部署 Kubernetes / Ansible / Spinnaker 上游公共仓库 Maven Central / Docker Hub / npmjs 代理缓存(Proxy) 自动缓存 · 版本锁定 · 离线可用 宿主仓库(Hosted) 内部发布 · 版本管理 · 权限控制 Nexus 在 DevOps 中的核心价值 • 加速构建:代理缓存减少外网下载,构建速度提升 50%~80% • 安全左移:制品上传时自动扫描漏洞,阻止不安全制品进入生产 • 版本追溯:每个制品都有唯一坐标(groupId:artifactId:version),支持回滚与审计

1.1.3 仓库类型与使用场景

Nexus 提供三种核心仓库类型,理解它们的区别是配置高可用架构的基础:

仓库类型 用途 典型场景 高可用注意事项
Hosted(宿主) 存储组织内部发布的私有制品 团队内部 JAR 包、Docker 镜像、npm 私有包 需共享 Blob Store,确保集群节点数据一致
Proxy(代理) 代理并缓存远程公共仓库 Maven Central、Docker Hub、PyPI 等 缓存数据存储在本地 Blob Store,集群节点共享
Group(组) 将多个 Hosted + Proxy 聚合成单一入口 开发者只需配置一个仓库 URL,Nexus 自动路由 Group 本身无数据存储,依赖成员仓库的高可用
高可用关键认知:Nexus 高可用的核心挑战在于Blob Store 的共享与一致性。Hosted 仓库的写入操作必须同步到所有集群节点,而 Proxy 仓库的缓存数据也需要在节点间保持一致。本课程后续章节将深入讲解如何通过 S3、NFS 或数据库共享实现这一目标。

1.1.4 为什么选择 Nexus 作为高可用课程载体

  • 市场占有率最高:Nexus 是企业级制品管理的事实标准,超过 70% 的 Fortune 500 公司使用 Nexus。
  • 高可用架构成熟:支持 Active/Active 和 Active/Standby 两种模式,有完善的官方文档和社区实践。
  • 故障场景丰富:从单节点宕机、Blob Store 损坏、数据库连接失败到网络分区,Nexus 的故障模式覆盖了分布式系统的大部分典型问题。
  • 与 DevOps 工具链深度集成:Nexus 与 Jenkins、Kubernetes、Docker、Helm 等工具无缝对接,高可用切换直接影响整个交付流水线。
常见误区:很多团队认为 Nexus 高可用只需要“多部署几个实例”即可。实际上,Nexus 的集群模式对 Blob Store 的 I/O 性能、网络延迟、数据库事务一致性有严格要求。错误的配置可能导致数据损坏或制品丢失。本课程将逐一拆解这些陷阱。