云原生实战:基于华为云 CodeArts 与 CCE 构建自动化 GitOps 持续交付流水线

举报
cl16315 发表于 2026/11/04 07:38:55 2026/11/04
【摘要】 一、 前言随着业务迭代速度的加快,开发团队每天可能需要向测试或生产环境推送数十次代码更新。如果依然采用传统的“打包 $\rightarrow$ 传服务器 $\rightarrow$ 重启进程”的手动运维模式,不仅团队疲于奔命,还极易因为环境差异导致“在我电脑上运行好好的,怎么上线就报错”的经典难题。为了解决这些痛点,云原生 DevOps(持续集成与持续交付,CI/CD) 应运而生。今天,我们...

一、 前言

随着业务迭代速度的加快,开发团队每天可能需要向测试或生产环境推送数十次代码更新。如果依然采用传统的“打包 $\rightarrow$ 传服务器 $\rightarrow$ 重启进程”的手动运维模式,不仅团队疲于奔命,还极易因为环境差异导致“在我电脑上运行好好的,怎么上线就报错”的经典难题。

为了解决这些痛点,云原生 DevOps(持续集成与持续交付,CI/CD) 应运而生。

今天,我们就以华为云的CodeArts(软件开发生产线)与CCE(云容器引擎)为核心工具,搭建一套现代化的自动化部署流水线。

────────────────────────────────────

二、 核心架构设计

一条标准的云原生自动化交付流水线包含以下几个关键环节:

1. 代码托管(CodeHub):开发者将代码(如前端、后端或 AI 服务脚本)提交到华为云代码仓库。
2. 持续集成(CodeArts Build):代码提交后触发自动化构建,运行单元测试,并将源码打包成 Docker 镜像。
3. 镜像仓库(SWR):将构建好的 Docker 镜像安全地推送到华为云镜像服务仓库中。
4. 持续交付/GitOps(CodeArts Deploy / CCE):自动或审批后将最新镜像更新到华为云 CCE 容器集群中,实现滚动发布(Rolling Update)。

────────────────────────────────────

三、 核心实战步骤

步骤 1:在华为云 CodeArts 中创建代码仓与项目

1. 登录华为云控制台,进入 CodeArts 软件开发生产线。
2. 创建一个新的“Scrum”或“DevOps”项目。
3. 在 CodeHub 中创建一个代码仓库,并将我们的应用代码(包含 Dockerfile 和 Kubernetes deployment.yaml)推送到仓库中。

步骤 2:配置自动化构建流水线(CI)

1. 在 CodeArts 项目中选择 流水线 (Pipeline) -> 新建流水线。
2. 添加构建任务(Build):

拉取代码:从 CodeHub 自动拉取最新提交。
执行构建:运行编译脚本或执行单元测试。
打包镜像:使用华为云提供的 Docker 构建插件,将代码打包为镜像。
推送镜像:将镜像推送到 华为云 SWR(容器镜像服务),并自动生成带有版本号(Tag)的镜像地址。

步骤 3:编写自动更新的部署脚本(CD)

在流水线的最后一步,我们需要让 CCE 集群拉取最新的镜像并更新服务。可以通过在流水线中执行 kubectl 命令来实现滚动更新。

编写一个简单的部署脚本 deploy.sh 并纳入版本管理:

#!/bin/bash

# 环境变量定义
CLUSTER_NAMESPACE="default"
DEPLOYMENT_NAME="llm-inference-deployment"
NEW_IMAGE_URL="swr.cn-north-4.myhuaweicloud.com/my-group/my-app:latest"

echo "=== 开始更新华为云 CCE 集群中的应用 ==="

# 1. 登录集群(在 CodeArts 流水线执行机中配置好 kubeconfig)
# 2. 修改 Deployment 的镜像地址并触发滚动升级
kubectl set image deployment/$DEPLOYMENT_NAME vllm-container=$NEW_IMAGE_URL -n $CLUSTER_NAMESPACE

# 3. 检查更新状态
echo "=== 检查滚动发布状态 ==="
kubectl rollout status deployment/$DEPLOYMENT_NAME -n $CLUSTER_NAMESPACE

echo "=== 部署更新成功! ==="

将该脚本配置为 CodeArts 流水线的“部署(Deploy)”阶段任务,当镜像推送成功后,流水线会自动调用该脚本更新 CCE 中的容器。

────────────────────────────────────

四、 生产环境流水线的最佳实践建议

为了让自动化流水线更稳健,企业在落地时建议遵循以下原则:

1. 分环境治理:设置不同的流水线分支策略。例如,提交到 dev 分支自动触发测试环境部署,而提交到 main/master 分支则需要团队负责人人工审批后才发布到生产环境。
2. 健康检查(Liveness & Readiness Probe):在 CCE 的 deployment.yaml 中配置存活探针和就绪探针,确保新容器完全启动且健康后,旧容器才被优雅下线(优雅停机)。
3. 回滚机制:若新版本上线后发现重大 Bug,可利用华为云 CCE 或 CodeArts 的一键回滚功能(kubectl rollout undo),秒级恢复到上一个稳定版本。

────────────────────────────────────

五、 总结

通过今天的实战,我们打通了“代码提交 $\rightarrow$ CodeArts 自动化构建 $\rightarrow$ SWR 镜像托管 $\rightarrow$ CCE 容器集群自动化部署”的云原生 DevOps 全链路。

借助华为云完善的开发与运维工具链,开发团队可以彻底告别繁琐的手工运维,实现真正的“敏捷迭代与高可用交付”。

如果你在配置 CodeArts 流水线或 CCE 滚动升级时遇到问题,欢迎在评论区留言交流!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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