事情的開頭,是一位數(shù)據(jù)應(yīng)用業(yè)務(wù)部門的同事找到我們,咨詢了一個(gè)經(jīng)典問題:
「需求方經(jīng)常說我們做的報(bào)表看起來數(shù)據(jù)不準(zhǔn),有什么辦法嗎?」
為了解釋這個(gè)問題,我以我們團(tuán)隊(duì)在數(shù)據(jù)質(zhì)量管理中積累下來的方法,為他寫下四行字:
數(shù)據(jù)質(zhì)量期望——業(yè)務(wù)需求想要把數(shù)據(jù)質(zhì)量保障到什么樣的標(biāo)準(zhǔn)
數(shù)據(jù)質(zhì)量測(cè)量——怎么評(píng)估數(shù)據(jù)質(zhì)量水平的高低、是否達(dá)到標(biāo)準(zhǔn)
數(shù)據(jù)質(zhì)量保障——為提升質(zhì)量水平,達(dá)到質(zhì)量期望,具體的保障實(shí)施動(dòng)作和內(nèi)容
數(shù)據(jù)質(zhì)量運(yùn)營(yíng)——如何通過數(shù)據(jù)化運(yùn)營(yíng),提高保障的成果與效率
這四行字,概括了我們?cè)跀?shù)據(jù)質(zhì)量管理執(zhí)行中的理論大綱。

01 關(guān)于數(shù)據(jù)質(zhì)量期望
「你在需求溝通時(shí),了解對(duì)方的數(shù)據(jù)質(zhì)量期望么?」
數(shù)據(jù)質(zhì)量是由需求定義的。它沒有絕對(duì)的對(duì)與錯(cuò),只有定性、定量的標(biāo)準(zhǔn)。我們需要事先了解需求方的質(zhì)量期望,才能與需求方就「質(zhì)量達(dá)標(biāo)」的標(biāo)準(zhǔn)達(dá)成細(xì)節(jié)上的共識(shí)。
我舉個(gè)例子,我們經(jīng)常遇到一種情況:我們明知這份數(shù)據(jù)存在問題,但依然選擇使用它。只要我們把這份數(shù)據(jù)的問題點(diǎn)拋出,下游消費(fèi)者理解并接受它的問題、并做好兜底方案即可。這種方式,是通過主動(dòng)降低質(zhì)量期望來避免數(shù)據(jù)事故。
要如何知曉對(duì)方的質(zhì)量期望?
最好不要直接詢問:「你需要怎樣的保障,怎樣的監(jiān)控?」因?yàn)樾枨蠓讲灰欢ㄊ菍I(yè)的開發(fā)人士,他們可能會(huì)遺漏,或者,他們無法用運(yùn)維語言來表達(dá)。
于是我們?cè)O(shè)計(jì)了以下三組問題,在日常的數(shù)據(jù)需求溝通中,主動(dòng)向需求方提問確認(rèn):
第一組:獲得質(zhì)量期望

第二組:評(píng)估可能存在的風(fēng)險(xiǎn)

當(dāng)然,對(duì)于風(fēng)險(xiǎn)的評(píng)估,上述問題只是冰山一角。
第三組:與需求方溝通一下業(yè)務(wù)知識(shí)認(rèn)知

這些問題很容易想當(dāng)然,同時(shí),也是相當(dāng)致命的。比如說,需求方需要視頻稿件的CTR,恰巧我們?cè)缫炎龊昧薈TR指標(biāo),便直接提供給他使用了。但如果這位需求方理解的CTR和我們的統(tǒng)計(jì)口徑不一致呢?他得到了他期望的數(shù)據(jù)嗎?
質(zhì)量期望的溝通,在什么時(shí)機(jī)最合適?
從實(shí)踐中我們得出,獲得質(zhì)量期望的最佳時(shí)機(jī),是在需求溝通階段。這個(gè)階段還沒有大量資源、人力的投入,發(fā)生需求變故的成本最小。
所以我們將質(zhì)量期望的信息收集安排在需求預(yù)審環(huán)節(jié)。把上述三類問題組織成一個(gè)預(yù)審溝通模板,要求每一位參與需求預(yù)審的數(shù)據(jù)開發(fā)人員養(yǎng)成詢問質(zhì)量期望的習(xí)慣。
經(jīng)此溝通,能夠讓需求方有準(zhǔn)確的業(yè)務(wù)認(rèn)知,能夠建立我們與需求方、上游業(yè)務(wù)研發(fā)、下游消費(fèi)者之間的質(zhì)量期望與風(fēng)險(xiǎn)知曉的共識(shí),能夠引導(dǎo)需求方降低質(zhì)量期望,或引導(dǎo)業(yè)務(wù)研發(fā)消除當(dāng)前的風(fēng)險(xiǎn)。
02 關(guān)于數(shù)據(jù)質(zhì)量測(cè)量
「你知道怎么評(píng)估數(shù)據(jù)質(zhì)量水平的高低,判斷質(zhì)量是否達(dá)標(biāo)嗎?」
既然數(shù)據(jù)質(zhì)量沒有絕對(duì)的對(duì)與錯(cuò),只有可定性、定量的標(biāo)準(zhǔn)。那么表達(dá)數(shù)據(jù)質(zhì)量水平的方法,就是與標(biāo)準(zhǔn)所包含的規(guī)則做測(cè)量對(duì)比。可以稱之為數(shù)據(jù)質(zhì)量測(cè)量。
既然要測(cè)量,我們首先要先設(shè)計(jì)測(cè)量規(guī)則。
規(guī)則的設(shè)計(jì),決定了我們?cè)谫|(zhì)量測(cè)量過程中——能夠發(fā)現(xiàn)哪些問題、不能發(fā)現(xiàn)哪些問題。我們首先要明確哪些問題的暴露是需要的,哪些是不需要的。我們將規(guī)則拆分為基礎(chǔ)規(guī)則與個(gè)性化規(guī)則。
基礎(chǔ)規(guī)則:指可對(duì)大部分?jǐn)?shù)據(jù)通用的規(guī)則。如,條數(shù)為0監(jiān)控、主鍵重復(fù)監(jiān)控等,這類異常在大部分場(chǎng)景都應(yīng)當(dāng)被暴露。
基礎(chǔ)規(guī)則通常無須自行設(shè)計(jì),平臺(tái)會(huì)提供統(tǒng)一的配置,來保障基礎(chǔ)規(guī)則的覆蓋。
個(gè)性化規(guī)則:指每一份數(shù)據(jù)根據(jù)實(shí)際用數(shù)情況,做針對(duì)性設(shè)計(jì)的規(guī)則。
個(gè)性化規(guī)則要從質(zhì)量期望中去提煉。我們用一個(gè)真實(shí)(經(jīng)脫敏修飾)的質(zhì)量期望案例來說明這個(gè)提煉過程。
我們有一份源自客戶端上報(bào)的【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】,它的下游消費(fèi)者眾多,我們從消費(fèi)者的質(zhì)量期望中合并出一份最高期望(取規(guī)則的并集,且每個(gè)規(guī)則取要求最高的一項(xiàng))。
【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】質(zhì)量期望與規(guī)則提煉實(shí)例:

總得來說,質(zhì)量期望一般來源于
(1)場(chǎng)景和對(duì)象的特殊性、
(2)業(yè)務(wù)流程和數(shù)據(jù)生產(chǎn)邏輯、
(3)數(shù)據(jù)標(biāo)準(zhǔn)、
(4)數(shù)據(jù)自身特點(diǎn)、
(5)某時(shí)某地的業(yè)務(wù)背景。所以我們的測(cè)量規(guī)則也基于這些提煉。

規(guī)則又可以拆解為兩個(gè)部分:規(guī)則指標(biāo)、規(guī)則判定。
比如【傳輸丟失率<某閾值】這條規(guī)則中,【傳輸丟失率】為規(guī)則指標(biāo),【<某閾值】為規(guī)則判定。
規(guī)則指標(biāo)分類及舉例:

規(guī)則判定分類:

設(shè)計(jì)好規(guī)則,還要明確在什么時(shí)機(jī)做質(zhì)量測(cè)量。
我們把測(cè)量的時(shí)機(jī)分成三種,對(duì)應(yīng)三種測(cè)量形式:初始化測(cè)量、驗(yàn)收測(cè)量、生產(chǎn)測(cè)量。

為了讓這三種時(shí)機(jī)融入到團(tuán)隊(duì)的開發(fā)工作中,我們將這三個(gè)時(shí)機(jī)與數(shù)據(jù)需求管理的流轉(zhuǎn)步驟掛鉤,要求需求流轉(zhuǎn)的交付內(nèi)容中包含三次測(cè)量的執(zhí)行報(bào)告。
初始化測(cè)量:
發(fā)生在數(shù)據(jù)需求的預(yù)審期、或開發(fā)前期。以一次性數(shù)據(jù)探查的形式,探查一份新數(shù)據(jù)、或老數(shù)據(jù)的新屬性存在的潛在風(fēng)險(xiǎn)。這些風(fēng)險(xiǎn)可能是業(yè)務(wù)邏輯中的缺陷、或者未做標(biāo)準(zhǔn)化定義的隱患等,所以我們除了關(guān)注數(shù)據(jù)自身的測(cè)量結(jié)果,還要關(guān)注文檔等上游信息輸入。
初始化測(cè)量,幫助我們規(guī)避低質(zhì)量數(shù)據(jù)輸入到我們的生產(chǎn)鏈路。
驗(yàn)收測(cè)量:
發(fā)生在數(shù)據(jù)需求的驗(yàn)收期。不但全新的數(shù)據(jù)需要全方位驗(yàn)收,變更需求同樣需要。根據(jù)我們的事故經(jīng)驗(yàn),超過90%的數(shù)據(jù)質(zhì)量事故,是由變更發(fā)布帶來的。
驗(yàn)收測(cè)量,幫助我們規(guī)避變更發(fā)布帶來的數(shù)據(jù)異常。
生產(chǎn)測(cè)量:
生產(chǎn)測(cè)量的配置和首次執(zhí)行發(fā)生在需求交付前觀察期,日常執(zhí)行發(fā)生在交付后的日常生產(chǎn)過程中。穩(wěn)定的生產(chǎn)鏈路理論上有穩(wěn)定的質(zhì)量,但不可忽視偶發(fā)性的不穩(wěn)定問題,比如底層組件異常、調(diào)度服務(wù)異常等。
生產(chǎn)測(cè)量,幫助我們規(guī)避外界偶發(fā)性問題影響數(shù)據(jù)的產(chǎn)出。
有了質(zhì)量測(cè)量,我們可以隨時(shí)通過規(guī)則的統(tǒng)計(jì)與判定,來長(zhǎng)期監(jiān)控質(zhì)量水平、及時(shí)發(fā)現(xiàn)異常問題。
03 關(guān)于數(shù)據(jù)質(zhì)量保障
「如果質(zhì)量測(cè)量的結(jié)果不理想,要做哪些事才能提升質(zhì)量水平?」
數(shù)據(jù)質(zhì)量水平的提升,是經(jīng)由數(shù)據(jù)質(zhì)量保障的實(shí)施才能實(shí)現(xiàn)的。這個(gè)「保障」具體要保障什么?做哪些事來保障?
質(zhì)量測(cè)量的規(guī)則是根據(jù)質(zhì)量期望來設(shè)計(jì),那么相應(yīng)的,測(cè)量報(bào)告中的指標(biāo)異常,也要能告訴大家哪一條期望沒有達(dá)標(biāo)。我們應(yīng)當(dāng)先針對(duì)未達(dá)標(biāo)的期望來做保障的實(shí)施。
我們延續(xù)上一小節(jié)的【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】,來說明發(fā)現(xiàn)問題后保障實(shí)施的過程。
在質(zhì)量期望中,對(duì)f5這個(gè)屬性有這樣一條期望描述:

而在真實(shí)的數(shù)據(jù)中,測(cè)量報(bào)告表明f5屬性的質(zhì)量并沒有達(dá)到期望。即,f5這個(gè)屬性存在大量空值。
由于這是數(shù)據(jù)源日志,尚未經(jīng)過ETL處理,可認(rèn)為f5屬性異常發(fā)生在數(shù)據(jù)上報(bào)和數(shù)據(jù)集成接收的環(huán)節(jié),再加上其他判斷條件,我們基本認(rèn)定這個(gè)異常發(fā)生在上報(bào)環(huán)節(jié)。通過對(duì)異常數(shù)據(jù)的統(tǒng)計(jì)分析,進(jìn)一步定位到這個(gè)異常只發(fā)生在某幾個(gè)頁面,其余頁面都是正常的。接下來,我們就要做兩項(xiàng)實(shí)施來修復(fù)異常且使它不再發(fā)生:
根據(jù)埋點(diǎn)異常修復(fù)流程,由客戶端修復(fù)這個(gè)上報(bào)異常。
在測(cè)試環(huán)節(jié)補(bǔ)充這條測(cè)試用例,在后續(xù)的變更中,可通過該測(cè)試用例阻截異常。
在這個(gè)case中:
首先,我們有質(zhì)量測(cè)量來監(jiān)控?cái)?shù)據(jù)的質(zhì)量水平;
其次,我們有異常修復(fù)流程來修復(fù)它,解決本次問題,也有變更流程來測(cè)試它,避免同樣的問題再次發(fā)生;
接著,我們有明確的責(zé)任制度,在上述流程中,各個(gè)責(zé)任方知曉自己的執(zhí)行責(zé)任;
最后,我們的各個(gè)責(zé)任方,有撥冗相應(yīng)的人力工時(shí)資源,來將這個(gè)埋點(diǎn)的監(jiān)控、修復(fù)、測(cè)試工作落地。
我習(xí)慣將質(zhì)量保障的實(shí)施分為四個(gè)類別,缺一不可。

1)流程保障
為何要有流程?
在安全管理領(lǐng)域,極度注重標(biāo)準(zhǔn)操作流程的制定和實(shí)施。飛機(jī)乘務(wù)員關(guān)閉艙門的操作、化工廠轉(zhuǎn)運(yùn)化學(xué)品的操作,都有嚴(yán)格的標(biāo)準(zhǔn)操作流程,而這些流程強(qiáng)大到能夠保障人員的生命安全。可見,流程保障是一種強(qiáng)有力的保障措施。
在我們的流程保障中,需要重點(diǎn)講述的是數(shù)據(jù)準(zhǔn)入、發(fā)布變更這兩個(gè)流程。
數(shù)據(jù)準(zhǔn)入:
曾經(jīng)發(fā)生過一個(gè)case,有一個(gè)新的產(chǎn)品A,在做埋點(diǎn)上報(bào)開發(fā)時(shí),直接copy了另一個(gè)產(chǎn)品B的上報(bào)腳本,導(dǎo)致用以區(qū)分這兩個(gè)產(chǎn)品的關(guān)鍵屬性appid上報(bào)為同一個(gè)值,從而影響了產(chǎn)品B的核心指標(biāo)。
在這次case的復(fù)盤中,我們提出,任由一個(gè)新產(chǎn)品、新場(chǎng)景隨意接入既存的重要埋點(diǎn),顯然是不合適的。因此我們建立了數(shù)據(jù)準(zhǔn)入流程。
準(zhǔn)入流程的建立依賴幾個(gè)必要條件:
經(jīng)由準(zhǔn)入流程分配的屬性值,須做雙向綁定驗(yàn)證(上報(bào)側(cè)與埋點(diǎn)管理側(cè))。
經(jīng)由準(zhǔn)入流程分配的屬性值,上報(bào)時(shí)須由SDK或公共組件(如播放器)收斂,不可由接入業(yè)務(wù)自行填值上報(bào)。
未經(jīng)準(zhǔn)入的數(shù)據(jù),須能限制上報(bào)、或在上報(bào)后被限制接收、使用。
最終實(shí)際的流程參考下圖:

發(fā)布變更:
超過90%的數(shù)據(jù)質(zhì)量事故是由變更帶來的,這是我們?cè)诹尿?yàn)收測(cè)量時(shí)提到的一個(gè)事實(shí)。為此,發(fā)布變更必須有一套流程來保障。

如圖所示,是一個(gè)簡(jiǎn)略的埋點(diǎn)變更的流程。
2)制度保障
運(yùn)維責(zé)任制度是必須存在的。它定義了每一份數(shù)據(jù)、每一類組件、每一項(xiàng)服務(wù)的責(zé)任歸屬認(rèn)定邏輯,能夠確保任何數(shù)據(jù)在各個(gè)環(huán)節(jié)都有其質(zhì)量保障的執(zhí)行負(fù)責(zé)人。
運(yùn)維分級(jí)制度也是必須存在的。它定義了每一份數(shù)據(jù)在全生命周期的各個(gè)環(huán)節(jié),能得到哪一層標(biāo)準(zhǔn)的保障,且高等級(jí)數(shù)據(jù)一定能獲得比低等級(jí)數(shù)據(jù)更穩(wěn)定的保障。
我們對(duì)分級(jí)的定義,會(huì)從以下幾個(gè)方面來評(píng)估:
涉及財(cái)報(bào)、營(yíng)收、資損
涉及業(yè)務(wù)重大決策
涉及線上功能服務(wù)與用戶體驗(yàn)
涉及有關(guān)部門監(jiān)管內(nèi)容
事故處罰制度是可以選擇的制度(當(dāng)然我們推薦它存在)。它定義了異常發(fā)生后的過失成本。
我們的事故定義、事故等級(jí)的劃分,會(huì)從多種指標(biāo)來評(píng)估:
資損的量級(jí)
客訴的量級(jí)
數(shù)據(jù)異常的幅度和時(shí)長(zhǎng)
數(shù)據(jù)的可恢復(fù)性
數(shù)據(jù)異常的影響PV、UV
數(shù)據(jù)修復(fù)的人力工時(shí)成本
此外,在新的周期,我們也吸收了前幾個(gè)周期的經(jīng)驗(yàn),除了消極壓力的處罰制度,還考慮增加積極鼓勵(lì)的獎(jiǎng)勵(lì)制度。
3)監(jiān)控保障
我們認(rèn)為監(jiān)控保障包含了四項(xiàng)工作:
1. 監(jiān)視、監(jiān)聽:長(zhǎng)時(shí)間觀察數(shù)據(jù)生產(chǎn)的健康情況;
這個(gè)健康情況,包含大數(shù)據(jù)組件的穩(wěn)定性、大數(shù)據(jù)資源使用用量、任務(wù)運(yùn)行狀態(tài)、數(shù)據(jù)產(chǎn)出結(jié)果的校驗(yàn)等。
2. 測(cè)量:即我們?cè)谇拔乃傅馁|(zhì)量測(cè)量;
3. 督促:促使相關(guān)責(zé)任方去處理問題;
通常,通過群消息推送、企業(yè)微信告警、電話告警等不同等級(jí)的信息通知來實(shí)現(xiàn)。
4. 糾偏:輔助執(zhí)行問題的處理。
告警原因分析、任務(wù)阻斷等功能,就屬于這一類。
4)資源保障
資源保障指的是針對(duì)不同運(yùn)維等級(jí)的資源傾斜,且這里的資源包含兩重意義:
物理資源:CPU和內(nèi)存,磁盤容量,帶寬等。
人力工時(shí)資源:測(cè)試、校驗(yàn)的執(zhí)行排期、運(yùn)維響應(yīng)速度、異常修復(fù)順序等。
繼續(xù)回到【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】這份數(shù)據(jù),來看一看我們對(duì)它的上下游鏈路實(shí)施了哪些保障。

把上述四類保障建設(shè)完成,那么我們的數(shù)據(jù)質(zhì)量保障體系就完成了從「0」到「1」的過程。
04 關(guān)于數(shù)據(jù)質(zhì)量運(yùn)營(yíng)
「單份數(shù)據(jù)可以人工跟進(jìn)保障實(shí)施情況,但成千上萬的數(shù)據(jù),怎么知道每一份數(shù)據(jù)該怎么保障、有沒有實(shí)施、實(shí)施效果好不好呢?」
我們來思考一下執(zhí)行質(zhì)量保障措施的目的是什么。質(zhì)量保障的實(shí)施,其目的在于規(guī)避異常,它需要在每個(gè)上游環(huán)節(jié)中:
發(fā)現(xiàn)異常
攔截異常
處理異常
由此可見,它的基礎(chǔ)標(biāo)準(zhǔn)應(yīng)當(dāng)是:
確實(shí)發(fā)現(xiàn)了異常
確實(shí)攔截了異常
確實(shí)處理了異常
以達(dá)到最終節(jié)點(diǎn)規(guī)避異常的目的。
我們繼續(xù)思考,誰,在什么時(shí)機(jī),通過什么方式,消耗多少人力工時(shí),會(huì)造成多少損失?
任何一個(gè)人都希望能規(guī)避所有異常,且即使真的發(fā)生異常,也能在造成損失前處理完畢。那么,我們要進(jìn)一步提升它的標(biāo)準(zhǔn):
在有限的測(cè)試、驗(yàn)收工時(shí)里最大程度攔截異常發(fā)布
上游比下游先一步發(fā)現(xiàn)異常
異常的告警最早通知到能處理這個(gè)異常的人
在人力介入之前,系統(tǒng)率先自動(dòng)攔截異常
處理人員以最短路徑、最小成本處理異常
不讓同樣的問題再一次重復(fù)發(fā)生
可以看到,質(zhì)量保障的基礎(chǔ)要求體現(xiàn)在通過保障避免損失,進(jìn)階要求體現(xiàn)在保障效率的提升。我們由此得到數(shù)據(jù)質(zhì)量運(yùn)營(yíng)的兩個(gè)運(yùn)營(yíng)目標(biāo):
降低事故損失
提升保障效率
作為數(shù)據(jù)工作者,我們理所當(dāng)然要通過數(shù)據(jù)化運(yùn)營(yíng)來實(shí)現(xiàn)我們的目標(biāo)。為此,我們?cè)O(shè)計(jì)了質(zhì)量運(yùn)營(yíng)的指標(biāo)體系。
我們的質(zhì)量運(yùn)營(yíng)指標(biāo)體系是基于我們的治理指標(biāo)體系建設(shè)模型,包含:治理目標(biāo)、治理策略、治理評(píng)估。下述為我們最近幾個(gè)周期質(zhì)量運(yùn)營(yíng)指標(biāo)體系的概圖。

其中,治理策略矩陣代表著,我們需要對(duì)生命周期中每一個(gè)環(huán)節(jié)的事前、事中、事后,都去制定保障標(biāo)準(zhǔn)、設(shè)計(jì)執(zhí)行策略的規(guī)則,以及提供相應(yīng)的工具能力。
(一)制定保障標(biāo)準(zhǔn)
標(biāo)準(zhǔn)是一個(gè)執(zhí)行參照。
告訴所有人怎樣算達(dá)標(biāo),按什么流程最安全……等等。標(biāo)準(zhǔn)統(tǒng)一了我們?cè)谫|(zhì)量保障執(zhí)行過程中的意識(shí)和行為,杜絕責(zé)任推諉。
保障標(biāo)準(zhǔn)來源于各類質(zhì)量期望的匯總,其中公共的、通用的部分,應(yīng)對(duì)所有用戶公示。它可能會(huì)經(jīng)歷談判、妥協(xié),最終達(dá)成意見的一致。它包含并不限于:
服務(wù)SLA標(biāo)準(zhǔn)
測(cè)試/監(jiān)控覆蓋標(biāo)準(zhǔn)
異常響應(yīng)時(shí)效標(biāo)準(zhǔn)
資源劃分標(biāo)準(zhǔn)
標(biāo)準(zhǔn)需要分級(jí),不同運(yùn)維保障等級(jí),映射到不同的保障標(biāo)準(zhǔn)值。
團(tuán)隊(duì)的人員精力、物理資源都是有限的,要在有限范圍內(nèi)保障最重要的部分。
比如我們?cè)谇拔奶岬降?strong>【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】這份數(shù)據(jù),依照運(yùn)維分級(jí)制度,屬于P0級(jí)。作為P0等級(jí)的數(shù)據(jù),其數(shù)據(jù)時(shí)效保障為1分,響應(yīng)時(shí)效要求是15分鐘。而其他P1級(jí)甚至更低等級(jí)的數(shù)據(jù),時(shí)效標(biāo)準(zhǔn)就會(huì)逐級(jí)放低。
(二)設(shè)計(jì)執(zhí)行策略的具體規(guī)則
規(guī)則是標(biāo)準(zhǔn)展開的細(xì)則。
比如我們將事件處理標(biāo)準(zhǔn)流程展開,當(dāng)異常發(fā)生時(shí),我們的標(biāo)準(zhǔn)流程是先止損、再修復(fù)。基于這個(gè)標(biāo)準(zhǔn),假設(shè)【業(yè)務(wù)對(duì)象曝光與點(diǎn)擊日志】這份數(shù)據(jù)在某個(gè)環(huán)節(jié)出現(xiàn)異常,我們的細(xì)化規(guī)則是:
該環(huán)節(jié)的異常處理人必須直接收到告警,并在10分鐘內(nèi)響應(yīng);
10分鐘內(nèi)無響應(yīng),會(huì)上升至技術(shù)LD;
收到告警后,先通知到能夠做災(zāi)備切換的人員(最快、最短鏈路),再將信息同步到該項(xiàng)目的應(yīng)急響應(yīng)群;
異常處理人說明異常原因,評(píng)估修復(fù)耗時(shí);
根據(jù)該項(xiàng)目的災(zāi)備啟動(dòng)條件,災(zāi)備執(zhí)行人判斷是否啟動(dòng)災(zāi)備方案;
修復(fù)問題;
切回主方案。
這些規(guī)則使大家遠(yuǎn)離誤操作,提高執(zhí)行效率。也能讓一個(gè)新人快速上手,降低執(zhí)行難度。
另外從中我們也看到,這項(xiàng)事件處理規(guī)則有幾個(gè)前提規(guī)則:
需要有全鏈路的監(jiān)控覆蓋
需要有災(zāi)備方案
需要有告警升級(jí)機(jī)制和通知機(jī)制
(三)提供工具能力
目前,我們已經(jīng)積累了一批工具,用于數(shù)據(jù)生命周期的各個(gè)環(huán)節(jié),提供自動(dòng)執(zhí)行能力。
比如監(jiān)控告警工具、基線管理工具、DQC管理工具、指標(biāo)異動(dòng)工具、運(yùn)維操作工具等,可以在公眾號(hào)的其他文章中獲得詳細(xì)了解。
策略的執(zhí)行需要評(píng)估效果好壞,以隨時(shí)調(diào)整策略規(guī)則、或改進(jìn)工具能力。如何評(píng)估策略的執(zhí)行效果,就需要我們做評(píng)估指標(biāo)的設(shè)計(jì)。
評(píng)估指標(biāo)的設(shè)計(jì)原則,一是必須從第一層目標(biāo)指標(biāo)拆解而來,二是能夠暴露出現(xiàn)狀中的問題點(diǎn),三是能夠評(píng)估治理策略的執(zhí)行進(jìn)度,四是能夠評(píng)估效果收益。這樣的設(shè)計(jì),使運(yùn)營(yíng)工作處于一個(gè)從指標(biāo)中發(fā)現(xiàn)問題-問題解決后體現(xiàn)在指標(biāo)中的持續(xù)性循環(huán)中,不斷逼近、最終完成目標(biāo)。

在前面的質(zhì)量運(yùn)營(yíng)指標(biāo)體系概圖中,我們先將目標(biāo)指標(biāo)(事故次數(shù))拆解為與事故直接相關(guān)的事故定級(jí)指標(biāo)。

定級(jí)指標(biāo)的值幅度降低,則事故次數(shù)就降低。
那么,接下來我們要拆解定級(jí)指標(biāo)的降低與哪些執(zhí)行指標(biāo)相關(guān),這一步拆解,要與策略規(guī)則直接綁定。因?yàn)闊o法評(píng)估效果的規(guī)則,在執(zhí)行上很難有說服力,不容易落地。

測(cè)試覆蓋率,與測(cè)試用例的實(shí)施綁定;監(jiān)控覆蓋率,與監(jiān)控配置的實(shí)施綁定;修復(fù)人時(shí),與運(yùn)維工具的提效優(yōu)化綁定……諸如此類。
其中概念較抽象的指標(biāo),如監(jiān)控覆蓋率這一項(xiàng),它貫穿全生命周期,且在不同環(huán)節(jié)有不同的口徑定義。
比如在數(shù)據(jù)開發(fā)環(huán)節(jié),我們要求所有P0級(jí)數(shù)據(jù)必須配置三大類監(jiān)控告警(失敗、延遲、內(nèi)容異常),且告警形式為電話告警 + 部門內(nèi)升級(jí)。這些配置規(guī)則缺一不可,只有全部完成,才計(jì)作這份數(shù)據(jù)的“監(jiān)控覆蓋完成”。通過每周審計(jì)監(jiān)控覆蓋率,來控制我們?cè)跀?shù)據(jù)開發(fā)環(huán)節(jié)的監(jiān)控保障實(shí)施。
在這里,有一個(gè)告警有效性運(yùn)營(yíng)的真實(shí)案例,能夠解釋我們的數(shù)據(jù)化運(yùn)營(yíng)方式。
先介紹一下背景,我們認(rèn)為,監(jiān)控不是越多越好,且需要隨著業(yè)務(wù)變化及時(shí)調(diào)整監(jiān)控規(guī)則。告警太多,會(huì)干擾執(zhí)行人員的運(yùn)維關(guān)注點(diǎn),對(duì)告警產(chǎn)生麻痹或抵觸情緒,乃至錯(cuò)過關(guān)鍵告警,降低異常發(fā)現(xiàn)率。
我們首先要確定在這個(gè)運(yùn)營(yíng)事項(xiàng)中,一個(gè)可持續(xù)的循環(huán)是怎樣的。根據(jù)前面提到的指標(biāo)-問題-標(biāo)準(zhǔn)-實(shí)施循環(huán)圖,我們簡(jiǎn)單列舉一下這個(gè)循環(huán):
指標(biāo):需要有指標(biāo)來暴露無效、未響應(yīng)、缺失、越級(jí)等告警缺陷
問題:將這些缺陷視為一個(gè)待治理的問題
標(biāo)準(zhǔn):定義有效告警的標(biāo)準(zhǔn)
實(shí)施:制定降低告警缺陷、提升有效告警的策略
為了便于理解,我先解釋一下告警效果的定義。
有效告警:命中規(guī)則,且確實(shí)命中異常,同時(shí)能促使處理人員快速介入。
無效告警:命中規(guī)則,但并未命中異常,通常是規(guī)則配錯(cuò)、或業(yè)務(wù)活動(dòng)導(dǎo)致。
未響應(yīng)告警:命中規(guī)則,且確實(shí)命中異常,但無人響應(yīng),或響應(yīng)人員無法、無權(quán)介入處理。
越級(jí)告警:數(shù)據(jù)運(yùn)維等級(jí)較低,但配置了標(biāo)準(zhǔn)較高的告警形式,使起夜次數(shù)虛高。
誤告:未命中規(guī)則,工具誤觸發(fā)告警。
告警缺失:發(fā)生異常,但無告警。
第一步,制定告警反饋機(jī)制,督促owner對(duì)告警進(jìn)行分級(jí)反饋。
第二步,建設(shè)告警模塊的元數(shù)據(jù)主題數(shù)倉,制作告警缺陷統(tǒng)計(jì)報(bào)表,給出待治理明細(xì)清單,推送治理信息給清單中的數(shù)據(jù)owner。
第三步,制定有效告警標(biāo)準(zhǔn)、執(zhí)行細(xì)則,督促owner給出治理優(yōu)先級(jí),確定短期長(zhǎng)期治理目標(biāo)。細(xì)則參考下圖:

第四步,定期審計(jì)告警缺陷,更新待治理清單,分析執(zhí)行進(jìn)度、治理余量、新增量的情況,逐步完成頭部高優(yōu)的部分。
第五步,工具優(yōu)化方案提出,阻截不合理新增量、自動(dòng)化處理長(zhǎng)尾余量部分。
經(jīng)過一個(gè)季度的運(yùn)營(yíng),我們的告警缺陷從每周2000+例降低到100例以下,極好地改善了異常遺漏、夜間起夜、告警反饋成本等問題。
至此,我們的數(shù)據(jù)質(zhì)量管理理論大綱就基本講述完畢了。而我們的數(shù)據(jù)質(zhì)量管理必然還沒有做到頭,還有非常多的細(xì)節(jié)場(chǎng)景有待我們圍繞這個(gè)大綱去逐個(gè)解決。
下個(gè)季度、下一年,我們會(huì)不斷有新的質(zhì)量話題拿出來討論。也許可以擴(kuò)展廣度,比如將質(zhì)量運(yùn)營(yíng)覆蓋到鏈路更前端的業(yè)務(wù)數(shù)據(jù);也許可以下探深度,對(duì)埋點(diǎn)、任務(wù)鏈路等具體的保障對(duì)象做專題展開。相信我們能做得更好,更多干貨記得關(guān)注我們哦。
(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除)