DevOps到底是干什么的?为什么我们要学习这门课程,它跟软件开发有关,跟测试有啥关系?
其实这门课虽然大部分跟软件开发管理或项目管理有关,但是我们测试跟开发相辅相成,谁都离不开谁,所以测试要随开发走,比如持续集成你得有持续集成测试吧,怎么部署,在哪个节点部署测试,怎么实施自动化,你都需要研发那边怎么部署的,持续集成开发等。所以必须掌握和理解这个DevOps。
目录
第一章 DevOps基本管理
我们知道在迭代开发中,我们需要需求的稳定,也就是说一个执行迭代的过程中,尽可能的保持稳定,做什么不做什么是要很明确的。而实际上事宜愿为,每次迭代需求肯定都会发生变化。这就是客户需求。
如何准确描述客户需求转换为开发需求,这是非常重要的。
第一节:DevOps需求定义-故事设计
DevOps是多年的实践的产物(众多人众多公司众多行业的实践分享),从而形成一门新的知识。它参与看敏捷框架FASe并结合管理经验积累形成了落地。这就是以故事为核心的:Epic史诗故事(面向客户的解决方案,常用用户场景方式,模拟客户实际使用系统的场景)+Feature用户故事(系统提供的功能)+story特性(每个故事都是小的,独立的给客户带来业务价值的行为),对应了战略+计划+实行。
1.1.Epic
左边是最常见的按功能模块划分,个做个的需求,有很多弊端,后续返工很多,所以就引用了右边,基于用户场景,前后的引用故事场景,帮助研发更好的理解客户的需求,返工减少了。
也就是说,之前是没有理解客户需求,开发出来的没有满足客户需求,导致很多问题和前后端对功能、需求的理解各有各的看法和意见,所以返工是肯定的。
所以引用用户场景,需求:差旅费用、报销结算是用户场景;
1.2 Feature
可以理解系统提供的功能,描述方式:特性(是对功能/非功能的一个简短的描述)+收益(是对用户和业务价值的简短描述)--一个特性可能会有多个收益。
上面需求拆分成,费用报销、在写审批功能。
注意:一个特性最好是在一个版本中完成,如果是跨版本,需要再次的拆分。
1.3 Story
作为...可以干什么...以便...
也就是:谁在使用系统,如何使用系统,为哦什么使用系统
小结:Epic--可以拆分成---Feature---众向分解--story
以上都是功能级需求,其他非功能需求怎么办?Epic-->Feature--->story实际上可覆盖技术、架构、基础设施等这一类的需求,只不过不是从用户故事角度描述的。例如技术预言、性能、基础支撑 能力等。
小结:此章讲了Epic+Feature+story概念,要记住。
第二节 DevOps敏捷过程--JIRA集成过程
1.JIRA的敏捷了解
这个JIRA是优秀的问题跟踪和管理工具,很多企业当做项目管理工具来使用。
提供了Scrum模板,创建项目的时候进行选择,内置了很多敏捷的核心要素和管理流程。
Scrum这个流程如下:
Epic史诗故事、Story是用户故事--》创建subTask是子任务--》Sprint迭代计划,子任务在这个完成--》根据其他需要创建其他的Task、bug等,归属到迭代计划中。
集成型的模型映射:左边是DevOps模型,右边是JIRA的模型。大部分通过名称意义映射
区别:
DevOps是在产品中定义Epic和Feature,在项目中对应Story,没有子任务概念。
JIRA是项目级管理,在项目中定义Epic,并且Story为核心进行迭代,可以创建子任务。
JIRA基础的难点
我们使用的方法:
信息通步策略,信息的源头在哪里,建议采用单向的,JIRA进行管理,在DevOps进行查看
查询统计效率:
工作项完成率根据多个状态进行统计,JIRA根据每个状态进行查询,效率很低,将JIRA数据同步到DevOps中后期再统计。
账户一致性:
提供多种认证方式,如下图,满足
小结:此章节了解JIRA和OevOps概念和使用建议。
第三节:代码质量-sonar集成
3.1 SonarQube的作用
我们平时代码的管理如下,代码质量的意义我想都知道。怎么去管理代码质量。
SonarQube是开源的软件代码管理平台
SonarQube 由上图4个组成。首先配置DataBase数据源、然后按照server,再然后按照插件、最后再按照scanner,具体安装方法百度。
第一IDE的安装
第二安装git相关
第三管理可以拉去代码分析
SQ配置:
Jenkins的安装:
DevOps构建:
小结:此章节讲了如何安装相关
第三节:DevOps代码质量与配置执行
SonarQube质量评估原理
如下图是java中统计结果,中间这部分代码违规是根据代码规则统计,其他的根据图中标识统计。
代码规则是通过插件方式的
按语言区分不同的插件,每种语言中分三类,bug(可靠性指标)、漏洞(安全性指标)、坏道(可维护性指标)规则,根据这些找到代码中的问题,另外右侧是代码的严重成功和问题解决的时间;
根据规则里面的规则统计的。
汇集集成了代码质量结果
了解了基本原理后。
质量配置:根据项目语言,项目中有多个语言可言根据多种语言配置。
根据需要激活这些规则可言对应问题的严重性
一个项目可言关联多个质量配置