敏捷Devops开发方法实践——凤凰商城

目录

1持续规划与设计

1.1敏捷项目规划

1.2项目管理配置

2持续开发与集成

2.1代码托管

2.2代码检查确保编码规范

3持续部署与发布

3.3购买并配置弹性云服务器

3.4使用 CodeArts 部署服务配置主机环境

3.5使用自动化部署实现一键部署

3.6持续交付流水线

3.7资源释放


1持续规划与设计

1.1敏捷项目规划

创建凤凰商城项目

创建思维导图,在 Epic"凤凰商城"下新建 Feature"门店网络"、 “账号系统”。 为 Feature"门店网络"插入子节点Story"作为用户应该可以查看、查询所有门店网络",为 Feature“账号系统”插入子节点 Story“作为用户可以登录账号”、“作为用 户可以注册账号”。

导出为excel

Backlog 管理。Story"作为用户应该可以查看、查询所有门店网 络"被指定为最高优先级处理

设置自己关注的用户故事

在 Backlog 页面,单击列表上方"临时过滤"下拉列表,选择"我关注的",过滤已关注的工作项列表

在”显示字段”中 勾选 ”优先级顺序” 单击确定,点击 ,选择优先级顺序,单击过滤器标题为 “高优先级顺序”, 单击确定,左上角即可出现对应标题工作项

迭代的创建与管理。

对当前迭代(近两周)的工作进行规划,其中最重要的工作" 作为用户应该可以查看、查询所有门店网络"需要在本迭代完成并上线。将三个新story加入迭代4

将 Story"作为用户应该可以查看、查询所有门店网络"拆分到开发任务级别后台管理-添加门店网络管理维护模块与前端展示-添加门店网络菜单,并指派给对应的负责人

看板视图使用。切换视图为"卡片模式"

使用效率工具监测和跟踪项目状态

1.2项目管理配置

项目基本信息设置。进入项目,单击页面左侧导航"设置 > 通用设置"。单击页面左侧菜单"基本信息",进入"基本信息"页面。管理员可根据情况进行修改项 目名称、项目描述,移交创建人,完成编辑,单击"保存"。

项目成员管理。单击页面左侧菜单“成员管理”,进入“成员管理”页面。点击添加成 员,在下拉菜单中选择“邀请其他企业用户”,在弹出窗口的“企业用户”文本框输入小 组成员账号进行添加。重复该步骤直到小组全部成员添加完毕。

站内通知以及邮件通知设置。进入项目,单击页面左侧导航"设置 > 项目设置"。单击 页面左侧菜单"通知设置",进入"通知设置"页面。根据需要勾选通知场景、方式、对 象即可,系统将自动保存。

增加工作项字段。进入项目,单击页面导航"设置 > 项目设置"。单击页面左侧菜单" Story 设置 > 字段与模板",进入"工作项模板"页面。单击页面右上角"编辑模板", 选择"新建字段"。在弹框中输入字段名称"验收标准",勾选字段类型"多行文本", 单击"确定"保存。将"验收标准"拖至 "以下为查看更多的内容"上方,并勾选为必填字段,单击"保 存"。

增加工作项状态。进入项目,单击页面上方导航"设置 > 项目设置"。单击页面左侧菜 单"公共状态设置",进入"状态管理"页面。单击右上角"添加状态",在弹框中输入 状态"验收中",选择状态属性为"进行态",单击"添加"保存。

单击页面左侧菜单"Story 设置 > 状态与流转",进入"工作项状态"页面。单击"添加 已有状态",在弹框中勾选"验收中",单击"确定"保存

通过拖拽将该状态的顺序至于"测试中"之后。

2持续开发与集成

2.1代码托管

登录 CodeArts,单击"工作>工作项",进入"Backlog"页面。找到 Story"作为用户 应该可以查看、查询所有门店网络",记录该 Story 的编号。

单击 CodeArts 项目页面上方导航"代码>代码托管",进入代码托管服务。进入 样例项目预置的代码仓库"phoenix-sample",点击右上角“CloudIDE”,跳转至 CloudIDE。

在左侧导航中找到前端界面代码文件" /vote/templates/index.html"并打开,在 179 行添加菜单"门店网络"。

单击左侧边栏图标 ,打开 Git 功能。单击修改文件后方的图标 (git add),将修改内容添加进提交内容当中。在输入框中输入提交信息:"fix #工作项编 码 本次提交的注释信息" (fix #工作项编码 格式要注意,若不一致则不能将提交信息关 联到下一个步骤的提交历史查看 )。单击打勾图标 (git commit)提交本次修改。单击图 标 ,在下拉列表中单击"Push",推送代码到代码仓库。

查看代码提交记录。返回"代码托管"页面,在 phoenix-sample 代码仓库中选择"动态"页签,即可查看是否提交成功。

跳转至"工作>工作项>Backlog"页面,单击 Story"作为用户应该可以查看、查询所有门店网 络"。在"关联"页签中,单击"代码提交记录",也可看到相应提交记录

预览调试。回到 CloudIDE 页面,打开 index.html,点击右上角按钮,可预览前端界面。

打开 vote 目录下的 app.py 源文件,如右下角出现“Linter pylint is not installed”,点击 “Install”安装。

点击左下角选择“Python 3.7.x”版本解释器

打开 vote 下 Dockerfile 文件,修改“FROM python:2.7-alpine”为“python:3.7-alpine”。

终端窗口安装两个运行必须模块

命令:pip install flask redis –user

替换原有 Python2.7.x 版本代码 导入 import importlib 修改 reload(sys)为 importlib.reload(sys) 删除 sys.setdefaultencoding('utf-8')

后将 app.py 中第 64 行代码中的端口号改为 8088(8000-9000 皆可),点击右上角运 行图标 ,此时前端程序已执行。再将对应端口号开放,允许访问:点击右上图标 ,输入端口号 8088,点击 OK,等待其变 为 Access,点击 Access 出现 WebDeBug 页签。 本步骤完成端口需改回 80 端口。

将 master 分支设置为受保护分支。进入项目,单击页面上方导航"代码 > 代码托管", 进入代码托管服务。单击仓库名称,进入代码仓库。

选择"设置"页签,在左侧导航中单击"保护分支"。

单击"新建分支保护",根据需要在弹框中选择配置,单击"确定"保存

管理分支合并策略。进入代码仓库,选择"设置"页签,在左侧导航中单击"合并请求"。选择允许分支合并的最低评分,单击"确认"保存。可以设置为"0"。

创建分支并进行新功能开发。进入代码仓库,选择"分支"页签,单击右上角"新建分 支",在弹框中输入分支名称"feature 工作项编号" (注意:不要有+号等特殊符号) 命 名分支,单击"确定"保存

用 CloudIDE 打开代码仓库,选择新创建的分支进入

创建合并请求,进入代”码托管,选择合并请求页签,单击“新建合并请求”。源分支选择 刚刚创建的分支,与目标分支选择"master",单击"下一步"。输入标题、描述(选 填),选择合并人、评审人,单击"确定"完成。"合并人"即接受合并请求的人,"评 审人"是由合并发起人邀请参与的评审者。对于不合格的合并请求,管理员可以关闭。在 评分不够时,无法完成该合并请求。

代码检视以及评分,评审人进入代码仓库后,在"合并请求"页签中找到需要评审的合并 请求,单击该请求,查看合并请求详情。评审者可以在"合并请求"页签中发表评审意 见,对合并请求进行评分

也可以在文件变更页签,针对某一行代码发表讨论。评论与讨论的区别在于:评论无需回复并 解决。而讨论是一个需要解决的问题。在评论记录里,可以看到差别。

开发人员在"合并请求"页面可查评论/讨论记录。

评审成员提交评分。若只有一个账号,请将允许分支合并的最低评分设置为 2 分。合并人进入代码仓库后,在"合并请求"页签中找到需要评审的合并请求,单击该请求, 查看合并请求详情。选择"合入",系统将提示"合并成功"。

2.2代码检查确保编码规范

编辑代码检查任务包含语言。进入项目,单击页面上方导航"代码 > 代码检查",进入 代码检查服务。单击代码检查任务"phoenix-codecheck-worker",进入"代码检查详 情"页面。

选择"设置"页签,在页面左侧导航中单击"规则集"。规则集中默认包含的语言是" Java"。单击图标 重新获取代码仓库语言,在刷新的列表中将 Python 语言对应的开关 打开

启动代码检查任务。进入代码检查任务"phoenix-codecheck-worker"的"代码检查详 情"页面。单击"开始检查",启动代码检查任务。

分析代码检查报表。进入代码检查任务"phoenix-codecheck-worker"的"代码检查详 情"页面。成功执行代码检查任务,查看检查结果。

在代码检查任务"设置 > 质量门禁"页面中,默认配置"致命问题数<=0"和"严重问 题数<=0",从上图可以看出,检查结果不符合门禁要求,因此门禁检查结果显示为" Failed"。

单击"代码问题"页签,页面中列出问题的严重级别、状态、所属文件等信息。

可根据需要对代码进行修改。

单击问题卡片,页面右侧将滑出窗口。单击"修改建议",可查看系统对此问题的修改建 议。单击窗口上方的图片,可进入相应的代码文件修改代码。单击"未解决",可将此问 题的状态设置为"已解决"或"已忽略"。

创建自定义检查规范。进入代码检查服务,选择"规则集"页签,在下拉列表中选择" Java"。在过滤出的列表中找到规则集"关键检查规则集",单击图标 ,在下拉列表中选 择"复制"。在弹框中输入新规则集名称为"phoenix-java-rule-set",单击"确定"保 存。

系统自动进入新建规则集的"规则集配置"页面。通过搜索框搜索规则"Loops should not be infinite",取消勾选此规则,单击"保存"。由于这里凤凰团队采用了取巧的方案临时支持功能的展示,暂时可以关闭此问题

启用自定义检查规范。进入代码检查任务"phoenix-codecheck-worker"的"代码检查 详情"页面。选择"设置"页签,在页面左侧导航中单击"规则集"。在 Java 语言规则集 中,勾选规则集"phoenix-java-rule-set"。

启动代码检查任务,任务成功执行后,再次查看检查结果。此时的检查结果忽略了规则" Loops should not be infinite",检查出来的问题是团队关心的问题,应该尽快修复掉。

查看编译构建任务。进入项目,单击页面上方导航"构建&发布 > 编译构建",进入编 译构建服务。找到编译构建任务"phoenix-sample-ci"。

单击"phoenix-sample-ci"右侧,进入"编辑"页面。

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

配置 SWR 服务。项目应用镜像存放需要使用到华为云容器镜像服务 (SWR) ,因此需要首 先配置 SWR 服务。点击"构建步骤"栏,找到"华为云容器镜像服务"并点击,此时进入到"容器镜像服务"主页,点击立即使用。检查页面左上方的"区域"列表,选择与编译构建任务所在区相同的区域。 指令中,-u 之后的字符串为用户名,-p 之后的字符串为密码(此为临时用户名和密码, 24 小时刷新,隔天使用需重新查看用户名、密码;单击右上角"登录指令",系统生成并弹框显示 docker login 指令。)最后的字符串为 SWR 服务器地址,此地址即为后续步骤 5 中的参数 dockerServer。

docker login -u cn-north-4@XPFZKQ5AMMDD63X8XRHU -p fd503643344147aa8b7ffd2d04c9eca87e84b6b7832aa2f0380b7a6e84bdb8a3 swr.cn-north-4.myhuaweicloud.com

在左侧导航栏中选择"组织管理",进入"组织管理"页面。单击右上角"创建组织",在弹 框中输入组织名称"hi-pheonix_hd" (或自定义,此名称全局唯一),单击"确定"保存。这里的组织名称,即为后续步骤 5 中的参数 dockerOrg。

返回 CodeArts 页面,选择"参数设置"页签,编辑以下两个参数。dockerOrg:输入在步骤 4 中创建的组织。dockerServer:输入在步骤 4 中记录的内容。

单击"保存并执行",启动编译构建任务。系统自动跳转至"编译详情"页面,可以查看 任务执行进展。当出现以下页面时,表示任务执行成功。请记录"构建成功"字样前面的 数字串(即任务的构建编号),该数字串为构建任务中的系统预定义参数 BuildNumber, 在后续步骤 10 查看镜像详情中,镜像版本即此数字串。

单击页面上方导航"构建&发布 > 发布",进入发布服务。列表中可找到下图所示的两个 文件夹。

进入 SWR 控制台,在页面左侧导航选择"我的镜像"。列表中可看到 5 个镜像,镜像的 所属组织为实验开始创建的组织,版本数如下图所示。

列表中单击"worker"查看镜像详情。在镜像列表页签中找到最新版本镜像,镜像版本 与最新一次构建任务的执行编号一致,执行编号的查看方法请参考步骤 7。

持续集成配置。进入编译构建任务"phoenix-sample-ci"的"编辑"页面,选择"执行 计划"页签,打开"提交代码触发执行"开关,单击"保存"。

持续集成执行计划配置。在"执行计划"页签,开启“定时执行”,根据需要设置定时执 行计划,单击"保存"

使用系统内置的 Maven 构建、Npm 构建、PyInstaller 构建步骤,系统会自动通过 开源镜像站获取相应的依赖包。

3持续部署与发布

3.3购买并配置弹性云服务器

登录弹性云服务器 ECS 官网 https://www.huaweicloud.com/product/ecs.html,单击"立即 购买",进入弹性云服务器控制台。  参照以下配置购买云主机,列表中未涉及的配置保持默认值

返回控制台,单击云主机名称,进入主机管理页面。选择"安全组"页签,单击安全组名 称,展开详情,单击"更改安全组规则",进入安全组管理界面。

选择"入方向规则"页签,单击"添加规则",添加一条入方向规则"允许访问 5000 以及 5001 端口"。

进入项目,单击页面上方导航"设置 > 通用设置"。在左侧导航栏选择"主机组管理",单 击"新建主机组"。输入主机组名,单击"保存"。

单击"添加主机",在弹框中输入刚刚购买的 ECS 主机信息,单击"添加"保存

当出现以下提示时,表示主机添加成功。

3.4使用 CodeArts 部署服务配置主机环境

进入项目,单击页面上方导航"构建&发布 > 部署",进入部署服务。点击右上角"新建 任务",自定义任务名称,进入下一步;

点击基本信息输入任务名称

在部署步骤中添加步骤"安装/卸载 Docker",设置主机组为前述已添加的授信主机组

点击"安装/卸载 Docker"方框下方的+继续添加步骤"执行 shell 命令"

在 shell 命令框中输入如下命令行

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

安装 python3

保存并执行,等待成功安装。

3.5使用自动化部署实现一键部署

持续部署配置。进入项目,单击页面上方导航"构建&发布 > 部署",进入部署服务。找到部署任务"phoenix-sample-standalone",点击最右侧,选择“编辑”。

选择"部署步骤"页签,单击部署步骤"选择部署来源",编译以下信息。 选择源类型:选择"构建任务"。 主机组:选择在添加授信主机中创建的主机组。选择主机最后,系统会弹框确认"是否将后续 步骤的主机组也修改为 phoenix-hostgroup?",单击"确定"即可。 请选择构建任务:选择"phoenix-sample-ci"

"解压文件"与"执行 shell 命令"页签保持默认配置即可

选择"参数设置"页签,根据 SWR 服务登录指令填写参数。登录指令通过 SWR 控制台获 取,操作方式如下: 登录容器镜像服务 SWR 官网,单击"立即使用",进入容器镜像服务控制台。检查页面左上 方的"区域"列表,选择与编译构建任务所在区相同的区域。 单击"登录指令",系统生成并弹框显示 docker login 指令。 登录指令中: -u 之后的字符串为用户名(docker-username) -p 之后的字符串为密码(docker-password) 最后的字符串为服务器地址(docker-server)

docker login -u cn-north-4@32EBIXFZTO7TKZDTZWOA -p c8bbbd0b90170e87d784d0620f497c1458f40a31f89ab58aa238d511b193cf72 swr.cn-north-4.myhuaweicloud.com

单击"保存并执行",启动部署任务。系统自动跳转至"部署详情"页面,可以查看任务 执行进展。当出现以下页面时,表示任务执行成功。

验证部署结果。打开浏览器,输入"http:// xxx.xxx.xxx.xxx:5000",即可访问凤凰商城。

3.6持续交付流水线

创建并触发持续交付流水线。进入项目,单击页面上方导航"构建&发布 > 流水线",进 入流水线服务。

单击"新建流水线"。

修改流水线名称为 phoenix-sample-pipline

单击阶段"代码检查"中添加(编辑)任务。在右侧滑出框中,类型选择"代码检查", 任务勾选"phoenix-codecheck-worker",单击"保存"。

在"构建阶段",添加(编辑)构建任务"phoenix-sample-ci"。

在"构建阶段"后添加并编辑"测试阶段"。添加任务“接口测试”并选择“迭代 4”

在“部署发布”阶段添加(编辑)任务

流水线任务阶段设置完成后点击"保存并执行",启动流水线。当出现以下页面时,表示 任务执行成功。

创建实现代码变更自动触发持续交付流水线任务,完成应用的自动化构建部署。

找到流水线任务"phoenix-sample-pipeline",单击此任务对应操作列中的图标 ,进 入"流水线配置"页面。 点击"执行计划"页签,打开“代码提交时触发”,单击"保存"。

设置完成后,当所选分支有代码变更提交时,将自动触发该任务。

进入流水线任务"phoenix-sample-pipeline" 的"流水线配置"页面。在阶段"部署"下,单击"添加任务"。在右侧滑框中,选择类 型"流水线控制",勾选"人工审核",并在"审核人"下拉列表中勾选所需的审核人。

返回"流水线配置"页面,将任务"流水线控制"拖动到任务"部署"上方,单击"保 存"。

启动流水线,当执行到"人工审核"时,页面中将弹框提示任务需审核。

审核人进入流水线任务"phoenix-sample-pipeline"的详情页。单击"批准",流水线将自动继续执行。单击"驳回",流水线将中止执行。

3.7资源释放

在弹出的对话框中勾选"释放云服务器绑定的弹性公网 IP 地址"和"删除云服务器挂载 的数据盘",然后点击"是",删除云主机,释放 ECS 资源。

回到 CloudIDE 服务,删除 IDE 实列

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值