🧱了解 Google Cloud CI/CD 中的 Artifacts 和 Artifact Repositories
Source: Dev.to

什么是制品?
当你的 CI 流水线构建代码时,会生成输出文件。这些文件——称为 制品(artifacts)——是后续部署时使用的交付物。
制品包括:
- JAR 文件
- 包
- 二进制文件
- Docker 镜像
- 配置文件
- 文档或报告
- 任何编译或生成的输出
可以把制品看作是构建阶段(CI)的结果,随后被部署阶段(CD)消费。
制品的类型
制品大致分为两类:
容器制品
容器镜像——通常是 Docker 镜像——用于在 Kubernetes、Cloud Run、Cloud Functions 等平台上部署应用。
非容器制品
- Java
.jar文件 - Node/npm 包
- Python wheel 包
- Terraform 模块
- Helm Chart
- 配置文件
这两类制品都需要可靠的存储和版本管理。
为什么需要制品管理?
CI 流水线生成制品后,需要:
- 存放在统一位置
- 正确进行版本管理
- 供 CD 流水线访问
- 安全并进行漏洞扫描
- 一致性管理
制品管理系统充当所有构建产出物的唯一可信来源。
制品仓库的解释
制品仓库(Artifact Repository) 是一种集中式存储系统,专为在 CI/CD 工作流中存储和管理制品而设计。
主要优势
- 单一可信来源
- 版本管理
- 漏洞扫描
- 审批工作流
- 构建与部署阶段的一致性
- 提升 DevOps 效率
制品仓库对单体应用和微服务架构都至关重要。
在 Google Cloud 中存储制品的选项
Google Cloud 提供两项主要服务用于存储制品。
1. Artifact Registry(推荐)
Artifact Registry 是下一代 Google 制品存储解决方案,取代了 Container Registry 并支持更多制品类型。
关键特性
- 存储容器和非容器制品
- 原生支持多种格式(Docker、npm、Maven、Python 等)
- 与 Cloud Build、GKE、Cloud Run 完全集成
- 区域性或多区域仓库
- 漏洞扫描
- 细粒度 IAM 控制
- 基于使用量的计费(存储 + 网络出站)
Artifact Registry 现已成为默认且推荐的选项。
2. Container Registry(旧版)
Container Registry 是 Google 最初用于存储 Docker 镜像的解决方案。
特性
- 私有 Docker 镜像仓库
- 支持 Docker Image Manifest V2 与 OCI 格式
- 漏洞扫描
- 与标准 Docker CLI(
docker push、docker pull)兼容 - 按底层 Cloud Storage 使用量计费
它仍然可用,但 Google Cloud 正在将用户迁移至 Artifact Registry。新项目请使用 Artifact Registry。
最后思考
制品是任何 CI/CD 流水线的核心。它们确保:
- 代码被转化为可部署的资产
- 构建产出保持一致且可追溯
- 部署工作流可靠且安全
Google Cloud 的 Artifact Registry 提供了一种现代、统一、安全且可扩展的方式来管理容器和非容器制品——是 DevOps 团队的理想选择。