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://www.cnblogs.com/what-/p/7780261.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM