DevOps/TestOps概念

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

要想了解TestOps,必需要先了解DevOps。shell

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

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

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

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

版本控制&协做开发: 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)自动化能力,提高测试效率。学习运维技术,可以独立部署和维护测试环境。

相关文章
相关标签/搜索