设计一条从 Dev → QA → Prod 的镜像晋升流水线
解读
面试官想验证候选人是否能把“镜像即交付物”理念落地到国内企业真实的多环境晋升场景,兼顾合规、安全、可回滚、可审计三大硬性要求。回答必须体现:
- 镜像从构建到生产全生命周期不可变
- 每一步都有准入质检门控(CVE 扫描、签名、自动化测试)
- 与中国常用基础设施(阿里云 ACR、企业微信/飞书通知、堡垒机、等保 2.0)无缝结合
- 灰度、回滚、溯源一键完成,无需人工登录宿主机
知识点
- 镜像命名规范:<项目>-<版本>-<git-sha>-<环境后缀>,禁止 latest
- 多阶段构建与最小化基础镜像(alpine、distroless、ubi-minimal)
- Harbor 镜像仓库的项目级隔离、不可变标签、Webhook、CIS 扫描
- Cosign/Notation 实现镜像签名,配合 OPA/Kyverno 做准入策略
- GitLab CI 或 GitHub Actions 的 environment protection + manual gate
- 阿里云 ACR 企业版的实例同步、VPC 访问控制、操作审计日志
- Kubernetes 多集群(dev/qa/prod)通过ACK One 多集群舰队统一治理
- Argo CD Image Updater 自动改写 Git 仓库中的镜像摘要,实现GitOps 回滚
- 通知闭环:企业微信群机器人 + 飞书卡片,携带镜像摘要、扫描报告、回滚按钮
答案
我设计的晋升流水线分七步,全部通过GitLab CI + Harbor + ACK 实现,零人工干预即可直达到生产。
-
开发提交代码
开发者 push 到 feature 分支,GitLab CI 触发 docker-build job,使用 多阶段构建 生成镜像:
myapp:1.3.5-4f51a2-dev
构建完成后自动推送到 Harbor 的 dev 项目,并触发 Trivy 扫描;若 HIGH 及以上 CVE>0,则流水线失败,飞书告警。 -
Dev 环境自动部署
扫描通过后,CI 调用 Argo CD 同步 dev 集群,镜像摘要写入 Git 仓库的env/dev/kustomization.yaml。
自动化测试(API、UI、性能)在 dev 集群跑完,通过率≥95% 才允许晋升。 -
QA 门控与镜像晋升
研发负责人点击 GitLab 的 manual gate “promote-qa”,CI 执行 skopeo copy 把镜像从harbor-dev同步到harbor-qa项目,标签不变、摘要不变,并自动加 Cosign 签名qa-4f51a2.sig。
Harbor 的不可变策略确保 qa 项目内同名标签不可覆盖,满足等保审计。 -
QA 环境部署与验收
Argo CD 检测到 qa 仓库镜像摘要变化,自动同步到 ACK qa 集群;QA 团队执行 自动化回归 + 手工业务验收。
若发现缺陷,直接在 GitLab 提 issue,回滚只需 Git revert 上一次摘要,Argo CD 自动拉回旧版本,平均回滚时间 < 60 秒。 -
Prod 审批与镜像晋升
验收通过后,产品经理+运维经理双人会签(通过企业微信审批应用),CI 收到 webhook 后执行 skopeo copy 到harbor-prod项目,再次签名prod-4f51a2.sig,并写入 镜像 SBOM 到 Harbor 附件,满足等保 2.0 供应链要求。 -
生产灰度发布
使用 ACK 蓝绿 + 金丝雀 双策略:- 先起 10% 金丝雀,通过 Prometheus + Alertmanager 检测 P99 延迟、错误率
- 若 30 分钟无异常,自动全量;若异常,Argo Rollouts 一键回滚到上一个摘要
全程镜像摘要不变,无需重新构建,保证“构建-交付-运行”一致性。
-
审计与闭环
Harbor 操作日志、镜像签名、SBOM、CVE 报告全部写入 阿里云 OSS 长期存储,保留 180 天;
飞书群卡片推送“生产发布成功”消息,附带镜像摘要、回滚按钮、审计链接,实现通知即审计。
通过以上七步,镜像在 Dev→QA→Prod 全程不可变、可追踪、可回滚,并满足国内等保、密评、供应链安全要求。
拓展思考
- 如果公司采用混合云,Harbor 到华为云 SWR 的跨云同步怎样保证低延迟与一致性?可引入 Dragonfly P2P 做镜像预热,减少 80% 跨云流量。
- 面对突发监管要求,需要秒级冻结某一基础镜像版本,可基于 OPA Gatekeeper 在集群侧拦截含特定 sha256 的镜像启动,无需重新打标签。
- 未来引入 SBOM 与漏洞数据库联动,可在 CI 阶段实现 “1 天漏洞窗口” 策略:若新披露 CVE 影响已晋升镜像,自动阻塞生产 rollout 并@安全负责人,实现左移安全闭环。