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