什么是DevOps監(jiān)控以及如何在組織中實(shí)施?
譯文譯者 | 李睿
審校 | 重樓
如今的軟件開發(fā)商經(jīng)常面臨兩大挑戰(zhàn)——快速交付和大規(guī)模創(chuàng)新。DevOps通過在軟件開發(fā)生命周期(SDLC)中引入自動(dòng)化來開發(fā)和交付高質(zhì)量的軟件,從而幫助解決這些挑戰(zhàn)。
持續(xù)集成(CI)/持續(xù)部署(CD)是DevOps實(shí)踐中自動(dòng)化的關(guān)鍵組件。它可以自動(dòng)化代碼構(gòu)建、測(cè)試和部署,因此企業(yè)可以更快、更可靠地交付代碼更改。但是,必須持續(xù)監(jiān)控他們的持續(xù)集成(CI)/持續(xù)部署(CD)管道,以實(shí)現(xiàn)DevOps承諾。
那么,DevOps中的監(jiān)控是什么,企業(yè)如何利用它來挖掘最佳的DevOps潛力?以下進(jìn)行深入探討……
什么是DevOps監(jiān)控?
DevOps方法論的核心是一種數(shù)據(jù)驅(qū)動(dòng)的方法。持續(xù)改進(jìn)軟件質(zhì)量的能力完全依賴于理解代碼如何執(zhí)行,它引入了什么問題,以及在哪里找到改進(jìn)機(jī)會(huì)。這就是DevOps監(jiān)控發(fā)揮重要作用的地方。
DevOps監(jiān)控是在DevOps生命周期的每個(gè)階段(從規(guī)劃、開發(fā)、集成和測(cè)試到部署和操作)跟蹤和測(cè)量代碼的性能和健康狀況的實(shí)踐。它有助于實(shí)現(xiàn)應(yīng)用程序和基礎(chǔ)設(shè)施性能的實(shí)時(shí)、易于使用的單一窗格視圖。好處是可以及早發(fā)現(xiàn)重大威脅,并在它們成為令人頭痛的問題之前解決它們。DevOps監(jiān)控收集有關(guān)從CPU利用率到存儲(chǔ)空間到應(yīng)用程序響應(yīng)時(shí)間的所有數(shù)據(jù)。實(shí)時(shí)流、可視化和歷史回放是DevOps監(jiān)控的一些關(guān)鍵方面。
DevOps監(jiān)控對(duì)業(yè)務(wù)組織的重要性是什么?
DevOps監(jiān)控使業(yè)務(wù)組織能夠跟蹤、識(shí)別和理解關(guān)鍵指標(biāo),例如部署頻率和故障、代碼錯(cuò)誤計(jì)數(shù)、拉取請(qǐng)求的周期時(shí)間、更改失敗率、平均檢測(cè)時(shí)間(MTTD)、平均緩解時(shí)間(MTTM)和平均補(bǔ)救時(shí)間(MTTR)。這些具有價(jià)值的見解使組織能夠主動(dòng)識(shí)別應(yīng)用程序或基礎(chǔ)設(shè)施問題,并實(shí)時(shí)解決這些問題。監(jiān)控還可以通過識(shí)別自動(dòng)化的機(jī)會(huì)來優(yōu)化DevOps工具鏈。
以下是突出DevOps監(jiān)控對(duì)業(yè)務(wù)組織的重要性的一些關(guān)鍵好處:
1.能見度高
由DevOps促成的持續(xù)集成(CI)/持續(xù)部署(CD)支持頻繁的代碼更改。然而,代碼更改速度的加快使得生產(chǎn)環(huán)境越來越復(fù)雜。此外,在現(xiàn)代云原生生態(tài)系統(tǒng)中引入微服務(wù)和微前端會(huì)導(dǎo)致在生產(chǎn)中運(yùn)行各種工作負(fù)載,每種工作負(fù)載在規(guī)模、冗余、延遲和安全性方面都有不同的操作需求。因此,提高DevOps生態(tài)系統(tǒng)的可見性對(duì)于團(tuán)隊(duì)實(shí)時(shí)檢測(cè)和響應(yīng)問題至關(guān)重要。這就是持續(xù)監(jiān)測(cè)發(fā)揮關(guān)鍵作用的地方。
DevOps監(jiān)控提供了在不同環(huán)境中部署新版本代碼時(shí)應(yīng)用程序性能的實(shí)時(shí)視圖。因此,可以在流程的早期識(shí)別和修復(fù)問題,并繼續(xù)測(cè)試和監(jiān)控后續(xù)的代碼更改。監(jiān)控可以幫助組織驗(yàn)證新版本,以確保它們按計(jì)劃執(zhí)行,因此可以放心地發(fā)布新部署。
2.加強(qiáng)協(xié)作
DevOps的核心原則是實(shí)現(xiàn)開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)之間的無縫協(xié)作。然而,工具之間缺乏適當(dāng)?shù)募蓵?huì)阻礙不同團(tuán)隊(duì)之間的協(xié)調(diào)。這就是DevOps監(jiān)控的用武之地,可以利用持續(xù)監(jiān)控來獲得整個(gè)DevOps管道的完整和統(tǒng)一的視圖。甚至可以跟蹤提交和拉取請(qǐng)求,以更新相關(guān)Jira問題的狀態(tài)并通知團(tuán)隊(duì)。
3.高實(shí)驗(yàn)性
不斷變化的客戶需求要求組織不斷嘗試,通過個(gè)性化和優(yōu)化的轉(zhuǎn)換渠道來優(yōu)化他們的產(chǎn)品線。組織的團(tuán)隊(duì)經(jīng)常在生產(chǎn)環(huán)境中運(yùn)行數(shù)百個(gè)實(shí)驗(yàn)和功能標(biāo)志,這使得很難確定任何降級(jí)體驗(yàn)的原因。此外,客戶對(duì)不間斷服務(wù)和應(yīng)用程序的需求不斷增加,可能會(huì)增加應(yīng)用程序的漏洞。持續(xù)監(jiān)控可以幫助組織監(jiān)控實(shí)驗(yàn),并確保它們按預(yù)期工作。
4.管理變更
通常,大多數(shù)生產(chǎn)中斷都是由頻繁的代碼更改觸發(fā)的。因此,必須實(shí)現(xiàn)變更管理,特別是對(duì)于關(guān)鍵任務(wù)應(yīng)用程序,例如銀行和醫(yī)療保健應(yīng)用程序。人們需要確定與變更相關(guān)的風(fēng)險(xiǎn),并基于變更的風(fēng)險(xiǎn)自動(dòng)化審批流程。全面的監(jiān)控策略可以幫助組織處理這些復(fù)雜性,只需要一組豐富、靈活、高級(jí)的監(jiān)控工具。
5.監(jiān)控分布式系統(tǒng)
組織經(jīng)常處理由許多規(guī)模的跨公司服務(wù)組成的分布式系統(tǒng)。因此,組織的團(tuán)隊(duì)需要監(jiān)控和管理他們所構(gòu)建的系統(tǒng)以及相關(guān)系統(tǒng)的性能。DevOps監(jiān)控使組織能夠輕松地處理這種依賴的系統(tǒng)監(jiān)控。
6.左移測(cè)試
左移測(cè)試就是向左移動(dòng)時(shí)進(jìn)行測(cè)試。在軟件開發(fā)生命周期的開始階段執(zhí)行時(shí),它可以顯著提高代碼質(zhì)量,并減少測(cè)試周期。但是,只有當(dāng)組織簡(jiǎn)化對(duì)預(yù)生產(chǎn)環(huán)境運(yùn)行狀況的監(jiān)控并盡早且頻繁地實(shí)施時(shí),才能實(shí)現(xiàn)左移測(cè)試。持續(xù)監(jiān)控還使組織能夠在將應(yīng)用程序部署到生產(chǎn)環(huán)境之前跟蹤用戶交互并維護(hù)應(yīng)用程序的性能和可用性。
統(tǒng)一監(jiān)控和分析的好處
統(tǒng)一的監(jiān)控和分析可以幫助組織的DevOps團(tuán)隊(duì)在整個(gè)軟件生命周期中獲得完整的端到端可見性。然而,在DevOps持續(xù)集成(CI)/持續(xù)部署(CD)生態(tài)系統(tǒng)中統(tǒng)一監(jiān)控?cái)?shù)據(jù)、分析和日志可能具有挑戰(zhàn)性和復(fù)雜性。
DevOps監(jiān)控類型
基礎(chǔ)設(shè)施監(jiān)控
每個(gè)IT企業(yè)都必須建立和維護(hù)IT基礎(chǔ)設(shè)施,以便以無縫和高效的方式交付產(chǎn)品和服務(wù)。通常,IT基礎(chǔ)設(shè)施包括與IT相關(guān)的一切,例如服務(wù)器、數(shù)據(jù)中心、網(wǎng)絡(luò)、存儲(chǔ)系統(tǒng)以及計(jì)算機(jī)硬件和軟件。DevOps監(jiān)控有助于管理和監(jiān)控這個(gè)IT基礎(chǔ)設(shè)施,這被稱為基礎(chǔ)設(shè)施監(jiān)控。
基礎(chǔ)設(shè)施監(jiān)控從IT基礎(chǔ)設(shè)施收集數(shù)據(jù)。它通過分析數(shù)據(jù)來獲得深入的見解,從而幫助跟蹤計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)和其他IT統(tǒng)的性能和可用性。它還有助于收集關(guān)于CPU利用率、服務(wù)器可用性、系統(tǒng)內(nèi)存、磁盤空間和網(wǎng)絡(luò)流量等指標(biāo)的實(shí)時(shí)信息?;A(chǔ)設(shè)施監(jiān)控包括硬件監(jiān)控、操作系統(tǒng)監(jiān)控、網(wǎng)絡(luò)監(jiān)控和應(yīng)用程序監(jiān)控。
一些流行的基礎(chǔ)設(shè)施監(jiān)控工具有:
- Nagios
- Zabbix
- ManageEngine OpManager
- Solarwinds
- Prometheus
應(yīng)用程序監(jiān)控
應(yīng)用程序監(jiān)控幫助DevOps團(tuán)隊(duì)跟蹤應(yīng)用程序性能的運(yùn)行時(shí)指標(biāo),比如應(yīng)用程序正常運(yùn)行時(shí)間、安全性和日志監(jiān)控細(xì)節(jié)。應(yīng)用程序性能監(jiān)控(APM)工具用于監(jiān)控廣泛的指標(biāo),包括事務(wù)時(shí)間和數(shù)量、API和系統(tǒng)響應(yīng)以及整體應(yīng)用程序運(yùn)行狀況。這些指標(biāo)以圖形和統(tǒng)計(jì)數(shù)據(jù)的形式得到,因此DevOps團(tuán)隊(duì)可以輕松地評(píng)估應(yīng)用程序的性能。
一些流行的應(yīng)用程序監(jiān)控工具是:
- Appdynamics
- Dynatrace
- Datadog
- Uptime Robot
- Uptrends
- Splunk
網(wǎng)絡(luò)監(jiān)控
網(wǎng)絡(luò)監(jiān)控用于跟蹤和監(jiān)控計(jì)算機(jī)網(wǎng)絡(luò)及其組件(如防火墻、服務(wù)器、路由器、交換機(jī)和虛擬機(jī))的性能和可用性。通常,網(wǎng)絡(luò)監(jiān)控系統(tǒng)共享5個(gè)重要數(shù)據(jù)點(diǎn),即發(fā)現(xiàn)、映射、監(jiān)控、警報(bào)和報(bào)告。網(wǎng)絡(luò)監(jiān)控有助于發(fā)現(xiàn)網(wǎng)絡(luò)故障、測(cè)量性能和優(yōu)化可用性。這使組織的DevOps團(tuán)隊(duì)能夠防止網(wǎng)絡(luò)停機(jī)和故障。
一些流行的NMS工具有:
- Cacti
- Ntop
- Nmap
- Spiceworks
- Wireshark
- Traceroute
- Bandwidth Monitor
DevOps監(jiān)控和可觀察性的區(qū)別
DevOps團(tuán)隊(duì)經(jīng)常交替使用監(jiān)控和可觀察性。雖然這兩個(gè)概念在確保系統(tǒng)、數(shù)據(jù)和應(yīng)用程序的安全性方面都起著至關(guān)重要的作用,但監(jiān)控和可觀察性是互補(bǔ)的功能,并不相同。以下了解一下這兩個(gè)概念的不同之處:
監(jiān)測(cè)和可觀察性之間的區(qū)別取決于所收集的數(shù)據(jù)是否預(yù)定義。監(jiān)控收集和分析從各個(gè)系統(tǒng)收集的預(yù)定義數(shù)據(jù),可觀察性收集所有IT系統(tǒng)產(chǎn)生的所有數(shù)據(jù)。
監(jiān)控工具通常使用儀表板來顯示性能指標(biāo)和其他KPI,因此DevOps團(tuán)隊(duì)可以輕松地識(shí)別和糾正任何IT問題。然而,指標(biāo)只能突出組織的團(tuán)隊(duì)可以預(yù)見的問題,因?yàn)樗鼈兪莿?chuàng)建儀表板的問題。這使得DevOps團(tuán)隊(duì)難以監(jiān)控云原生環(huán)境和應(yīng)用程序的安全性和性能狀況,因?yàn)檫@些問題通常是多方面的且不可預(yù)測(cè)的。
另一方面,可觀察性工具利用從整個(gè)IT基礎(chǔ)設(shè)施收集的日志、跟蹤和度量來識(shí)別問題,并主動(dòng)通知團(tuán)隊(duì)以減輕問題。在監(jiān)控工具提供有用數(shù)據(jù)的同時(shí),DevOps團(tuán)隊(duì)需要利用可觀察性工具對(duì)整個(gè)IT基礎(chǔ)設(shè)施的健康狀況進(jìn)行可操作的洞察,并在性能異常的第一個(gè)跡象時(shí)檢測(cè)漏洞或脆弱的攻擊載體。然而,可觀察性并不能取代監(jiān)測(cè),與其相反,它有助于更好的監(jiān)控。
最好的DevOps監(jiān)控工具
DevOps監(jiān)控工具使DevOps團(tuán)隊(duì)能夠?qū)崿F(xiàn)對(duì)整個(gè)DevOps應(yīng)用程序開發(fā)生命周期的持續(xù)監(jiān)控,并在將代碼發(fā)布到生產(chǎn)環(huán)境之前識(shí)別潛在的錯(cuò)誤。但是,組織需要選擇最適合其業(yè)務(wù)目標(biāo)的監(jiān)控工具,以便以最小的成本獲得高質(zhì)量的產(chǎn)品。以下是市場(chǎng)上一些優(yōu)秀10大的DevOps監(jiān)控工具:
1.Splunk
Splunk是機(jī)器生成數(shù)據(jù)方面最受歡迎的監(jiān)控工具。除了監(jiān)控,這個(gè)流行的工具還用于搜索、分析、調(diào)查、故障排除、警報(bào)和報(bào)告機(jī)器生成的數(shù)據(jù)。Splunk將所有機(jī)器生成的數(shù)據(jù)整合到一個(gè)中心索引中,使DevOps團(tuán)隊(duì)能夠快速收集所需的見解。Splunk的誘人之處在于它不利用任何數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù);與其相反,它使用索引來存儲(chǔ)數(shù)據(jù)。
該工具有助于創(chuàng)建圖形、儀表板和交互式可視化,因此組織的團(tuán)隊(duì)可以輕松訪問數(shù)據(jù)并找到復(fù)雜問題的解決方案。
Splunk的主要特點(diǎn)如下:
- 實(shí)時(shí)數(shù)據(jù)處理。
- 接受各種格式的輸入數(shù)據(jù),包括CSV和JSON。
- 允許輕松搜索和分析特定的結(jié)果。
- 允許排除任何性能問題。
- 可以監(jiān)控任何業(yè)務(wù)指標(biāo),并做出明智的決定。
- 可以將人工智能與Splunk結(jié)合到數(shù)據(jù)策略中。
2.Datadog
Datadog是一個(gè)基于訂閱的SaaS平臺(tái),支持對(duì)服務(wù)器、應(yīng)用程序、數(shù)據(jù)庫、工具和服務(wù)的持續(xù)監(jiān)控。這個(gè)工具可以幫助組織培養(yǎng)一種可觀察性、協(xié)作性和數(shù)據(jù)共享的文化,這樣就可以獲得關(guān)于操作變更的快速反饋,并提高開發(fā)速度和敏捷性。
Datadog的一些關(guān)鍵特性是:
- 可擴(kuò)展的檢測(cè)和開放的API。
- 自動(dòng)發(fā)現(xiàn)監(jiān)控檢查的自動(dòng)配置。
- 與配置管理和部署工具的代碼監(jiān)控集成。
- 易于定制的監(jiān)控儀表板。
- 80多個(gè)交鑰匙集成。
- 獲取其他DevOps工具的運(yùn)行狀況和性能可見性。
3. Consul
Hashi公司的Consul是一個(gè)開源監(jiān)控工具,用于連接、配置和保護(hù)動(dòng)態(tài)基礎(chǔ)設(shè)施中的服務(wù)。該工具使組織能夠創(chuàng)建實(shí)時(shí)跟蹤應(yīng)用程序、服務(wù)和運(yùn)行狀況狀態(tài)的中央注冊(cè)中心。Consul的內(nèi)置用戶界面(UI)或APM集成使DevOps團(tuán)隊(duì)能夠監(jiān)控應(yīng)用程序性能,并在服務(wù)級(jí)別識(shí)別問題區(qū)域。Consul用戶界面中的拓?fù)鋱D幫助組織可視化網(wǎng)格中注冊(cè)的服務(wù)之間的通信流。
Consul的一些主要特性如下所示:
- 現(xiàn)代基礎(chǔ)設(shè)施的趁手工具。
- 提供了一個(gè)健壯的API。
- 使用DNS或HTTP輕松找到每個(gè)應(yīng)用程序所需的服務(wù)。
- 支持多數(shù)據(jù)中心。
4.Monit
Monit是一個(gè)開源的DevOps監(jiān)控工具。它用于管理和監(jiān)控Unix系統(tǒng)。組織的團(tuán)隊(duì)可以利用Monit來監(jiān)控守護(hù)進(jìn)程,例如在系統(tǒng)啟動(dòng)時(shí)從/etc/init/啟動(dòng)的進(jìn)程,比如Sendmail、apache、sshd和MySQL。該工具還可以用于運(yùn)行在本地主機(jī)上運(yùn)行的類似程序、文件、目錄和文件系統(tǒng),并跟蹤更改,例如大小更改、時(shí)間戳更改以及校驗(yàn)和更改。此外,還可以使用Monit監(jiān)控本地主機(jī)上的一般系統(tǒng)資源,例如CPU使用情況、內(nèi)存使用情況和平均負(fù)載。
Monit的一些主要特點(diǎn)是:
- 自動(dòng)維護(hù)和維修。
- 在任何事件中執(zhí)行有洞察力的操作。
- 該工具有內(nèi)置的網(wǎng)絡(luò)測(cè)試關(guān)鍵互聯(lián)網(wǎng)協(xié)議,如HTTP和SMTP。
- 用于在特定時(shí)間測(cè)試程序或腳本。
- Monit是一個(gè)自治的系統(tǒng),不依賴于任何插件或特殊的庫來運(yùn)行。
- 易于編譯和運(yùn)行在大多數(shù)Unix風(fēng)格。
5.Nagios
Nagios是最流行的DevOps監(jiān)控工具之一。它是一種開源工具,用于監(jiān)控所有關(guān)鍵任務(wù)基礎(chǔ)設(shè)施組件,包括服務(wù)、應(yīng)用程序、操作系統(tǒng)、系統(tǒng)指標(biāo)、網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)基礎(chǔ)設(shè)施。該工具促進(jìn)了基于代理和無代理的監(jiān)控,使監(jiān)控Linux和Windows服務(wù)器變得很容易。使用Nagios,組織的DevOps團(tuán)隊(duì)可以監(jiān)控各種應(yīng)用程序,包括Windows應(yīng)用程序、Unix應(yīng)用程序、Linux應(yīng)用程序和Web應(yīng)用程序。
Nagios的一些關(guān)鍵特性如下:
- 支持?jǐn)?shù)百個(gè)第三方插件,因此可以監(jiān)控幾乎任何事物,所有內(nèi)部和外部應(yīng)用程序、服務(wù)和系統(tǒng)。
- 簡(jiǎn)化日志數(shù)據(jù)排序流程。
- 提供高網(wǎng)絡(luò)可見性和可擴(kuò)展性。
- 提供完整的Java管理擴(kuò)展監(jiān)控。
6. Prometheus
Prometheus是一個(gè)開源的監(jiān)控工具包,主要用于系統(tǒng)監(jiān)控和警報(bào)。該工具收集并存儲(chǔ)度量信息以及記錄它的時(shí)間戳,稱為標(biāo)簽的可選鍵-值對(duì)也存儲(chǔ)在度量信息中。Prometheus工具生態(tài)系統(tǒng)由多個(gè)組件組成,包括用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的主Prometheus服務(wù)器、用于檢測(cè)應(yīng)用程序代碼的客戶端庫、用于處理短期作業(yè)的推送網(wǎng)關(guān)和用于處理警報(bào)的警報(bào)管理器。
Prometheus工具的一些關(guān)鍵特性是:
- 為StatsD、HAProxy和Graphite等服務(wù)的特殊目的導(dǎo)出提供了便利。
- 支持Mac、Windows和Linux操作系統(tǒng)。
- 方便監(jiān)控容器環(huán)境,比如Dockers和Kubernetes。
- 輕松集成配置工具,如Ansible,Puppet,Chef和Salt。
- 該工具不依賴分布式存儲(chǔ)。
- Prometheus工具支持多種模式的圖形化和儀表板。
7. Sensu
Sumo Logic的Sensu是針對(duì)關(guān)鍵任務(wù)系統(tǒng)的監(jiān)控即代碼解決方案。這種端到端的可觀察性管道使組織的DevOps和SRE團(tuán)隊(duì)能夠收集、過濾和轉(zhuǎn)換監(jiān)控事件,并將它們發(fā)送到他們選擇的數(shù)據(jù)庫。使用單個(gè)Sensu集群,組織可以輕松監(jiān)控?cái)?shù)萬個(gè)節(jié)點(diǎn),并快速處理每小時(shí)超過100億個(gè)事件。該工具有助于企業(yè)級(jí)監(jiān)控生產(chǎn)工作負(fù)載,為整個(gè)基礎(chǔ)設(shè)施提供真正的多租戶和多集群可見性。
Sensu工具的一些關(guān)鍵特性是:
- 支持外部PostgreSQL數(shù)據(jù)庫,允許組織無限擴(kuò)展Sensu。
- Sensu的內(nèi)置等,處理10000個(gè)連接設(shè)備和40000個(gè)代理/集群。
- 提供了聲明性配置和基于服務(wù)的監(jiān)控方法。
- 輕松與Splunk、PageDuty、ServiceNow和Elasticsearch等其他DevOps監(jiān)控解決方案集成。
8.Sematext
Sematext是滿足所有DevOps監(jiān)控需求的一站式解決方案。與其他僅提供性能監(jiān)控、日志記錄或體驗(yàn)監(jiān)控的監(jiān)控工具不同,Semattext提供了DevOps團(tuán)隊(duì)需要的所有監(jiān)控解決方案,以解決其生產(chǎn)和性能問題并加快進(jìn)度。使用Semtext,組織的DevOps團(tuán)隊(duì)可以監(jiān)控應(yīng)用程序性能、日志、度量、真實(shí)用戶、流程、服務(wù)器、容器、數(shù)據(jù)庫、網(wǎng)絡(luò)、庫存、警報(bào)、事件和API。組織還可以執(zhí)行日志管理、合成監(jiān)控和JVM監(jiān)控以及其他許多操作。
Sematext工具的一些關(guān)鍵特性是:
- 使組織能夠?qū)崟r(shí)映射和監(jiān)控整個(gè)基礎(chǔ)設(shè)施。
- Sematext為DevOps團(tuán)隊(duì)、系統(tǒng)管理員、SRE和Bizops提供了更好的可視性。
- 提供完全托管的Elasticsearch和Kibana,因此組織不需要在昂貴的Elasticsearch專家人員和基礎(chǔ)設(shè)施上花費(fèi)用。
- 允許組織在不到十分鐘的時(shí)間內(nèi)建立免費(fèi)帳戶。
- Seamtext使與外部系統(tǒng)的集成變得輕而易舉。
9.PagerDuty
PagerDuty是一個(gè)操作性能監(jiān)控工具,它可以讓組織的DevOps團(tuán)隊(duì)評(píng)估應(yīng)用程序的可靠性和性能。該工具使組織的DevOps團(tuán)隊(duì)與生產(chǎn)中的代碼保持聯(lián)系,利用機(jī)器學(xué)習(xí)技術(shù)來識(shí)別問題,并提醒團(tuán)隊(duì)盡早解決錯(cuò)誤。這意味著組織的DevOps團(tuán)隊(duì)花更少的時(shí)間來響應(yīng)事件,而有更多的時(shí)間來構(gòu)建和創(chuàng)新。
PagerDuty工具的一些主要功能是:
- PagerDuty帶有直觀的警報(bào)API,使其成為一個(gè)優(yōu)秀的,易于使用的事件響應(yīng)和警報(bào)系統(tǒng)。
- 如果警報(bào)沒有在預(yù)定義的時(shí)間內(nèi)響應(yīng),該工具將根據(jù)最初建立的SLA自動(dòng)升級(jí)。
- 支持通過HTTP上的拉模型進(jìn)行數(shù)據(jù)收集。
PagerDuty作為獨(dú)立的服務(wù)器節(jié)點(diǎn)工作,不依賴于分布式存儲(chǔ)。
- 這是一個(gè)用于調(diào)度和升級(jí)策略的健壯的GUI工具。
- 還支持儀表板和圖表的多種模式。
10.AppDynamics
AppDynamics是市場(chǎng)上最流行的應(yīng)用程序性能監(jiān)控工具之一。作為一個(gè)持續(xù)監(jiān)控工具,AppDynamics可以幫助監(jiān)控組織的最終用戶、應(yīng)用程序、SAP、網(wǎng)絡(luò)、數(shù)據(jù)庫以及云計(jì)算和內(nèi)部部署計(jì)算環(huán)境的基礎(chǔ)設(shè)施。有了這個(gè)工具,組織的DevOps團(tuán)隊(duì)可以輕松地獲得跨服務(wù)器、網(wǎng)絡(luò)、容器、基礎(chǔ)設(shè)施組件、應(yīng)用程序、最終用戶會(huì)話和數(shù)據(jù)庫事務(wù)的完整可見性,因此他們可以快速響應(yīng)性能問題。
AppDynamics工具的一些關(guān)鍵特性是:
- 與世界上最好的技術(shù)無縫集成,如AWS、Azure、谷歌云、IBM和Kubernetes。
- AppDynamics利用機(jī)器學(xué)習(xí)提供即時(shí)的根本原因診斷。
- 支持混合環(huán)境監(jiān)控。
- 具有思科全??捎^察性與AppDynamics。
- 采用按使用付費(fèi)的定價(jià)模式。
DevOps監(jiān)控用例:企業(yè)如何使用監(jiān)控工具的真實(shí)示例
毫無疑問,DevOps監(jiān)控工具使組織的DevOps團(tuán)隊(duì)能夠在整個(gè)軟件開發(fā)生命周期中自動(dòng)化監(jiān)控過程。這些監(jiān)控工具使組織的DevOps團(tuán)隊(duì)能夠盡早識(shí)別代碼錯(cuò)誤,有效地運(yùn)行代碼操作,并快速響應(yīng)使用中的代碼更改。但是,必須有效地使用監(jiān)控工具,以確保完全成功。以下是一些突出的DevOps監(jiān)控用例,組織可以利用它們來獲得DevOps的成功:
監(jiān)控Git工作流
由于多個(gè)開發(fā)人員同時(shí)開發(fā)相同的項(xiàng)目功能,DevOps團(tuán)隊(duì)經(jīng)常會(huì)遇到反復(fù)出現(xiàn)的代碼庫沖突。Git使組織的DevOps團(tuán)隊(duì)能夠管理和解決沖突,包括提交和回滾。因此,當(dāng)監(jiān)控Git工作流時(shí),可以輕松地保持代碼沖突并確保項(xiàng)目的一致進(jìn)展。
代碼檢測(cè)
代碼檢測(cè)工具可以幫助DevOps團(tuán)隊(duì)分析代碼的風(fēng)格、語法和潛在問題。有了這些工具,組織的DevOps團(tuán)隊(duì)可以確保他們遵循編碼的最佳實(shí)踐和標(biāo)準(zhǔn)。代碼檢測(cè)使組織能夠在代碼問題觸發(fā)運(yùn)行時(shí)錯(cuò)誤和其他潛在性能問題之前識(shí)別并解決它們。使用檢測(cè)工具,組織可以確保代碼干凈且一致。
分布式跟蹤
組織的DevOps團(tuán)隊(duì)需要分布式跟蹤,以簡(jiǎn)化微服務(wù)應(yīng)用程序的監(jiān)控和調(diào)試過程。分布式跟蹤幫助組織的團(tuán)隊(duì)理解應(yīng)用程序如何通過API相互交互,更容易識(shí)別和解決應(yīng)用程序性能問題。
持續(xù)集成(CI)/持續(xù)部署(CD)日志
隨著持續(xù)集成(CI)/持續(xù)部署(CD)管道成為DevOps生態(tài)系統(tǒng)的重要元素,監(jiān)控它們對(duì)于DevOps的成功至關(guān)重要。持續(xù)集成(CI)日志有助于確保代碼構(gòu)建平穩(wěn)運(yùn)行。否則,日志將通知組織代碼構(gòu)建中的錯(cuò)誤或警告。因此,監(jiān)控持續(xù)集成(CI)日志有助于識(shí)別構(gòu)建管道中的潛在問題并主動(dòng)解決它們。同樣,持續(xù)部署(CD)日志會(huì)告知整個(gè)管道的運(yùn)行狀況和狀態(tài)。因此,監(jiān)控持續(xù)部署(CD)日志可以幫助DevOps團(tuán)隊(duì)輕松地排除任何失敗的部署并修復(fù)潛在的問題。
配置管理更改日志
配置管理更改日志幫助DevOps團(tuán)隊(duì)深入了解系統(tǒng)的運(yùn)行狀況和重要更改(包括人工和自動(dòng)更改)。因此,監(jiān)控這些日志使組織的團(tuán)隊(duì)能夠跟蹤對(duì)系統(tǒng)所做的更改,識(shí)別未經(jīng)授權(quán)的更改并糾正問題。
代碼插裝
代碼插入是將代碼添加到應(yīng)用程序的過程。這一過程使組織能夠收集有關(guān)應(yīng)用程序性能及其操作路線的數(shù)據(jù)。這對(duì)于跟蹤堆棧調(diào)用和了解場(chǎng)景值至關(guān)重要。因此,監(jiān)控這種代碼插裝結(jié)果使組織能夠衡量DevOps實(shí)踐的效率,并了解潛在的差距(如果有的話)。它還可以幫助組織識(shí)別錯(cuò)誤并改進(jìn)測(cè)試。
確定DevOps監(jiān)控的最佳實(shí)踐
就像采用DevOps本身一樣,實(shí)現(xiàn)健壯的DevOps監(jiān)控模型需要文化、流程和工具的戰(zhàn)略組合。盡管組織可以從競(jìng)爭(zhēng)對(duì)手采用DevOps監(jiān)控的方式中獲得靈感,但組織采用的正確模型必須與組織獨(dú)特的組織需求和軟件開發(fā)生命周期(SDLC)相一致。以下是一些最佳實(shí)踐,可以幫助組織更好地監(jiān)控DevOps:
知道該監(jiān)控什么
知道該監(jiān)控什么是成功的一半。因此,即使在開始實(shí)施DevOps監(jiān)控策略之前,了解需要監(jiān)控的內(nèi)容也是至關(guān)重要的。組織的監(jiān)控目標(biāo)應(yīng)該集中于服務(wù)器的性能、漏洞、用戶活動(dòng)和應(yīng)用程序日志。
明確發(fā)展目標(biāo)
組織的DevOps監(jiān)控策略必須以固定的開發(fā)目標(biāo)為錨定。這些目標(biāo)幫助組織了解DevOps監(jiān)控策略的執(zhí)行情況。最受歡迎的確保實(shí)現(xiàn)目標(biāo)的方法是跟蹤每個(gè)Sprint持續(xù)時(shí)間,并測(cè)量用于識(shí)別、記錄和糾正問題的時(shí)間。利用機(jī)器學(xué)習(xí)技術(shù)自動(dòng)化配置過程可以幫助組織節(jié)省大量時(shí)間并避免人工錯(cuò)誤。
監(jiān)控用戶活動(dòng)
監(jiān)控用戶活動(dòng)是最重要的監(jiān)控類型之一。它可以幫助組織跟蹤不尋常的請(qǐng)求,多次登錄嘗試,從未知設(shè)備登錄,以及任何可疑的用戶活動(dòng),如開發(fā)人員試圖訪問管理帳戶。通過監(jiān)控用戶活動(dòng),組織可以確保正確的用戶正在訪問正確的資源。這個(gè)過程有助于防止對(duì)系統(tǒng)的潛在威脅,并減輕網(wǎng)絡(luò)攻擊。
選擇合適的監(jiān)控工具
從DevOps生態(tài)系統(tǒng)中大量可用的工具中選擇正確的DevOps監(jiān)控工具集是一項(xiàng)艱巨的任務(wù)。選擇最適合軟件開發(fā)生命周期(SDLC)和應(yīng)用程序基礎(chǔ)設(shè)施的精確工具始于評(píng)估過程。它主要涉及了解工具的特性和功能,以便輕松評(píng)估它是否最適合應(yīng)用程序或基礎(chǔ)設(shè)施監(jiān)控。所以,在評(píng)估DevOps監(jiān)控工具時(shí),需要問一些問題:
- 該工具易于集成嗎?確保監(jiān)控工具可以輕松地與DevOps管道和更廣泛的技術(shù)堆棧集成。這可以幫助組織輕松地生成操作和警報(bào)。
- 該工具是否提供了新的事物?收集大量數(shù)據(jù)的DevOps監(jiān)控工具比其他工具要好。然而,更多的數(shù)據(jù)需要更多的關(guān)注,使用更多的存儲(chǔ)空間,需要更多的管理。因此,要選擇為新的監(jiān)測(cè)途徑鋪平道路的監(jiān)測(cè)工具,而不是那些提供正常功能的監(jiān)測(cè)工具。
- 該工具是否提供統(tǒng)一的儀表板? 組織的DevOps生態(tài)系統(tǒng)由許多協(xié)同工作的服務(wù)、庫和產(chǎn)品組成。因此,提供統(tǒng)一儀表板的DevOps監(jiān)控工具可以幫助組織獲得整個(gè)DevOps生命周期的完整性、實(shí)時(shí)可見性,并更容易識(shí)別問題和差距。
- 該工具提供什么類型的審計(jì)日志?了解系統(tǒng)的當(dāng)前狀態(tài)非常重要,特別是在出現(xiàn)問題時(shí)。審計(jì)日志提供的逐項(xiàng)操作記錄使組織能夠了解發(fā)生了什么,確定哪個(gè)流程或人員負(fù)責(zé),分析根本原因,并為了解系統(tǒng)中的差距提供基礎(chǔ)。那么,組織的工具提供什么類型的審計(jì)日志,它們?nèi)绾翁峁╆P(guān)鍵信息?
- 工具的數(shù)據(jù)存儲(chǔ)需求是什么?DevOps監(jiān)控工具會(huì)生成大量的數(shù)據(jù)。因此,了解該工具的存儲(chǔ)需求和云存儲(chǔ)成本非常重要,以便在不超過其使用壽命的情況下保存有用的歷史記錄。
- 該工具提供哪些類型的診斷?檢查監(jiān)控工具是否提醒注意事項(xiàng)或幫助組織診斷基本問題。選擇綜合工具(例如應(yīng)用程序性能監(jiān)控平臺(tái))以了解復(fù)雜場(chǎng)景中發(fā)生的情況,例如多個(gè)異步微服務(wù)一起工作。
原文標(biāo)題:What Is DevOps Monitoring and How to Implement It in Your Organization,作者:Gilbert Martin