坐井观天说Devops--1--情况总体说明
一.介绍
虽然从事IT行业已过10年,但是一直从事传统软件的测试工作。对于目前互联网流行的技术devops,我没有较好的资历、背景以及实践经历,只是根据自己的学习研究和一定的实践经历,坐井观天聊一聊devops。
关于devops概念,我觉得这篇文章写的挺好的-----什么是 DevOps?一篇读懂!。
DevOps 是一种文化理念、工具与实践的结合,目的是更快更可靠地向用户持续交付价值,为了能够快速的持续集成集成,持续交付,持续部署,我们需要将开发,运维,测试的琐碎的事,全部自动化,能自动不手动,能容器不虚拟机(物理机),不断的优化,提高交付效率。
devops技术,能够将开发,运维以及测试融为一体,极大的提高开发效率和质量。
因为我是测试工程师,我更多的是站在测试工程师的角度,来说一下devops技术,我们测试也是需要devops技术的,能够给我们测试带来那些好处?
devops技术,有3个比较核心的技术,k8s集群技术,jenkins持续集成技术以及docker容器技术。
1.能够为性能测试赋能,对于电商中的秒杀或者抢火车票,测试时,需要模拟千万级别(甚至更多)的并发,一台测试电脑,是远远不够的,可能需要100台测试服务器甚至更多。k8s集群技术,能够轻松的做到,对于集群电脑的统一调度,管理,监控等等。
2.利用jenkins技术和k8s技术,搭建测试平台管理系统,目前应用搭载的设备和系统众多,比如,不同型号的手机平板(安卓,苹果)以及他们还存在不同版本的系统,不同的电脑系统(windows,mac,linux),还有不同的手机和电脑浏览器(chrome,edge,firefox,safari)等等,面对如此繁杂的设备,系统,浏览器等,自动化的测试脚本和工具也会很繁杂,我们需要一个平台,能够统一的管理不同硬件,系统,能够统一的管理不同的自动化脚本和工具。目前jenkins可以做到这些。比如,开发版本发布后,我们能够选择不同的硬件,系统,自动化脚本脚本进行测试(ui自动化,接口自动化,兼容行测试自动化),当然整个过程, 也可以全程自动化的。
3.资源共享。比如我们的测试集群有100台服务器,如果仅仅只是用来做性能测试,有点浪费,可以在这个集群上,做ui自动测试,接口自动测试,兼容性自动化测试等等,当然也可以把我们的测试相关的系统部署上去,比如jira,禅道,testlink等等
4.提高测试效率,开发运维需要devops技术,进行全程自动化。对于我们自动化测试而言,我们也有很多类型的测试代码,我们也需要对测试代码进行版本管理,持续集成等等。我们也可以将这些东西放在我们的测试集群上去。
我写了几篇博客,也做了相关实验,有兴趣可以一块看看。
坐井观天说Devops—1–情况总体说明,该篇主要介绍的整体的流程、实验环境以及实验规划等内容
坐井观天说Devops–2–实验环境准备,该篇主要讲的是搭建实验环境,搭建harbor,搭建k8s集群,在k8s集群上,搭建gitlab,jenkins,sonarqube,prometheus,grafana,metrics server,StorageClass,nginx-ingress等等
坐井观天说Devops–3–开发CICD之k8s部署springboot分布式持续集成持续交付,该篇主要讲的是,站在开发的角度,多个开发项目是springboot项目的整个CICD流程,里面有使用k8s容器化部署je