基于华为敏捷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开发方法凤凰商城项目实践,我初步认识到了敏捷软件开发的整个流程,并且对于软件工程也有了更深刻的理解。我明白了除了传统的软件开发,还可以使用平台对整个软件开发过程进行科学管理。在实验中,软件被划分为多个子模块,可以时刻观察和更改子模块的开发状态,还可以进行迭代的管理,对整个工程进行监控。同时可以进行代码检查,尽早发现风险,尽快消除风险。
- 点赞
- 收藏
- 关注作者
评论(0)