华为云 CodeArts:从代码开发到项目交付的一站式 DevOps 实践
华为云 CodeArts:从代码开发到项目交付的一站式 DevOps 实践
一、前言
随着软件项目规模不断扩大,开发过程中遇到的问题已经不仅仅是“代码能不能写出来”。
在一个完整的软件工程项目中,我们通常还需要面对需求管理、代码托管、多人协作、版本控制、自动化测试、持续集成、持续部署以及项目进度管理等一系列问题。
如果这些环节分别使用不同的平台和工具,项目成员往往需要频繁切换系统,不仅增加学习成本,也容易造成需求、代码、测试和部署之间的信息割裂。
华为云 CodeArts 提供了一套面向软件研发全生命周期的 DevOps 工具链,可以将项目管理、代码开发、构建、测试和部署等环节整合到统一的平台中。
本文将结合实际软件项目开发过程,对 CodeArts 的主要功能、使用方式以及应用价值进行介绍。
二、什么是华为云 CodeArts
CodeArts 是华为云面向软件研发团队提供的一站式 DevSecOps 平台。
简单来说,可以把 CodeArts 理解为一个覆盖软件项目完整生命周期的研发平台。
一个典型的软件项目开发流程通常包括:
需求分析
↓
任务分配
↓
代码开发
↓
代码提交
↓
自动构建
↓
自动测试
↓
部署上线
↓
运行维护
传统开发过程中,这些工作可能分别由多个工具完成。
例如:
-
使用项目管理软件管理需求;
-
使用 Git 进行代码版本控制;
-
使用 Jenkins 进行自动构建;
-
使用其他测试平台执行自动化测试;
-
使用服务器脚本完成部署。
而 CodeArts 的思路,是将这些软件研发活动尽可能整合到统一的平台中。
因此,对于团队项目、课程设计、科研项目、创新创业项目以及企业级软件开发来说,CodeArts 都具有较强的实用价值。
三、CodeArts 的核心能力
1. 项目与需求管理
一个软件项目真正开始之前,第一步通常不是写代码,而是明确:
“这个项目到底需要做什么?”
CodeArts 可以通过需求、工作项、任务等方式对项目内容进行拆分。
例如,一个“智能应急决策平台”可以拆分为:
-
用户登录模块;
-
地图展示模块;
-
灾害数据管理模块;
-
风险评估模块;
-
应急资源调度模块;
-
智能优化算法模块;
-
数据可视化模块。
然后再进一步将每个模块拆分为具体任务。
例如:
实现应急资源调度地图展示
可以继续拆分为:
-
建立地图组件;
-
加载道路数据;
-
加载应急设施;
-
展示救援车辆;
-
实现路径绘制;
-
接入后端路径规划接口。
这样一来,一个原本比较复杂的软件项目就变成了一组可以执行、跟踪和验收的任务。
对于多人协作项目来说,这一点尤其重要。
四、代码托管与 Git 协作
CodeArts 可以提供 Git 代码仓库,用于管理项目代码。
开发人员可以将本地项目与远程仓库连接,通过 Git 完成:
git clone
git pull
git add
git commit
git push
等常见操作。
相比于直接共享压缩包,Git 最大的优势是可以清晰记录项目每一次修改。
例如:
v1.0
完成基础项目结构
v1.1
增加用户登录功能
v1.2
增加地图模块
v1.3
增加路径规划接口
v1.4
修复前端地图加载问题
这样即使后续代码出现问题,也可以快速定位是哪一次修改导致的。
五、分支管理的重要性
在多人项目中,如果所有成员都直接修改主分支,很容易产生冲突。
因此通常会采用类似下面的分支结构:
main
│
├── develop
│
├── feature/frontend-map
│
├── feature/backend-api
│
├── feature/algorithm
│
└── fix/map-bug
其中:
main
用于保存稳定版本。
develop
用于日常开发集成。
feature/*
用于开发具体功能。
fix/*
用于修复问题。
开发人员完成自己的功能后,再通过代码合并请求将代码合并到开发分支或者主分支。
这种开发方式可以显著降低多人同时修改代码带来的风险。
六、持续集成:让机器自动检查代码
软件开发中有一个非常常见的问题:
“我的电脑上明明可以运行,为什么换一台电脑就不行了?”
其中一个重要原因就是开发环境不同。
因此现代软件工程普遍采用持续集成,即 CI(Continuous Integration)。
其核心思想是:
每次代码发生变化之后,由服务器自动执行一系列检查。
例如开发人员执行:
git push
之后,可以自动触发:
安装依赖
↓
代码检查
↓
项目编译
↓
单元测试
↓
构建镜像
↓
生成构建产物
假设项目使用 Vue + TypeScript,可以自动执行:
npm install
npm run lint
npm run test
npm run build
如果任何一步失败,流水线就会停止。
这样可以在代码进入正式环境之前发现问题。
七、自动化测试
仅仅能够编译通过,并不意味着软件功能一定正确。
例如一个路径规划接口可能能够正常运行,但返回的路径可能不符合业务要求。
因此软件开发通常还需要进行测试。
常见测试包括:
单元测试
测试某个函数或模块是否正确。
例如:
输入:
起点 A
终点 B
预期:
返回一条有效路径
接口测试
检查后端 API 是否能够正常工作。
例如:
GET /api/v1/health
期望返回:
{
"status": "ok"
}
前端测试
检查页面组件是否能够正确渲染。
端到端测试
模拟真实用户进行完整操作。
例如:
打开系统
↓
选择灾害场景
↓
运行分析
↓
生成方案
↓
查看结果
如果这些测试能够集成到 CodeArts 流水线中,每次提交代码都可以自动检查系统是否被新的修改破坏。
八、持续部署
CI 解决的是:
“代码能不能正确构建?”
CD 解决的是:
“构建完成以后能不能自动部署?”
例如:
开发人员提交代码
↓
CodeArts 拉取代码
↓
自动编译
↓
自动测试
↓
Docker 镜像构建
↓
上传镜像
↓
服务器拉取镜像
↓
启动新版本
这样整个软件发布过程就可以从人工操作转变为自动化流程。
对于采用 Docker 的项目来说,可以使用类似下面的结构:
frontend
↓
Vue Build
↓
Nginx Container
backend
↓
Node.js Build
↓
Backend Container
algorithm
↓
Python Environment
↓
Algorithm Service
最终再通过 Docker Compose 或容器平台统一部署。
九、CodeArts 在实际项目中的应用
以一个“灾害应急智能决策平台”为例,项目可能包含:
前端系统
Vue / TypeScript
↓
后端系统
Node.js / Express
↓
智能算法
Python / Optimization
↓
数据库
MySQL / PostgreSQL
↓
GIS 数据
GeoJSON / Shapefile
↓
部署环境
Docker
如果没有统一的软件工程平台,开发过程可能比较混乱。
而采用 CodeArts 后,可以建立如下流程。
第一阶段:项目规划
在项目管理模块建立:
Epic:灾害应急智能决策平台
Feature:
灾害风险分析
应急设施选址
救援路径规划
无人机协同配送
应急资源调度
灾情可视化
然后继续拆分开发任务。
十、第二阶段:代码管理
建立统一仓库:
project
│
├── frontend
│
├── backend
│
├── algorithm
│
├── data
│
├── docs
│
└── docker
每个模块由不同开发人员负责。
例如:
成员 A
负责前端地图
成员 B
负责后端 API
成员 C
负责优化算法
成员 D
负责数据处理
通过 Git 分支分别开发。
十一、第三阶段:自动构建
在流水线中配置:
代码提交
↓
代码检查
↓
前端构建
↓
后端测试
↓
算法测试
↓
Docker Build
↓
生成镜像
如果任何一个环节失败,就停止后续操作。
这样可以有效保证进入部署阶段的代码质量。
十二、第四阶段:自动部署
流水线成功以后,可以继续执行:
上传镜像
↓
服务器拉取镜像
↓
Docker Compose
↓
启动服务
↓
运行健康检查
最终实现:
提交代码
↓
自动测试
↓
自动构建
↓
自动部署
这就是一个比较完整的 DevOps 工作流。
十三、CodeArts 对团队协作的帮助
软件项目开发中最大的困难之一其实并不是技术,而是协作。
例如:
谁负责这个功能?
什么时候完成?
代码有没有提交?
测试有没有通过?
这个 Bug 谁负责?
当前部署的是哪个版本?
如果没有统一的平台,这些信息很容易散落在:
微信群
QQ群
Excel
Word
Git
服务器
个人电脑
最终项目负责人往往很难掌握项目真实进度。
而通过 CodeArts,可以将:
需求
任务
代码
构建
测试
部署
建立关联。
从而形成完整的软件研发链路。
十四、CodeArts 与 AI 编程
近年来 AI 编程工具快速发展。
例如现在开发者越来越多地使用 AI 辅助:
-
编写代码;
-
解释代码;
-
修复 Bug;
-
编写测试;
-
重构项目;
-
生成接口;
-
编写技术文档。
但 AI 编程本身并不能替代完整的软件工程体系。
AI 可以帮助:
提高编码速度
而 CodeArts 解决的是:
项目如何组织
代码如何管理
功能如何测试
版本如何构建
系统如何部署
团队如何协作
因此比较理想的研发模式其实是:
AI 编程
+
Git
+
CodeArts
+
CI/CD
+
Docker
AI 负责提高开发效率,而 DevOps 平台负责保证开发过程规范、可追踪和可持续。
十五、使用 CodeArts 后最大的变化
在传统开发方式中,我们经常关注:
“这个功能写完了吗?”
而在 DevOps 思维下,更应该关注:
“这个功能是否已经完成开发、测试、集成和部署?”
例如:
代码写完
并不等于:
功能完成
一个真正完成的软件功能至少应该经历:
需求确定
↓
代码实现
↓
代码审查
↓
自动测试
↓
项目构建
↓
系统集成
↓
部署运行
↓
功能验证
CodeArts 的价值就在于帮助团队把这些流程建立起来。
十六、适合哪些人学习 CodeArts
如果只是编写几十行代码的小程序,可能并不需要复杂的 DevOps 平台。
但如果正在进行以下项目,就非常值得学习。
1. 大学生竞赛项目
例如:
-
挑战杯;
-
互联网+;
-
中国国际大学生创新大赛;
-
软件设计竞赛;
-
人工智能竞赛;
-
数学建模相关系统开发。
2. 毕业设计
特别是涉及:
前端 + 后端 + 数据库 + 算法
的综合系统。
3. 科研项目
例如:
GIS
人工智能
交通运输
智慧城市
应急管理
数字孪生
优化算法
等方向。
4. 企业软件开发
对于多人研发团队,DevOps 基本已经成为现代软件工程的重要组成部分。
十七、学习 CodeArts 的建议路线
如果第一次接触 CodeArts,不建议一开始就研究所有功能。
可以按照下面的顺序学习。
第一阶段:Git
首先理解:
clone
commit
push
pull
branch
merge
第二阶段:代码仓库
学习:
创建仓库
创建分支
提交代码
合并代码
第三阶段:项目管理
学习:
需求
任务
Bug
迭代
第四阶段:流水线
实现:
代码提交
↓
自动 Build
第五阶段:自动测试
加入:
Unit Test
API Test
Frontend Test
第六阶段:Docker
学习:
Dockerfile
Docker Image
Docker Container
Docker Compose
第七阶段:CI/CD
最终形成:
Git Push
↓
CodeArts Pipeline
↓
Test
↓
Build
↓
Docker
↓
Deploy
到了这一步,基本就已经具备完整的软件工程项目开发能力。
十八、总结
华为云 CodeArts 并不是单纯的“代码托管平台”,它更重要的价值在于提供了一套完整的软件研发流程。
对于个人开发者来说,它可以帮助建立更加规范的软件工程习惯。
对于学生项目来说,它可以解决代码管理混乱、多人协作困难以及版本不可追踪的问题。
对于企业团队来说,它能够将:
需求管理
代码开发
持续集成
自动测试
持续部署
连接起来,形成完整的 DevOps 研发体系。
随着 AI 编程工具的发展,未来软件开发的方式很可能会进一步变成:
人负责需求与决策
↓
AI 辅助代码开发
↓
DevOps 平台管理软件工程流程
↓
CI/CD 自动完成测试、构建和部署
因此,真正值得学习的不只是“如何使用 CodeArts”,而是理解它背后的软件工程思想。
从“把代码写出来”,到“把一个软件项目真正做出来”,中间相差的正是一整套工程化开发能力。
而 CodeArts,正是帮助开发者完成这一转变的工具之一。
- 点赞
- 收藏
- 关注作者
评论(0)