华为云多环境部署流水线参考架构

举报
华为云架构中心 发表于 2026/09/11 15:05:28 2026/09/11
【摘要】 多环境(beta/gamma/production)、多华为云账号、多区域、手动审批、自动化部署管道,基于华为云CodeArts流水线实现

1. 用途和受众

1.1 预期用途

  • 指导企业在华为云上构建"开发 → 测试 → 生产"多环境部署流水线,实现环境隔离、阶段门禁、制品不可变逐级晋级与可回滚的规范化交付。
  • 为售前、解决方案设计、实施和审查提供可重用的多环境持续交付架构模式(CodeArts 原生落地)。
  • 作为企业 DevOps 体系建设、应用上云交付包或新应用流水线搭建的架构基础。
  • 定义多环境部署在性能、安全、可扩展性、运维和可靠性维度的设计护栏。

1.2 目标受众

  • DevOps 平台工程师:负责 CodeArts 流水线分层设计、构建模板开发与工具链集成
  • 发布经理:管理多环境发布流程、审批门禁与版本管控策略
  • 交付架构师:负责流水线方案落地、环境规划与 CI/CD 体系交付实施
  • 安全合规工程师:配置代码扫描、制品安全门禁与合规检查策略
  • 企业客户(应用研发团队):评估多环境部署流水线,建立规范化 CI/CD 发布体系
  • 合作伙伴与 MSP:参与流水线实施、平台托管与发布运营

2. 参考架构概述

2.1 架构描述

基于华为云 CodeArts 软件开发生产线构建的多环境部署流水线参考架构,按"流水线层 → 制品与质量门禁层 → 环境层"三层组织,覆盖 ① 需求与代码提交 → ② 构建与代码检查 → ③ 制品入库(不可变)→ ④ 开发环境部署与单元测试 → ⑤ 测试环境部署与自动化回归 → ⑥ 人工审批门禁 → ⑦ 生产灰度发布与监控回滚 七步流程。核心做法:一次构建生成不可变制品(同一镜像摘要),经开发、测试逐级晋级,通过人工审批门禁后以灰度/滚动方式发布到生产;开发/测试/生产三套环境独立隔离(多账号或独立 CCE 集群/命名空间、ECS 主机组),环境差异完全通过外置配置(参数组/ConfigMap/环境变量)在部署时注入,回滚基于制品版本分钟级完成。

2.2 业务背景

项目 描述
业务问题 应用发布靠人工脚本多环境手工部署:环境配置漂移导致"测试通过、生产失败";无统一门禁与审批,变更风险高;制品重复构建、版本不一致;故障后回滚慢
期望的结果 一条流水线贯通开发/测试/生产;同一不可变制品逐级晋级;质量门禁 + 人工审批拦截风险变更;环境配置外置、可按需复制新环境;分钟级版本回滚
主要用户 开发者(提交代码/查看结果)、测试工程师(回归验证)、发布经理(生产审批)、运维工程师(环境与发布运营)
关键制约因素 变更管理与合规审批要求(生产变更须审批留痕);现有代码库/构建脚本迁移成本;三套环境的资源与成本预算;网络隔离与账号体系现状
成功指标 生产发布成功率 ≥99%;部署频率提升 ≥3 倍;变更前置时间(提交→生产)≤1 天;生产故障版本回滚时长 ≤10min;环境配置漂移事件为 0

2.3 架构优点

  • 环境隔离、边界清晰:开发/测试/生产三套环境按多账号或独立 CCE 集群/命名空间、ECS 主机组隔离,权限、网络、数据互不干扰,生产爆炸半径最小化。
  • 流水线分段晋升:流水线按环境分段(开发自动部署+单测 → 测试部署+自动化回归 → 人工审批 → 生产灰度/滚动),每段有明确质量门禁,通过才允许晋级。
  • 不可变制品逐级晋级:一次构建、一个摘要(digest),同一制品在三个环境间逐级复用、不重新构建,消除环境漂移导致的"测试通过、生产失败"。
  • 人工审批门禁:生产晋级必须经发布经理审批(审批意见与记录全程留痕),满足变更管理合规要求;SMN 通知催办避免流程阻塞。
  • 环境配置外置:环境差异以参数组/ConfigMap/环境变量形式在部署时注入,制品与配置解耦,复制新环境(如预生产)只需新增配置集。
  • 快速回滚:回滚 = 重新部署上一版本制品,无需重新构建,分钟级恢复;灰度/滚动发布保障发布期间服务持续可用。
  • 全链路可追溯:CodeArts Pipeline 聚合需求→代码→构建→制品→部署全链路追溯,任一版本在各环境的部署状态与审批记录一目了然。

2.4 设计关注点

性能 安全 可扩展性 运维 可靠性
构建缓存与阶段并行缩短构建时长;测试回归套件并行执行;生产灰度批次与观察窗口结合业务高峰设置,避免发布影响峰值 三环境权限分离,生产部署最小权限 + 双人复核;制品签名与镜像漏洞扫描门禁;密钥类配置入 KMS/密钥库,严禁入库代码仓库;审批记录不可篡改 环境可横向扩展(新增预生产/灰度环境即新增流水线段);新应用通过流水线模板快速复制;多账号隔离按业务线规模化扩展 流水线分段可视化,部署历史与审批记录全程可追溯;环境配置外置实现"同一制品、不同参数";CES+SMN 监控告警闭环,发布看板统一 回滚基于不可变制品版本,分钟级重部署上一版本;生产滚动/灰度发布保持服务可用;审批门禁防止未验证变更进入生产;制品库禁覆盖防误删

2.5 典型架构


华为云多环境部署流水线架构图

2.6 流程描述

  1. ① 需求与代码提交:输入为需求条目与开发者代码变更;CodeArts Req 管理需求条目并关联代码提交,开发者向 CodeArts Repo 推送代码、创建合并请求(MR),触发流水线启动;输出为可追溯的代码版本与流水线运行实例。
  2. ② 构建与代码检查:输入为合并后的代码版本;CodeArts Build 编译构建并运行单元测试,CodeArts Check 执行静态代码检查与代码评审门禁,缺陷阻断晋级;输出为通过质量门禁的构建产物与质量报告。
  3. ③ 制品入库(不可变):输入为构建产物;容器镜像推送 SWR、构件包注册 CodeArts Artifact,版本与摘要(digest)冻结、禁止覆盖,作为三环境复用的唯一制品;输出为不可变制品与版本基线。
  4. ④ 开发环境部署与单元测试:输入为不可变制品 + 开发环境外置配置;CodeArts Deploy 自动部署到开发环境(CCE 开发命名空间 / 开发 ECS 主机组)并注入开发参数,运行单元测试与集成冒烟;输出为功能验证通过的开发环境版本。
  5. ⑤ 测试环境部署与自动化回归:输入为同一制品 + 测试环境外置配置;制品晋级部署到测试环境(独立集群/命名空间/主机组),CodeArts TestPlan 执行自动化回归、CodeArts PerfTest 执行性能测试;输出为回归/性能测试报告(生产晋级依据)。
  6. ⑥ 人工审批门禁:输入为测试报告与晋级申请;CodeArts Pipeline 审批阶段经 SMN 通知发布经理,审核测试报告并批准/驳回,审批意见与操作全程留痕;输出为放行的生产晋级单(或驳回意见)。
  7. ⑦ 生产灰度发布与监控回滚:输入为已批准制品 + 生产环境外置配置;以灰度/滚动方式发布到生产环境(生产 CCE 集群 / ECS 主机组),CES 持续监控关键指标与告警,异常时自动/手动回滚到上一版本制品;输出为完成发布且持续监控中的生产版本,以及随时可触发的版本回滚能力。

2.7 云服务产品清单

分类 服务或产品 推荐配置 官网链接
需求与协作 CodeArts Req 需求管理 需求条目/迭代管理,需求 → 代码提交双向关联,状态流转闭环 CodeArts Req
代码托管 CodeArts Repo 代码托管 分支策略(feature/release/hotfix),MR 强制评审后合入 CodeArts Repo
代码质量 CodeArts Check 代码检查 静态检查 + 代码评审门禁,高危缺陷阻断合并 CodeArts Check
编译构建 CodeArts Build 编译构建 一次构建全环境复用,构建缓存提速,产物版本不可变 CodeArts Build
制品管理 CodeArts Artifact 制品仓库 构件包版本不可变,禁止覆盖/删除,晋级记录可追溯 CodeArts Artifact
容器镜像 SWR 容器镜像服务 镜像摘要(digest)为唯一制品标识,三环境共用同一镜像,开启防覆盖 SWR
自动化测试 CodeArts TestPlan 测试管理 自动化回归/接口测试套件,绑定测试环境部署阶段执行 CodeArts TestPlan
性能测试 CodeArts PerfTest 性能测试 生产晋级前性能基线测试,报告作为审批依据 CodeArts PerfTest
流水线编排 CodeArts Pipeline 流水线 按环境分段:开发 → 测试 → 人工审批 → 生产;质量门禁 + 审批阶段 + 通知集成 CodeArts Pipeline
部署发布 CodeArts Deploy 部署 环境级部署模板(主机组/容器),滚动/灰度策略,按制品版本回滚 CodeArts Deploy
计算(容器) CCE 云容器引擎 三环境独立集群或命名空间隔离,生产集群多可用区高可用 CCE
计算(主机) ECS 弹性云服务器 主机部署模式:三套环境主机组独立,生产 ≥2 台 + ELB 负载 ECS
身份与权限 IAM 统一身份认证 按环境分权:开发只写开发环境、生产部署最小权限 + 双人复核 IAM
监控告警 CES 云监控 生产环境关键指标监控与告警,联动发布回滚决策 CES
消息通知 SMN 消息通知 审批提醒与告警订阅(邮件/短信/即时消息),催办防阻塞 SMN

3. 参考链接

  • 产品文档:
  • 实施指南:
  • 源代码或 IaC:
  • 操作手册:
  • 安全性和合规性映射:

4. 使用限制

  • 环境隔离方式(多账号 vs 同账号独立集群/命名空间/主机组)须在实施前按合规等级与规模选定,投产后变更隔离模式成本高。
  • 不可变制品策略要求全链路不重建、不重打标签,须在制品库与镜像仓库同时开启防覆盖,并严禁在目标环境内手工修改。
  • 审批门禁的有效性依赖审批人时效,应设置审批 SLA 与 SMN 自动催办/升级机制,避免长期阻塞发布窗口。
  • 环境配置外置要求对存量硬编码配置做改造;密钥类配置必须使用 KMS/密钥库管理并定期审计,不得随制品打包。
  • 大规模并发构建与多环境并行流水线需规划构建集群资源与配额,建议按环境分级限流。
  • 本架构为部署流水线模式;具体应用的容器化/主机化改造、网络与安全组设计须另行按场景参考架构设计。

附录 A. 术语和缩略语

术语 定义
部署流水线 将代码从提交到生产发布全过程自动化编排的阶段集合(构建、测试、审批、部署)
环境晋升 同一制品按 开发 → 测试 → 生产 顺序逐级部署并通过门禁的过程
不可变制品 一次构建后内容冻结的交付物(镜像/构件包),任何环境不重新构建、不覆盖
镜像摘要(digest) 容器镜像内容的唯一哈希标识,用于确认各环境部署的是同一制品
审批门禁 流水线中的人工审批阶段,未获批准不得晋级到下一环境
质量门禁 代码检查、单元测试、回归/性能测试等自动化卡点,不达标阻断晋级
灰度发布 先向小比例实例/流量发布新版本,观察指标正常后再全量放量的发布策略
滚动发布 分批替换实例并保持服务持续可用的发布策略
配置外置 环境差异(参数、ConfigMap、环境变量)与制品解耦,在部署时注入
主机组 CodeArts Deploy 中按环境划分的目标 ECS 集合,作为主机部署的目标单元
回滚 将环境重新部署为上一版本制品以恢复服务的操作,无需重新构建
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。