敏捷开发和DevOps


凤凰商城项目实践

一、持续规划与设计

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 合并请求(登录模块)

  • 创建合并请求,进入代码托管,选择合并请求页签,单击“新建合并请求”。

  • 输入标题、描述(选
    填),选择合并人、评审人,单击"确定"完成。

  • 代码检视以及评分

  • 选择"合入",系统将提示"合并成功"。
    alt text

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 服务。点击"构建步骤"栏,找到"华为云容器镜像服务"并点击,复制登陆指令
    1
    docker login -u cn-north-4@X4KDTWES74A55W6DN1IX -p 55d4ce27f2eaa3e632724eccb6effd4e77a3929ae3d29fbb41875a2ac15e4c96 swr.cn-north-4.myhuaweicloud.com
    最后的字符串为 SWR 服务器地址: 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
    5
    sudo 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.1

    python版本选择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服务器等现代企业常用项目,让我身临其境感受到了企业实战开发情景。

华为云可以自动进行代码检查、项目构建、部署、发布,甚至可以使用流水线方式一键部署发布程序,这让我感受到了科技的便利。未来,我将深耕软件工程领域,不断学习到更多先进的技术。


评论
评论
评论
  目录