柳州網站建設,十五年品牌  Tel:4006-130-670 15877267431 / 13788620417

柳州網站建設之基于海量日志和時序數據的質量建設**實踐

 二維碼 1
發表時間:2021-10-15 10:46

DevOps研發模式的挑戰下,一個系統從開發、測試、到上線的整個過程中,會產生大量的日志、指標、事件以及告警等數據,這也給企業質量平臺建設帶來了很大的挑戰。本議題主要通過可觀測性的角度來討論基于海量日志和時序數據的質量建設**實踐。

二   質量建設痛點

眾所周知,在云原生開發模式下,可觀測性是非常重要的一部分,它通過日志、指標、Trace等數據,讓我們可以深入了解系統的運行狀態和健康程度。在 CNCF Landscape大圖中,可觀測性也占據了相當大的一塊位置。

然而在實際使用過程中,許多人對可觀測性的關注,主要集中在系統上線之后。這當然是沒有問題的,但實際上,從一個系統開發開始,一直到線上運行,都是可以從可觀測的角度來對系統的質量進行評估和衡量,我們可以稱之為對質量的觀測。

下圖比較概括地描述了一個系統的質量觀測完整生命周期,大體上可以分為如下四個階段,并且在每個階段都有需要特別關注的一些數據和指標:

開發階段:重點需要關注代碼的質量,例如靜態代碼掃描以及依賴檢查會發現潛在的代碼缺陷和安全風險,由此我們可以統計千行代碼缺陷率或者嚴重缺陷比例,從而來衡量一個系統的代碼質量是否符合要求

測試階段:在此階段需要重點關注測試的質量,例如測試覆蓋率,以及測試用例的失敗率等指標

灰度驗證:需要關注系統的穩定性以及不同版本之間的差異,因此也會有一系列的業務指標,例如HTTP Error 比例,不同版本的延遲等指標的對比

線上運行:此時需要重點關注系統的穩定性以及業務的穩定性,因此各種線上的性能指標、業務指標、應用日志、Trace等各種數據都是非常重要的

在整個質量觀測的生命周期中,除了各種各樣的數據,我們也會涉及到各種各樣的系統,例如 GitLab、sonarqube、Allure、JMeter、Jenkins、Travis CI、Argo CD 等等。這些不同的系統作用于不同的階段,會產生大量的異構數據,如何對這些數據進行合理的管理和使用,從而可以比較方便地挖掘出其中的數據價值(不局限于軟件質量方面),對我們來說是一個比較大的挑戰。

基于上述的討論,我們可以大體總結出質量觀測的幾個痛點:

海量的異構數據:在系統開發、測試、驗證、上線等各個階段產生了大量的日志、時序、Trace 等數據,這些數據產生的位置、數據格式、以及存儲的位置,都有可能是不一樣的。如何從這些數據中快速精準地挖掘出潛在的質量問題比較困難。

依賴規則,缺乏智能:質量監控比較依賴于人的經驗,很大程度上受限于人為設定的規則和閾值,無法做到數據自適應,因此無法發揮出真正的數據價值。另一方面就是隨著系統的發展和演進,需要大量的人工干涉和不斷調整,才能夠讓監控比較有效。

告警風暴與告警誤報:為了不錯過細微的問題,我們可能會配置大量的監控,從而導致在完整的軟件生命周期中可能產生大量的告警,難以從其中識別出有效信息。另外大量的告警也帶了很大程度上的誤報問題,從而導致“狼來了”效應,于是真正的問題反而很容易又被忽略掉。這就陷入了惡性循環。

三   數據統一接入和管理

1   海量數據管理痛點

首先我們來探討**個痛點,也就是如何對海量的異構數據進行管理。目前可觀測性相關的系統五花八門。

例如日志可能會使用 ELK 或者 Splunk,指標會使用 Prometheus,Trace 使用 Skywalking、Jaeger 或者 zipkin。但太多的選擇也不見得是好事,在這種情況下,可觀測性數據的管理又給我們帶來了如下幾個痛點:

運維成本高:完整的質量系統需要數個甚至十多個軟件的協同,從而也帶了極高的運維成本。

學習成本高:每個軟件都有自己的使用插件、插件系統,有些還會有自己的DSL語法,學習成本非常高,很難完全掌握使用。

擴展困難:隨著數據規模的增長,軟件的擴展能力、性能、穩定能力等方面都會有很大的挑戰。

數據孤島:不同的數據處于不同的系統中,協同困難。例如想要將 ES 中的日志和 Prometheus 中的指標進行一個 Join 查詢就無法實現,除非做額外的二次開發。

2   數據統一接入和管理

基于上述幾個痛點,我們的解決方案是將這些異構的數據進行統一的存儲和管理,如下圖所示:


微信圖片_20211015104432.jpg


在這里,我們將日志、指標、Trace等數據全部接入到一個統一的可觀測性存儲中。然后基于這個統一的存儲,進行后續的查詢分析、可視化、監控告警、AI 等上層能力,甚至還可以進行數據的加工和規整,一站式地完成異構數據到同構數據的轉換過程。

基于統一的存儲,我們可以構建統一的查詢和分析語法,從而一套語法適配不同的數據,并且讓不同的數據之間進行聯合查詢也變成了可能。如下圖所示,我們以標準 SQL 為基礎,進行了部分 DSL 擴展和 SQL 函數擴展,并融合了 PromQL,從而讓不同類型的數據查詢和分析變得統一。

來源:阿里技術

15年來,我們專注于為用戶提供高品質的網站建設服務,與用戶共創未來!


會員登錄
登錄
其他帳號登錄:
留言
回到頂部
<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>