宇宙最全的架構(gòu)開(kāi)發(fā)技術(shù)百科全書(shū)
1 、架構(gòu)師系列





1.6 安全秘籍





二








3、大數(shù)據(jù)系列
搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師回復(fù)關(guān)鍵字“2T”,獲取一份算法面試題和答案驚喜禮包。

Hadoop技能圖譜

大數(shù)據(jù)技能圖譜
4、云計(jì)算系列

云計(jì)算圖譜

云計(jì)算技能圖譜
5、其他

IOS技能圖譜

OpenResty技能圖譜

前端技能圖譜

容器技能圖譜

嵌入式開(kāi)發(fā)技能圖譜

開(kāi)發(fā)語(yǔ)言寶典

移動(dòng)端測(cè)試圖譜
DevOps 和運(yùn)維開(kāi)發(fā)
隨著開(kāi)發(fā)運(yùn)維一體化的DevOps運(yùn)動(dòng)在國(guó)內(nèi)外蓬勃發(fā)展,DevOps相關(guān)工具也呈現(xiàn)熱鬧趨勢(shì),在這個(gè)言必談如何實(shí)施落地引入工具、建設(shè)平臺(tái)的大環(huán)境下,我們今天也來(lái)盤(pán)點(diǎn)一下DevOps相關(guān)工具。
先來(lái)看一下業(yè)界對(duì)DevOps工具的各種分類介紹。
一、DevOps應(yīng)用交付工具鏈
ElasticBox是國(guó)外一個(gè)云應(yīng)用管理工具,主要用于實(shí)現(xiàn)云應(yīng)用生命周期的可視化管理,他們的口號(hào)是“Deploy any Application Anywhere – Zero stress,Total control”。
關(guān)于DevOps工具,他們整理了一個(gè)腦圖:

主要從開(kāi)發(fā)、部署、維護(hù)三個(gè)方面把常用的開(kāi)源工具做了一個(gè)分類:
1、開(kāi)發(fā)
開(kāi)發(fā)類的DevOps工具又分為:
(1) 版本控制和協(xié)作,例如Git、SVN等
(2) 構(gòu)建和測(cè)試自動(dòng)化,例如Ant、Selenium、Jmeter等
(3) 持續(xù)集成和交付,例如Jenkins、CruiseControl等
2、部署
部署類的DevOps工具分為:
(1) 容器平臺(tái),例如Docker等
(2) 配置管理,例如Chef、Puppet、Ansible等
(3) 微服務(wù)平臺(tái),例如Cloud Foundry、Kubernetes等
(4) 服務(wù)開(kāi)通,例如Puppet、Docker Swarm、Vagrant等
3、維護(hù)
維護(hù)類的DevOps工具分為兩大類:
(1) 日志,例如logstash等
(2) 監(jiān)控告警和分析,例如Nagios、Zabbix、Kibana等
從ElasticBox對(duì)開(kāi)源的DevOps工具的分類來(lái)看,主要是圍繞著應(yīng)用從構(gòu)建到部署、交付運(yùn)維這樣的工具鏈**來(lái)分類的。
二、DevOps工具元素周期表
XebiaLabs是國(guó)外一家圍繞著企業(yè)規(guī)?;煽寇浖桓蹲詣?dòng)化做解決方案和工具的廠商,他們的口號(hào)是大規(guī)模、更快速地自動(dòng)交付:“Get the visibility, automation, and control to deliver software faster and with less risk.”。
關(guān)于DevOps工具,他們以元素周期表的展現(xiàn)形式整理了一個(gè)圖:

圖中按顏色標(biāo)注不同類型的DevOps工具,包括:
搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師回復(fù)關(guān)鍵字“2T”,獲取一份驚喜禮包。
(1)數(shù)據(jù)庫(kù),例如:Oracle、MySQL、Cassandra等;
(2)持續(xù)集成,例如:Jenkins、TeamCity等;
(3)部署,例如:SSH、XLDeploy等;
(4)云/IaaS、PaaS,例如:Amazon Web Services、Azure等;
(5)業(yè)務(wù)分析/監(jiān)控,例如:Splunk、Nagios等;
(6)配置管理,例如:Git、SVN等;
(7)庫(kù)管理,例如:Nexus、NuGet等;
(8)配置/服務(wù)開(kāi)通,例如:Chef、Puppet、Ansible、Vagrant等;
(9)發(fā)布管理,例如:XL Release、UrbanCode Release等;
(10)日志,例如:Sumo Logic、Logstash等;
(11)構(gòu)建,例如:Gradle、Ant、Maven等;
(12)測(cè)試,例如:Junit、Cucumber、Selenium、Jmeter、Appium等;
(13)容器化,例如:Docker、Kubernetes、Mesos等;
(14)協(xié)作,例如:Jira、Flowdock等;
(15)安全,例如:Snort、CyberArk等。
看起來(lái)XebiaLabs的分類更全面,既包括了開(kāi)源工具也包含商業(yè)工具,當(dāng)然也包括了XebiaLabs自己的工具;但是看起來(lái)又有點(diǎn)為了構(gòu)成元素周期表而一些工具的味道**,例如,個(gè)人認(rèn)為數(shù)據(jù)庫(kù)這類基礎(chǔ)軟件就沒(méi)必要跟DevOps扯上了吧?!
另外,XebiaLabs的分類在某些地方與ElasticBox的分類有出入**,例如,ElasticBox把Kubernetes放到部署類,而XebiaLabs把它放到單獨(dú)的容器化這個(gè)類別,當(dāng)然,ElasticBox的部署類這個(gè)大的類別也是包含了容器化的。
三、基于DevOps能力矩陣的工具分類
既然沒(méi)有統(tǒng)一的DevOps工具分類標(biāo)準(zhǔn),那么我個(gè)人也想從之前歸納總結(jié)的DevOps能力矩陣模型的角度,對(duì)DevOps相關(guān)的工具進(jìn)行一些分類。

Devops憑借其連接彌合開(kāi)發(fā)與運(yùn)營(yíng)團(tuán)隊(duì)的能力正在各個(gè)行業(yè)呈現(xiàn)席卷之勢(shì)。開(kāi)發(fā)人員和運(yùn)營(yíng)人員歷來(lái)就是水火不容,無(wú)論是在開(kāi)發(fā)、測(cè)試還是部署上都有著很大的分歧,只有Devops才能扭轉(zhuǎn)這一局面。
我們從DevOps的核心理念可以看出,DevOps強(qiáng)調(diào)開(kāi)發(fā)、QA、運(yùn)維的一體化融合。

但是,本質(zhì)上來(lái)看開(kāi)發(fā)、QA、運(yùn)維又是分屬不同的部門(mén)和組織(尤其是傳統(tǒng)企業(yè)),有著自己的過(guò)程管理方式,主要負(fù)責(zé)的事情不一樣,所謂“術(shù)業(yè)有分工”,因此用到的工具也有所不同。**
那下邊我們就嘗試歸納一下開(kāi)發(fā)、QA、運(yùn)維各自常用的一些工具,并且嘗試從DevOps能力融合的角度分析,哪些工具是三者或兩兩之間可以共用的,并挑選一些典型工具做簡(jiǎn)單介紹。
(一)開(kāi)發(fā)類典型DevOps能力融合工具
敏捷開(kāi)發(fā)已經(jīng)成為主流,敏捷開(kāi)發(fā)中的核心實(shí)踐“持續(xù)集成”也逐漸被很多企業(yè)推廣應(yīng)用,Jenkins作為這個(gè)領(lǐng)域的開(kāi)源工具老大哥的位置已經(jīng)事實(shí)上被確立了。
Jenkins通常被用在配置管理和部署代碼上,同時(shí)它也能夠與Puppet、Chef和容器技術(shù)一起使用,還有自動(dòng)化的測(cè)試,例如Selenium、Jmeter也能被很好地整合到Jenkins持續(xù)集成的管道中。
開(kāi)發(fā)人員、QA、測(cè)試和運(yùn)維人員都在用Jenkins就很好地說(shuō)明了Jenkins在DevOps領(lǐng)域的大好前景。

(二)QA類典型DevOps能力融合工具
無(wú)論開(kāi)發(fā)還是測(cè)試,還是運(yùn)維,對(duì)軟件系統(tǒng)的性能都是非常關(guān)注的,因此APM這類上接運(yùn)營(yíng)(用戶感知)與運(yùn)維(性能監(jiān)控),下接QA(性能管理)與開(kāi)發(fā)(性能分析)的工具就理所當(dāng)然地在近幾年開(kāi)始火爆起來(lái)了!
下圖是國(guó)外的老牌APM廠商的New Relic,使用New Relic企業(yè)可以迅速?gòu)亩鄠€(gè)角度查看并解決應(yīng)用中出現(xiàn)的錯(cuò)誤:

New Relic高級(jí)產(chǎn)品經(jīng)理Stevan Arychuk說(shuō)New Relic可以提升高質(zhì)量軟件交付的速度并同時(shí)降低企業(yè)所面臨的風(fēng)險(xiǎn)。企業(yè)中各團(tuán)隊(duì)的角色和職責(zé)有所不同,但是通過(guò)多角度的數(shù)據(jù)分析,各個(gè)團(tuán)隊(duì)之間的溝通、協(xié)作、交流可以得到加強(qiáng),最終達(dá)到共同合作的目的。
(三)運(yùn)維類典型DevOps能力融合工具
1**、Automic**
美國(guó)員工福利管理公司TASC使用Automic來(lái)實(shí)現(xiàn)其軟件部署的自動(dòng)化,應(yīng)用Automic,號(hào)稱可以在下午三點(diǎn)部署而不被別人發(fā)現(xiàn)。

自動(dòng)部署是開(kāi)發(fā)的持續(xù)集成、測(cè)試之后銜接運(yùn)維上線的一道關(guān)鍵工序,應(yīng)用Automic這類自動(dòng)化工具能軟件系統(tǒng)的部署和交付過(guò)程更敏捷、穩(wěn)定高效、高質(zhì)量地完成。
2、DynaTrace Ruxit
傳統(tǒng)的運(yùn)維工具大多聚焦在監(jiān)控類,尤其是基礎(chǔ)設(shè)施的監(jiān)控,例如主機(jī)、中間件、數(shù)據(jù)庫(kù)的監(jiān)控,尤其是服務(wù)器資源層面的監(jiān)控,對(duì)應(yīng)用層、業(yè)務(wù)層面的監(jiān)控偏少,這會(huì)導(dǎo)致針對(duì)具體問(wèn)題的分析,開(kāi)發(fā)、QA、運(yùn)維之間的共同語(yǔ)言偏少。
Devops的核心就是各個(gè)部門(mén)之間的協(xié)作,除了這個(gè)協(xié)作的理念之外還需要一種方式來(lái)進(jìn)行溝通。
DynaTraceRuxit的智能查看功能可以直觀地展示應(yīng)用和其依賴之間的關(guān)系,這樣軟件開(kāi)發(fā)流程中的不同角色之間可以使用Ruxit來(lái)進(jìn)行溝通和自動(dòng)化的分析。

QA 測(cè)試腦圖

看不清楚吧?別急!下面會(huì)給大家一個(gè)清楚的交待,哈哈。
“軟件測(cè)試全景圖”整個(gè)思維導(dǎo)圖有9個(gè)模塊,分別是:
· 測(cè)試的定義,包括測(cè)試標(biāo)準(zhǔn)、原則、歷史等;
· 測(cè)試五大流派,包括傳統(tǒng)測(cè)試、敏捷測(cè)試、探索式測(cè)試、SBTM
· 測(cè)試方法:MBT、ReBT、RiBT等等
· 測(cè)試層次和類型:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試等;
· 測(cè)試方式:手工 vs. 自動(dòng)化的,靜態(tài) vs. 動(dòng)態(tài),主動(dòng)的 vs. 被動(dòng)的
· 自動(dòng)化測(cè)試(含測(cè)試工具),包括其策略、自動(dòng)化測(cè)試框架
· 測(cè)試技術(shù): 面向SOA/微服務(wù)測(cè)試技術(shù)、web測(cè)試技術(shù)、移動(dòng)測(cè)試技術(shù)等;
· 測(cè)試過(guò)程:過(guò)程模型、過(guò)程改進(jìn)等
· 測(cè)試管理:測(cè)試件、缺陷、質(zhì)量、度量等管理
讓我一個(gè)一個(gè)模塊給大家詳細(xì)介紹。
1.測(cè)試的定義

2. 測(cè)試流派

3. 測(cè)試方法

4. 測(cè)試層次和類型

5. 測(cè)試方式

6. 自動(dòng)化測(cè)試(含測(cè)試工具)

7. 測(cè)試技術(shù)/8. 測(cè)試過(guò)程

9. 測(cè)試管理

