当前位置: 首页 > news >正文

DevOps/TestOps概念

天下大势分久必合合久必分,早期的软件开发只有软件工程师一人完成,为了提高效率逐渐实行分工模式:开发、测试、运维。不同角色担任不同的任务。分工越来越细之后带来了问题也越来越突出,那就是各角色之间的沟通成本越来越高。而全栈工程师、DevOps/TestOps相关职位和概念的提出,本质就是把不同的工作集中在一个人身上,或者让一个人涉及到更多方面的工作,从而来降低这种沟通成本。

要想了解TestOps,必须要先了解DevOps。

DevOps 介绍
wikipedia解释:DevOps是一种软件工程文化和实践,旨在统一软件开发(Dev)和软件运维(Ops)。DevOps运动的主要特点是在软件构建的所有步骤中极力提倡自动化和监控,从集成、测试、发布到部署和基础设施管理。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布,与业务目标紧密结合。

Dev、QA、Ops的交汇处我们认为就是DevOps。实际上,DevOps就是把产品开发过程中各角色交汇处的活给干了,让各部门都专注于干他们自己的活儿。

DevOps与持续集成
DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

DevOps 技术栈与工具链
只讲理论是非常空洞的,我们必须通过技术和工具将DevOps落地。这里整理了主流的工具,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,这里补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。

版本控制&协作开发: GitHub、GitLab、BitBucket、SubVersion、Coding、Gitee

自动化构建和测试: Apache Ant、Maven、Selenium、UnitTest、JUnit、JMeter、Gradle、PHPUnit

持续集成&交付: Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go

容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)

配置管理: Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible

微服务平台: OpenShift、Cloud Foundry、Kubernetes、Mesosphere

服务开通: Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat

日志管理: Logstash、CollectD、StatsD、ElasticSearch、Logstash

监控,警告&分析: Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

除了这种技术和工具外,在项目中制定出符合DevOps的工作流程是关键,但是,这个东西没有固定模板的,不同的项目、不同的团队和公司文化流程和可能有所不同,只要符合DevOps的理念和思想,你们需要走出一条自己的路。

TestOps 介绍
TestOps主要目的是推动整个研发体系与发布体系更多在质量方面。可以这样理解DevOps是从研发推动配合运维和测试,而TestOps是从测试角度推动研发和运维。所以TestOps才是真正把测试落地到整个研发体系的关键岗位。

关于TestOps定义:测试运维,测试角度推动研发、运维、持续测试到持续集成。

测试与开发交叉的工作,通过测试驱动开发(TestDev)来进行。

测试与运维交叉的工作,通过TestOps来完成。

开发与运维交叉的工作,通过DevOps来完成。

三个角色交叉的部分工作,由god来做吧!哈哈。

TestOps技能

“TestOps”团队的本质是专注于提供所需的基础设施和平台所有级别的测试,从功能测试到集成测试,再到低级单元和API测试。

Dev能力:Java、Python、PHP、Shell

Ops能力:Jenkins、Docker、Maven、Ansible、Git、Linux

Test能力:测试用例、测试方法、缺陷生命周期、单元测试、接口测试、Selenium

TestOps未来的价值

团队价值:推动先进的团队协作方式,持续交付生命周期的把控,持续集成高质量要求。

个人价值:DevOps和TestOps技能,自动化测试推动持续交付,主导开发流程的生命周期。

DevOps能推动整个测试和运维团队统一整个研发流程,帮助团队更敏捷的提交产品。他能解决流程问题,但无法发现开发过程中的测试的缺陷。只有更专业TestOps的站在专业的测试角度推动开发和运维一起进行。TestOps和DevOps形成一个完整的持续集成和持续交付体系,才是真正提升整个团队的效率。

总结
最后,抛开这些概念,我觉得测试人员提升自己的综合能力才是关键:培养自己的编程能力,更早的介入项目测试(单元、接口),提高自己的(接口/UI)自动化能力,提升测试效率。学习运维技术,能够独立部署和维护测试环境。

转载于:https://blog.51cto.com/11959825/2338439

相关文章:

  • 高级特性(8)- JavaBean构件
  • openpyxl read excel
  • Android通讯录管理(获取联系人、通话记录、短信消息)(二)
  • h5开发坑点小总结
  • 在没有数据库表或者列的情况下新建model;rails ,ruby, rack
  • Keepalived
  • Nginx禁止ip访问或IP网段访问方法
  • Investigating Your RAM Usage
  • Java迭代器spliterator
  • Oracle TDE的学习
  • CSS 中 calc() 函数用法
  • springsecurity源码查看网址
  • Mod in math
  • js keyup、keypress和keydown事件 详解
  • 云栖问答送的淘公仔收到啦
  • [LeetCode] Wiggle Sort
  • Android Volley源码解析
  • const let
  • docker python 配置
  • Docker下部署自己的LNMP工作环境
  • Java深入 - 深入理解Java集合
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 从tcpdump抓包看TCP/IP协议
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 提醒我喝水chrome插件开发指南
  • 线性表及其算法(java实现)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 2017年360最后一道编程题
  • #1015 : KMP算法
  • #define
  • #Linux(帮助手册)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #QT(TCP网络编程-服务端)
  • (1)虚拟机的安装与使用,linux系统安装
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (LeetCode) T14. Longest Common Prefix
  • (搬运以学习)flask 上下文的实现
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (九)One-Wire总线-DS18B20
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)Linux+Windows下安装ffmpeg
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net Redis的秒杀Dome和异步执行
  • .NET框架
  • .NET中的Exception处理(C#)
  • [《百万宝贝》观后]To be or not to be?
  • [Android 数据通信] android cmwap接入点
  • [BUUCTF]-Reverse:reverse3解析
  • [GN] Vue3.2 快速上手 ---- 核心语法2