可觀察性是DevOps團隊的重要組成部分,它可以幫助組織從系統(tǒng)的輸出信息,推斷系統(tǒng)內(nèi)部狀態(tài)。它是一個持續(xù)的過程,從你的CI/CD流水線開始,并貫穿于應(yīng)用程序的整個生命周期。
可觀察的CI/CD流水線,使你能夠主動監(jiān)視問題并跟蹤CI/CD構(gòu)建期間發(fā)生的錯誤。如果沒有對流水線的可見性,在系統(tǒng)出現(xiàn)異常時,很難追溯到其根本原因。在這篇文章中,我們將討論提高系統(tǒng)可觀察性的四種技術(shù)。
1. 生產(chǎn)環(huán)境的可觀察性
有些錯誤僅在應(yīng)用程序部署到生產(chǎn)環(huán)境后才會發(fā)生,因此很難在本地復(fù)現(xiàn),有些還只是間歇性地發(fā)生。當涉及到這些問題時,傳統(tǒng)的測試和監(jiān)控是不夠的,因為它們主要用于檢查和監(jiān)控已知錯誤或問題。但是,如果你能確保你的生產(chǎn)系統(tǒng)是可觀察的,那么你可以在故障發(fā)生時盡快找到原因或解決問題,從而避免代價高昂的停機時間。應(yīng)用程序還依賴于許多關(guān)鍵組件,例如存儲、隊列等。生產(chǎn)環(huán)境的可觀察性,還使你可以監(jiān)視應(yīng)用程序所依賴的三方組件的持續(xù)正常運行的時間。生產(chǎn)環(huán)境的可觀察性有兩個關(guān)鍵部分——警報和被動監(jiān)控。
警報
監(jiān)控系統(tǒng),不斷檢測重要的系統(tǒng)事件并向組織發(fā)送警報信息。大多數(shù)警報系統(tǒng)都是可配置的,允許你在應(yīng)用程序的行為方式超出預(yù)定義閾值時發(fā)送警報。警報可以通過短信、電子郵件甚至Slack消息發(fā)送——因此開發(fā)人員和利益相關(guān)者都知道系統(tǒng)什么時候發(fā)生問題。此類警報系統(tǒng)可確保開發(fā)人員在應(yīng)用程序未按預(yù)期運行時收到通知。
被動監(jiān)控
被動監(jiān)控,對于全面了解應(yīng)用程序性能和用戶使用習(xí)慣至關(guān)重要,允許軟件團隊使用真實數(shù)據(jù)直接跟蹤用戶體驗質(zhì)量。它不會將測試數(shù)據(jù)注入網(wǎng)絡(luò)以模仿用戶行為。相反,它從各個網(wǎng)絡(luò)位置收集用戶實際數(shù)據(jù)。
2. 優(yōu)化日志記錄
日志記錄,一般包含有關(guān)軟件系統(tǒng)發(fā)生事件的信息。在對軟件進行故障排除時,日志可讓你深入了解系統(tǒng)最初出現(xiàn)故障的時間和原因。毫無疑問,日志數(shù)據(jù)為DevOps團隊提供了對被監(jiān)控應(yīng)用程序或系統(tǒng)的更高級別的可見性。這使他們能夠識別錯誤原因,以及應(yīng)用程序中特定問題發(fā)生的頻率。
但是,如果不對日志進行格式優(yōu)化和集中處理,日志數(shù)據(jù)可能會膨脹,直到變得難以使用,尤其是在分布式架構(gòu)中。當你收集大量業(yè)務(wù)無關(guān)和非結(jié)構(gòu)化數(shù)據(jù)時,日志分析的挑戰(zhàn)會增加。良好的日志記錄,會優(yōu)先記錄對應(yīng)用程序性能至關(guān)重要的指標,并確保日志消息結(jié)構(gòu)化、描述性強并包含有用的信息。該信息應(yīng)包括:
時間戳
唯一用戶ID
會話ID
資源使用信息
日志也應(yīng)該在一個集中的、可訪問的位置進行管理。這樣,你可以輕松關(guān)聯(lián)不同的日志,將它們與特定會話或用戶聯(lián)系起來,以便于更快地進行故障排除并了解整個基礎(chǔ)架構(gòu)中發(fā)生的情況。
3.DevOps文化
僅收集日志或監(jiān)控生產(chǎn)環(huán)境的應(yīng)用程序是不夠的。為了在跨職能團隊中實現(xiàn)系統(tǒng)全面的可觀察性,你還需要圍繞共同目標調(diào)整人員和團隊協(xié)作流程。盡管看似無形,但至關(guān)重要。如果團隊成員不支持該DevOps文化,組織可能無法實施戰(zhàn)略計劃。因此,DevOps文化轉(zhuǎn)型,是構(gòu)建高度可觀察的應(yīng)用程序的基礎(chǔ)。創(chuàng)建DevOps環(huán)境的最簡單方法是將運維團隊和開發(fā)團隊結(jié)合起來,這樣他們就必須進行更多的溝通和協(xié)作。要真正實現(xiàn)由可觀察性驅(qū)動的DevOps文化,你需要:
營造協(xié)作環(huán)境
對端到端負責(zé)
持續(xù)改進
關(guān)注客戶的需求
接受故障并從中學(xué)習(xí)
自動化
從軟件開發(fā)開始到結(jié)束,軟件團隊應(yīng)該始終編寫可調(diào)試的代碼。該代碼還應(yīng)包含適當?shù)腒PI、指標和日志記錄。這提高了應(yīng)用程序的整體可觀察性,并為運維團隊提供了更多數(shù)據(jù)指標來檢測故障并預(yù)測未來可能發(fā)生的故障。實現(xiàn)可觀察性不僅僅是軟件工程師和開發(fā)人員的工作,這應(yīng)該是跨職能團隊的共同責(zé)任。
可觀察性驅(qū)動的DevOps文化改變了組織對其開發(fā)過程的看法,并將運維思維方式注入到他們的日常實踐中。最終,這會提高云應(yīng)用程序的性能和可用性,同時提高團隊的生產(chǎn)力和滿意度——反過來也簡化了工作流程和協(xié)作。
4. 部署前的可觀察性
很多組織,都關(guān)注在生產(chǎn)系統(tǒng)中實現(xiàn)可觀察性,但較少強調(diào)從開發(fā)階段就使應(yīng)用程序具備可觀察的能力。部署前的可觀察性在許多日常活動中發(fā)揮著重要作用,包括決定構(gòu)建什么或如何發(fā)布新功能、優(yōu)化關(guān)鍵代碼以及應(yīng)用程序的架構(gòu)調(diào)整。部署前的可觀察性使DevOps團隊能夠主動提前修復(fù),在其代碼投入生產(chǎn)環(huán)境時可能出現(xiàn)的問題。
遠程調(diào)試
遠程調(diào)試工具提供了另一種安全感,這些工具允許開發(fā)人員調(diào)試–在本地環(huán)境之外運行的應(yīng)用程序,而不會干擾應(yīng)用程序的正常運行、還可以篩選大量日志文件或在本地復(fù)制生產(chǎn)環(huán)境。通過遠程調(diào)試,開發(fā)人員可以使用不間斷斷點輕松調(diào)試任何環(huán)境中的錯誤,包括云原生開發(fā)環(huán)境等。如果操作恰當,遠程調(diào)試可以為開發(fā)團隊節(jié)省大量金錢和時間,對于依賴云平臺、服務(wù)和基礎(chǔ)設(shè)施的組織尤其有用。
總結(jié)
雖然這四種最佳實踐都是有益的,但部署前的可觀察性是提高可觀察性的最經(jīng)濟的方法。它允許軟件開發(fā)人員及時檢測和修復(fù)代碼中的問題,同時修復(fù)成本最低,不會影響用戶。生產(chǎn)環(huán)境的可觀察性也很重要,在生產(chǎn)環(huán)境中任何事情都可能發(fā)生,許多不可預(yù)測的因素可能會破壞你的應(yīng)用程序或使其不可用,但它成本高昂。
應(yīng)用程序日志記錄也很重要,但日志管理成本也高且難以分析——尤其是在分布式系統(tǒng)中嘗試追蹤問題的根本原因時。最后,任何想要實現(xiàn)完全可觀察性的企業(yè)都應(yīng)該接受DevOps文化,但這個過程需要時間和整個組織的支持。
譯文鏈接: https://thenewstack.io/improve-your-ci-cd-observability-with-these-4-best-practices/
責(zé)任編輯:haq
-
軟件
+關(guān)注
關(guān)注
69文章
5013瀏覽量
88084 -
devops
+關(guān)注
關(guān)注
0文章
116瀏覽量
12091
原文標題:提高CI/CD可觀察性的4 個最佳實踐
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
四種常用的最大功率點跟蹤MPPT技術(shù)介紹
![<b class='flag-5'>四種</b>常用的最大功率點跟蹤MPPT<b class='flag-5'>技術(shù)</b>介紹](https://file1.elecfans.com/web2/M00/90/B6/wKgaomTcZGeAJZInAAAfzRiM67Q313.png)
私藏技術(shù)大公開!四種常見供電方案
![私藏<b class='flag-5'>技術(shù)</b>大公開!<b class='flag-5'>四種</b>常見供電方案](https://file1.elecfans.com/web3/M00/04/52/wKgZO2dyS92AJbYdAAECNJtNyM4808.png)
被問爆的四種供電方式,來啦~
![被問爆的<b class='flag-5'>四種</b>供電方式,來啦~](https://file1.elecfans.com/web3/M00/04/52/wKgZO2dyS92AJbYdAAECNJtNyM4808.png)
CI/CD方案:推動智能汽車開發(fā)的高效利器
![<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>方案:推動智能汽車開發(fā)的高效利器](https://file.elecfans.com/web2/M00/52/D4/pYYBAGLNkrKAeFJaAAAjXRuImx0496.png)
Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進和安全增強
![Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>集成支持、Klocwork分析引擎改進和安全增強](https://file1.elecfans.com/web2/M00/E7/A3/wKgZomZMQFaABPseAAAwD5kHnx4413.png)
濾波電路的四種類型是什么
負反饋的四種類型是什么
負反饋的四種類型及判斷方法
簡述四種基本觸發(fā)器及其功能
元器件的包裝方式及常見的四種方式
介紹MCUboot支持的四種升級模式(2)
![介紹MCUboot支持的<b class='flag-5'>四種</b>升級模式(2)](https://file1.elecfans.com/web2/M00/ED/3D/wKgZomZqYEaAPADEAAASpmPiNNM002.png)
評論