新聞中心
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。

在網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)過程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
開發(fā)運(yùn)維改革終于成為主流,人們對(duì)開發(fā)運(yùn)維工具的歡迎程度暴增。根據(jù)谷歌趨勢(shì)的顯示,“開發(fā)運(yùn)維工具”的搜索量穩(wěn)定增長(zhǎng),且會(huì)繼續(xù)保持增長(zhǎng)。
由于DevOps包括整個(gè)軟件開發(fā)周期,可供選擇的工具很多。當(dāng)然啦,沒有一種工具能適合所有情況。但有幾種工具的性能已經(jīng)成熟,可以為幾乎所有情況提供廣泛的支持。
成功且成熟地采用開發(fā)運(yùn)維方法,你將始終擁有完整的渠道,這包括適用于五個(gè)類別的工具。記住,評(píng)估當(dāng)前的工具堆棧很有必要,確保沒有丟失CI/CD管道的關(guān)鍵內(nèi)容。
開發(fā)和構(gòu)建工具
這是CI / CD管道堆棧的基礎(chǔ),一切始于此。該類別中最好的工具可以協(xié)調(diào)多個(gè)事件流,并且可以輕松地與外部工具集成。軟件開發(fā)生命周期中的工具分為三個(gè)子類別:
- 源代碼控制管理 (SCM)
- 持續(xù)集成 (CI)
- 數(shù)據(jù)管理
2020年推薦的源代碼控制管理(SCM)技術(shù)是GIT,因此SCM工具必須具有出色的GIT支持;對(duì)于持續(xù)集成(CI),需要具備在臨時(shí)容器化環(huán)境中運(yùn)行和執(zhí)行構(gòu)建的能力;而對(duì)于數(shù)據(jù)管理,需要能夠?qū)?shù)據(jù)庫架構(gòu)進(jìn)行更改并使它與應(yīng)用程序版本保持一致的能力。
1. SCM + CI工具:Gitlab和Gitlab-CI
圖源:unsplash
Gitlab無疑是最偉大的開發(fā)運(yùn)維周期工具,且它將在可預(yù)見的未來成為創(chuàng)新引領(lǐng)者。其核心功能提供了完美的GIT存儲(chǔ)庫管理工具,它基于網(wǎng)絡(luò)的用戶界面且易于使用。Gitlab可免費(fèi)提供所需的一切,并且具有SaaS和On-Prem兩種形式。
市場(chǎng)上有很多SCM工具,但是沒有一種工具像Gitlab那樣將“持續(xù)集成”直接集成到存儲(chǔ)庫中的。將一個(gè)名為.gitlab-ci.yml的文件粘貼在代碼庫的根目錄中,任何GIT事件都會(huì)根據(jù)定義的內(nèi)容觸發(fā)操作。
其優(yōu)點(diǎn)包括:
- 成熟:該產(chǎn)品自2013年以來已投放市場(chǎng),非常穩(wěn)定,得到大力支持。
- 開源:Gitlab的免費(fèi)版本沒有削減開發(fā)團(tuán)隊(duì)所需的核心功能。每個(gè)付費(fèi)層都提供了附加功能,這些附加功能基于組織的規(guī)模和需求可以帶來極高的價(jià)值。
- 根深蒂固的CI:市場(chǎng)上其他工具不能將持續(xù)集成直接嵌入到SCM中,而Gitlab-CI工具可以。使用Docker構(gòu)建進(jìn)行臨時(shí)構(gòu)建的能力提供了無憂的構(gòu)建作業(yè),并且內(nèi)置的報(bào)告使調(diào)試構(gòu)建失敗變得容易,無需復(fù)雜的集成和編排多個(gè)工具。
- 無限集成 :Gitlab提供了每個(gè)核心開發(fā)運(yùn)維類別中所需的輕松集成工具,這使開發(fā)人員和操作人員在任何環(huán)境中都可以使用真實(shí)的來源來獲取與其應(yīng)用程序相關(guān)的信息。
其他工具在該領(lǐng)域也很流行,但是它們不如Gitlab。原因如下:
- GitHub :對(duì)于小型和早期開發(fā)商,GitHub只是一個(gè)出色的SaaS源代碼管理系統(tǒng)。但對(duì)于需要在網(wǎng)絡(luò)中保留其IP的大型企業(yè),GitHub的唯一選擇是 .OVA虛擬機(jī),不支持高可用性,從而難以維護(hù)on-prem,只能在服務(wù)器本身開始崩潰之前運(yùn)行于中型組織機(jī)構(gòu)。
GitHub Actions或CI-as-Code的缺乏意味著始終需要帶上自己的CI工具,并管理該集成,而且它比Gitlab定價(jià)要貴一些。
- Jenkins:盡管Jenkins已成為持續(xù)集成工具的默認(rèn)標(biāo)準(zhǔn),但它始終缺少源代碼控制元素。這意味著你得一直使用Jenkins和SCM工具,而GitLab同時(shí)提供這兩種功能,這簡(jiǎn)直是不必要的復(fù)雜。
- BitBucket/Bamboo:它需要兩種工具才能完成Gitlab的一項(xiàng)工作,盡管BitBucket云端支持Gitlab-CI/GitHub Action功能,但沒有一家公司會(huì)輕易采用它,用于本地的BitBucket服務(wù)器甚至不支持BitBucket管道!
2. 數(shù)據(jù)管理工具:FlywayDB
網(wǎng)絡(luò)應(yīng)用程序開發(fā)中最容易忽視數(shù)據(jù)庫的自動(dòng)化需求,通常是對(duì)應(yīng)用程序的新版本部署數(shù)據(jù)庫架構(gòu)更改的事后思考,其模式更改通常會(huì)添加或重命名列或表。如果應(yīng)用程序版本與架構(gòu)版本不匹配,該應(yīng)用程序可能會(huì)完全損壞。
由于存在兩個(gè)不同的系統(tǒng),因此通過應(yīng)用程序升級(jí)來協(xié)調(diào)數(shù)據(jù)庫更改也比較困難,而FlyWayDB解決了所有這些問題。
其主要優(yōu)勢(shì)在于:
- 數(shù)據(jù)庫版本控制:FlyWay允許簡(jiǎn)單地創(chuàng)建數(shù)據(jù)庫版本,跟蹤數(shù)據(jù)庫遷移以及輕松地前滾或回滾架構(gòu)更改,無需某些定制解決方案。
- 二進(jìn)制或內(nèi)置:可以選擇在應(yīng)用程序啟動(dòng)時(shí)或二進(jìn)制執(zhí)行文件時(shí)運(yùn)行Flyway。在代碼中使用此工具,它能在啟動(dòng)時(shí)檢查版本功能并進(jìn)行適當(dāng)?shù)倪w移,從而使數(shù)據(jù)庫和應(yīng)用程序版本保持同步。還可以臨時(shí)運(yùn)行命令行,為現(xiàn)有數(shù)據(jù)庫提供靈活性,無需重建整個(gè)應(yīng)用程序。
該領(lǐng)域沒有很多工具只有兩個(gè)競(jìng)爭(zhēng)對(duì)手可以看看:
- LiquiBase :如果對(duì)該工具有更多經(jīng)驗(yàn)的人,那么我非常樂意通過FlyWay將該工具標(biāo)準(zhǔn)化。
- Flocker :這可能僅適用于容器化的應(yīng)用程序——在容器中運(yùn)行數(shù)據(jù)庫非常困難,必須精心計(jì)劃才能成功執(zhí)行。建議將RDS之類的服務(wù)用于數(shù)據(jù)庫,而不要嘗試運(yùn)行存儲(chǔ)在容器中的關(guān)鍵數(shù)據(jù)。
自動(dòng)化測(cè)試工具
首先將自動(dòng)化工具安裝到測(cè)試金字塔中,進(jìn)而開始對(duì)自動(dòng)測(cè)試工具進(jìn)行評(píng)估,測(cè)試有四個(gè)方面:
- 單元:這是所有自動(dòng)化測(cè)試的基礎(chǔ)。就數(shù)量而言,與其他類型相比,單元測(cè)試應(yīng)該是最多的。這些測(cè)試應(yīng)由軟件開發(fā)人員編寫和運(yùn)行,以確保應(yīng)用程序的一部分(稱為“單元”)符合其設(shè)計(jì)并按預(yù)期運(yùn)行。
- 組件:組件測(cè)試的主要目的是驗(yàn)證測(cè)試對(duì)象的輸入/輸出行為。這可以確保測(cè)試對(duì)象的功能按照所需的規(guī)范正常工作。
- 集成 :在測(cè)試階段,各個(gè)軟件模塊組合在一起并作為一個(gè)整體進(jìn)行測(cè)試。
- 端到端 :此層是一目了然的。研究從頭到尾的整個(gè)應(yīng)用程序流程,使其表現(xiàn)出預(yù)期的效果。
1. 集成測(cè)試工具: Cucumber
Cucumber將規(guī)范和測(cè)試文檔合并為一個(gè)緊密結(jié)合的有效文檔。由于它們是由Cucumber自動(dòng)測(cè)試的,因此規(guī)格總是最新的。
如果要開始構(gòu)建網(wǎng)絡(luò)自動(dòng)化測(cè)試框架,并模擬網(wǎng)絡(luò)應(yīng)用程序上的用戶行為,具有Java和Cucumber BDD的Selenium WebDriver是在項(xiàng)目中學(xué)習(xí)和實(shí)現(xiàn)Cucumber的好方法。
其主要優(yōu)勢(shì)在于:
- 基于行為驅(qū)動(dòng)的開發(fā):Cucumber用于BDD測(cè)試,它已成為一種測(cè)試框架(與傳統(tǒng)基于測(cè)試驅(qū)動(dòng)的開發(fā)相比)。
- 有效的文檔 :記錄所做的事情總是很痛苦的。由于你的測(cè)試被定義為代碼,因此Cucumber測(cè)試會(huì)自動(dòng)生成文檔進(jìn)行匹配以確保它們始終保持同步。
- 支持:有很多工具可供選擇,但總需要維修者來幫幫忙。Cucumber擁有足夠的資金和支撐結(jié)構(gòu)在未來幾年維護(hù)該工具。
該領(lǐng)域有許多框架和特定技術(shù)的工具,但是只有Cucumber幾乎是萬能的解決方案。
端對(duì)端測(cè)試工具
進(jìn)行端到端測(cè)試時(shí),有兩個(gè)重點(diǎn)領(lǐng)域需要關(guān)注:功能測(cè)試和負(fù)載測(cè)試。
功能測(cè)試顯然是在測(cè)試幻想發(fā)生且實(shí)際發(fā)生的事情。當(dāng)單擊SPA上的某些頁面,填寫表格并單擊提交時(shí),數(shù)據(jù)顯示在數(shù)據(jù)庫中,并且屏幕會(huì)顯示成功的字樣。
還需要能夠測(cè)試在相同場(chǎng)景下工作的x數(shù)量的用戶是否可以正確處理。如果在這兩個(gè)方面都沒有進(jìn)行測(cè)試,CI / CD管道中的差距將很大。
1. 端到端測(cè)試工具—功能:SoapUIPro
自默認(rèn)SOAP網(wǎng)絡(luò)服務(wù)開始,SoapUI進(jìn)入API測(cè)試領(lǐng)域已有很長(zhǎng)時(shí)間了。雖然不再構(gòu)建新的SOAP服務(wù),也沒有更改該工具的名稱,但這并不意味著它沒有發(fā)展。
SoapUI為構(gòu)建后端網(wǎng)絡(luò)服務(wù)的自動(dòng)化功能測(cè)試提供了一種出色的結(jié)構(gòu)。這些可以輕松地與持續(xù)集成工具結(jié)合,并作為CI/CD管道的一部分運(yùn)行。
其主要優(yōu)勢(shì)在于:
- 廣泛的文檔:此工具已經(jīng)存在了一段時(shí)間,因此有許多線上資源可幫助確定如何配置負(fù)載測(cè)試。
- 易于使用:雖然有幾種適用的API測(cè)試工具,但一個(gè)接口用于多種服務(wù),會(huì)使測(cè)試構(gòu)建變得簡(jiǎn)單。
其競(jìng)爭(zhēng)對(duì)手有Selenium:Selenium是該領(lǐng)域的出色工具,建議在構(gòu)建和運(yùn)行基于Java的應(yīng)用程序時(shí)使用。但如果正在使用多種技術(shù)來處理一個(gè)完整的網(wǎng)絡(luò)應(yīng)用程序,使用非Java語言可能會(huì)有些笨拙。
2. 端到端測(cè)試工具—負(fù)載測(cè)試:LoadRunner
只有LoadRunner才能完成對(duì)應(yīng)用程序各個(gè)方面的負(fù)載測(cè)試。雖然價(jià)格昂貴而且入門有些困難,但它是唯一可以執(zhí)行測(cè)試的工具。作為一名技術(shù)架構(gòu)師,筆者相信新代碼將在極端壓力下執(zhí)行。
其主要優(yōu)勢(shì)在于:
- 廣泛的文檔:該工具也已經(jīng)存在了一段時(shí)間,有豐富的在線資源。
- 協(xié)議支持:從ODBC到AJAX,再到HTTPS以及可能在某處使用的其他隱晦協(xié)議,負(fù)載測(cè)試都支持該協(xié)議。要避免串接多個(gè)負(fù)載測(cè)試工具,這只會(huì)增加復(fù)雜性。
同樣,該領(lǐng)域并沒有很多萬能的工具,簡(jiǎn)單的解決方案是可以在任何環(huán)境中使用。
部署工具
部署工具可能是應(yīng)用程序開發(fā)中鮮為人知的方面。對(duì)于操作人員來說,如果不深入了解應(yīng)用程序代碼和功能,就很難使用部署工具。而對(duì)于開發(fā)人員來說,管理代碼部署是一項(xiàng)新的職責(zé),他們很少有使用許多部署工具的經(jīng)驗(yàn)。
1. 構(gòu)件管理工具: Nexus
Nexus工件存儲(chǔ)庫支持從Java到NPM再到Docker幾乎所有主要的技術(shù),可以使用這一工具來存儲(chǔ)所有可部署的工件。
通過使軟件包更接近構(gòu)建過程,代理遠(yuǎn)程軟件包管理器的能力大大提高了CI配置的速度。這樣做的另一個(gè)好處是可以全局查看跨多個(gè)軟件項(xiàng)目用途的軟件包,從而鎖定不安全的開源軟件包,這可能是代碼中的攻擊媒介。
其主要優(yōu)勢(shì)在于:
- 技術(shù)支持:該產(chǎn)品自2013年投放于市場(chǎng)上,一直都非常穩(wěn)定,獲得了良好支持。
- 開源:免費(fèi)版的Gitlab并沒有削減開發(fā)團(tuán)隊(duì)所需的核心功能。每個(gè)付費(fèi)層均提供附加功能,這些附加功能可帶來最大價(jià)值,具體取決于組織的規(guī)模和需求。
2. 配置管理工具: Ansible
Ansible是這個(gè)領(lǐng)域的引領(lǐng)者,原因很簡(jiǎn)單:無狀態(tài)。早期的現(xiàn)場(chǎng)配置管理工具著重于管理配置狀態(tài)。如果它與所需的配置脫離同步,將自行修復(fù)。新的應(yīng)用程序只有無狀態(tài)組件。
其主要優(yōu)勢(shì)在于:
- 無狀態(tài):Ansible playbooks運(yùn)行于操作機(jī)器上。筆者不在乎遠(yuǎn)程對(duì)象的狀態(tài),使用Packer之類的工具來構(gòu)建可部署對(duì)象變得更加容易。
- 開源:與CentOS一樣,RedHat也維護(hù)Ansible。該企業(yè)及其高級(jí)支持人員可以幫助維護(hù)社區(qū),并確保高質(zhì)量、易于使用的模塊。
- 分子測(cè)試:由于配置管理與其他任何代碼一樣,如果不對(duì)其進(jìn)行測(cè)試將無法開始操作。用于測(cè)試Ansible角色的分子框架可以無縫地工作,以確保代碼配置的高質(zhì)量,并遵循與應(yīng)用程序代碼相同的CI/CD管道。
- YAML:與其他工具相比,YAML更容易讓人頭腦清醒。通常來說,配置管理對(duì)于采用開發(fā)運(yùn)維的任何人都是新事物。
其競(jìng)爭(zhēng)對(duì)手有以下兩個(gè):
- OpsCode Chef:筆者是以chef cookbook開發(fā)人員的身份開始開發(fā)運(yùn)維生涯的。Ruby和Chef十分相近,但是它們根本無法解決目前無狀態(tài)、云原生應(yīng)用程序的問題。對(duì)于更傳統(tǒng)的應(yīng)用程序來說,這是一個(gè)不錯(cuò)的工具,但本文著眼于未來。
- Puppet:Puppet從未發(fā)展過龐大的社區(qū),尤其與Chef 和Ansible相比而言。它非常適合配置和裸機(jī),但不支持網(wǎng)絡(luò)應(yīng)用程序類型的配置管理。
3. 部署工具:Terraform
Terraform解決了從網(wǎng)絡(luò)組件到實(shí)際服務(wù)器圖像的基礎(chǔ)架構(gòu),即代碼定義問題。自最初發(fā)布以來,它已經(jīng)發(fā)展了一段時(shí)間,并建立了龐大的插件社區(qū)和支持社區(qū),為可能遇到的幾乎所有部署情況提供幫助。支持本地環(huán)境、云環(huán)境或其他任何類型環(huán)境的能力是首屈一指的。
最后,與任何其他傳統(tǒng)的編程語言一樣,最新版本在HCL中提供了相同的邏輯功能和類,開發(fā)人員可以輕松獲得和學(xué)習(xí)。
其主要優(yōu)勢(shì)在于:
- 不可知的云/環(huán)境:Terraform利用其代碼與所有API和后端邏輯之間的接口,這些API和后端邏輯是基礎(chǔ)架構(gòu)提供商進(jìn)行通信所需的。
- 開源:免費(fèi)工具也很難做到,其社區(qū)支持是一流的。
其競(jìng)爭(zhēng)對(duì)手有AWS Cloud Formation:即使僅在AWS云環(huán)境中工作,你也可能會(huì)向未知的方向繼續(xù)前進(jìn),將技能和知識(shí)整合到一個(gè)平臺(tái)中可能會(huì)有風(fēng)險(xiǎn)。另外,許多新AWS服務(wù)通常在用于CloudFormation之前作為Terraform模塊提供。
開發(fā)運(yùn)維工具運(yùn)行
任何開發(fā)項(xiàng)目的最終目標(biāo)都是在生產(chǎn)中運(yùn)行應(yīng)用程序。在開發(fā)運(yùn)維領(lǐng)域中,要確保我們對(duì)該環(huán)境中的任何潛在問題具有可見性,并且將人工干預(yù)降至最低。選擇正確的運(yùn)行時(shí)工具集對(duì)于實(shí)現(xiàn)發(fā)展至關(guān)重要。
1. 工具即服務(wù):AWS
亞馬遜一直是云計(jì)算領(lǐng)域的引領(lǐng)者。它們也不僅止步于此,還提供了許多新服務(wù)供開發(fā)人員利用,讓人眼花繚亂。將任何技術(shù)和任何模式帶到AWS上,它就可以被構(gòu)建和運(yùn)行。
與在自己的數(shù)據(jù)中心中構(gòu)建、管理和維護(hù)傳統(tǒng)硬件相比,它們的成本極其合理。免費(fèi)服務(wù)使任何人都有機(jī)會(huì)先進(jìn)行嘗試,再做出購買決定,這對(duì)嘗試以正確的方式構(gòu)建應(yīng)用程序非常有用,而不是因?yàn)槌杀径坏貌煌讌f(xié)。
其主要優(yōu)勢(shì)在于:
- 行業(yè)標(biāo)準(zhǔn):如果有在AWS中構(gòu)建應(yīng)用程序的經(jīng)驗(yàn),那么基本上可以在任何地方找到工作。企業(yè)喜歡AWS,而創(chuàng)業(yè)公司喜歡AWS的低成本。
- 免費(fèi)服務(wù):與其他所有內(nèi)容相比,這是AWS擁有的極其正確的業(yè)務(wù)。先使用該服務(wù)并知道其工作原理,然后再?zèng)Q定將數(shù)千美元投入可能的巨大陷阱中。
其競(jìng)爭(zhēng)對(duì)手有以下幾個(gè):
- Azure:自發(fā)布以來,Azure已經(jīng)有所發(fā)展。但是,區(qū)分自身的需求導(dǎo)致其對(duì)服務(wù)進(jìn)行了奇怪的命名,而這些服務(wù)讓人難以了解——到底什么是“ 云端的文件系統(tǒng)”。盡管.NET代碼在微軟生態(tài)系統(tǒng)中效果更好,但在應(yīng)用程序的各個(gè)方面只使用.NET是不可能的。
- Heroku:除了在Heroku上運(yùn)行個(gè)人項(xiàng)目之外,筆者不會(huì)運(yùn)行任何其他項(xiàng)目。它的透明度不高,企業(yè)沒有理由將其用作平臺(tái)。這對(duì)演示博客中的內(nèi)容非常有用,但是對(duì)實(shí)際應(yīng)用程序不太友好。
2. 編制工具:OpenShift
你可能在應(yīng)用程序堆棧中的某處使用了Docker或Container。無服務(wù)器的應(yīng)用程序雖然不錯(cuò),但不能適應(yīng)所有架構(gòu)模式。在沒有業(yè)務(wù)流程平臺(tái)的情況下運(yùn)行容器根本行不通。
從安全性和工具角度來看,Core Kubernetes帶來了很多需求。OpenShift是唯一的Kubernetes平臺(tái),它具有Source2Image構(gòu)建,pod中的部署自動(dòng)化,甚至有可追溯性和監(jiān)視功能。它可以在本地,云中或同時(shí)在兩者中運(yùn)行。
其主要優(yōu)勢(shì)在于:
- 內(nèi)置安全性:管理K8安全性幾乎需要博士學(xué)位。默認(rèn)情況下,OpenShift所采用的安全機(jī)制減少了開發(fā)人員的工作量,并為他們的應(yīng)用程序提供了更安全的平臺(tái)。
- 多合一解決方案:與默認(rèn)不包含負(fù)載平衡工具的基礎(chǔ)型K8不同,OpenShift擁有所有功能??梢杂盟鼇硗泄蹸ontainer,構(gòu)建Container,運(yùn)行CI/CD工具,編排外部流程,管理機(jī)密等等。盡管GUI仍然需要做更多的工作,但API優(yōu)先的方法意味著一切都可以進(jìn)行編寫,并且與K8的其他GUI不同,它使學(xué)習(xí)Kubernetes基礎(chǔ)知識(shí)變得更加簡(jiǎn)單,無需以獲得該學(xué)位為首要任務(wù)!
其主要競(jìng)爭(zhēng)對(duì)手是Docker Swarm:Dockerswarm試圖刪除很多東西來簡(jiǎn)化K8。這對(duì)于較小的應(yīng)用程序非常有用,但對(duì)于企業(yè)應(yīng)用程序根本不起作用。此外,AWS ECS之類的服務(wù)采用了類似的方法,卻使正在交互的其他服務(wù)(Lambda、IAM等)使用起來更簡(jiǎn)單。
3. 監(jiān)控工具: NewRelic
New Relic的早期發(fā)行成功地實(shí)現(xiàn)了APM監(jiān)控。現(xiàn)在,它是一套完整的監(jiān)控工具,可以監(jiān)控服務(wù)器性能,容器性能,數(shù)據(jù)庫性能,以及進(jìn)行最終用戶體驗(yàn)監(jiān)控,當(dāng)然還有APM監(jiān)控。
其主要優(yōu)勢(shì)在于:
- 易于使用:在擔(dān)任系統(tǒng)工程師的時(shí)候,我曾使用過許多監(jiān)控工具,但都不如NewRelic這樣易于使用。這是一種軟件服務(wù)(SaaS),無需設(shè)置服務(wù)器組件,十分便捷。
- 端到端可見性:其他工具試圖監(jiān)控應(yīng)用程序的某個(gè)特定方面。無論是CPU利用率還是網(wǎng)絡(luò)流量,這些都可以協(xié)同工作,使應(yīng)用程序正常運(yùn)行。NewRelic使你能夠整合所有數(shù)據(jù),真實(shí)了解正在發(fā)生的事情。
其競(jìng)爭(zhēng)對(duì)手有以下幾個(gè):
- Zabbix:Zabbix是筆者第一個(gè)最喜歡的監(jiān)控系統(tǒng),但是它不能發(fā)展到原生云版本,而且APM空間使它發(fā)展滯后了。不過,它仍然可以很好地監(jiān)控傳統(tǒng)的服務(wù)器基礎(chǔ)結(jié)構(gòu)。
- DataDog:該工具過多地側(cè)重于管理生產(chǎn)應(yīng)用程序的過程,而忽略代碼本身。在有開發(fā)人員參與生產(chǎn)的開發(fā)運(yùn)維團(tuán)隊(duì)中,無需依靠繁瑣的工具來提供頂級(jí)的支持。
4. 記錄工具: Splunk
他們長(zhǎng)期以來一直是日志聚合的領(lǐng)跑者,并且會(huì)繼續(xù)努力做到最好。借助本地和SaaS產(chǎn)品,可以在任何地方使用它。它的主要缺點(diǎn)是運(yùn)行的成本很高。
其主要優(yōu)勢(shì)在于:
- 行業(yè)標(biāo)準(zhǔn):企業(yè)喜歡使用Splunk,他們也有資金來支付。雖然初創(chuàng)企業(yè)可能難以承擔(dān)其成本,但許多概念和技能可以轉(zhuǎn)移到開源替代方案中。
- 可支持性:它具有許多默認(rèn)設(shè)置和即用型功能,因此不必花費(fèi)大量時(shí)間閱讀文檔并嘗試使用一些沒有明確說明的內(nèi)容。
其主要競(jìng)爭(zhēng)對(duì)手是ELKStack:ElasticSearch、LogStash和Kibana似乎很受歡迎,因?yàn)樗鼈儾皇杖∈褂觅M(fèi)用,但隨著日志集的增多以及工具中越來越多的應(yīng)用程序,確實(shí)會(huì)變得更加難以維護(hù)。與使用Splunk相比,在構(gòu)建任何類型的儀表板之前,你會(huì)花更多的時(shí)間來設(shè)置工具。
協(xié)作開發(fā)運(yùn)維工具
開發(fā)運(yùn)維首先是組織內(nèi)部的文化變革。雖然購買工具不會(huì)一夜之間改變文化,但無疑可以幫助培養(yǎng)與同事合作的新方式。
1. 問題跟蹤工具:Jira
盡管該領(lǐng)域的競(jìng)爭(zhēng)日益激烈,但Jira仍然保持領(lǐng)先地位。但Jira內(nèi)置的強(qiáng)大靈活性使開發(fā)團(tuán)隊(duì)和運(yùn)營團(tuán)隊(duì)可以管理其項(xiàng)目工作和沖刺任務(wù),使用敏捷術(shù)語的內(nèi)置標(biāo)準(zhǔn)有助于緩解從傳統(tǒng)工作方法到更加精益的流程的文化轉(zhuǎn)變。
其主要優(yōu)勢(shì)在于:
- 行業(yè)標(biāo)準(zhǔn):與許多工具一樣,Jira基本在各地都有使用。小型團(tuán)隊(duì)可以使用便宜的許可證并獲得所需的一切,而企業(yè)能為任何人承擔(dān)許可證。
- 集成:在該領(lǐng)域處于領(lǐng)先地位并且快速增長(zhǎng)意味著第三方工具會(huì)選擇首先構(gòu)建本機(jī)集成,而它們只會(huì)增加工具的價(jià)值,Jira就是這種情況??梢耘c現(xiàn)有列表中的所有其他工具集成,幾乎不需要進(jìn)行定制。
其競(jìng)爭(zhēng)對(duì)手有以下幾個(gè):
- Trello:Trello成為免費(fèi)使用的Kanban工具而迅速流行。但當(dāng)從數(shù)十個(gè)問題擴(kuò)展到數(shù)千個(gè)問題,Trello會(huì)變得難以控制、搜索和進(jìn)行報(bào)告。
- Pivotal Tracker:在為初創(chuàng)公司工作時(shí),筆者非常喜歡這個(gè)工具。但他們更多地關(guān)注產(chǎn)品管理,而不是技術(shù)任務(wù)。盡管通過Jira進(jìn)行產(chǎn)品管理比較困難,但是仍然可以完成此過程,無需獲取完全獨(dú)立的工具。
2. 聊天運(yùn)營工具:MatterMost
這可能是2020年清單上最大的驚喜。MatterMost使用了以前最好的工具,引入了本地部署,獲得了廣泛的歡迎。對(duì)于企業(yè)來說是巨大的好處,因?yàn)樗梢钥刂茢?shù)據(jù),還有助于與本地工具集成。
其主要優(yōu)勢(shì)在于:
- 開源:MatterMost的開源版本非常適合小型或大型團(tuán)隊(duì)。不同的是,在Slack的免費(fèi)服務(wù)中如果丟失歷史記錄,運(yùn)行服務(wù)器意味著找回?cái)?shù)據(jù)。
- 集成:由于該API幾乎100%基于Slack API,所以幾乎所有Slacks集成都可以直接與MatterMost一起使用。
其競(jìng)爭(zhēng)對(duì)手主要有以下兩個(gè):
- Slack:Slack真的很不錯(cuò),但它們已經(jīng)發(fā)展迅猛,需要開始盈利。他們業(yè)務(wù)的付費(fèi)階段即將到來,Slack曾經(jīng)免費(fèi)提供的許多功能開始需要付費(fèi),包括聊天記錄。
- 微軟團(tuán)隊(duì):嘗試將微軟產(chǎn)品與非微軟本地產(chǎn)品集成的話,祝你好運(yùn)。
3. 文檔工具:Confluence
無論使用哪種工具,都很難創(chuàng)建和維護(hù)高質(zhì)量的技術(shù)文檔。盡管最近有許多SaaS文檔工具進(jìn)入市場(chǎng),但將關(guān)鍵應(yīng)用程序的敏感技術(shù)文檔存儲(chǔ)給第三方這一點(diǎn)讓人難以接受。需要將數(shù)據(jù)和文檔保留在本地,這就是Confluence的作用。
其主要優(yōu)勢(shì)在于:
- 易于管理:?jiǎn)?dòng)大多數(shù)自托管工具可能會(huì)有些復(fù)雜,而且大規(guī)模地對(duì)其運(yùn)行和維護(hù)需要一些特定的知識(shí)。開箱即用的Confluence服務(wù)器可以適用于10個(gè)或10000個(gè)用戶。
- 插件:盡管創(chuàng)建具有默認(rèn)融合功能的、美觀且易于瀏覽的文檔已經(jīng)很不錯(cuò)了,但是擁有用于幾乎所有內(nèi)容的插件功能激發(fā)了Wiki的潛力。
其競(jìng)爭(zhēng)對(duì)手有以下幾個(gè):
- Read the docs:非常適合開源公共代碼,但是從不考慮存儲(chǔ)關(guān)鍵的應(yīng)用程序知識(shí)。
- MarkDown:雖然非常適合于記錄有關(guān)代碼的事情,但很難將體系結(jié)構(gòu),過程或其他類型的文檔直接放入MarkDown格式中。
- Jekyll:在記錄技術(shù)知識(shí)時(shí),希望構(gòu)建一個(gè)新的靜態(tài)站點(diǎn),以便在每次更改時(shí)進(jìn)行部署。簡(jiǎn)單的Confluence版本管理系統(tǒng)使內(nèi)部文檔更加易于處理。
市場(chǎng)上有數(shù)百種開發(fā)運(yùn)維工具,瀏覽篩選應(yīng)該使用的工具以及它們的執(zhí)行時(shí)間是大勢(shì)所趨。遵循本指南,為完整的CI/CD管道選擇開發(fā)運(yùn)維工具堆棧吧。
關(guān)鍵是要記住,將一切事物自動(dòng)化!
新聞標(biāo)題:2020年開發(fā)運(yùn)維工具清單:選擇開發(fā)運(yùn)維工具堆棧吧
URL標(biāo)題:http://www.dlmjj.cn/article/ccojphp.html


咨詢
建站咨詢
