基于华为敏捷DevOps开发方法的工程开发实践

举报
yd_244745969 发表于 2023/11/13 16:59:21 2023/11/13
【摘要】 1 实验目的现代的软件工程中,敏捷让开发团队拥抱变化、快速迭代,DevOps 则覆盖全流程,加入了运维环节,用于促进开发、运维和质量保障部门之间的沟通、协作与整合,实现工程效率最大化。实验基于一个模拟案例项目凤凰商城,所有故事及操作均以此模拟案例项目为背景。通过还原软件开发不同阶段的场景,利用华为云DevCloud 的便捷工具使开发者能快速掌握用敏捷的方法和 DevOps 思想完成软件项目的...


1 实验目的

现代的软件工程中,敏捷让开发团队拥抱变化、快速迭代,DevOps 则覆盖全流程,加入了运维环节,用于促进开发、运维和质量保障部门之间的沟通、协作与整合,实现工程效率最大化。实验基于一个模拟案例项目凤凰商城,所有故事及操作均以此模拟案例项目为背景。通过还原软件开发不同阶段的场景,利用华为云DevCloud 的便捷工具使开发者能快速掌握用敏捷的方法和 DevOps 思想完成软件项目的迭代规划、以及软件的开发、测试、部署。

2 实验内容

实验一为持续规划与设计实验,通过使用 DevCloud 进行项目规划,掌握产品待办列表管理,管理迭代计划和开发进度,使用看板模式进行项目展示及管理。

实验二为持续开发与集成实验,通过使用 DevCloud 提供的 Git 代码托管服务进行源代码管理,并对用户故事【门店网络】、【账户登录】进行开发,以及使用功能分支的方式进行代码的开发合并。掌握代码托管服务代码管理,和配置分支策略。在代码开发完成后,使用 DevCloud 代码检查服务对源代码进行检查,从而保证代码开发的质量。然后通过创建"编译构建任务",完成应用的 Docker 镜像打包以及推送。启动持续集成,实现代码变更后自动触发应用的 Docker 镜像打包以及推送。使用华为云提供的"开源镜像站"服务提高依赖包获取速度,提高自动化编译效率。

实验三为持续测试与反馈实验,通过使用 DevCloud 来管理项目的测试生命周期,掌握测试用例的编写和配置,管理套件测试规划,执行手工测试用例,并使用测试总跟踪测试进度和质量。

实验四为持续部署与发布实验,通过使用 DevCloud 部署服务,将软件项目的发布包一键式部署到服务器主机上,从而让应用落地运行。同时利用 DevCloud 流水线服务,完成应用程序持续交付流水线的搭建。

3 实验 持续规划与设计

实验的主要目学习如何使用华为 DevCloud 进行项目规划。掌握如何进行产品待办列表管理掌握如何管理迭代计划,掌握开发进度。 掌握如何使用看板模式进行项目展示及管理

首先需要创建DevCloud项目。此处创建的是《凤凰商城》样例项目,模拟软件开发过程,已完成了三次迭代,提供了基础代码和功能,包括网页前端,后端。

DevCloud提供了丰富的功能,可以将项目需要完成的模块,或细分工作安排,放置在DevCloud工作项管理页面中。在这个项目中,需要添加“门店网络”,和“账号系统”两个模块功能,在第一个实验中,需要增加这两个模块到待完成工作项中,并且账号系统需要“作为用户可以登录账号”,“作为用户可以注册账号”两个功能需求,在门店网络中,需要“作为用户可以查看,查询门店网络”功能。

并且工作项可以生成工作模块思维导图,并支持导出,如下图。

各个工作项可以设置详细信息,如“优先级”,“重要程度”等。以下为我所设置的“作为用户可以查看、查询门店网络”工作项。

4 实验二 持续开发与集成

4.1 实验目的

第二次实验中,需要了解如何使用 DevCloud 提供的代码托管服务进行源代码管理,并对Story “作为用户应该可以查看、查询所有门店网络”进行开发,以及如何使用功能分支的方式进行代码的开发合并。

4.2 实验过程

华为提供了云端的编译器CloudIDE,可以进行代码编写、编译、版本管理。

首先,需要创建仓库,进行代码管理。

代码编译、运行。开放凤凰商城web客户端为外部链接,可以通过浏览器访问,如下图。

安装实验所需后,在app.py中添加用户登录功能。代码由实验指导书提供。

使用Git管理分支。

    

华为DevCloud还提供了代码检查功能。可以查看代码编写的问题,和代码风格的问题。大大提高了代码的质量和降低了团队人员间代码阅读的困难。

接下来是编译构建任务。编译构建(CloudBuild)基于云端大规模并发加速,为客户提供高速、低成本、配置简单的混合语言构建能力,帮助客户缩短构建时间,提升构建效率。

需要创建 "编译构建任务",完成应用的 Docker 镜像打包以及推送。需要启动持续集成,实现代码变更后自动触发应用的 Docker 镜像打包以及推送。使用华为云提供的"开源镜像站"服务提高依赖包获取速度,提高自动化编译效率。

修改镜像为 swr 容器上的镜像地址,编译构建并完成应用的镜像打包推送。完成编译构建任务

5 实验三 持续测试与反馈

5.1 实验目的

在前面的练习中已经完成了凤凰商城 "迭代 4"的需求规划,此时测试人员可以同步的进行测试用例的编写,这样测试人员在迭代之初就可以进行软件测试工作。

在本实验中,将学习如何使用 DevCloud 来管理项目的测试生命周期,需要掌握如何进行测试用例的编写和配置掌握如何使用管理套件进行测试规划掌握如何执行手工测试用例使用测试总跟踪测试进度和质量

5.2 实验过程

使用追溯视图进行需求驱动的测试

需要测试“作为用户可以登录账号和“作为用户应该可以查看、查询所有门店网络”模块。为这两个功能增加测试用例,如下图。

通过"追溯视图"完成测试用例的设计,并在测试用例中细化测试步骤,验证用户的使用场景。创建测试计划,成功设计测试样例设计接口测试用例并执行

新建测试用例,并运行测试。

使用测试套件进行迭代测试规划

DevCloud 允许团队将多个测试用例组织到测试套件中。测试套件用于跟踪迭代或里程碑中的测试用例,通过测试套件可以看到特定迭代或里程碑的测试何时完成。在这个实验中需要把迭代4 的测试用例添加到新的测试套件中。

6 实验四 持续部署与发布

6.1 实验目的

在本实验中,将学习如何购买并配置指定规格的弹性云服务资源 如何在弹性云服务器上配置好相应的依赖工具如何在 DevCloud 中添加主机组并进行主机授信如何获取 SWR 镜像仓库的账号信息如何创建 "部署任务",完成应用的 Docker 镜像拉取并部署如何创建流水线任务,从而实现持续部署与交付。

掌握如何购买弹性云服务资源 ECS理解并掌握使用 DevCloud 部署 Docker 镜像理解 SWR 镜像仓库的功能与使用理解并掌握使用 DevCloud 流水线服务实现持续部署与交付

6.2 实验过程

配置服务器:

流水线功能提供可视化、可定制的持续交付流水线服务,实现缩短交付周期和提升交付质量的效果。

首先配置流水线串接代码检查,编译构建和自动化部署。接着更新流水线配置,实现代码变更触发的持续交付流水线

完成创建并触发持续交付流水线。在"构建阶段",添加(编辑)构建任务"phoenix-sample-ci"。在"构建阶段"后添加并编辑"测试阶段"。在“部署发布”阶段添加(编辑)任务。

为了控制代码的质量,要求代码必须经过扫描,并且错误数量控制在合理范围内,才允许发布。通过添加质量门禁可以有效的自动化控制流程。

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

为了避免不必要的费用,释放弹性云服务器资源。释放云主机和IDE

7 实验中遇到的问题

在第三个实验:持续测试与反馈时,为“作为用户可以登录账号”增加测试用例时,新增了“账户系统”模块,但是添加测试用例时遇到如下问题:

后来发现需要将“作为用户可以登录账号”也需要归属到“账户系统”模块

8 实验总结

通过本次华为敏捷DevOps开发方法凤凰商城项目实践,我初步认识到了敏捷软件开发的整个流程,并且对于软件工程也有了更深刻的理解。我明白了除了传统的软件开发,还可以使用平台对整个软件开发过程进行科学管理。在实验中,软件被划分为多个子模块,可以时刻观察和更改子模块的开发状态,还可以进行迭代的管理,对整个工程进行监控同时可以进行代码检查,尽早发现风险,尽快消除风险。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。