【Devops】 DevOps基础与理念

 前言:

项目在开发过程中,如果项目或者模块日益壮大,产品又需要快速迭代,如何处理多环境下项目的上线质量?如何解决项目团队的敏捷开发需求?如何保证大型集群项目的发布与回滚操作? DevOps应运而生,用于解决上述的问题,那么测试需要了解那些DevOps特性呢?

什么是DevOps?

DevOps(Development-Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

可以把DevOps看作开发、技术运营(运维)和质量保障(QA)三者的交集。

注意有些公司没有专门的运维人员,那么运维的职责可能由开发或者测试来担任。

为了构成一个健康的DevOps,可能需要组成的人员:【Developer, QA, PM(项目管理人员 ,产品经理), PO(过程改进人员,一般是指跨部门沟通产品,出产品规划的人员), OP(运维人员),SA(产品体验人员,或者客服) 】

可能需要的软件【1. 各种敏捷开发组件  2. 可持续集成的软件开发流程 时下最流行的是kubernetes + docker+ jenkins】

DevOps的理念

传统的开发模式开发周期,测试周期都很长,而且部署也慢; 明显不能满足日前快速迭代的需求;【老掉牙的开发模式,目前大部分都放弃了】

而敏捷开发模式一般情况是制作了多个分支,测试前置后与开发一起推动项目,一定程度上会优于瀑布式开发 【互联网行业较为推荐,996的根源】

DevOps则完全不同于以上的开发模式,提出了随时部署,敏捷开发与测试,自动化流水线完成项目从开发--测试--上线全流程 【头部企业已经全转型这种模式,但是需要一定的技能人员支撑+ Boss的推动】

 一套支撑DevOps的工作流

我们发现上图有如下特点:

1. 开发过程敏捷化, 每个分支可以单独提交,测试可以提前介入测试,而不是统一提交测试;

2. 每个阶段打包是自动构建, 同时触发自动化测试并生成报告

3. 上线前可以分为多个测试阶段(一般是测试环境+集成测试环境),环环相扣;

4. 测试过程规范化,包含冒烟测试,端到端测试,集成测试,自动化测试等多种手段

测试需要了解的DevOps组件

代码管理: Gitlab 

镜像管理: docker, harbor(可以创建一个公司内部使用的镜像仓库)

发布: jenkins ,K8s

测试: Jmeter, junit,sonar,各种自动化测试框架等

查看日志: kibana (filebeat,logstash用于日志采集, elasticsearch用于可伸缩查询,最好把结果集成到kibana上)

原文地址:https://www.cnblogs.com/Ronaldo-HD/p/12965805.html