數(shù)智萬物下,運(yùn)維組織面臨不斷變化的內(nèi)外部環(huán)境,不僅要應(yīng)對每天海量信息轟炸,還需要對信息進(jìn)行有效思考,沉淀經(jīng)驗(yàn)轉(zhuǎn)化為能力,推動學(xué)習(xí)型組織文化。通常來說,學(xué)習(xí)包括三種:一種是向前人學(xué)習(xí),比如看書,吸收前人的歸納總結(jié),獲得知識;第二種是周邊經(jīng)驗(yàn)學(xué)習(xí),比如向周圍的朋友、領(lǐng)先的資訊知識、舉一反三經(jīng)驗(yàn)等學(xué)習(xí);第三種是向自己(個(gè)人或組織)學(xué)習(xí),通過自己的分析、討論、思考,將自己經(jīng)驗(yàn)轉(zhuǎn)化為能力或知識。而“向自己學(xué)習(xí)”,最常見方法就是復(fù)盤,即對過去所做事情重新思考、分析,找出影響結(jié)果的因素,將好的行為或不足之處進(jìn)行梳理,形成自己的經(jīng)驗(yàn)知識,并最終轉(zhuǎn)化為能力。
本文嘗試借鑒“復(fù)盤”的關(guān)鍵內(nèi)涵,建立一條圍繞“確定故障復(fù)盤方式、梳理故障應(yīng)急時(shí)間軸、還原故障處置行動、根因分析及經(jīng)驗(yàn)沉淀、問題及改進(jìn)措施跟蹤、編寫故障報(bào)告并發(fā)布”六個(gè)步驟的故障復(fù)盤改進(jìn)方法。
上個(gè)月在《3.3.1 構(gòu)建持續(xù)提升的故障管理能力》中,我將故障管理閉環(huán)周期分為“故障預(yù)防、故障發(fā)現(xiàn)、故障響應(yīng)、故障定位、故障恢復(fù)、復(fù)盤改進(jìn)”,其中“復(fù)盤改進(jìn)”是從“總結(jié)改進(jìn)”中改動而來,相比“總結(jié)”,“復(fù)盤”需要有一定套路和方法,強(qiáng)調(diào)客觀回顧、持續(xù)學(xué)習(xí)。
我嘗試用我個(gè)人時(shí)間管理例子對比一下總結(jié)與復(fù)盤的差異。以前我的時(shí)間管理相對隨意,比如將日常臨時(shí)性安排登記為任務(wù),不定期反思收獲。今年以來,我使用手帳做時(shí)間管理,用法如下:每天上班路上登記當(dāng)天需關(guān)注事項(xiàng),在每天的碎片時(shí)間段中將己完成事項(xiàng)標(biāo)注“done”,下班路上則根據(jù)手帳上己完成事項(xiàng)串起一天過程,通過手帳儀式感的例行反思,能持續(xù)在每日復(fù)盤中收獲,比如:
哪些待安排事項(xiàng)沒安排好:這類事不一定我自己親自做,但需要自己提前安排任務(wù),作好計(jì)劃。
哪些需要提前溝通的事沒有做:這類事只需要提前溝通即可減少后續(xù)的被動。
哪些工作可以做得更好:針對已經(jīng)完成的工作。
哪些目標(biāo)沒完成:忘了?未就緒?延續(xù)到下一天?暫停?
與預(yù)期不符的事背后合理的理由是什么:工作總會有些不順,關(guān)鍵要調(diào)整心態(tài)。
相比而言,以前的不定期反思是“總結(jié)”,最近的每日時(shí)間管理手帳可以歸為“復(fù)盤”。前者主要是反思總結(jié),后者則在反思總結(jié)基礎(chǔ)上增加了一些因素:持續(xù)性(每天)、有方法(登記目標(biāo)事項(xiàng),標(biāo)注完成)、我(親身經(jīng)歷者)、串起過程(回顧過程)、收獲(影響目標(biāo)的分析,收獲經(jīng)驗(yàn))。
可能通過“復(fù)盤”一詞原意可以進(jìn)一步抽象復(fù)盤關(guān)鍵要素。復(fù)盤來自圍棋,指棋手在下完一盤棋后,重新在棋盤把對弈過程擺一遍,看哪里下得好,哪里下得不好,以從全局角度重新分析、研討棋局過程,了解不足與優(yōu)點(diǎn),找到更好的經(jīng)驗(yàn)方法,從而提升棋力。綜上,我們可以將復(fù)盤歸納為5個(gè)要素:持續(xù)性復(fù)盤(復(fù)盤棋局是常規(guī)操作)、參與者真實(shí)經(jīng)歷(棋手)、描述完整經(jīng)歷(對弈過程)、分析研討對錯(cuò)(分析、研討棋局)、轉(zhuǎn)化為能力(收獲經(jīng)驗(yàn),提升棋力)。
通常,一個(gè)嚴(yán)重的生產(chǎn)故障是多個(gè)層面上的連續(xù)性保障均失效的結(jié)果,比如:架構(gòu)的高可用、人員應(yīng)急處置能力、常規(guī)預(yù)防準(zhǔn)備工作、監(jiān)控發(fā)現(xiàn)能力、自動化工具應(yīng)急能力等。這與海恩法則的描述統(tǒng)一:
海恩法則:一起重大的飛行安全事故背后都會有29個(gè)事故征兆,每個(gè)征兆背后又有300個(gè)事故苗頭,每個(gè)苗頭背后還有1000個(gè)事故隱患。由此可見,對隱患、苗頭、征兆的忽略,是導(dǎo)致意想不到的安全事故發(fā)生的罪魁禍?zhǔn)住?/span>(《百度百科》)
海恩法則強(qiáng)調(diào)兩點(diǎn):一是事故的發(fā)生是量的積累的結(jié)果;二是人自身的素質(zhì)和責(zé)任心。站在運(yùn)維角度,作為業(yè)務(wù)連續(xù)性最后一道防線,可以從技術(shù)手段與管理手段進(jìn)行可用性能力建設(shè)。所以,故障復(fù)盤是對事前與事中環(huán)節(jié)復(fù)盤,不僅關(guān)注引發(fā)故障根源性問題,還需要推動應(yīng)急協(xié)同、工作機(jī)制、人員能力、預(yù)案管理、潛在風(fēng)險(xiǎn)、監(jiān)控發(fā)現(xiàn)、應(yīng)急工具、架構(gòu)高可用、上下游系統(tǒng)風(fēng)險(xiǎn)等全方位的分析。區(qū)別于運(yùn)維組織通常主要圍繞“根因分析、編寫報(bào)告、創(chuàng)建及跟蹤問題”3個(gè)故障復(fù)盤步驟,下面我嘗試將上一節(jié)總結(jié)復(fù)盤的“持續(xù)性復(fù)盤、參與者真實(shí)經(jīng)歷、描述完整經(jīng)歷、分析研討對錯(cuò)、轉(zhuǎn)化為能力”五個(gè)要素融入進(jìn)來,梳理一條圍繞“確定故障復(fù)盤方式、梳理故障應(yīng)急時(shí)間軸、還原故障處置行動、根因分析及經(jīng)驗(yàn)沉淀、問題及改進(jìn)措施跟蹤、編寫故障報(bào)告并發(fā)布”六個(gè)步驟的故障復(fù)盤過程。
在分解上面六個(gè)步驟前,可能需要關(guān)注下面對故障復(fù)盤分解的步驟相對理想化,實(shí)際情況下由于組織每天都會有大量故障,要求每個(gè)故障都進(jìn)行詳細(xì)復(fù)盤無法實(shí)現(xiàn),組織應(yīng)該通過管理機(jī)制及工具賦能,摘取部分重點(diǎn)關(guān)鍵內(nèi)容,減少故障復(fù)盤手工操作環(huán)節(jié),讓大部分故障在當(dāng)天或24小時(shí)內(nèi)即完成復(fù)盤,少數(shù)重要故障則細(xì)化復(fù)盤過程。
2.1 確定故障復(fù)盤方式
每個(gè)故障都是運(yùn)維團(tuán)隊(duì)學(xué)習(xí)成長的機(jī)會,我們不要浪費(fèi)任何一個(gè)故障,要讓故障復(fù)盤作為故障管理的必要環(huán)節(jié)??紤]到故障復(fù)盤涉及工作量較多,建議運(yùn)維組織建立多種復(fù)盤模板,針對不同復(fù)盤模板與參與人員范圍來應(yīng)對不同類型的故障。在模板中定義好:哪些人參加,輸出什么,設(shè)計(jì)/架構(gòu)/故障預(yù)防/故障處置/故障發(fā)現(xiàn)等執(zhí)行情況,是否需要納入日、周、月、季例會等。
基于明確的判斷條件提前制定故障復(fù)盤模板,比如針對故障影響級別高低、重復(fù)性故障、權(quán)益類交易、安全風(fēng)險(xiǎn)等。建議故障復(fù)盤采用線上化的管理工具落地,高級別的故障增加一些線下的輔助手段,比如對于故障影響級別高的故障需要跨團(tuán)隊(duì)參與分析,包括產(chǎn)品或需求團(tuán)隊(duì)從需求或設(shè)計(jì)角度評估軟件邏輯設(shè)計(jì)角度評估,開發(fā)團(tuán)隊(duì)從架構(gòu)或程序?qū)崿F(xiàn)角度評估,測試團(tuán)隊(duì)對功能性與非功能性測試角度評估,SRE從系統(tǒng)穩(wěn)定性、應(yīng)急處置效率、應(yīng)急協(xié)同、監(jiān)控發(fā)現(xiàn)、自動化處置等角度評估,運(yùn)維工具團(tuán)隊(duì)從監(jiān)控、自動化操作、日志等專項(xiàng)角度進(jìn)行分析。整個(gè)故障分析盡量保持透明、公開,讓故障參與各方能夠客觀的參與進(jìn)來。
除了根據(jù)明確條件判斷的故障復(fù)盤模板,還有一類故障可能風(fēng)險(xiǎn)級別未達(dá)到高級別,但是在某方面己存在較大的風(fēng)險(xiǎn)隱患,比如潛在架構(gòu)性能及容量問題、針對協(xié)同不暢、管理流程、操作不當(dāng)、人員能力、運(yùn)維工具應(yīng)用等問題。這類問題容易漏分析或執(zhí)行跟蹤不到位,建議從組織管理團(tuán)隊(duì)或故障流程經(jīng)理驅(qū)動,以線上任務(wù)方式,指定具體責(zé)任人牽頭落實(shí)復(fù)盤目標(biāo)。
2.2 梳理故障應(yīng)急時(shí)間軸
第一節(jié)中,強(qiáng)調(diào)了復(fù)盤“參與者真實(shí)經(jīng)歷、描述完整經(jīng)歷”兩個(gè)區(qū)別于一般總結(jié)的要素,將這兩個(gè)要素應(yīng)用于故障復(fù)盤,第一步是要建立故障應(yīng)急時(shí)間軸,時(shí)間軸需要有故障處置的關(guān)鍵時(shí)點(diǎn)。為了標(biāo)準(zhǔn)化、線上化故障處置過程,需要將故障處置關(guān)鍵時(shí)點(diǎn)進(jìn)行抽象。在選擇關(guān)鍵時(shí)點(diǎn)時(shí),故障應(yīng)急時(shí)間軸可以參考業(yè)務(wù)連續(xù)性領(lǐng)域的:MTBF(無故障時(shí)長)、MTTI(平均故障發(fā)現(xiàn)時(shí)長)、MTTK(故障定位時(shí)長)、MTTF(平均故障處理時(shí)長)、MTTR(平均故障響應(yīng)時(shí)長),MTTF(平均故障恢復(fù)時(shí)長)的思路,從故障發(fā)生時(shí)間、發(fā)現(xiàn)時(shí)間、響應(yīng)時(shí)間、嘗試處置時(shí)間、診斷時(shí)間、生效應(yīng)急處置開始時(shí)間、故障恢復(fù)時(shí)間等梳理應(yīng)急處置的關(guān)鍵節(jié)點(diǎn)。通常,MTTI=發(fā)現(xiàn)時(shí)間-發(fā)生時(shí)間;MTTR =響應(yīng)時(shí)間-發(fā)現(xiàn)時(shí)間;MTTK =定位時(shí)間-發(fā)現(xiàn)時(shí)間;MTTF =恢復(fù)時(shí)間-定位時(shí)間。要達(dá)成這個(gè)目標(biāo),要建立線上化的應(yīng)急處置協(xié)同機(jī)制,以便上述時(shí)間點(diǎn)能夠在事中落地客觀數(shù)據(jù)。理想情況下,這個(gè)線上化應(yīng)急處置協(xié)同機(jī)制可以在一個(gè)應(yīng)急場景工具實(shí)現(xiàn),或能夠?qū)⒍鄠€(gè)應(yīng)急工具中的關(guān)鍵操作行為數(shù)據(jù)整合在一起。故障應(yīng)急時(shí)間軸是圍繞故障應(yīng)急關(guān)鍵時(shí)間點(diǎn)的過程還原,需要關(guān)注:客觀、在線、量化,這個(gè)過程相對容易抽象,適合運(yùn)維工具團(tuán)隊(duì)落地。
2.3 還原故障處置行動
有了故障應(yīng)急時(shí)間軸,下一步是讓參與方參與進(jìn)來圍繞應(yīng)急時(shí)間軸還原具體的處置行動,全面復(fù)原故障處置行為。比如:
發(fā)現(xiàn)方式:誰(機(jī)器、IT人員、客服、客戶)、什么時(shí)候(預(yù)防、及時(shí)、較大延遲)、什么方式發(fā)現(xiàn)(監(jiān)控、巡檢、投訴)等;
響應(yīng)方式:產(chǎn)品/研發(fā)/測試/運(yùn)維/安全響應(yīng)情況,監(jiān)控發(fā)現(xiàn)后響應(yīng)效率等;
跨團(tuán)隊(duì)協(xié)同:運(yùn)維團(tuán)隊(duì)內(nèi)、運(yùn)維與其他IT條線、IT與業(yè)務(wù)線、公司與客戶之間協(xié)同是否順暢;
嘗試診斷:故障發(fā)生后嘗試了哪些診斷動作,是否有效,專家意見是否快速有效;
影響分析:盤中影響分析是否到位,是否有足夠數(shù)據(jù)支持盤中快速判斷,提否提前準(zhǔn)備關(guān)鍵KPI指標(biāo)分析;
危機(jī)升級:故障處置過程對于應(yīng)急處置時(shí)間超長,高風(fēng)險(xiǎn)事件的危機(jī)升級機(jī)制是否到位,現(xiàn)場危機(jī)組織是否到位;
情況通報(bào):故障處置過程及恢復(fù)的信息通報(bào)是否及時(shí)、準(zhǔn)確,話術(shù)是否合理;
啟動預(yù)案:預(yù)案是否完整,具備可操作性,事中是否啟動預(yù)案;
處置方案:嘗試診斷中的生效應(yīng)急處置,或事中準(zhǔn)確判斷的處置方案是什么;
故障恢復(fù):制定處置方案后,方案的執(zhí)行過程是否及時(shí),跨團(tuán)隊(duì)交付方案是否快速,應(yīng)急工具是否就緒;
在上述處置過程的還原上,可以考慮關(guān)注:能力(專家、預(yù)案等)、協(xié)同(跨團(tuán)隊(duì))、機(jī)制(信息擴(kuò)散、危機(jī)升級等)、工具(監(jiān)控、日志、鏈路、數(shù)據(jù)等)。
2.4 根因分析及經(jīng)驗(yàn)沉淀
故障復(fù)盤是為了將故障處置行動過程進(jìn)行分析,沉淀經(jīng)驗(yàn),轉(zhuǎn)化為團(tuán)隊(duì)能力。隨著業(yè)務(wù)的不斷演進(jìn),系統(tǒng)的數(shù)據(jù)量不斷擴(kuò)大,技術(shù)棧越來越復(fù)雜,系統(tǒng)調(diào)用鏈路越來越長,造成信息系統(tǒng)中斷的事件的風(fēng)險(xiǎn)場景越來越多,中斷事件的頻率和種類持續(xù)增長,且有相當(dāng)一部份事件會造成業(yè)務(wù)中斷,可用性問題越來越嚴(yán)峻。在前面《數(shù)智萬物下,重新思考運(yùn)維價(jià)值》中,用業(yè)務(wù)連續(xù)性事件起因魚骨圖總結(jié)了一下影響業(yè)務(wù)連續(xù)性因素:變更問題、維護(hù)問題、性能容量問題、操作問題/誤操作、容災(zāi)/應(yīng)用架構(gòu)高可用、應(yīng)用邏輯缺陷、版本控制、產(chǎn)品或功能設(shè)計(jì)不足、數(shù)據(jù)質(zhì)量、高可用有效性、應(yīng)急方案、技術(shù)保障方案不完善、應(yīng)急預(yù)案缺失、應(yīng)急演練不到位、問題跟蹤不閉環(huán)、參數(shù)設(shè)置問題、配置問題、人員技能不足、流程機(jī)制不完善、外部攻擊、基礎(chǔ)設(shè)施異常、數(shù)據(jù)備份、數(shù)據(jù)丟失、監(jiān)控發(fā)現(xiàn)及時(shí)性、故障處置時(shí)效性等,這些因素都可能是引發(fā)故障及導(dǎo)致故障影響升級的根因。
在故障復(fù)盤中,主要是對故障直接原因進(jìn)行定位分析,但隨著運(yùn)維復(fù)雜性不斷提升,只分析直接原因是不夠的,運(yùn)維在應(yīng)對復(fù)雜性能力飛輪中需要更加主動。參考前面提到的海恩法則,故障根因分析需要從技術(shù)與管理兩個(gè)角度進(jìn)行多維度分析。技術(shù)手段主要是分析技術(shù)架構(gòu)的高可用,非功能性需求的實(shí)現(xiàn),運(yùn)維的可觀察性手段是否具備,運(yùn)維監(jiān)控工具的故障發(fā)現(xiàn)能力是否覆蓋,日志等工具對于故障診斷是否有效,運(yùn)維自動化工具對連續(xù)性恢復(fù)處置是否就緒等;管理手段則主要從事前預(yù)防、事中處置、事后跟蹤等多方面分解,比如生產(chǎn)環(huán)境管控是否到位,預(yù)案是否有效,演練是否到位,對業(yè)務(wù)、運(yùn)行的理解能力是否達(dá)標(biāo),協(xié)同是否順暢等。
2.5 問題及改進(jìn)措施跟蹤
通過故障原因分析得到的多個(gè)待改進(jìn)事項(xiàng),將納入到故障改進(jìn)中,在ITIL中將這個(gè)待改進(jìn)事項(xiàng)定義為問題。針對2.4中提到的問題,通常會給不同的角色分派改進(jìn)事項(xiàng),比如:
for故障處置運(yùn)維團(tuán)隊(duì):加強(qiáng)人員對業(yè)務(wù)、運(yùn)行的理解,提升監(jiān)控覆蓋面,加強(qiáng)應(yīng)急預(yù)案管理,加強(qiáng)運(yùn)行狀態(tài)數(shù)據(jù)分析能力,加強(qiáng)運(yùn)維工具的使用等;
for工具團(tuán)隊(duì):加強(qiáng)工具的運(yùn)營,提升監(jiān)控覆蓋面與準(zhǔn)確率能力,提升日志等異常診斷工具能力,提升自動化工具的使用,提升運(yùn)維數(shù)據(jù)分析的平臺能力;
for流程經(jīng)理:完善應(yīng)急處置過程的協(xié)同效率,信息傳輸及觸達(dá)效率,完善人員能力、工具平臺能力的提升;
for研發(fā):修復(fù)程序設(shè)計(jì)邏輯缺陷,提升系統(tǒng)健壯性,增加日志完備度與監(jiān)控埋點(diǎn)需求,加強(qiáng)版本管理優(yōu)化等;
for測試:提升非功能性測試、功能性測試覆蓋面等;
for需求/產(chǎn)品:完善業(yè)務(wù)邏輯設(shè)計(jì)、功能設(shè)計(jì);
for第三方廠商:完善硬件、軟件、線路等方面的健壯性等;
建立上述問題只是開始,下一步是對問題的跟蹤,需要有專項(xiàng)跟蹤機(jī)制,比如專項(xiàng)的問題管理例會,問題催辦進(jìn)展與通報(bào),問題與變更閉環(huán),問題關(guān)閉的策略等。由于問題跟蹤的復(fù)雜性,理想情況下問題管理應(yīng)該與績效關(guān)聯(lián)上。結(jié)合管理機(jī)制,還需要建立數(shù)據(jù)驅(qū)動,績效支持的協(xié)同方式來確保障高優(yōu)先級的問題得到及時(shí)解決。在問題跟蹤上,建議采用全線上的閉環(huán),打通各關(guān)聯(lián)方的工作平臺,并基于線上化的問題跟蹤數(shù)據(jù)進(jìn)行自動化的催辦。
2.6 編寫故障報(bào)告并發(fā)布
最后每個(gè)故障都應(yīng)該要有一份故障復(fù)盤報(bào)告。這里提的故障報(bào)告不限于一份標(biāo)題為“XXXXX故障分析報(bào)告”的文檔,實(shí)際上如果將前面幾個(gè)步驟的數(shù)據(jù)線上化整合,就開始啟動了一份故障分析報(bào)告。完整的故障報(bào)告包括:故障過程、根因、影響、問題及優(yōu)化措施、故障定責(zé),以及針對個(gè)別突出問題的專項(xiàng)分析。通常,ITSM、故障管理系統(tǒng),或運(yùn)維專家知識庫可以作為故障報(bào)告的管理系統(tǒng),系統(tǒng)最好能將故障復(fù)盤過程的時(shí)間軸關(guān)鍵時(shí)間點(diǎn)、操作內(nèi)容、影響范圍等數(shù)字化,減少復(fù)盤的操作性工作,并提供方便的報(bào)告檢索,能夠追蹤問題的解決情況。
針對故障級別,報(bào)告有大報(bào)告與小報(bào)告之類區(qū)別,報(bào)告編寫過程中最好能建立信息分享機(jī)制,以收集跨團(tuán)隊(duì)意見并修訂報(bào)告,報(bào)告完成后最好能公開發(fā)布,發(fā)布不僅是問題的警戒與改進(jìn),還包括處理過程優(yōu)點(diǎn)的公示。針對不同類型故障有不同的發(fā)布方式,比如:風(fēng)險(xiǎn)通報(bào)、專項(xiàng)例會、跨團(tuán)隊(duì)溝通、外部第三方等。
故障復(fù)盤改進(jìn)環(huán)節(jié)是故障管理閉環(huán)周期閉環(huán)的收尾階段,是對事前與事中環(huán)節(jié)的分析,關(guān)注引發(fā)故障根源性問題的解決與故障事中處置效能的提升。缺少復(fù)盤的故障會重復(fù)發(fā)生,協(xié)同會更加低效,IT人力資源會被故障拖住,影響整個(gè)IT價(jià)值創(chuàng)造。采用“確定故障復(fù)盤方式、梳理故障應(yīng)急時(shí)間軸、還原故障處置行動、根因分析及經(jīng)驗(yàn)沉淀、問題及改進(jìn)措施跟蹤、編寫故障報(bào)告并發(fā)布”六個(gè)步驟,可建立一條從故障中學(xué)習(xí)的方法。在落實(shí)過程中,組織應(yīng)該通過管理機(jī)制及工具賦能,摘取部分重點(diǎn)關(guān)鍵內(nèi)容,減少故障復(fù)盤手工操作環(huán)節(jié),讓大部分故障在當(dāng)天或24小時(shí)內(nèi)即完成復(fù)盤,少數(shù)重要故障則細(xì)化復(fù)盤過程。