云原生实战:基于华为云 CodeArts 与 CCE 构建自动化 GitOps 持续交付流水线
一、 前言
随着业务迭代速度的加快,开发团队每天可能需要向测试或生产环境推送数十次代码更新。如果依然采用传统的“打包 $\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 滚动升级时遇到问题,欢迎在评论区留言交流!
- 点赞
- 收藏
- 关注作者
评论(0)