《運維與個人英雄主義》要點:
本文介紹了運維與個人英雄主義,希望對您有用。如果有疑問,可以聯系我們。
什么是個人英雄主義?
根據互動百科,個人英雄主義有以下釋義:
不突出依靠人民群眾的力量,而強調個人力量而去完成某種社會任務的英雄主義思想和行為.與“革命英雄主義”相對.它以個人主義為原則,強調個人在社會生活和歷史活動中的作用,將“人民群眾的力量和智慧”置于次要地位.
以上釋義是一個適用于所有行業的解釋,那么對應到運維領域,個人英雄主義該怎么定義呢?我的理解是下面這樣的:
依靠個人力量去維護一個有問題的系統,使外界看來一切都很正常,這個過程中會涉及犧牲個人利益.
這里我們需要對系統進行一下定義,系統可以是以下任何一個或者他們的組合:服務、團隊、流程、軟件
前面對系統進行了定義,在運維的過程中一般會給系統定義SLA,或者一些其他可以描述系統正常運轉的指標.
但是現實中的系統往往達不到預定的SLA或指標,這時候英雄出現了,他或她會盡全力試圖使系統達到預定SLA或指標.
通常英雄會通過以下努力來力挽狂瀾:
英雄的團隊負責一個工單系統,對外承諾的SLA是24小時處理,每周由不同的團隊成員輪班.
由于業務系統的高速發展,每天都有很多新的工單進來,在8個小時之內根本處理不過來,我們的英雄會工作到很晚去處理,每天的工作時間從8小時發展到10小時、12小時、16小時,以確保可以達到承諾的SLA.
英雄的團隊負責一個生產服務,該服務設定的SLA是可用性4個9.但是由于該服務的軟件架構設計、發布流程、監控設置等問題,該服務達不到4個9.
我們的英雄會每天巡視服務的監控系統,人肉定位異常、回滾有問題的發布、提前發現資源預警、重啟有問題的程序等等,以確保可以達到承諾的SLA.
回答這個問題需要看站在什么樣的立場來看待好不好.
短期內對公司是有利的,系統正常運轉沒有出現故障;長期來看對公司是不利的:因為更深層次的系統問題被掩蓋,當系統高速發展時問題會暴露出來.遲早英雄的個人精力會被耗盡,離職或者轉組之后問題暴露出來.
短期內團隊其他成員有更多時間投入到項目中,而不被瑣事打擾,因為不少瑣事已經被英雄處理了;團隊會被表面現象迷惑,認為當前運維的系統運轉良好,從而不會投入人力去改進,但是問題會隨著系統發展和英雄的離開暴露出來,那時候解決會花費更多的時間和精力,損失也比之前修復問題要更嚴重.
英雄的工作方式會潛移默化的影響其他人,影響團隊成員判斷什么才是更有價值和長遠影響的工作,也會影響團隊成員對所維護系統的期望(什么樣的系統才是一個正常運轉的系統).新成員可能會理所當然的認為,系統就是這樣工作的.
除了所謂的個人成就感,英雄本人是沒有什么好處的.你也許會爭論說系統缺了英雄就沒法運轉了,英雄應該獲得升值和獎勵.但是問題是,別人并不知道英雄所做的這些努力,而且往往這些努力是短暫的重復性的,并不能解決根本問題,僅僅停留在靠一個人的時間精力可以維持的程度,在技術驅動的公司這樣的工作并不能使英雄升職加薪.
更可怕的是,隨著時間的推移,系統變得更加龐大和復雜,英雄個人無法修復所有問題時,不僅會花費更多的時間而且會打擊英雄的自信心、降低工作效率和創造力,最終導致英雄的離職和轉組.
由于英雄的積極努力,看似系統是運轉良好,但是深層次的系統性問題被掩蓋了.英雄變成了系統正常運行的單點,但是其他人并不知道;系統的問題不能被暴露出來,從而沒有任何改進,在系統復雜性變大時,問題會以更嚴重的方式暴露出來,后期的改造往往意味著更高的成本.
在遇到突發問題時,個人英雄主義對暫時度過難關是有幫助的.但是長遠來看則應該建立正確的期望,團隊運維的系統不應該依賴任何英雄就能做到正常運轉.
前面講了那么多的不好,那為什么還會發生呢?原因主要有以下幾點:
如何在運維中避免個人英雄主義,首先需要團隊經理或者技術領導能夠意識到這個問題,理解這種思想、行為對個人/團隊/系統所帶來的巨大負面影響,然后采取行動
定期、及時的傳達個人英雄主義帶來的問題,讓團隊成員清晰的認識到沒有必要忍辱負重的維護不合理的SLA或指標;鼓勵團隊成員分享所遇到的問題;鼓勵團隊成員及時向上級反饋問題.
根據團隊成員反饋的問題,合理制定工作,對系統進行改進,使之不依賴于任何單點就可以達到預期的運行狀態.團隊成員把時間花在可以對系統產生長遠收益的項目上.
這是個很高的要求,因為并不是所有人都能看到一個項目對系統能帶來的長期收益,抑或是有些人只關心功能的快速上線,這時候運維經理需要頂住迫切上線的壓力,合理安排團隊成員的時間,以短期被動換取長期的主動.
如果系統的SLA或者指標沒法達到,承認這個事實,然后對系統進行改進.
這會使系統短時間內達不到SLA,但是通過投入精力改進系統,修復真正的底層問題,系統會最終恢復而且是恢復到一個長期穩定不需要人額外關注就可以達到SLA的狀態.
團隊負責運維的系統很多時,難免會產生不同團隊成員負責不同組件的情況,這時即便沒人想成為那個英雄也難免被成為那個英雄.
這時每個組件的負責人,就需要盡力消除自己這個單點:
個人英雄主義會使人聯想到運維團隊就好比救火隊員的形象,英雄總是能及時撲滅大火,但是也隨時忙于撲滅大火,卻沒有時間把起火的原因徹底解決從而不用忙著撲火了.
減少運維中的個人英雄主義,其實就是降低甚至消除系統對人的依賴,自治程度越高的系統才可能達到更高的SLA,更快速的發布等等.
對于領導來說,要把運維工作搞好,就要發現和消除系統對個人英雄主義的依賴.對于個人來說,要把運維工作做好,就要有不充當個人英雄的意識.
把下面一句話送給做運維的朋友:
Don’t sacrifice your social life for professional life and later regret it.
作者:呂宏利
來自微信公眾號“云中慢步(cloudify)”:在硅谷原創分享分布式系統、數據中心生產環境、云計算前沿的實踐經驗和剖析研究
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4352.html