凤凰商城项目实践
一、持续规划与设计
1.1敏捷项目规划
1.1.1 创建华为云 CodeArts 项目
进入控制台,在控制台中选择区域为"华北-北京四,搜索 CodeArts 并登陆,单击页面"新建项目"
1.1.2 使用 Scrum 项目模板进行项目规划,并管理 Epic 和 Feature
项目规划。打开凤凰商城项目,单击"规划",点击"思维导图规划",输入“思维导
图”,点击确认
在 Epic"凤凰商城"下方单击图标"插入子节点 "新建 Feature,输入标题"门店网
络",回车保存;相同方式新建 Feature“账号系统
导出项目规划。可以将项目规划导出到 Excel或者以图片导出

1.1.3 使用 Scrum 项目模板管理 Backlog 并进行迭代开发
单击"工作>工作项>Backlog",进入 Backlog 页面,单击 Story 名称"作为用户应该可以查看、查询所有门店网络",编辑 Story
在 Backlog 列表中,我们同时可以设置自己关注的用户故事,方便查询。拖动列表下方滚
动条到最右方,单击图标 即可关注,当图标变成蓝色,表示关注成功。
迭代的创建与管理。单击"工作 > 迭代",进入迭代管理视图。

迭代规划,添加三个
Story 添加至迭代 4
Story 分解。接下来我们需要将 Story"作为用户应该可以查看、查询所有门店网络"拆分
到开发任务级别,并指派给对应的负责人。单击工作项列表最右侧"操作"列中的图标 ,
新建子 Task。输入 Task 标题"前端展示-添加门店网络菜单",并选择处理人,单击"确
定"完成。按照同样的方式,添加 Task"后台管理-添加门店网络管理维护模块"。
看板视图使用。点击右上角图标 ,切换视图为"卡片模式"。在此模式下,可通过拖拽
修改工作项状态。
1.1.4 使用效率工具监测和跟踪项目状
选择迭代 4 工作项,单击工作项列表上方的图标 ,即可展开迭代进度视图。如果是
新创建的项目,在项目创建第二天可看到报表效果。
单击页面左侧导航"仪表盘",进入"仪表盘"页面。

1.2 项目管理配置
1.2.1 维护项目基本信息
- 项目基本信息设置。进入项目,单击页面左侧导航"设置 > 通用设置"。单击页面左侧菜单"基本信息",进入"基本信息"页面

- 进入"模块设置"页面。单击"添加",输入名称、描述,选择负责人,单
击"确定"保存
1.2.2 定制项目工作流程
增加工作项字段。
将"验收标准"拖至 "以下为查看更多的内容"上方,并勾选为必填字段,单击"保
存"。
增加工作项状态。
单击页面左侧菜单"Story 设置 > 状态与流转",进入"工作项状态"页面。单击"添加
已有状态",在弹框中勾选"验收中",单击"确定"保存。
二、持续开发与集成
2.1 代码托管
2.1.1 使用 CloudIDE 修改和提交代码
进入"Backlog"页面。找到 Story"作为用户
应该可以查看、查询所有门店网络",记录该 Story 的编号:67092992
进入 CloudIDE 服务
在终端使用git拉取代码
1
git clone git@codehub.devcloud.cn-north-4.huaweicloud.com:98632fbb670448d196c08f0094853764/phoenix-sample.git
修改代码
提交修改至代码仓库。
查看代码提交记录。
预览调试。
修改 Dockerfile,py版本为3.8.0
终端窗口安装两个运行必须模块
1
pip install flask redis --user
替换原有 Python2.7.x 版本代码

运行代码(将 app.py 中第 64 行代码中的端口号改为 8088)

2.1.2 使用 Git 分支+合并请求方式提交代码并进行代码检视
单击仓库名称,进入代码仓库。

选择"设置"页签,在左侧导航中单击"仓库管理 > 保护分支管理",单击"新建分支保护”
管理分支合并策略。
创建分支并进行新功能开发。
用 CloudIDE 打开代码仓库,选择新创建的分支进入
2.1.3 合并请求(登录模块)
创建合并请求,进入代码托管,选择合并请求页签,单击“新建合并请求”。
输入标题、描述(选
填),选择合并人、评审人,单击"确定"完成。
代码检视以及评分
选择"合入",系统将提示"合并成功"。

2.2 代码检查确保编码规范
2.2.1 为示例项目配置代码检查任务并执行
编辑代码检查任务包含语言,启动Python检查
启动代码检查任务。

2.2.2 分析代码检查结果并修复问题
分析代码检查报表 单击"代码问题"页签,页面中列出问题的严重级别、状态、所属文件等信息。
根据需要对代码进行修改 将问题设置为“已解决”

2.2.3 配置和管理代码检查规则集
创建自定义检查规范。

系统自动进入新建规则集的"规则集配置"页面。通过搜索框搜索规则"Loops should
not be infinite",取消勾选此规则,单击"保存"。由于这里凤凰团队采用了取巧的方
案临时支持功能的展示,暂时可以关闭此问题
启用自定义检查规范。
启动代码检查任务,任务成功执行后,再次查看检查结果。此时的检查结果忽略了规则"
Loops should not be infinite",检查出来的问题是团队关心的问题,应该尽快修复掉。
2.3 使用自动化编译提高代码质量验证速度
2.3.1 编译构建并完成应用的镜像打包推送
- 查看编译构建任务。

- 点击"源码选择"栏,"仓库分支"选择"master”

- 配置 SWR 服务。项目应用镜像存放需要使用到华为云容器镜像服务 (SWR) ,因此需要首
先配置 SWR 服务。点击"构建步骤"栏,找到"华为云容器镜像服务"并点击,复制登陆指令最后的字符串为 SWR 服务器地址: swr.cn-north-4.myhuaweicloud.com1
docker login -u cn-north-4@X4KDTWES74A55W6DN1IX -p 55d4ce27f2eaa3e632724eccb6effd4e77a3929ae3d29fbb41875a2ac15e4c96 swr.cn-north-4.myhuaweicloud.com
创建组织
组织名称,即为后续步骤 5 中的参数 dockerOrg : hi-pheonix-test01
返回 CodeArts 页面,选择"参数设置"页签,编辑dockerOrg 和 dockerServer 两个参数
单击"保存并执行",启动编译构建任务。记录"构建成功"字样前面的
数字串(即任务的构建编号),该数字串为构建任务中的系统预定义参数 BuildNumber:,
在后续步骤 10 查看镜像详情中,镜像版本即此数字串
单击页面上方导航"构建&发布 > 发布",进入发布服务。列表中可找到下图所示的两个
文件夹
进入 SWR 控制台,在页面左侧导航选择"我的镜像"。列表中可看到 5 个镜像,镜像的
所属组织为实验开始创建的组织,版本数如下图所示。
在列表中单击"worker"查看镜像详情。

2.3.2 配置持续集成并通过提交代码触发自动化编译
持续集成配置。进入编译构建任务"phoenix-sample-ci"的"编辑"页面,选择"执行
计划"页签,打开"提交代码触发执行"开关,单击"保存"。
持续集成执行计划配置。在"执行计划"页签,开启“定时执行”,根据需要设置定时执
行计划,单击"保存"。
2.3.3 使用开源镜像站服务改进自动化编译
- 使用Python构建:
1
RUN pip install -i https://repo.huaweicloud.com/repository/pypi/simple -r requirements.txt

三、持续部署与发布
3.1.1 购买并配置弹性云服务器
购买 ECS 主机 : 按照推荐配置购买
进入主机管理页面,单击"更改安全组规则",进入安全组管理界面,添加一条入方向规则"允许访问 5000 以及
5001 端口"
添加授信主机。

当出现以下提示时,表示主机添加成功。
<
>
3.1.2 使用 CodeArts 部署服务配置主机环境
进入部署服务,配置如图三步,其中,shell命令为:
1
2
3
4
5sudo apt-get install libssl-dev libffi-dev python-dev build-essential libxml2-dev libxslt1-dev -y
pip3 install six --user -U
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple docker-compose==1.17.1python版本选择3.7
保存并执行,等待成功安装

3.1.3 使用自动化部署实现一键部署
持续部署配置,选择"部署步骤"页签,单击部署步骤"选择部署来源",编译以下信息

设置执行参数,分别一一对应swr的指令,最终部署成功
验证部署结果。
3.2 持续交付流水线
3.2.1 配置流水线串接代码检查,编译构建和自动化部署步骤
- 进入流水线服务,单击"新建流水线

- 自定义流水线任务

3.2.2 更新流水线配置,实现代码变更触发的持续交付流水线
- 进入流水线服务,打开“代码提交时触发”

3.2.3 流水线配置高级功能
- 添加人工审核

3.3
删除云主机
删除IDE实例

四、总结感悟
本次通过华为云CodeArts进行项目规划,让我快速了解敏捷的方法和用 DevOps 思想完成软件项目的迭代规划、以及软件的开发、测试、部署。本次体验了git、docker镜像、SWR服务、一键部署、华为云ecs服务器等现代企业常用项目,让我身临其境感受到了企业实战开发情景。
华为云可以自动进行代码检查、项目构建、部署、发布,甚至可以使用流水线方式一键部署发布程序,这让我感受到了科技的便利。未来,我将深耕软件工程领域,不断学习到更多先进的技术。