歡迎光臨
每天分享高質量文章

運維人的終身成長,從清單管理開始

本文經過授權轉載自新鈦雲服訂閱號


作者介紹:金霄 新鈦雲服運維總監 十年運維經驗,蘇州大學數學專業本科和中國科學技術大學MBA畢業,並以論文《運維風險管理》獲校優秀畢業生。曾任盛大在線系統工程師、微燭雲和某互聯網金融平臺運維負責人、微燭雲COO,組建微燭雲產研測運團隊,主導自研微燭雲和自動化運維管理平臺,致力於企業基礎設施和運維服務。


本文是新鈦雲服運維總監金霄在全球運維大會GOPS上的分享文字精華版整理。


尊敬的各位運維同學,大家下午好。我是金霄,來自新鈦雲服,目前從事雲計算MSP相關的事業,創業之前曾在盛大等互聯網公司做過十年的運維工作,從技術到管理,一路走來,有一些有關運維人未來成長的內容希望在這裡和大家一起探討。


之前蕭田國老師在這個講臺上有講過《基於DevOps的新運維成長路徑》,佈道DevOps,講述運維如何在縱向(深度)和橫向(廣度)上延續自己的職業生涯。而我今天的分享主題是運維人的成長,從清單管理開始。和大家聊聊清單思維,如何用簡單的工具解決複雜性問題,並且清單思維在運維人的終身成長中起著什麼樣的作用。


我的分享內容分為四個篇章,成長的因素、錯誤的分類、清單的應用以及清單背後的思維模型。

成長的因素

本周我以運維顧問和專案管理的身份去參與國內一家大型的自營服裝品牌的海外B2C電商的黑五保障工作,該公司的發展速度特別快,而運維在這種情況下缺乏體系化建設,我想這也是很多公司面臨的問題。我將要幫助他們運維團隊診斷現在存在的運維體系建設、安全等工作的問題,提出整改方案並落地。


為了保障2個月之後的黑5,需要幫助他們實現現有海外機房的一個商城業務遷移到海外某公有雲上,原來機房的其他業務還要做擴容,兩個月,需要完成這麼多工作,對整個團隊都是嚴峻的考驗,而今天要講的清單思維實際上已經在過去的2周已經開始幫助這家公司的運維團隊慢慢地從雜亂章的瑣碎事情和救火救急的狀態中抽離,這一效果在我剛剛過去的1,2天時間是萬萬沒有想到的。

為此我還整理出了一張成長方法清單:學習、表達、迭代。學習新的知識,瞭解背後的思維模型;如果要快速學會一個知識,最好的方式就是講給別人聽;最後,獲取新的知識,再不斷迭代,最終把知識真真正正變成自己的。

對於成長這件事的因素有很多,外因比如:公司業務的發展帶來對新技術、新知識、新能力的需求;技術本身的發展進步,比如雲計算、AI技術的發展,傳統運維到自動化運維再到Devops理念,甚至AIops的提出,對不同角色的運維有著不同程度的影響,或多或少的減少了企業對於基礎運維人員、應用運維人員、甚至DBA的需求;社會環境、行業變遷、政治制度等的變化等等。這些因素都推動著你不得不成長。

當然,不可跳過的還有內在的驅動力,這可以從馬斯洛需求層次理論里找到答案。人的內心總有更高層次的需求,先滿足衣食住行等的基本生理需求,其次考慮保障自身安全、擺脫失業和喪失財產威脅、避免疾病的侵襲等安全上的需求;之後在社會交往上,有友愛和歸屬感的需要,友情、愛情,以及希望歸屬於某一個群體;再往上到希望自己有穩定的社會地位,希望個人的能力和成就得到社會的承認和尊重;最後隨著能力不斷的提升,你不斷在尋找和自己能力相匹配的事情,這樣才會感到最大的快樂,這個階段通常表現為實現個人理想、抱負,發揮個人的能力到最大程度。

我們每一個人走上運維這個崗位當時的想法一定是不一樣的,有一部分人是為了一份工作,有一部分人是因為對於技術的喜愛,還有一部分人可能一開始連運維工作的內容都不瞭解也走上了這條道路。對麽?不管當初因為什麼原因成為了一個運維人,一旦開啟了這個職業,就需要按照這個職業的特性發展下去。運維也是一個比較新的行業,由於互聯網的發展帶動了這個職業的需求,作為軟體生命周期最長尾的運行維護階段,運維也在隨著互聯網技術的發展而不斷變化,比如當下devops理念的出現,就是打破開發和運維的界限。


我希望在場的每個人都需要有宏觀視野和更深層次的思維模型,技術從來不是獨立存在的,每一家公司最核心的是業務,開發、測試、運維組成的軟體生命周期是為了全力實現業務的需求,並將需求儘快發佈上線以實現商業上的收益。即使是技術輸出型的服務型公司,也是要全力幫助用戶的業務需求。基於商業的基本邏輯,核心點永遠是擴大業務規模,降低成本支出,在業務規模不斷擴大的同時,如果整個軟體生命周期越短、所需要的人力成本越少,是不是收益越大? 而且從技術上考慮,業務規模越大意味著系統越複雜,那麼僅僅投入人數很快會產生邊際效益,靠堆人解決不了複雜性系統的問題,所以這一基本邏輯推動了技術的發展,特別是在互聯網迅速發展的這十幾年時間里。


所以不管你是由於什麼初心從事運維這個職業,不管是外部帶來的危機感也好,內在需求的升級也罷,運維人需要成長。

    

提到成長,大家身邊的人都是怎麼做的呢? 關註微信公眾號的技術文章,關註前沿科技,買本書埋頭學習,組織參加技術交流活動、當然,還有參加GOPS運維大會。


我們非常努力,每天看了很多內容,聽了很多道理,做了很多事情,但是由於碎片化信息很多,往往有個很好的開端,卻缺乏好的過程管理以及理性的思考和提煉,這樣是無法成長的。


什麼是成長呢?成長就是當你的主觀世界和客觀世界之間有一道鴻溝的時候,你掉進去了叫挫折,爬出來了叫成長。換言之,如果遇到錯誤和失敗,納入到自身,叫成長;不能納入進來,叫不成長。根據這份成長的定義,其實運維這份工作本身很容易讓人獲得成長,對於任何一個運維人,如果要問,讓他最痛苦、最不願意麵對的事情是什麼,我想答案都是故障,故障就是運維人面前的其中一條溝。另外運維人面前的溝還有無數條,新的開源軟體,新的技術,Devops背景下,運維需要具備的研發能力等等。溝那麼多,我們只能一條條來填。

錯誤的分類

相信大家都看過諾蘭導演的《星際穿越》這部電影,電影開篇就提到一個著名的定律——“墨菲定律”。“墨菲定律”的原話翻譯過來是這樣說的,如果有兩種或兩種以上的方式去做某件事情,而其中一種選擇方式將導致災難,則必定有人會作出這種選擇。

簡化的意思就是,任何可能出錯的事情都會出錯。根據“墨菲定理”,我們可以知道:


  1. 任何事都沒有錶面看起來那麼簡單;

  2. 所有的事都會比你預計的時間長;

  3. 會出錯的事總會出錯;

  4. 如果你擔心某種情況發生,那麼它就更有可能發生。


這和《SRE,谷歌運維解密》這本書中說的“系統正常,只是該系統無數異常情況下的一種特例。”有異曲同工之妙,我想這應該是普世哲學。


系統正常,只是該系統無數異常情況下的一種特例。

      ——來自《SRE,谷歌運維解密》

作為運維人,對於墨菲定律,我們應該秉持積極的態度,既然故障無法避免,是一種常態,任何一個軟體系統都避免不了,那麼我們就不能有絲毫放鬆的思想,要時刻提高警覺,業務體量越大,系統越複雜,問題和故障就會越多,這個是必然的,我們需要做的,就是在故障發生的時候用最快的時間響應,最短的時間處理,思考借助怎樣的方法來持續、正確、安全地把事情做好。這也是運維人的使命,7*24小時的守候,為的是讓這個正常的特例盡可能地維持常態。


在運維的日常工作中,我們是否遇到過這些問題:

  • 為什麼在看似“萬事俱備”的情況下,仍然有可能因為一個大家都忽略的小問題而影響進度?

  • 為什麼有時候在復盤時發現本該10分鐘解決的問題,實際過程中,1小時甚至更久才能解決?

  • 為什麼經歷大量案例,並已經形成了知識庫,但關鍵時刻仍無法快速建立索引,找到知識庫裡面的案例來輔助解決問題?

  • 為什麼會議中幾方溝通的事情,等到落地實施的時候會出現偏差?


這些我們遇到的問題,也印證了前面講的墨菲定律。咱們運維是應用生命周期的應用運行維護階段的守護者,而這個階段也是軟體生命周期內最長尾的階段,占據整個周期的70%左右。特別是當問題發生在正在提供服務的生產環境的時候,一個是正確操作還有一個是時間,操作和處理問題的時間離復盤之後的理論值越接近,則約接近成功,反之,則是失敗。當然,一次失敗並不可怕,可怕的是失敗之後,下次遇到類似的問題再次失敗。在同樣或者類似的問題上摔倒,顯然不是一種成長,即便有所成長,代價也是慘痛的。


雖然“墨菲定律”提到錯誤總會發生,我們無法避免,但是我們可以想辦法降低錯誤發生的概率。

容易犯錯誤是人類與生俱來的弱點,不管科技多麼發達,事故都會發生,而我們解決問題的手段越高明,面臨的麻煩就會越嚴重。即便是我們通過使用自動化來防止犯錯且提高效率,但對於不可預測的故障,管理的不確定性等事件還是難以做到,而且技術,特別是開源技術的底層我們未必熟悉,這些因素都無疑增加了事件的複雜性。


無知之錯:我們犯錯是因為沒有掌握相關知識,科學只讓我們部分理解了世界的運行規律。

無能之錯:我們犯錯並非因為沒有掌握相關知識,而是因為沒有正確使用這些知識。

                                    ——阿圖 · 葛文德《清單革命》


阿圖葛文德在《清單革命》一書中談到,人類的錯誤可以分為兩類:第一類錯誤是“無知之錯”,我們犯錯是因為沒有掌握相關知識,科學只讓我們部分理解了世界的運行規律。第二類錯誤是“無能之錯”,我們犯錯並非因為沒有掌握相關知識,而是因為沒有正確使用這些知識。


在實際運維工作中,我們遇到的錯誤大多是“無能之錯”,比如人為的本不應該犯的操作錯誤,以及硬體、軟體、系統等在運行過程中出現的可窮舉的概率性故障事件,而我們卻未能做好預案,從而快速恢復系統的正常工作。我們在持續、正確地運用我們所掌握知識的過程中遇到了問題,系統在不斷變得複雜,無論我們進行多麼細緻的專業分工和培訓,一些關鍵的步驟還是會被忽略,一些錯誤還是無法避免。

清單的應用

這個時候就需要使用工具來輔助我們避免錯誤,使得系統能夠持續、正確地運行。這個工具其實也非常簡單,就是清單。第三部分我講講清單的應用。


在運維操作過程中,運維人需要應對兩大困難:

  1. 人類記憶和註意力的分散。尤其是在重壓之下,人們特別容易忽視一些單調的標準動作;

  2. 越是專業的人,越容易犯的錯誤是,面對重覆性操作,人們會不知不覺跳過一些明顯的步驟,或者是根據已有經驗,總覺得自己不會犯錯,而往往會在這個時候犯錯。


案例1:

前不久,某雲的一個企業用戶資料丟失的事件引發了整個行業的關註。原因後來也披露了,該故障起源於因磁盤靜默錯誤導致的單副本資料錯誤,再加上資料遷移過程中運維人員有兩次不規範的操作,導致雲盤的三副本安全機制失效,並最終導致客戶資料完整性受損且不可恢復。


這兩次違規操作分別是運維人員為了加速完成搬遷任務,違規關閉了資料校驗;以及運維人員為了儘快降低倉庫使用率,違規對源倉庫進行了資料回收。


在正常情況下,資料搬遷流程會預設開啟資料校驗,開啟之後可以有效發現並規避源端資料異常,從而保障搬遷資料準確性。而資料搬遷完成之後,源倉庫資料應保留24小時,用於搬遷異常情況下的資料恢復。


有人認為,整個事件是一個“黑天鵝”事件,其根本原因是極小概率出現的“磁盤靜默錯誤”發生了。若磁盤靜默錯誤沒有發生,運維人員的上述操作也不會引發後面這些問題。


我認為,在此次事件中,人員違規操作雖然不是引發故障的根本原因,但卻是擴大故障影響的重要因素。如果嚴格按照規範執行,就不會導致資料丟失無法恢復的問題。


案例2:

上個月,由於機房的機櫃電力調整,我們需要做同一機房的服務器搬遷,我製作了清晰的作業清單,預計1小時完成搬遷並能正常提供服務,但實際上最終花了3個小時,多花的2個多小時原因卻是運營商提供的兩根上聯光纖始終除錯不通上,最後發現問題竟然出在運營商人員將中間的光纖ODF架端口插錯,實際排查問題也很快,時間大多浪費在協調各個部門,以及對應部門的響應上。還好深刻領悟了墨菲定律,預留的割接時間就是3個小時,原本是擔心服務器硬體在搬遷中出現問題或者系統重啟出現異常等常見故障,所以做了相應的預案。最終沒有影響到業務。


這個問題錶面上看是運營商的問題,實際上是我們清單管理沒有做到位,第一併沒有把和事件相關的每一個因素考慮到清單內,哪怕是外部因素,準備工作中沒有加上搬遷之前檢查測試這兩條線路的連通性,只是機房單方面告知測試過了,屬於簡單性事件的忽略;第二,在排查問題的過程中,由於缺乏預案,以及沒有提前協調相關部門做應急準備,所以溝通協調方面花了過多的時間。這件事也反應了運營商端缺乏核查清單,沒有對提供的光纖進行核查,也缺乏快速的應急響應的流程清單管理。


這兩個案例,是我們行業中真實遇到的案例,我相信在座的大家都能想起自己遇到的很多案例,對此我們不能總是抱怨,必須要有所總結,將這些信息有效管理起來,形成一個個關鍵步驟。


清單可以幫助梳理事件,提醒人們每一個“關鍵步驟”的因子,在決策的時候不要跳過“關鍵步驟”,激活記憶和集中註意力,避免出現由於簡單錯誤導致嚴重後果的情況。


私有雲升級,屬於主動型操作的複雜性事件,一般準備工作比較充分,而且會有詳細的操作步驟,因為涉及不中斷業務在線升級,所以歸類為複雜性事件。在這個場景下,清單的作用是一些關鍵步驟的提示,幫助激活大腦,梳理脈絡,同時避免“灰犀牛”事件的發生。


比如升級前核心的檢查專案有哪些?升級過程有哪些關鍵點需要重點核查?升級完成之後,要檢查哪些重要的狀態指標?這些都需要製作核查清單和操作清單。部分清單如下:


升級前檢查專案:

       √  測試環境是否進行了升級;

       √  測試環境升級是否出現過問題?如果是,是否解決;

       √  客戶是否得到升級通知,並確認同意升級;

       √  是否準備好回退機制?


升級過程(部分):

       √  客戶環境是是否和測試環境一致,包括操作系統版本,如果不一致,需要             


保持和測試環境一致。

       √  升級前,是否對資料庫進行備份;

       √  管理節點與計算節點操作系統版本是否一致;

       √  網絡連接是否正常;

       √  本地源是否最新;

       √  為保持資料庫一致性,升級期間不能有任何新建操作。


升級完成:

       √  檢查管理節點狀態;

       √  檢查計算節點狀態;

       √  檢查雲主機狀態;

       √  檢查VPC路由器狀態;

       √  檢查儲存節點狀態;

       √  創建雲主機、網絡、儲存等操作都需要驗證一遍。


對於高度複雜性事件,清單也是非常適用,但是需要做一些更改。


前不久,我們遇到一個客戶報修,客戶的反饋是,部署在某機房的私有雲服務器上的網站會發生不定時打不開的問題。


遇到這個報障,不妨試著考慮下,如果你遇到這個問題,該如何排查?需要排查的因子有很多,這種問題有著多種可能的原因,故障出現頻率不高,而且監控未發現異常。根據我們對於問題的定級,這種問題屬於高度複雜性問題,現象很簡單,但可能導致故障的因素會比較多,排查會比較複雜,可能要多次排查才能定位問題,。


首先,需要判斷,給事件定級,不同級別的事件,觸發的清單內容是不一樣的。


其次,在處理高度複雜性問題的時候,需要設置提示清單,要將問題同步給不同職能的人共同完成,複雜性問題的清單不僅僅是關鍵性步驟,更重要的是一個溝通清單,以確保在每個領域的各個專家們是在以一個團隊的形態去應對問題,因為團隊犯錯的幾率比單個人要小很多。部分清單內容如下:


判斷問題(設置清單觸發事件)

       √  故障是否影響生產環境;

       √  監控告警是否觸發;

       √  能否根據告警信息迅速定位到問題;

       √  根據歷史經驗是否在10分鐘之內能夠定位到問題,並有具有處理的能力。


處理高度複雜性問題:(部分清單)

       √  是否將信息同步到網絡、應用、資料庫、雲系統、物理基礎設施等各個領             

域的運維專家;

       √  專家們是否充分交流,共同商討行動計劃。

       √  在系統運維層面是否排查了各個相關性應用和組件;

       √  在網絡運維層面是否排除了網絡設備、路由、交換、端口、模塊、光纖、              

網線等所有問題;

       √  是否排除資料庫層面的所有問題;

       √  是否在雲系統層面排除所有問題;

       √  是否排除物理基礎設施層面的機房、電力、線路等問題。


醫生、飛行員和運維面對的工作其實有很大的共同點,對於複雜性、穩定性和安全性,後兩者關乎生命,要求顯然要更高,清單在這兩個行業也有重度的使用。


我們的身體能夠以13000多種不同的方式出問題。在ICU,每位病人平均24小時要接受178項護理操作,而每項操作都有風險。

  ——阿圖 · 葛文德《清單革命》

 “我們的身體能夠以13000多種不同的方式出問題。在ICU,每位病人平均24小時要接受178項護理操作,而每項操作都有風險。“ 醫療行業的例行程式異常複雜,醫護人員犯下這樣或那樣的錯誤是不可避免的。在壓力重重的環境中,即便再優秀的醫生也難免漏掉其中一個步驟、少問一個關鍵問題,以致在醫療過程中出現失誤。


清單會提醒我們不要忘記一些必要的步驟,並讓操作者明白該乾什麼。這不僅是一種檢查方法,而且還是一種保障高水平績效的紀律。我們來看一個案例…………


這個試驗的結果非常令人震驚,一張小小的清單,讓約翰·霍普金斯醫院原本經常發生的中心靜脈置管感染比例從11%下降到了0;15個月後,更避免了43起感染和8起死亡事故,為醫院節省了200萬美元的成本。


清單從來都不是大而全的操作手冊,而是理性選擇後的思維工具。抓取關鍵,不僅是基準績效的保證,更是高績效的保證。


下麵是世界衛生組織手術安全清單,一共由19個檢查專案組成,在實施麻醉前有7個檢查專案,在切開患者的皮膚前,手術團隊還要進行7項檢查,在手術結束後患者離開手術室前還要進行最後5項檢查。


當然,手術的整個過程遠不止這19個,但清單能夠化繁為簡,用為數不多的檢查專案確保一些重要的步驟沒有被遺漏,另外還能夠使用溝通清單來確保手術團隊成員切實進行團隊合作,確保他們對手術中可能發生的問題進行了討論,併為此做好充分的準備。


醫療和運維,在某種程度上來看相似點很多,前者是救人,後者是救業務;前者是讓人們一次次從傷病中恢復健康,後者是一次次讓業務在故障中恢復持續。


清單在航天業使用也非常廣泛,每當你乘坐波音飛機出行的時候,都有一整套方法掌控著飛行員駕駛飛機的方式。比如,在飛行各階段必須完成的動作或檢查專案有哪些,哪些是必須親自完成的,哪些可以交給計算機去完成,在碰到意外情況的時候應該如何應對。這套方法濃縮為大概有200多頁的手冊,手冊內是由許許多多不同類別的清單組成的。每一張清單都非常簡潔,一般只有幾行字,用大號的、容易識別的字體印刷。每張清單都是針對特定情況製作的,所以這本厚厚的手冊涵蓋了飛行各個階段可能出現的各種狀況。


比如正常操作的檢查清單,上面列出了飛行員日常操作所需完成的主要動作以及需要註意的重要事項。飛行員在每個操作階段,如啟動發動機前、飛機被推出前、開始滑行前等,都必須按照清單逐一完成各項檢查。除了日常的檢查清單,還有緊急情況的應對清單,設計人員列出了他們能想到的所有緊急情況,如駕駛艙冒煙、各種警示燈亮起、無線電失靈、副機長無法操作、發動機失靈等,併為應對每一種情況設計了正確的操作流程。手冊涉及的很多緊急情況飛行員可能一輩子都碰不到,但萬一碰到的話,他們就能依靠清單來化解危機。


當然清單制定的優秀與否,操作人員是否當時嚴格按照清單步驟實施,操作人員的素質也影響了最後的結果,但清單至少提供了這樣一個安全規範的指引。


一張小小的清單,讓約翰·霍普金斯醫院原本經常發生的中心靜脈置管感染比例從11%下降到了0;15個月後,更避免了43起感染和8起死亡事故,為醫院節省了200萬美元的成本。

 

  ——阿圖 ·葛文德《清單革命》


舉個例子,2008年1月17日,英國航空公司的38號航班迫近倫敦,準備降落。這架飛機是從北京起飛的,已經飛了將近11個小時,機上載有152人。飛機下降到220米高度,距離機場還有3公里遠。此時,飛行員需要稍稍增加推力以減小飛機下降的速度。但突然之間,無論他怎樣用力推油門桿,發動機就是沒有任何響應。之後,整架飛機就像一塊重達160噸的大鐵砣一樣重重地向地面砸去。索性的是事故最終沒有引起任何的人員傷亡。


2008年9月,美國聯邦航空管理局發出了厚厚的調查報告,詳細說明瞭在跨越極地飛行過程中,飛行員應該如何防止冰晶在油箱中聚積的操作規程,還說明瞭當發動機失去動力後,飛行員應該如何恢復動力的操作程式。


如果新知識沒有被系統地轉變為簡單、實用的操作方法,那麼並不意味著飛行員的實踐會立刻發生改變。波音公司團隊花了一個月的時間,不斷篩選和精簡檢查項,不斷推敲如何設置檢查點,最終將這個厚厚的報告轉變為了實用的極地飛行清單。


2008年11月26日,相似的事故再次發生,達美航空公司的一架波音777客機從上海飛往亞特蘭大,機上載有247人。飛機飛臨蒙大拿大瀑布的時候,飛行高度是12 000米。這時候,2號引擎突然失去動力。但這次飛行員根據清單上列出的步驟進行操作,最終發動機恢復了工作,拯救了247人。


清單在大公司里的日常工作能起到什麼樣的作用呢?當時谷歌有一個氧氣專案,這個專案對谷歌未來也產生了極為深遠的影響,專案最初的目的是為了證明經理的存在沒有太大意義,最後卻證明優秀的經理很重要。他們是怎麼做的呢?。。。。。。


乍一看,如此事無巨細似乎有點把成人當成孩子看了。但是要記住,並非每個人都天生有做經理的本事。告訴經理具體該怎麼做,他們就可以劃掉待辦事項中的一項非常煩人的工作。他們需要思考的事情減少了,轉而可以專註於行動。


最終,採用了電子郵件中給出的行動建議的經理,他們手下的谷歌新人達到全效工作的狀態比同伴快25%,省下了整整一個月的學習時間。結果顯示,檢查清單確實有效,即使這份清單簡單得有些傲慢也一樣。我們都是人,總有些時候忘記一些最基本的事情。


通過這個幾個行業的案例,我們應該可以體會到,清單不是大而全的操作手冊,而是理性選擇後的思維工具,它能將夠幫助我們在操作的每一步都儘力保持冷靜而睿智的頭腦,確保在必要的時候得到所需要的重要信息,系統地進行決策,在遇到複雜問題的時候,和每一個應該溝通的人進行充分交流,從而避免“無能之錯”。

背後的思考

清單思維為什麼在各個行業都被驗證是有效的,我們來看看清單背後的邏輯。


清單的設計背後是不僅僅是對事件的規劃和對經驗的總結,更是理性思考和深層次思維方式的體現。


諾貝爾經濟學獎丹尼爾•卡尼曼在《思考,快與慢》這本書中,提出人類的思考框架由兩部分組成,分別命名為系統1和系統2。


系統1,快思考,是簡單,自然,迅速,沒有感覺,其實可以說它算不上是一種思考,而更像是一種條件反射。


系統2,慢思考,它需要經過大腦的分析質疑思考評估反省等活動之後在作出具體的決策。


用系統1思考或判斷是非常快捷的,因此人們往往第一時間通過它在腦海中形成觀點。但有時系統1可能得不到結論或是得到錯誤的結論,因此人類也經常求助系統2進行更為複雜和費力的思考過程,以圖補充或糾正系統1。


但是,上述說法不完全等於系統1是感性的、系統2是理性的。只是為了便於理解,我們本次的討論可以大致給系統1和感性、系統2和理性之間劃等號。感興趣的同學可以讀書深入瞭解一下。實際上系統2經常受到系統1的影響。這種影響可能是正確的,也可能是錯誤的。而且系統2很懶惰,經常疏於校驗,從而無法糾正系統1形成的錯誤。這時候清單的介入就會提醒系統2的介入。


從人類300多萬年的進化歷史看,7萬年前才出現“認知革命”,由此發展出理性認知,而之前的300萬年都是感性認知。在大多數的時間段里,人類都是靠感性,也就是直覺在做決策,而理性的歷史非常短。我們日常生活中95%的行為都是由基因決定的自髮式行為,大腦是需要上百萬年才能夠得以進化的,目前人類的大腦是為瞭解決前面300萬年的進化時間段內,狩獵時期的人類所面臨的生存問題。在那個時間內,人類必須是要快速決策,才能生存。


比如遇到一隻豹子,第一反應就是跑,而不需要去思考計算我離豹子的距離,以怎樣的速度和角度跑是可以成功逃脫的;同時使用系統2思考需要消耗的能量遠大於系統1思考,對於能量獲取極難的時代,很顯然為了求存,系統2自然很難發展出來。我們現代,正常生活,95%的事情通過系統1就能解決,比如你可以一邊開車,一邊聊天,但是無法一邊開車一邊計算複雜的數學運算。


介於以上生物學的剖析,現時代,人與人之間差異的最大的原因是系統2到系統1的轉化能力。


查理芒格在《窮查理寶典》中,也提出了雙軌分析原則:


  1. 首先,理性地看,哪些因素真正控制了涉及的利益;

  2. 其次,當大腦處於潛意識狀態時,有哪些潛意識因素會使大腦自動以各種方式形成雖然有用但往往失靈的結論?


前一種做法是理性分析法——就是你在打橋牌時所用的方法,認準真正的利益,找對真正的機會,等等。


後一種做法是評估那些造成潛意識結論(大多數是錯誤的)的心理因素。


簡單來說,就是首先理性分析,然後完全用感性去決策,通過對比,通常發現感性所做的決策大多數是錯誤的,並能總結下來,評估出那些容易導致決策失誤的心理因素,下一次在遇到這些情況的時候,就不做決策。


我認為這種分析法不僅適用於投資,還適用與其他工作和日常生活。清單的設置,就是理性的思考過程,提煉出容易忽略的點,規避人類思考機制的缺陷,減少大腦潛意識下的決策,引導大腦到使用系統2,從而更容易、更有效地做對事情。


系統2或者說理性思維的前提是思維邏輯,所以為什麼說清單思維呢?清單實際是輸出項,重要的是由於什麼樣的思維邏輯,產生出什麼樣的清單。優秀的清單背後一定有其優秀的思維模型。拿我目前在做的海外B2C公司的商城應用遷移上雲專案為例,在這個專案的過程中,我依據了WBS思維模型的理念。


WBS(Work Breakdown Structure),工作分解結構,跟因數分解是一個原理,就是把一個專案,按一定的原則分解,專案分解成任務,任務再分解成一項項工作,再把一項項工作分配到每個人的日常活動中,直到分解不下去為止。


我們首先以專案為視角,給遷移分為了四個階段:準備階段、實施階段、驗證階段、上線階段,確定每個階段的時間區間、任務規劃,責任到人。部分截圖如下:    


其次,確定遷移業務物件,分解業務到每一個應用,確定應用的運維負責人和研發負責人;


第三,以應用為物件,將工作分解到準備、實施、驗證、上線階段,對於每一個建立關鍵工作清單跟蹤表。    

第四,跟蹤小組每天跟蹤應用工作進度,彙總到專案總進度,最終達成專案標的。


美國著名對沖基金橋水公司的創始人雷達利歐在《原則》一書中提出一般做事的五步思維。


    1、有明確的標的。

    2、找到阻礙你實現這些標的的問題。

    3、準確診斷問題,找到問題的根源。

    4、規劃可以解決問題的方案。

    5、做一切必要的事來踐行這些方案,實現成果。


我們今天用兩個五步連接起來,使用清單思維來考慮,一次性實現成果之後,這件事的關鍵步驟可能還不是最全的,我們需要不斷驗證、補充、再實踐,讓事件離100%正確越來越近,這一思路和PDCA的思維異曲同工。第一可以讓這件事情更正確地被做好,其次也是鍛煉了理性思維能力,經過多次的刻意練習,系統2轉化為系統1的效率會大大提高,清單對你可以越來越簡化,畢竟1+1=2這件事情不需要清單來輔助思維。看上去是事情做好了,其實是思維方式獲得了成長,你再以這樣的思維去學習新技術、新知識,避免一個個“無知之錯”,獲得進一步的成長。


卡羅爾·德韋克在《終身成長》中提到兩種思維方式以及對於成功的意義,固定型思維,是重覆性工作,一遍遍地重覆證明自己的能力,成長遭遇瓶頸;成長型思維,建立在這樣一種理念上,你的基本能力是可以通過你的努力來培養的。這不就是我們講的清單思維麽?


為了幫助你更好地理解這兩種思維樣式是如何工作的,請想象一下,盡可能生動地去想,你是一個年輕人,經歷了非常糟糕的一天:


你去上一門對你來說很重要的課,而且你非常喜歡這門課。你的教授公佈了期中考試成績,你得了 C。你非常失望,等到晚上準備回家的時候,你發現自己的車上貼了一張違章停車罰單。你感到非常泄氣,打電話給最好的朋友想要傾訴,但是卻沒有打通。


這個時候,你會怎麼想?你會有什麼樣的感受?你會怎麼做?”


請大家花30秒思考一下。下麵公佈一下答案:

固定型思維者的可能回答:1、2、3、4

成長型思維者的可能回答:1、2、3

不是說你必須擁有某種思維樣式,而擁有另一種思維樣式的人就會產生挫敗感。


誰不是這樣呢?糟糕的成績、朋友或愛人的拒絕都不是什麼開心的事,沒有人會喜歡這些糟糕的事情。只是這些有著成長型思維樣式的人不會給自己貼上標簽,或對自己失去信心。即使他們感到沮喪,他們也準備好了去承擔這個風險,直面挑戰,繼續為此奮鬥。


如果你的答案,匹配的是成長型思維者的答案,那麼恭喜你,你很有可能已經具備成長型思維,如果匹配的是固定型思維者的答案,那麼建議你遇到問題的時候,通過清單思維多鍛煉你的理性思考,有助於你轉變思維樣式。


我們來做一個簡單的測試,不要大家舉手,只需要內心把答案選出。


回答以下關於智力的問題,閱讀每一條並判斷同意與否:

    1.你的智力屬於你比較基本的特質,很難做出很大改變。

    2.你可以學習新事物,但你的智力水平是無法改變的。

    3.無論你的智力水平怎麼樣,你總是可以大幅改變它。

    4.你什麼時候都可以對你的智力水平做出根本性的改變。


問題 1 和 2 屬於固定型思維樣式,3 和 4 則反映出成長型思維樣式。你更同意哪種思維樣式呢?你可以是兩種思維樣式的混合,但是大部分人都傾向於其中一種。

    1.你是某一種型別的人,基本沒有什麼可以改變這一點。

    2.無論你是哪一種人,你總是可以從根本上改變既定型別。

    3.你可以換一種方式做事,但決定你身份的最重要的特質並不會真正改變。

    4.你總是可以改變決定你身份的基本特質。


這裡面,1 和 3 是固定型思維樣式,2 和 4 反映出成長型思維樣式。

假如你是固定型思維的話,就不容易發現問題,也不善於去解決問題,並形成迭代。你會覺得這樣就好,如果沒有強有力的外因推動作用,進步、成長速度就會相對較慢。


假如你是成長型思維,那麼首先恭喜你,你善於發現問題,並具備優化問題、解決問題的能力。但還是需要一個工具來時刻提醒你,使用系統2去持續、正確的做好事情,並不斷完善和迭代。


前面說到,我們通常花時間看了很多專欄,看了很多書,貌似懂得了很多道理,卻依然所得甚微。我們通過DIKW模型來看看智慧是如何形成的。


資料:資料是事實、信號或符號的集合。在這種形式下,資料可能是原始、不一致或雜亂的。因此,這種資料沒有用。


信息:信息是按一致的方式整理和排序的資料集合。信息形式的資料變得更有用,因為它很容易儲存和檢索。


  • 知識:知識是信息及其相關背景關係的集合。知識是處理一些信息的經驗結果。

  • 智慧:智慧是根據知識來選擇達到標的結果的最佳方式的能力。通常是決策的原因。

從資料到智慧,縱坐標代表你所獲取的內容量,橫坐標代表你的理解力,如果內容量隨著你的理解力程度的加深,會由資料到信息,到知識,最後形成智慧。也就是我們智慧不斷形成的過程,實際是對資料做處理的方式由簡單到複雜。


通常,在每家公司都會建立一個運維知識庫,用於存放出現過的故障復盤總結以及一些技術分享、經驗分享。這些內容是是很有價值,建立的初衷也是為了方便積累、回顧和反思,但這湊效麽?我在和同行朋友的交流的時候,發現通常會有兩個問題:


第一,這個制度很難堅持執行下去,積累大多是有的,但是回顧和反思卻很少去做,這些內容都是以案例個體形式存在的而且通常內容較多,缺乏對過往所有故障事件的階段性回顧、總結和提煉。


第二,即便是按照知識庫建立的初衷那樣認真的踐行這一制度,也很少有公司對以往故障進行統計分析,將故障分類,找到同類故障的關鍵因素,提煉出簡潔而有效的避免下次再犯同類錯誤的辦法。由於沒有建立清單思維來提煉和編製他們,他們就僅僅是信息,或者知識,並不能提供關鍵時刻用來決策的智慧。


清單對於處理好已有知識和學習新的知識,並將他們轉化為智慧是非常有幫助的,實際也是促進系統2介入到思考樣式中來的過程。

最後簡單總結了幾個清單設計的原則:

設置清晰的觸發事件。也就是當遇到這些關鍵事件的時候,需要按照清單列出的專案執行檢查程式。比如:在做監控告警設置閾值,設置通知人,時間點;遇到某種故障的時候,首先檢查清單中列出的可能性原因等。


  1. 根據不一樣的問題分級,選擇不一樣的清單型別,比如檢查清單、操作清單、溝通清單。

  2. 清單需要簡明扼要,不宜太長。內容主要是註意力容易跳過的但又是一旦跳過容易造成嚴重威脅的步驟。

  3. 用語精煉、準確,版式整潔,不能雜亂無章。

  4. 認真執行,在現實中檢驗,建立信任,並不斷更新。


運維清單本質上是運維專家將其遇到的大量案例,進行梳理、總結、提煉出在各種場景下最關鍵的原則和關鍵點,是經驗的傳播,保證曾經成功過的方法和結果能極大概率的複製。但清單內容再好,實際工作中不執行,便無法檢驗,也就無法指出清單內的問題,內容就無法更新以適合最新的情況,最終無法湊效。所以日常的訓練和執行非常重要,通過執行獲得檢驗和反饋,再根據反饋修改清單內容,最終獲得最合適的清單。


當清單內容在實踐中被證明是有效的之後,運維人員就會越來越能體會到它的好處。    運維清單的力量是有限的,它不會列出具體的操作步驟,解決問題的主角畢竟還是人,但它能夠幫助人們搞清楚哪些事情是最重要的,確保在必要的時候得到所需要的重要信息,使用“系統2”進行決策,並和每一個應該溝通的人進行充分交流,促進團隊合作。


所謂的成功往往無法複製,因為因素並不單一,但成長卻可以是終身的,我們可以通過制定不同情況下的清單,不斷執行、檢驗、反饋、更新、再執行,一方面能夠使運維工作不再是簡單的重覆,最重要的是實現成長型思維的刻意練習,強化主動性,實現運維人的終身成長。

總結

最後,我使用了dalio提出的五步思維模型,做一次刻意練習,來給今天的演講做一個總結。

第一步:確定標的,運維人的成長,而且成長需要終身;

第二步:找到運維人成長遇到的問題,“無能之錯”和“無知之錯”;

第三步:找到這兩個問題背後的原因,無能之錯是在於人類的思考機制缺陷,終身成長需要成長型思維;無知之錯在於缺乏有效的學習,形成長在大腦里的知識;

第四步:制定解決方案,學習、提煉思維模型框架,不斷練習,並輸出高質量的清單,形成成長型思維的轉變

第五步:使用清單這一工具,在工作中不斷積累、提煉、迭代,最終形成自己完善的思維模型框架,提升成長型思維,以此獲得終身成長的前提基礎。


回到標題,運維人的終身成長,從做好清單管理開始,謝謝大家!



●編號221,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

Linux學習

更多推薦18個技術類微信公眾號

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂