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