7天实战课程

7天实战课程_第1张图片

https://education.huaweicloud.com:8443/courses/course-v1:HuaweiX+CBUCNXV009+Self-paced/courseware/e768b3c87fe443e1ac45d3c5dce4a1d5/9a07abd9c59849549edd369f7502e386/

epic-feature-story-task

凤凰商城 最新实践 demo项目https://support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_2001.html

我解释下编译构建步骤啊
编译,构建这一步是为了将我们这个微服务凤凰商城这个应用的五个组件。把它编译成docker镜像,编译,打包成docker镜像,然后呢,把它推送到我们之前创建的那个SWR私有镜像仓库。

鼻翼构建里的变量,有一个是dockerServer,其实就是SWR的服务器地址,有一个dockerOrg就是SWR的组织,这里需要改为自己的这个组织以及server,这样是为了让我们把打包好的这个每个服务的镜像推送到自有自己的私有镜像仓库。

编译,构建步骤儿的有五个同样的任务都是制作并打包,这个推送到镜像到SWR,是因为我们这个服务有五个组件。然后里面的dockerServer,dockerOrg,其实都是用${ },这种方式,这里其实是取的变量里的值,所以这里大家不用改。

如果这个编译构建任务执行成功了,那回到那个SWR镜像仓库的管理页面,那你可以看到你的五个组建的这个镜像已经成功推送到SWR了,点开以后可以看到具体的一个版本,这个版本是以一个日期加第几次构件。所以说今天这个日期,今天的第一次估计。每次行一次,这个编译构建任务都会生成一个对应的版本。

最后在别人空间任务里有一个docker-componet-standalone.yum文件,这个yum文件是容器的编排文件,用来实现这个应用的部署的。但是这个文件的其实是一个模板文件,所以它编译构建任务里呢,我们把那个对应的我们打包出来的,这个镜像的版本替换成动态的一个版本的,也就是说,把这个模板文件替换成一个真正可以使用的docker-componet编排文件。

最后把它推送到了发布库,也就是点发布,就会看到有对应的文件夹、版本,你可以下载下来看见文件,可用的带有特定版本的docker的特定文件。

部署任务,其实就是为了去执行这个编排文件。然后把它运行起来,把这个应用给运行起来,但是部署步骤的有三个变量,分别是私有镜像仓库的账号,密码以及服务器地址,这里是为了。因为我们在这个启动编排文件的时候,去这个镜像的时候需要认证。所以我们在部署任务的先要登录这个私有仓库,确保能认证,通过来拉取最新的这个边镜像文件。然后把它启动。

几个问题大家需要注意:

  1. 关于构建任务需要修改什么?
    构建任务需要修改 ”参数设置“ 里的dockerServer 以及 dockerOrg
    私有镜像仓库地址:https://www.huaweicloud.com/product/swr.html
    dockerServer是私有镜像仓库的地址:一般是:swr.cn-north-1.myhuaweicloud.com
    dockerOrg是组织:自己创建的组织
  2. 安装docker时克隆地址失败?
    这个是由于pdf文件里地址换行导致的,请大家参考下面的命令:
    git clone https://codehub.devcloud.huaweicloud.com/DevOpsylcsxm00001/phoenix-storage.git
    cd phoenix-storage
    sh install.sh
  3. 大家注意更改构建任务dockerServer 以及 dockerOrg “参数” 的时候 不要复制上空格了
  4. 构建任务只需要更改参数,其他任何步骤都不需要更改
    1元云资源购买链接如下:
    云服务器有效期1个月,下单时,镜像请务必选择:
    公共镜像 - Ubuntu 16.04 Server 64bit
    【https://account.huaweicloud.com/usercenter/#/buyservice/grainCloud?promotionId=P1905151813566441IQO65316KEOLV&promotionPlanId=PPP19051614253521001CLNO707EL0IP&solutionCode=promotion.activity.cn-north-1.20190516-142112-585】

大家注意啊,编译构建任务只需要改两个参数,一个是dockerServer ,一个是dockerOrg 。不需要改具体步骤里的的那个参数。具体步骤实际上是一个变量,还会自动取你改的参数的那个仓库地址以及组织。

大家注意啊,就是编译构建任务,只需要改一个地方,就是。参数设置里的dockerOrg 以及dockerServer 。然后构建步骤里的啊仓库地址以及组织,这个。不需要改,这两个是填的变量,也就是说,它会自动从你参数设置那里去获取你填写的值。

构建步骤里,任何一步都不需要做更改,文档中其实都是在解释每一步是在做什么,并不是让大家去修改。最主要还是第八步,第八步写的是替换SWF,地址版本以及压缩部署文件,这这一步是说这一步是这么去做的,并不是让你把那个下面的命令替换掉实际的命令。

第1章 Day1 HE2E DevOps实施框架概述

Day01.实践打卡任务
创建 DevOps 全流程样例项目

实践背景

本实验文档提供了一个微服务架构的应用程序【凤凰商城】,在整个实验场景中我们将围绕此套代码完成软件研发的整个生命周期的操作。

示例程序简介

【凤凰商城】是一套电子商务商城示例代码。此套示例代码具有结构复杂,逻辑简单,代码 量少,技术栈丰富的特点,可以帮助开发者快速学习华为DevCloud的各项特性以及使用 微服务进行软件开发,测试和部署过程中可能遇到的各种问题。

架构及业务场景

凤凰商城示例程序由5个可以独立开发,测试和部署的微服务组件构成,分别为:
 客户端UI服务:
o 业务逻辑:用户可以通过浏览器访问此服务的WebUI,并在特定商品上点击 Like按钮。服务将用户所选择物品的记录保存在Redis缓存中。
o 技术栈:Python, Flask框架
o 应用服务器:Gunicorn

 管理端UI服务:
o 业务逻辑:用户可以通过浏览器访问此服务的WebUI,会动态显示客户端 UI上用户点击Like按钮的统计数据。此数据来自PostgreSQL数据库。
o 技术栈:node.js, express框架
o 应用服务器:server.js

 工作进程服务:
o 此服务为后台进程,会监控redis缓存中的物品记录,并将新纪录取出并保存 在PostgreSQL数据库中,以便管理端UI可以抽取数据进行统计显示。
o 技术栈:.net core 或者 java (此服务提供2种技术栈实现了同样的功能,可 根据需要修改配置选择其中一个座位运行时进程)

 Redis缓存
o 业务逻辑:此服务作为客户端UI服务的数据持久化服务存在。

 PostgreSQL数据库
o 业务逻辑:此服务作为管理端UI服务的数据源。
7天实战课程_第2张图片

必做打卡任务:一键创建示例项目

 打卡任务要求

  1. 成功创建DevOps 全流程示例项目
     准备工作
  2. 注册华为云帐号(如已注册,请跳过此步) 点此注册
     实践步骤
  3. 进入华为云DevCloud主页 点此进入
  4. 点击右上角 新建项目 ,选择 DevOps全流程样例项目 ,输入项目名称 phoenix-[华为云ID] ,点击新建。
    7天实战课程_第3张图片
  5. 创建完成后,进入 Backlog列表,如下图所示,至此day01实践打卡任务完成。
    7天实战课程_第4张图片

打卡任务截图

创建好的示例项目后,在Backlog列表界面,截屏或拍照上传至打卡小程序(建议用手机端上传),截图需包含创建的项目名称和华为云用户名。
 截图示例:
7天实战课程_第5张图片

 截图验证点:

  1. 项目名称 2. 用户名

选做任务:维护项目基本信息

通过本章节您将学习如何对 “凤凰商城” 进行基本信息等维护,以及团队成员管理,并学习如何通过定制站内消息通知以及邮件通知来跟进项目进度。

项目基本信息设置

  1. 点击设置>基本信息。项目的基本信息列出了项目名称,项目描述,项目类型,创建时间,创建人。项目描述可以根据情况进行修改。项目基本信息设置如下图所示:
    7天实战课程_第6张图片

收到新的邮件通知

发件人:克里斯 (应用程序开发部副总裁)
收件人:凤凰商城开发团队
主题:欢迎凤凰商城新成员

Hi 兄弟们:我给大家介绍下我们的新成员,从今天起,他们会全职参与到凤凰商城中。
Alex, python开发人员,负责凤凰商城客户端门户开发
Abel, Nodejs开发人员,负责凤凰商城管理端开发
Helen, 测试人员,负责凤凰商城站点测试

项目成员添加与维护

  1. 点击成员,可以添加新的用户到这个项目中。有两种添加用户的方式,如下表所示:
    添加方式 说明
    添加成员 添加本企业租户下的成员,如果成员不存在可以添加
    通过链接邀请 邀请非本企业租户下的成员
    在这里插入图片描述

  2. 点击 “创建用户“ 在该企业租户下创建用户,如下图所示:
    7天实战课程_第7张图片

  3. 进入统一身份认证服务,添加企业用户,如下图所示:
    7天实战课程_第8张图片

  4. 输入用户名、选择密码访问方式,点击下一步,如下图所示:
    7天实战课程_第9张图片

  5. 设置首次输入密码时生成,点击确定,如下图所示:
    7天实战课程_第10张图片

  6. 系统会提示“用户创建成功消息”,如下图所示:
    7天实战课程_第11张图片

  7. 用户已添加成功,如下图所示:
    7天实战课程_第12张图片

  8. 按照同样的方式,分别完成“Abel”、“Helen”用户的创建,如下图所示:
    7天实战课程_第13张图片

  9. 回到DevCloud,批量选择刚刚创建的用户,并选择对应的角色权限,点击确定,如下 图所示:

7天实战课程_第14张图片

除了本企业用户DevCloud也可以邀请其他企业用户添加到项目中。

  1. 点击 “通过链接邀请”,如下图所示:
    7天实战课程_第15张图片

  2. 点击复制链接,如下图所示
    7天实战课程_第16张图片

  3. 将链接发送给邀请人7天实战课程_第17张图片 4. 点击 “待审核” 选项卡,完成用户加入审核。

恭喜,您已经通过 “成员管理” 模块完成了凤凰团队新成员的添加。

站内通知以及邮件通知设置

通过此章节您将学习如何配置通知(站内通知、移动端消息通知、邮件消息通知),来时时跟 踪凤凰商城项目进展情况,配置完成后在后面的章节您将会持续的收到凤凰商城项目进展通 知情况。

  1. 点击设置>通知>查看站内消息通知,如下图所示:
    7天实战课程_第18张图片
  2. 邮件消息通知
    7天实战课程_第19张图片

1.1DevOps实施策略

7天实战课程_第20张图片

为什么敏捷开发才是做软件的正确姿势?

7天实战课程_第21张图片

7天实战课程_第22张图片
盖好大楼的时候,要加一个地下室。
7天实战课程_第23张图片
用户确认的不是需求,而是需求转化为产品后所获得的体验。
7天实战课程_第24张图片
7天实战课程_第25张图片

研发管理到底需要管理些什么?

7天实战课程_第26张图片
(用户角度)需求:用户所要的某一个特定的场景,他希望怎么去用这个软件
(技术角度)产品:哪些菜单、模块
设计过程:将以上两个产生联系

敏捷:一直以条目化的需求作为项目计划
7天实战课程_第27张图片

敏捷和DevOps是怎样的关系?

7天实战课程_第28张图片
航旅纵横:手机值机
7天实战课程_第29张图片
7天实战课程_第30张图片
7天实战课程_第31张图片
7天实战课程_第32张图片
7天实战课程_第33张图片

1.2创建DevOps全流程演示

7天实战课程_第34张图片
7天实战课程_第35张图片
7天实战课程_第36张图片
7天实战课程_第37张图片
在前端点击Like,在后端会实时的更新这个数据。

现在的需求:在前端上添加一个门店网络查询的功能。
7天实战课程_第38张图片
7天实战课程_第39张图片
Epic:公司重要的战略举措,比如说:凤凰商城这个系统
Feature:业务系统下具体的功能,功能模块
Story:对功能模块的进一步细分,通常拆分为在一个迭代内可以交付的多个工作力度
Task:对story的进一步拆分,通常把它拆分为开发人员可以直接进行工作的、评估的力度

7天实战课程_第40张图片
7天实战课程_第41张图片
7天实战课程_第42张图片

目前这个项目已经完成了3个迭代
7天实战课程_第43张图片
7天实战课程_第44张图片
7天实战课程_第45张图片
7天实战课程_第46张图片
为具体的需求创建测试用例
7天实战课程_第47张图片
7天实战课程_第48张图片
创建缺陷
7天实战课程_第49张图片
将测试用例与缺陷进行了关联

代码
7天实战课程_第50张图片
7天实战课程_第51张图片
7天实战课程_第52张图片
将代码与需求建立关联关系
7天实战课程_第53张图片
7天实战课程_第54张图片
7天实战课程_第55张图片
7天实战课程_第56张图片
7天实战课程_第57张图片
7天实战课程_第58张图片
7天实战课程_第59张图片
7天实战课程_第60张图片

这时候就不允许直接提交到master分支了
要新建一个分支
7天实战课程_第61张图片
7天实战课程_第62张图片
7天实战课程_第63张图片
7天实战课程_第64张图片
接下来看如何合并请求
7天实战课程_第65张图片
7天实战课程_第66张图片
7天实战课程_第67张图片
7天实战课程_第68张图片
7天实战课程_第69张图片
7天实战课程_第70张图片
7天实战课程_第71张图片
7天实战课程_第72张图片
7天实战课程_第73张图片
7天实战课程_第74张图片
7天实战课程_第75张图片
7天实战课程_第76张图片
7天实战课程_第77张图片
7天实战课程_第78张图片
7天实战课程_第79张图片
7天实战课程_第80张图片

7天实战课程_第81张图片
7天实战课程_第82张图片
7天实战课程_第83张图片
7天实战课程_第84张图片
流水线
7天实战课程_第85张图片
7天实战课程_第86张图片

第2章 Day2 HE2E之敏捷项目管理

Day02.实践打卡任务
完成敏捷项目管理

实践背景

【凤凰商城】示例项目是耗时数年所开发的汽车零部件配件电子商城。项目采用 Scrum 模 式进行迭代开发,每个迭代周期为 “两周”,前 3个迭代已经完成 “凤凰商城 1.0” 版本的 开发,当前正在进行 “迭代 4” 的规划。 通过接下来的几个练习,您将置身其中完成最新的迭代规划、以及产品的开发、测试、部署。

临时事件: 刚刚接到业务部门的最后通牒,要求月底必须上线 【门店网络查询功能】,可以在凤凰商 城中查询各个门店的相关信息。

必做打卡任务:使用 Scrum 项目模板进行项目规划

通过此章节,您将学习如何使用 DevCloud 提供的 “项目规划” 视图,以思维导图的模式完 成需求从Epic > Feature > Story > Task 的创建以及管理。
 打卡任务要求

  1. 在样例项目中,创建 “门店网络”项目规划 2. 创建新的迭代,并完成迭代管理
     准备工作
  2. 完成Day01.实践打卡任务——DevOps 全流程样例项目
     实践步骤

打卡任务 1:在样例项目中,创建 “门店网络”项目规划

  1. 打开凤凰商城样例项目,点击 工作>项目规划,项目规划视图以树形结构列出了需求从 Epic -> Feature -> Story -> Task 的逐级关系,如下图所示:
    7天实战课程_第87张图片
    接下来让我们看下不同类型的工作项通常是如何区分的,以及如何映射到凤凰项目的:
    工作项类型 说明
    Epic :通常是公司重要战略举措,比如在凤凰项目中的 “凤凰商城” ,对于“无极限零部 件公司”是一个与企业生存攸关的关键战略措施
    Feature :通常是对用户有价值的功能,用户可以通过使用特性满足他们的需求。比如 “凤 凰商城” 中的 “门店网络查询功能”,特性通常会通过多个迭代持续交付
    Story :通常是对一个功能进行用户场景细分,并且能在一个迭代内完成,Story通常需要 满足 INVEST 原则
    Task :通常是用户故事的细分,准备环境,准备测试用例等都可以是完成 Story的细分 任务

  2. 创建新的“Feature”, 在“凤凰商城” Epic 上点击 ”插入子主题“,如下图所示:
    7天实战课程_第88张图片

  3. 输入标题 “门店网络”, 回车保存,如下图所示:
    7天实战课程_第89张图片

  4. 按照同样的方式,完成用户故事 “作为用户应该可以查看、查询所有门店网络” 的创 建,如下图所示:
    7天实战课程_第90张图片
    恭喜,您已经通过 “项目规划” 视图以思维导图的方式完成了【用户故事 - 门店网络查询功 能】的添加。

打卡任务 2:创建新的迭代,并完成迭代管理

通过此章节,您将学习如何使用DevCloud 提供的项目流程管理来帮助你快速的制定团队计 划,管理和追踪相关工作进度。 你将学习如何使用积压工作列表,迭代看板来跟踪迭代中的工作流。

  • 创建迭代
  1. 点击 工作>迭代,进入迭代管理视图:
    7天实战课程_第91张图片

当前视图列出了所有的迭代,包含过去的 3个迭代,接下来我们创建一个新的迭代作为当 前迭代,请按照当前时间修改项目迭代时间,适应实验场景。 2. 点击 “新建迭代”,输入迭代名称 “迭代04”,设置迭代日期开始日期为本周一,结束日 期为下周五,如下图所示,点击新建:
7天实战课程_第92张图片

系统会根据设置的时间周期自动将 “迭代04” 显示在 “当前迭代” 列表,如下图所示:
7天实战课程_第93张图片
3. 同样新建并设置 “迭代05” 的时间周期为 “迭代 04” 的下一日期周期
7天实战课程_第94张图片

系统根据设置的时间周期自动将 “迭代 05” 显示在 “将来迭代” 列表,如下图所示:
7天实战课程_第95张图片
恭喜,您已经通过 “迭代管理” 视图完成了 “当前迭代” 以及 “将来迭代” 的创建。

- 积压工作管理

在市场部门的施压下, “用户故事 -门店网络查询功能” 被指定为最高优先级处理,因为许多 客户需要通过它来查询最近的门店网络地址,从而获取服务。

  1. 点击 工作>Backlog,打开 “用户故事 - 作为用户应该可以查看、查询所有门店网络”
    7天实战课程_第96张图片
    让我们编辑这个用户故事,将其分配给相关人员,并设置相关字段

  2. 修改用户故事,描述信息、开始日期、结束日期、预计工时、优先级、重要程度字段信 息,点击确定,如下图所示:
    7天实战课程_第97张图片

  3. 您也可以选择将本地附件直接拖放到工作表单上:
    7天实战课程_第98张图片

  4. 在积压工作列表中,我们同时可以设置自己关注的用户故事,方便查询,点击 “❤” 即可 关注
    7天实战课程_第99张图片

  5. 按照同样的方式,关注 “积分管理 - 无法显示积分规则界面”,关注完成后心形图标变为 红色,表示关注成功,如下图所示:
    7天实战课程_第100张图片

恭喜,您已经对 “用户故事 - 门店网络查询功能” 表单进行了详细的补充,包括(描述、负 责人、截止日期、以及相关附件)。

- 迭代规划

接下来我们需要对当前迭代(近两周)的工作进行规划,其中最重要的工作 “用户故事 - 门店 网络查询” 需要在本迭代完成并上线
1.打开 工作>迭代>未计划工作项,当前列出了所有未计划的积压工作列表,如下图所示:
7天实战课程_第101张图片
2. 鼠标拖动 “用户故事 - 作为用户应该可以查看、查询所有门店网络”,到 “迭代 04” ,如 下图所示:
7天实战课程_第102张图片

  1. 按照同样的方法 将 “用户故事 - 作为管理员应该可以添加限时打折” 以及 “用户故事 - 作为管理员应该可以添加团购活动” 添加到 “迭代 4” 。
  2. 规划完成后,点击 “迭代 4”, 进入迭代工作列表,如下图所示:
    7天实战课程_第103张图片
    恭喜,您已经完成了 “迭代 4” 的工作计划。
  3. 分别设置3 个用户故事的结束日期(建议设置2天完成一个用户故事),如下图所示:
    7天实战课程_第104张图片
    7天实战课程_第105张图片

- 看板使用以及任务分配

接下来我们需要将 ”用户故事 - 作为用户应该可以查看、查询所有门店网络“ 拆分到开发任 务级别,并指派给对应的负责人、以及完成工时评估

  1. 切换到看板模式,如下图所示:
    7天实战课程_第106张图片

  2. 为 “用户故事 - 作为用户应该可以查看、查询所有门店网络” 创建开发任务,如下图所 示:
    7天实战课程_第107张图片

  3. 添加任务输入标题 “前端展示 - 添加门店网络菜单“ ,点击确定,如下图所示:
    7天实战课程_第108张图片

  4. 添加任务输入 “后台管理 - 添加门店网络管理维护模块”,点击确定,如下图所示:
    7天实战课程_第109张图片

  5. 添加完成后,如下图所示:
    7天实战课程_第110张图片
    在每日站立会议中,可以通过电子白板报告更新任务进度,你可以考虑为团队添置一个带触 摸功能的壁挂平板电视了。

  6. 拖动白板,以更新 “用户故事” 状态为进行中,如下图所示:
    7天实战课程_第111张图片

至此day02必做的实践打卡任务已完成。

打卡任务截图

请点击 工作>迭代 ,选中当前迭代并截图,截图中需包含项目名称以及当前迭代[迭代 4] 的工作内容:
 截图示例:

 截图验证点:

  1. 项目名称 2. 用户名 3. 迭代 04 – 任务列表
    7天实战课程_第112张图片

选做打卡任务:使用效率工具监控和跟踪项目状态

通过此章节,您将学习如何使用 DevCloud 提供的效率工具来持续的监控跟进项目进度。
 迭代进度视图
通过迭代图表团队可以方便的统计当前迭代的进度情况,包括需求完成情况、迭代燃尽图、 工作量等

  1. 按照下图方式,展开迭代进度视图
    7天实战课程_第113张图片
  2. 展开后,如下图所示
    7天实战课程_第114张图片

 项目仪表盘查看以及管理
项目仪表盘提供了强大的项目进度跟进能力、包括需求进度统计、燃尽图、工作完成度、工 时统计等等 1. 点击 “仪表盘”,进入后,如下图所示:
7天实战课程_第115张图片

2.1敏捷开发实践–Kanban和Scrum

7天实战课程_第116张图片
7天实战课程_第117张图片

7天实战课程_第118张图片
7天实战课程_第119张图片
7天实战课程_第120张图片
7天实战课程_第121张图片
7天实战课程_第122张图片
7天实战课程_第123张图片
7天实战课程_第124张图片
7天实战课程_第125张图片
7天实战课程_第126张图片
7天实战课程_第127张图片
7天实战课程_第128张图片
7天实战课程_第129张图片
7天实战课程_第130张图片
7天实战课程_第131张图片
在这里插入图片描述
7天实战课程_第132张图片
7天实战课程_第133张图片
7天实战课程_第134张图片
7天实战课程_第135张图片
7天实战课程_第136张图片
7天实战课程_第137张图片
7天实战课程_第138张图片
7天实战课程_第139张图片

7天实战课程_第140张图片

7天实战课程_第141张图片
7天实战课程_第142张图片
7天实战课程_第143张图片

7天实战课程_第144张图片
7天实战课程_第145张图片

2.2动手实验-项目管理

7天实战课程_第146张图片
7天实战课程_第147张图片
7天实战课程_第148张图片
7天实战课程_第149张图片
7天实战课程_第150张图片
7天实战课程_第151张图片
7天实战课程_第152张图片
7天实战课程_第153张图片
7天实战课程_第154张图片
7天实战课程_第155张图片
7天实战课程_第156张图片
7天实战课程_第157张图片

7天实战课程_第158张图片

进入backlog的积压工作列表
7天实战课程_第159张图片
7天实战课程_第160张图片
7天实战课程_第161张图片
7天实战课程_第162张图片
7天实战课程_第163张图片
7天实战课程_第164张图片
7天实战课程_第165张图片
把未计划工作项拖动到迭代中
7天实战课程_第166张图片
进一步拆分
7天实战课程_第167张图片
7天实战课程_第168张图片
7天实战课程_第169张图片
7天实战课程_第170张图片
7天实战课程_第171张图片
7天实战课程_第172张图片
7天实战课程_第173张图片
7天实战课程_第174张图片
7天实战课程_第175张图片
7天实战课程_第176张图片
7天实战课程_第177张图片
7天实战课程_第178张图片
7天实战课程_第179张图片
7天实战课程_第180张图片
7天实战课程_第181张图片
7天实战课程_第182张图片

第3章 Day3 HE2E之敏捷测试管理

Day03.实践打卡任务
完成敏捷测试管理

实践背景

在前面的练习中我们已经完成了凤凰商城 “迭代 4” 的需求规划,此时测试人员可以同步的 进行测试用例的编写,这样测试人员在迭代之初就可以进行软件测试工作。 在本实验中,您将学习如何使用 DevCloud 来管理项目的测试生命周期。本实验将指导您创 建有效设计的测试套件,以验证您的软件里程碑。您还将创建测试测试,这些测试测试可以 在每次发布时重复执行。

必做打卡任务

 打卡任务要求

  1. 使用追溯视图进行需求驱动的测试
  2. 使用测试套件进行迭代测试规划
  3. 使用DevCloud 执行手工测试
     准备工作
    完成前两日实践打卡任务

必做任务实践步骤

打卡任务 1:使用追溯视图进行需求驱动的测试

通过本章节,您将学习如何通过追溯视图完成测试用例的设计,并在测试用例中细化测试步 骤,验证用户的使用场景。如下为需求驱动的测试用例编写操作指导。

  • 需求驱动的测试用例编写
    1.切换到需求追溯视图,点击测试>测试管理>追溯视图,如下图所示:
    7天实战课程_第183张图片
    2.展开需求树,根据需求创建测试用例,如下图所示:
    7天实战课程_第184张图片
    3.设置用例标题、模块、迭代、处理人等信息,如下图所示: 标题:门店网络查询 迭代:迭代 04
    7天实战课程_第185张图片

4.按照下表添加测试步骤以及预期结果
7天实战课程_第186张图片
5.添加完成后,如下图所示:
7天实战课程_第187张图片
6.按照同样的方式,完成下面两个用户故事的测试用例设计:
 作为管理员应该可以添加限时打折
 作为管理员应该可以添加团购活动

7.添加完成后,如下图所示:
7天实战课程_第188张图片

打卡任务 2:使用测试套件进行迭代测试规划

DevCloud 允许团队将多个测试用例组织到测试套件中。测试套间用于跟踪迭代或里程碑中 的测试用例。这样,您可以看到特定迭代或里程碑的测试何时完成。接下来让我们把 “迭代 4” 的测试用例添加到新的测试套件中。

  • 创建管理测试套件
    1.点击 “测试”>“测试管理”>“测试套件”>“新建手工测试套件”,如下图所示:
    7天实战课程_第189张图片

2.输入套件名称 “迭代4”,并点击 “+” ,选择测试用例,如下图所示:
7天实战课程_第190张图片
3.筛选迭代 “迭代4”,并点击确定,如下图所示:
7天实战课程_第191张图片

4.全选,并点击确定,如下图所示:
7天实战课程_第192张图片
5.点击确定,保存测试套件,如下图所示:
7天实战课程_第193张图片

6.测试套件保存后,如下图所示:
7天实战课程_第194张图片

打卡任务 3:使用DevCloud 执行手工测试

测试经理:经过开发跟运维的共同努力,现在我们的应用已经可以在迭代内持续的往测试环 境部署了,每天都会有新的功能部署到测试环境。 大家可以同步的进行软件测试工作,有问题大家及时的反馈,以保证我们迭代交付的质量。
通过本章节,您将学习如何创建测试套件,以及如何执行手工测试、创建缺陷,反馈测试结 果。

  • 手工运行测试用例
  1. 点击 “测试”>“测试管理”>“测试套件”>“迭代4 测试套件”>点击执行,如下图所示:
    7天实战课程_第195张图片

  2. 当前列出了测试套件包含的所有手工测试用例,可以逐一执行,如下图所示:
    7天实战课程_第196张图片

  3. 测试人员按照测试步骤,逐个执行并反馈结果,如下图所示: 此测试用例执行失败,可以按照下图方式创建缺陷
    7天实战课程_第197张图片

  4. 点击创建缺陷后,系统会根据执行步骤,自动填充缺陷的重现步骤,方便开发人员重现 问题并快速修复,如下图所示:
    7天实战课程_第198张图片

  5. 缺陷完成后,保存测试结果,如下图所示:
    7天实战课程_第199张图片

  6. 按照同样的方式完成其他测试用例的执行,如下图所示:
    7天实战课程_第200张图片
    7天实战课程_第201张图片

  7. 设置测试套件结果为失败,如下图所示:
    7天实战课程_第202张图片

  8. 执行完成后,查看测试套件执行情况,如下图所示: 7天实战课程_第203张图片7天实战课程_第204张图片加粗样式

  9. 打开测试套件,并更新测试套件,如下图所示:
    7天实战课程_第205张图片

  10. 测试套件状态更新完成,如下图所示:
    7天实战课程_第206张图片
    至此 day03 必做的实践打卡任务已完成。

打卡任务截图

点击 “测试” > “测试管理” > “测试总览” ,过滤 “迭代 04” 并截图,截图中需包含项目名称、 以及测试总览的图表:
 截图示例:
在这里插入图片描述
 截图验证点:

  1. 用户名 2. 确保迭代 04 的需求覆盖率、缺陷、用例通过率、用例完成率有数据。

选做打卡任务-用例自定义

测试经理:我已经设计完成用例,并分配给了对应的测试人员,但是现在我们的测试用例流 程中并没有用例设计完成的状态标识。 建议在用例的流程中添加 “已分配” 状态,用来表示用例已经设计完成,并分配给了对应的 测试人员,可以进行用例执行。

  1. 点击 “设置”>“测试管理”>“用例自定义”>“添加状态”,输入“已分配”,点击确定,如下图所 示:
    7天实战课程_第207张图片

  2. 添加完成,如下图所示:
    7天实战课程_第208张图片

  3. 回到“测试”>“测试用例”>过滤“迭代 4”用例,点击确定,如下图所示:

7天实战课程_第209张图片
7天实战课程_第210张图片
4. 全选 ”迭代 4“ 测试用例,点击“更多操作”>“修改”,如下图所示:
7天实战课程_第211张图片
5. 将状态设置为 “已分配”,点击确定,如下图所示:
7天实战课程_第212张图片
6. 状态修改完成,如下图所示:

7天实战课程_第213张图片

3.1持续交付-测试规划思路

7天实战课程_第214张图片
7天实战课程_第215张图片
7天实战课程_第216张图片
7天实战课程_第217张图片
7天实战课程_第218张图片
7天实战课程_第219张图片

3.2动手实验-测试管理

7天实战课程_第220张图片
7天实战课程_第221张图片
7天实战课程_第222张图片
7天实战课程_第223张图片
根据需求创建测试用例
7天实战课程_第224张图片
也可以创建没有与需求关联的测试用例
7天实战课程_第225张图片
7天实战课程_第226张图片
7天实战课程_第227张图片
7天实战课程_第228张图片
7天实战课程_第229张图片
可以设定测试的结果是成功还是失败
可以针对用例创建一个缺陷
7天实战课程_第230张图片
7天实战课程_第231张图片
7天实战课程_第232张图片

第4章 Day4 HE2E之编码和配置管理

Day04.实践打卡任务
使用 DevCloud 的 Git 代码托管支撑持续交付

实践背景

在本实验中,您将了解如何使用DevCloud 提供的 Git代码托管服务进行源代码管理,对【用 户故事 - 门店网络查询功能】进行开发,以及如何使用功能分支的方式进行代码的开发合 并。

必做打卡任务

 打卡任务要求

  1. 使用 Git 修改和提交代码
     准备工作
  2. 完成前三日实践打卡任务
     实践步骤
    在本练习中,您将学习如何创建,克隆和推送 Git存储库,并将本地修改同步到DevCloud 代码托管服务中。

- 配置你的 Git 账号

  1. 点击“代码”>“代码托管”>“设置我的HTTPS 密码”,如下图所示: 注意:你能够看到两个入口:《设置我的 SSH 密钥》与《设置我的 HTTPS 密码》,这代 表两种不同的访问 Git 仓库的方式 - ssh方式与 https 方式。大多数的git客户端,都同时支 持这两者。这里我们以HTTPS 为例
    7天实战课程_第233张图片

  2. 设置 HTTPS 密码,如下图所示:
    7天实战课程_第234张图片
    特别注意 : 对于企业租户来说(IAM登录),用户名是: 租户名/用户名;
    对于个人用户来说(非 IAM 登录),用户名是: 用户名/用户名;
    HTTPS 的密码,并不等于华为云登录密码,需要另行设置,如果修改密码,您将收到确认 邮件。

- 克隆 Git 代码仓库

  1. 点击 “代码”>“代码托管”>phoenix-sample” 代码仓库,如下图所示:
    7天实战课程_第235张图片

  2. 当前页面列出了 “凤凰商城” 项目代码的相关信息,如下图所示:
    7天实战课程_第236张图片

  3. 点击 “克隆/下载”,将访问方式切换到“HTTPS”,如下图所示:

7天实战课程_第237张图片
4. 点击快速复制按钮,将克隆地址复制到剪贴板,如下图所示:
7天实战课程_第238张图片
5. 在获取地址后,在你的本机 Git 客户端,使用git clone 命令进行代码克隆即可,例如:
git clone <访问地址>
6. 克隆完成、输出如下:
Cloning into ‘phoenix-sample’…
remote: Counting objects: 9900, done.
remote: Compressing objects: 100% (60/60), done. remote: Total 9900 (delta 80), reused 112 (delta 64)
Receiving objects: 100% (9900/9900), 122.51 MiB>10.61 MiB/s, done.
Resolving deltas: 100% (2358/2358), done.
Checking out files: 100% (8982/8982), done.
注意:由于使用 HTTPS 的方式,第一次需要输入用户名和密码,参见“HTTP 方式账号密码 设置”。

- 提交代码,并链接到工作项

本章节中您将通过代码开发完成需求 “添加门店网络菜单”

  1. 使用 VS Code 开发工具,打开凤凰商城首页,并按照下图,在 179 行添加 “门店网络” 菜 单:
    7天实战课程_第239张图片

  2. 查看 “用户故事-作为用户应该可以查看、查询所有门店网络” 工作编号,如下图所示:

7天实战课程_第240张图片
3. 在 VScode 里输入备注以及工作项编号,点击提交代码,如下图所示: 注意:请使用以下格式关联工作项:“fix #工作项编码 本次提交的注释信息”
7天实战课程_第241张图片
4. 同步代码到远程仓库,如下图所示:
7天实战课程_第242张图片
5. 在 DevCloud-代码托管中,点击“历史”,查看代码历史记录确认代码是否成功提交,如下 图所示:
7天实战课程_第243张图片
6. 查看工作项,代码提交记录,如下图所示:
7天实战课程_第244张图片

至此day04必做的实践打卡任务已完成。

打卡任务截图

请点击 “代码”>“代码托管”>“phoenix-sample”>“文件”>“历史” 并截图,截图中需包含项目名 称、以及您修改的代码历史记录截图
 截图示例:
7天实战课程_第245张图片

 截图验证点:

  1. 项目名 2. 用户名 3. 提交历史记录,并验证提交者以及提交时间

选做打卡任务-使用 Git 分支+合并请求方式提交代码

  • 背景:收到新的邮件通知
    发件人:开发经理
    收件人:凤凰商城开发团队
    优先级:高

主题:凤凰商城开发模式 - 建议使用功能分支+合并请求的方式

Hi 兄弟们: 为了保证凤凰商城的稳定运行,我们需要有一个稳定的持续可用的分支“Master”,所以我不 建议任何人直接在 Master分支上进行代码开发。 请大家在后面的功能开发中统一使用功能分支+合并请求的方式进行功能的开发与合并。
而且我建议每一个功能分支的代码,必须经过团队的其他成员评审后,才可以进行合并。 谢谢大家的配合。

在本练习中,您将学习如何通过功能分支以及拉取请求的方式完成用户故事的开发,以及在 线代码检视。

- 启用分支保护

1.点击 ”设置“>”保护分支管理“>“新建保护分支”,如下图所示:
7天实战课程_第246张图片
2.按照下图方式进行配置:
7天实战课程_第247张图片

3.创建完成后,如下图所示:
7天实战课程_第248张图片

- 管理分支策略

1.点击 ”设置“>”基本设置“>“合并请求设置” |“允许合入的最低评分为 3”>确定,如下图所示 通常我们会建议为3 分。如果不打算使用这个功能,可以设置为0 分。
7天实战课程_第249张图片

- 创建功能分支

1.点击“分支”>“新建分支”>“输入分支名称” (这里一般建议采用 feature+"工作项"命名), 如下图所示:
7天实战课程_第250张图片
2.分支创建完成,如下图所示:
7天实战课程_第251张图片

- 新功能开发

1.本地支持 git pull 命令拉取最新代码
$ git pull
From https://codehub.devcloud.huaweicloud.com/*********

  • [new branch] feature1828888 -> origin/feature1828888
    Already up-to-date.

2.使用 git checkout命令切换分支
$ git checkout feature1470067
Branch feature1828888 set up to track remote branch feature1828888 from origin.
Switched to a new branch ‘feature1828888’

3.使用 git branch 命令,查看当前分支
$ git branch

  • feature1828888
    master

4.使用 vscode 修改代码添加新功能 1).修改 store-network.html 页面,添加北京分店地址,如下图所示:

  • 北京分店:首都机场 1 号航站楼出发层靠右直行 888 米左右右侧
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190518222806316.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F0aGxlbmFB,size_16,color_FFFFFF,t_70) 2).修改index.html 门店查询菜单链接到 store-network,如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190518222815331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F0aGxlbmFB,size_16,color_FFFFFF,t_70)

5.修改完成后,提交代码,如下图所示
7天实战课程_第252张图片
6.提交并同步代码到服务器,如下图所示:
7天实战课程_第253张图片

7.同步完成后,查看分支代码历史记录,如下图所示:
7天实战课程_第254张图片

- 创建合并请求

1.点击“合并请求”>“新建合并请求”,如下图所示:
7天实战课程_第255张图片
2.选择源分支以及目标分支,点击下一步,如下图所示:
7天实战课程_第256张图片
3.设置合并请求 “标题”、“合并人”、“审批人”,如下图所示:
7天实战课程_第257张图片

4.创建完成如下图所示:
7天实战课程_第258张图片
7天实战课程_第259张图片

- 社交评论

注意:用户可以在评论记录页,发表评论。也可以发表讨论。评论与讨论的区别在于:评论 无需回复并解决。而讨论是一个需要解决的问题。在评论记录里,可以看到差别。
1.点击评论记录,如下图所示:
7天实战课程_第260张图片
2.输入内容,点击发表评论,如下图所示:
7天实战课程_第261张图片
3.发表讨论,输入讨论内容,点击发表讨论,如下图所示:
7天实战课程_第262张图片

4.发表后,如下图所示:
7天实战课程_第263张图片
5.其他用户可以回复并解决,如下图所示:
在这里插入图片描述

6.回复并解决后,如下图所示:
7天实战课程_第264张图片

- 代码检视以及评分

1.评审代码的人,可以在两个位置发表讨论:合并请求的评论记录页,以及点击文件变更, 针对某一行代码发起讨论。
7天实战课程_第265张图片
7天实战课程_第266张图片

2.在屏幕的右上角,有个评分窗口,点击可以展开,如下图所示: 普通开发者,能够±1 分,仓库的管理员,能够±2 分或±1 分。最终的总得分如果满足要求, 合并请求将能够被合并。
7天实战课程_第267张图片

3.回到评论记录,如下图所示:
7天实战课程_第268张图片
4.根据建议修改代码,如下图所示:

7天实战课程_第269张图片
5.提交更改,如下图所示:
7天实战课程_第270张图片
6.同步更改到服务器,如下图所示:

7天实战课程_第271张图片
7.提交代码评分,如下图所示:
7天实战课程_第272张图片
8.使用另一帐户提交评分(如何没有,请回到合并请求设置,将最低评分设置为2 分),如 下图所示:
7天实战课程_第273张图片
9.勾选 “删除源分支”,并接受 “合并请求”,如下图所示:
7天实战课程_第274张图片
10.合并请求已完成,如下图所示:

7天实战课程_第275张图片

4.1持续交付-分支策略

7天实战课程_第276张图片
7天实战课程_第277张图片
main
develop
release
7天实战课程_第278张图片
7天实战课程_第279张图片

4.2动手实验-代码托管

7天实战课程_第280张图片

7天实战课程_第281张图片
7天实战课程_第282张图片
7天实战课程_第283张图片
7天实战课程_第284张图片
7天实战课程_第285张图片
7天实战课程_第286张图片
7天实战课程_第287张图片
7天实战课程_第288张图片
用的是visual studio
7天实战课程_第289张图片
7天实战课程_第290张图片
7天实战课程_第291张图片
7天实战课程_第292张图片
7天实战课程_第293张图片
7天实战课程_第294张图片
7天实战课程_第295张图片
7天实战课程_第296张图片
7天实战课程_第297张图片
7天实战课程_第298张图片
7天实战课程_第299张图片
7天实战课程_第300张图片
7天实战课程_第301张图片
7天实战课程_第302张图片
7天实战课程_第303张图片
7天实战课程_第304张图片
7天实战课程_第305张图片
7天实战课程_第306张图片
7天实战课程_第307张图片
7天实战课程_第308张图片
7天实战课程_第309张图片

第5章 Day5 HE2E之代码质量自动化检查

Day05.实践打卡任务
使用 DevCloud 静态代码检查确保编码规范有效落地

实践背景

项目经理:随着凤凰商城越来越庞大,线上出现的缺陷以及安全问题也越来越多,修复的成 本太大了,其实很多问题是可以在上线之前就应该发现以及修复的。 而且开发人员写代码也比较随性,没有统一标准,我们需要制定一些基本的标准,并对代码 进行持续的静态代码扫描,一旦发现问题立即在迭代内修复。这样才能保证我们上线的应用 相对可靠。

在本实验中,您将了解如何使用 DevCloud 提供的 “代码检查” 服务完成针对不同技术栈的 代码静态扫描,问题收集与修复。

必做打卡任务

 打卡任务要求

  1. 为示例项目配置代码检查任务并执行
     准备工作
  2. 完成前四日实践打卡任务
     实践步骤
    在本练习中,您将学习如何创建代码检查任务,并执行代码检查任务,完成应用的静态代码 检查。

- 创建代码检查任务

  1. 选择 “代码”>“代码检查”>“新建任务”,如下图所示:
    7天实战课程_第310张图片

  2. 输入任务名称 “phoenix-sample-code-check-java”,设置代码分支为master,选择检查 语言 Java && Python,点击确定,如下图所示:
    7天实战课程_第311张图片
    7天实战课程_第312张图片

  3. 配置完成后,如下图所示:
    7天实战课程_第313张图片

- 启动代码检查任务

  1. 点击启动任务,启动 Java 代码静态检查,如下图所示:
    7天实战课程_第314张图片
  2. 代码扫描中,会显示代码的进度百分比,如下图所示:
    7天实战课程_第315张图片
  3. 扫描完成后,如下图所示:
    7天实战课程_第316张图片

至此day05必做的实践打卡任务已完成。

打卡任务截图

点击“代码”>“代码检查” 并截图,截图中需包含项目名称、以及对应的代码检查任务
 截图示例:
7天实战课程_第317张图片
 截图验证点:

  1. 项目名称 2. 用户名 3. 代码检查任务执行情况

选做打卡任务-分析代码检查结果并修复问题

在本练习中,您将学习如何根据代码检查结果分析代码中存在的问题,并解决代码问题。

  • 分析代码检查报表
    1.如下图所示,当前扫出了 9个代码问题
    7天实战课程_第318张图片
    2.点击“源码问题”,切换到代码问题详情界面,如下图所示: 当前界面列出了问题的严重级别、状态、所属文件、以及检查规则等
    7天实战课程_第319张图片

3.切换到 Python扫描结果,鼠标移至最后一个问题,查看此问题 通过查看问题描述我们可以看到此问题是一个编码风格的问题,fieldStorage 这个变量的命 名规则不符合相应的正则表达式,但是在凤凰团队内部,其实并没有对此有严格的要求,我 们可以在此忽略此问题
7天实战课程_第320张图片
4.点击具体错误,进入到错误详情界面,可以通过点击忽略按钮,忽略此问题,如下图所示:

7天实战课程_第321张图片
5.输入 “处理意见” 以及勾选 ”忽略统一规则检查出的错误“,如下图所示:
7天实战课程_第322张图片
6.回到 “检查结果概述”,查看问题状态汇总已经发生了变化,如下图所示:
7天实战课程_第323张图片

7.继续查看代码问题,查看第五个问题,如下所示: 此问题是在代码里Connection没有关闭可能会引起的资源泄漏问题,属于非常严重的问题, 建议快速修复掉
7天实战课程_第324张图片
8.可以参考修改建议对代码问题进行修复,如下图所示:
7天实战课程_第325张图片
7天实战课程_第326张图片
7天实战课程_第327张图片
7天实战课程_第328张图片
7天实战课程_第329张图片
7天实战课程_第330张图片
7天实战课程_第331张图片
7天实战课程_第332张图片
7天实战课程_第333张图片
7天实战课程_第334张图片

第6章 Day6 HE2E之持续交付之CI和CD

Day06.实践打卡任务
使用 DevCloud 搭建容器化 CI/CD 配置

实践背景

克里斯(应用程序开发副总裁):最近一次部署又出问题了,居然是因为我们的 JDK 版本 升级了,在环境清单里没有标示清楚,运维的兄弟气疯了。 我跟比尔一起聊了下,达到了如下共识:
1.首先开发部跟运维部应该紧密合作,建立共同的目标和共同解决问题的机制。
2.开发的工作与运维的工作应该解耦,运维更多是将 IT 运维任务转变为自助、自动化服 务,把基础架构的配置能力交给开发,因为没有人比我们更清楚应用的运行环境。
3. 所有我们首先需要保证每个环境(开发调测环境、测试环境、QA 环境、生产环境)都 保持一致, 避免因为环境不一致导致的各种问题。后面统一使用Docker的方式将应用与 环境统一打包到镜像保持环境一致。
4. 我们还需要持续不断的对应用进行验证,确保应用总是处于可部署的状态并建立持续反 馈回路,防止问题代码进入生产环境。

必做打卡任务

 打卡任务要求
1.使用自动化编译提高代码质量验证速度
2.配置持续集成并通过提交代码触发自动化编译
3.使用自动化部署实现一键发布
 准备工作
1.完成前五日实践打卡任务
2.激活容器镜像服务(SWR)
3.开通弹性云服务器(ECS)

- 激活容器镜像服务(SWR)

1.进入华为云容器镜像服务 点此进入
2.点击 立即使用
7天实战课程_第335张图片
3.弹出页面中,点击 同意授权
7天实战课程_第336张图片
至此,SWR 服务已激活,SWR 服务开通后提供 10GB 外网下载流量和10GB 镜像存储空 间。

- 开通弹性云服务器(按需购买)

1.进入弹性云服务器 ECS 主页 点此进入
2.点击立即购买,如下图所示:
3.请严格按照下面表格进行主机配置
7天实战课程_第337张图片
7天实战课程_第338张图片
4.配置完成确认订单无误后,点击提交,如下图所示:
7天实战课程_第339张图片

- 开通弹性云服务器(优惠套餐购买)

1.满足连续3 天打卡的用户,在获取优惠套餐购买资格后,小助手会私信提供购买链接, 直接下单即可完成ECS 开通。

- 配置弹性云服务器(安装 Docker&Python)

  1. 点击控制台>弹性云服务器ECS,查看主机信息,如下图所示
    7天实战课程_第340张图片

  2. 查看主机 IP 地址,如下图所示:
    7天实战课程_第341张图片

  3. 使用 SSH 登陆云主机
    ssh root@

  4. 执行以下命令,安装程序运行依赖工具 Python\Docker\Docker-Compose
    git clone https://codehub.devcloud.huaweicloud.com/DevOpsylcsxm00001/phoenix-storag
    e.git
    cd phoenix-storage
    sh install.sh

  5. 点击安全组>更改安全组规则,添加入站规则 - 允许访问 5000 以及 5001 端口,如下 图所示:
    7天实战课程_第342张图片
    至此 day06 实践任务的准备工作已完成,接下来进入实践环节。
    7天实战课程_第343张图片

必做任务实践步骤

 打卡任务 1:使用自动化编译提高代码质量验证速度
在本练习中,您将学习如何创建 “编译构建任务”,完成应用的 Docker 镜像打包以及推 送。这里我们已经提前创建好了编译构建任务,为了加深用户对构建定义的理解,下面将 解释如何进行配置。

- 查看编译构建任务

1.点击 ”构建&发布“>“编译构建” 编辑已存在的构建定义,如下图所示:
在这里插入图片描述
2.点击基本信息,可以编辑构建任务的名称,如下图所示:
7天实战课程_第344张图片

3.点击 “源码选择” 可以设置源码仓库、分支,如下图所示:
7天实战课程_第345张图片

4.点击 “参数设置” 设置自己的SWR 仓库服务器以及组织,如下图所示:

7天实战课程_第346张图片
临时账号密码获取方式,如下图所示 -u 为用户名 -p 为密码 最后字符串为 服务器地址 如果要获取有效的长期的docker login 指令 请参考以下文档 https://support.huaweicloud.com/usermanual-swr/swr_01_1000.html
7天实战课程_第347张图片

- 设置编译构建任务步骤

接下来让我们分别看下每个构建步骤的是如何设置的:构建模块提供了不同类型的操作步 骤,用户可以根据实际需求选择。 步骤一:编译Vote,并推送镜像到SWR(私有镜像仓库)
7天实战课程_第348张图片

步骤二:编译Result,并推送镜像到 SWR(私有镜像仓库)
7天实战课程_第349张图片

步骤三:使用 Maven 获取依赖包
7天实战课程_第350张图片

步骤四:编译 worker,并推送镜像到 SWR(私有镜像仓库)
7天实战课程_第351张图片
步骤五:创建 postgres 以及 redis Dockerfile
7天实战课程_第352张图片
步骤六:推送 postgres 镜像

7天实战课程_第353张图片
步骤七:推送 redis 镜像
7天实战课程_第354张图片

步骤八:替换SWR 地址、版本以及压缩部署文件
7天实战课程_第355张图片

sed -i s/docker-server/ d o c k e r S e r v e r / g . / d o c k e r − s t a c k . y m l s e d − i s / d o c k e r − o r g / {dockerServer}/g ./docker-stack.yml sed -i s/docker-org/ dockerServer/g./dockerstack.ymlsedis/dockerorg/{dockerOrg}/g ./docker-stack.yml
sed -i s/image-version/${BuildNumber}/g ./docker-stack.yml

tar -zcvf phoenix-sample-k8s.tar.gz ./kompose
tar -zcvf docker-stack.tar.gz ./docker-stack.yml
步骤九:发布软件包
7天实战课程_第356张图片

- 修改镜像组织名称

请按照下图方式,将所有推送镜像任务的组织名称改为您自己的"仓库地址" 以及 “组织名 称”
7天实战课程_第357张图片

- 执行板梯构建任务

1.配置完成后,点击 “开始构建”,如下图所示:
7天实战课程_第358张图片
2.构建执行中,如下图所示:
7天实战课程_第359张图片
7天实战课程_第360张图片
3.构建完成,如下图所示:
7天实战课程_第361张图片
4.点击 “构建&发布”>”发布“ 查看发布结果,如下图所示:
7天实战课程_第362张图片

打卡任务 2:配置持续集成并通过提交代码触发自动化编译

在本练习中,您将学习如何启动持续集成,实现代码变更后自动触发应用的Docker 镜像 打包以及推送。

- 持续集成配置

1.点击源码选择,勾选提交代码触发执行,点击保存,如下图所示:
7天实战课程_第363张图片

- 持续集成执行计划配置

7天实战课程_第364张图片
7天实战课程_第365张图片

打卡任务 3:使用自动化部署实现一键发布

在本实验中,您将学习如何使用 DevCloud 提供的 “部署服务” 完成应用的自动化部署。

- 持续部署配置

为了方便用户进行测试、我们已经提前帮您配置好了部署任务,您只需要稍加修改就可以 使用了,下面章节将引导你一起查看构建定义的配置方式
1.编辑已存在的部署任务, 选择任务基本信息中,描述内容为“PhoenixDemo-standalone” 中的那个任务, 点击构建&发布>部署>编辑图标,如下图所示:
7天实战课程_第366张图片
7天实战课程_第367张图片

2.设置部署任务名称以及关联的项目,部署任务名称改为您可识别的名称即可,该名称在 项目内不能重复,项目为部署任务所属项目。
7天实战课程_第368张图片
3.切换到 “部署步骤” 选项卡,选择 “选择部署来源”,步骤显示名称可设置为您可以识别 的名称,也可以默认不改。
7天实战课程_第369张图片

4.选择主机组,主机组是指您的包要下载到哪个主机组,主机组是由一组主机组成的,如 果此处没有主机组,您就需要点击“创建主机组”,如下图所示:
7天实战课程_第370张图片
5.如下图所示,点击 “新建”。
7天实战课程_第371张图片

6.给主机组设置名称、主机组下的主机的操作系统类型以及描述,点击保存就创建了主机 组,如下图所示:
7天实战课程_第372张图片
7.接下来是要给该主机组添加主机,点击 “+”。
7天实战课程_第373张图片
8.设置主机信息,填完以下信息,点添加进行添加主机,如下图所示:
7天实战课程_第374张图片
7天实战课程_第375张图片

9.主机添加完成后,在复选框勾选主机,然后点击 “连通性验证” 按钮,验证主机是否能连 通。
7天实战课程_第376张图片
10.回到部署任务编辑界面,为该步骤选择刚才创建的主机组。
7天实战课程_第377张图片

11.选择源类型为“构建任务 - phoenix-sample-ci”,如下图所示:
7天实战课程_第378张图片
12.编辑 “解压文件” 步骤,步骤显示名称同样设置为可识别的名称,也可以默认不改,其 他参数参考下表:
7天实战课程_第379张图片
在这里插入图片描述

13.按照以上的方式设置、选择主机组,该步骤的主机组跟“选择部署来源”是同一个主机 组,所以选择刚创建的主机组即可。
7天实战课程_第380张图片
14.通过部署变量设置 “SWR镜像仓库” 账号信息,点击 “参数设置”,并按照下表进行参 数设置、参考下表进行设置。(删掉系统自带的 serviceName参数)
7天实战课程_第381张图片
7天实战课程_第382张图片
参数获取方式,如下图所示 -u 为用户名 -p 为密码 最后字符串为 服务器地址
7天实战课程_第383张图片

15.通过Shell 命令,一键启动应用,如下图所示:
7天实战课程_第384张图片
16.按照以上同样的方式设置和选择主机组信息。
7天实战课程_第385张图片

17.全部编辑完成后,点击保存按钮。
在这里插入图片描述
18.执行部署
7天实战课程_第386张图片

19.等待部署完成
7天实战课程_第387张图片
20.部署完成
7天实战课程_第388张图片

21.打开凤凰商城客户端 http://ip:5000
7天实战课程_第389张图片
21.打开凤凰商城管理端 http://ip:5001
7天实战课程_第390张图片

- 凤凰商城应用测试

1.查看产品列表,点击 “LIKE” 按钮,如下图所示:
7天实战课程_第391张图片
2.验证管理端界面数据统计,如下图所示:
7天实战课程_第392张图片

至此day06必做的实践打卡任务已完成。

打卡任务截图

请点击“构建&发布”>“部署”>“phoenix-sample-deploy”部署任务 并截图,截图中需包含 用户名以及部署任务的执行结果。
 截图示例:

 截图验证点:

  1. 用户名 2. 部署任务执行结果
    7天实战课程_第393张图片

选做打卡任务-使用内置的Maven 任务改进自动化编译

 背景
项目经理:Alex,凤凰商城的持续集成任务,每次执行事件都太长了,分析下什么原因? 尽快反馈给我。

Alex: 主要是我们凤凰商城每个服务中都有外部依赖包,包括(maven、npm、nuget、 pip)等,这些服务编译过程中都要先下载依赖包、而且由于网络问题,甚至会下载失败导 致持续集成失败!

项目经理:OK,那有没有什么好办法解决这个问题?

Alex: 这些依赖包可以使用我们自己的镜像源,这样速度会就可以达到数量级的提升!

项目经理:太棒了,马上执行!

在本练习中,您将学习如何使用华为云提供的 “开源镜像站” 服务提高依赖包获取速度, 提高自动化编译效率。

内置任务自动镜像源

用户可以通过两种方式使用华为镜像源: 方式一:使用了系统内置的 Maven构建、Npm 构建、PyInstaller、等任务,系统会自动 通过华为镜像源获取相应的依赖包。 方式二:在配置文件里直接将镜像源设置为对应的华为仓库地址

1.方式一:如下图所示:
7天实战课程_第394张图片

2.方式二:Python 配置方式参考
7天实战课程_第395张图片
3.方式二:NPM 配置方式参考
7天实战课程_第396张图片

4.方式二:Nuget 配置方式参考
7天实战课程_第397张图片

6.1持续交付–容器

7天实战课程_第398张图片

持续交付的挑战以及解决思路

7天实战课程_第399张图片
7天实战课程_第400张图片
7天实战课程_第401张图片
包管理组件
微服务:团队之间的协作,不再有依赖

在这里插入图片描述

基础设施即代码

7天实战课程_第402张图片
7天实战课程_第403张图片
7天实战课程_第404张图片

Docker对于DevOps的价值所在

7天实战课程_第405张图片
7天实战课程_第406张图片
NodeJs
Java
Python
7天实战课程_第407张图片
7天实战课程_第408张图片
7天实战课程_第409张图片
7天实战课程_第410张图片
7天实战课程_第411张图片
7天实战课程_第412张图片
7天实战课程_第413张图片
7天实战课程_第414张图片
7天实战课程_第415张图片
7天实战课程_第416张图片
7天实战课程_第417张图片
7天实战课程_第418张图片
允许在同一个硬件上虚拟出不同的操作系统来,在不同的操作系统上安装不同的应用,但是浪费了很多磁盘容量

7天实战课程_第419张图片

7天实战课程_第420张图片

7天实战课程_第421张图片

7天实战课程_第422张图片

在这里插入图片描述

养宠物:
养牛:

7天实战课程_第423张图片

7天实战课程_第424张图片

7天实战课程_第425张图片

7天实战课程_第426张图片

7天实战课程_第427张图片

7天实战课程_第428张图片

6.2动手实验-持续集成&持续部署

7天实战课程_第429张图片

7天实战课程_第430张图片

7天实战课程_第431张图片
7天实战课程_第432张图片
7天实战课程_第433张图片
7天实战课程_第434张图片
7天实战课程_第435张图片
7天实战课程_第436张图片
7天实战课程_第437张图片
7天实战课程_第438张图片
7天实战课程_第439张图片
7天实战课程_第440张图片
7天实战课程_第441张图片
7天实战课程_第442张图片
5个组件所以五个镜像
7天实战课程_第443张图片
7天实战课程_第444张图片
7天实战课程_第445张图片
7天实战课程_第446张图片
7天实战课程_第447张图片
接下来看部署
7天实战课程_第448张图片

docker-components
7天实战课程_第449张图片
7天实战课程_第450张图片
7天实战课程_第451张图片
7天实战课程_第452张图片
7天实战课程_第453张图片
7天实战课程_第454张图片
7天实战课程_第455张图片
7天实战课程_第456张图片
7天实战课程_第457张图片
7天实战课程_第458张图片
7天实战课程_第459张图片
7天实战课程_第460张图片
7天实战课程_第461张图片
7天实战课程_第462张图片
7天实战课程_第463张图片
7天实战课程_第464张图片
7天实战课程_第465张图片
7天实战课程_第466张图片

第7章 Day7 HE2E之持续交付之流水线

Day07.实践打卡任务
使用 DevCloud 流水线完成端到端流程串接

实践背景

克里斯(应用程序开发副总裁):凤凰商城的每个环节已经越来越标准化了,但是每一部分都 相对独立,都是半成品,不能交付业务价值。 如果我们能将每一个环节(构建、发布、测试、部署)有效的串联起来形成一套完成的持续交 付流水线,才能真能提高软件的发布效率与质量,持续不断的创造业务价值。

必做打卡任务

 打卡任务要求

  1. 配置流水线串接代码检查,编译构建和自动化部署步骤
     准备工作
  2. 完成前六日实践打卡任务

必做任务实践步骤

在本练习中,您将学习如何创建 “流水线” 任务,完成应用程序持续交付流水线的搭建。

创建持续交付流水线

1.点击 “构建&发布”>“流水线”>“新建流水线”
7天实战课程_第467张图片

2.设置流水线名称为 “phoenix-sample-pipeline”
7天实战课程_第468张图片
系统默认预设了不同的开发场景,选择不同的场景系统会自动调整不同的流水线模版: 基本、微服务、后端服务、Web前端、APP、软件包部署、其他

3.添加静态代码检查阶段,点击黄色 “+” 为了保证我们编译的应用是基于可靠代码基础上进行的,所以我们建议将代码检查阶段创建 到构建阶段之前,如下图所示:
7天实战课程_第469张图片

4.设置阶段名称为 “代码检查”,执行条件设置为阶段自动执行、执行条件设置为 “串行执行” 执行条件说明,请参考以下表格:
7天实战课程_第470张图片
执行方式说明,请参考以下表格:
7天实战课程_第471张图片
5.阶段添加完成后,需要在阶段里添加对应需要执行的任务,点击默认任务,如下图所示:
7天实战课程_第472张图片

6.选择任务类型为 “代码检查”,选择我们已经创建好的 Java 代码检查任务,如下图所示:
在这里插入图片描述

7.按照上面同样的方式,完成Python 任务的添加
7天实战课程_第473张图片
7天实战课程_第474张图片

7.配置编译任务,如下图所示:
7天实战课程_第475张图片
9.移除发布仓库步骤(暂不需要此阶段),点击确认,确认移除 “发布” 阶段如下图所示:
7天实战课程_第476张图片

11.添加新阶段,这里选择添加自定义阶段,如下图所示:
7天实战课程_第477张图片

12.点击编辑新阶段的阶段名称,如下图所示:
7天实战课程_第478张图片

13.设置新阶段的阶段名称为 “环境部署”,如下图所示:
7天实战课程_第479张图片
14.编辑部署阶段任务,如下图所示:
7天实战课程_第480张图片

15.选择任务类型为 “部署”,选择我们已经创建好的部署任务,如下图所示:
7天实战课程_第481张图片
16.全部编辑完成后,点击保存。保存流水线
7天实战课程_第482张图片

触发持续交付流水线

1.点击执行,触发流水线执行,如下图所示:
7天实战课程_第483张图片
2.点击确定,执行流水线
7天实战课程_第484张图片

3.执行状态已变为 “运行中”,如下图所示:
7天实战课程_第485张图片
4.当前列出了流水线的执行状态: 背景颜色 执行状态
绿色 表示执行成功 红色 表示执行失败 蓝色 表示执行中 灰色 表示未执行
7天实战课程_第486张图片
7天实战课程_第487张图片
5.完成后,如下图所示:
7天实战课程_第488张图片
至此day07必做的实践打卡任务已完成。

打卡任务截图

请点击“构建&发布”>“流水线” 并截图,截图中需包含项目名称、用户名以及流水线任 务的执行结果
 截图示例:
7天实战课程_第489张图片

 截图验证点:

  1. 项目名称 2. 用户名 3. 流水线执行结果

选做打卡任务-添加质量门禁

为了控制代码的质量,我们要求代码必须经过扫描,并且错误数量控制在合理范围内,才允 许发布。通过添加质量门禁可以有效的自动化控制流程。
1.在代码检查阶段下,点击 “+”,点击门禁,点击“创建门禁”
7天实战课程_第490张图片

7天实战课程_第491张图片
2.开启 “CodeCheck 门禁”,设置门禁阀值为 “5”,点击保存,如下图所示:

在这里插入图片描述
3.点击保存,如下图所示:
7天实战课程_第492张图片

4.触发流水线,如下图所示:
7天实战课程_第493张图片

选做打卡任务-实现代码变更触发的持续交付流水线

在本练习中,您将学习如何创建实现代码变更自动触发持续交付流水线任务,完成应用的自 动化测试以及部署。

更新持续交付流水线

1.设置代码检查门禁 数量为 10,如下图所示:
7天实战课程_第494张图片

触发持续交付流水线

7天实战课程_第495张图片

健康度查看

通过健康度可以统计流水线调度的不同任务的执行健康程度以及执行的结果统计:
1.点击 “健康度”,如下图所示:
7天实战课程_第496张图片

2.查看健康度统计情况,如下图所示:
7天实战课程_第497张图片

选做打卡任务-流水线配置高级功能

添加人工审核

在环境部署之前添加人工审核
1.在 ”环境部署“ 阶段点击 “添加任务”
7天实战课程_第498张图片

2.任务类型选择 “流水线控制”,并选择 “人工审核”
7天实战课程_第499张图片
7天实战课程_第500张图片
3.拖动 “流水线控制” 任务到 “部署” 任务上方,用于控制流程,保证必须人工审核通过才 能继续进行部署任务的执行
7天实战课程_第501张图片
4.保存流水线配置,如下图所示:
7天实战课程_第502张图片

5.在线修改代码触发流水线任务
6.流水线在执行到 “人工审核” 任务时,会发送邮件通知给对应审核人员,要求进行部署审 核,如下图所示:
7天实战课程_第503张图片
7.点击邮件链接进入到审核窗口,如下图所示,点击审核
7天实战课程_第504张图片

8.点击审核后,继续执行 “部署任务”,如下图所示:
7天实战课程_第505张图片
9.流水线执行完成,如下图所示:
7天实战课程_第506张图片

动手实验-流水线

7天实战课程_第507张图片
7天实战课程_第508张图片
7天实战课程_第509张图片
7天实战课程_第510张图片
7天实战课程_第511张图片
7天实战课程_第512张图片
7天实战课程_第513张图片
7天实战课程_第514张图片
7天实战课程_第515张图片
7天实战课程_第516张图片
7天实战课程_第517张图片
7天实战课程_第518张图片
7天实战课程_第519张图片
7天实战课程_第520张图片
7天实战课程_第521张图片
7天实战课程_第522张图片
7天实战课程_第523张图片
7天实战课程_第524张图片
7天实战课程_第525张图片
7天实战课程_第526张图片
7天实战课程_第527张图片

你可能感兴趣的:(华为软开云)