2015年,業界已經連續出現了幾起大的故障。究其根本緣由,都是不該該的人爲事故。本文從這些大故障提及,主要談及運維管理相關的一些話題。本文的主要內容包括:數據庫
1、不太平的互聯網編程
2、爲何這麼多人爲事故?安全
1.爲何運維更容易發生事故?服務器
2.規範這麼全,爲何還有事故?微信
3.都自動化了,爲何還有事故?網絡
4.灰度這麼好,爲何還有事故?架構
3、怎麼規避人爲事故?運維
1.選擇合適的人ide
2.培養安全意識工具
3.讓專業變成一種習慣
好吧!咱們正式開始。
1、不太平的互聯網
近期獲悉的一些大故障,不只來自於攜程、阿里雲,還有一些影響範圍不是很大,但一樣很是不該該的人爲事故。
901阿里雲故障
阿里雲稱因雲盾升級觸發bug,致使部分服務器的少許文件被系統誤隔離。其已第一時間啓動系統回滾,被誤隔離的文件正在陸續恢復。
部分阿里雲用戶表示很受傷。
不少微信羣朋友紛紛表示也已中招。從波及面及技術層分析來看(詳見下文),應該是人爲事故爲主。
528攜程故障
5月底的此次攜程故障,在17小時後才恢復業務。官方更是直言爲「員工錯誤操做致使」。
其餘「使人髮指」的故障
包括但不限於:
1.某公司技術人員大白天的給公司計費數據庫服務器更換電源…
2.某銀行總行大型機,關鍵線路接反了…
3.某銀行關鍵交易系統,更新版本時SQL 腳本update 語句沒寫where 條件,而後全部網點信息都被重置…
根據筆者十多年的互聯網從業經驗,重大故障,究其根源,至少60%都是低級人爲事故。真正由於複雜系統問題致使的嚴重故障,很是之少。
2、爲何這麼多人爲事故?
互聯網發展至今,還沒脫離草莽時代。技術上,從最開始的小米加***,到如今逐漸自助化、半自動化,或者利用開源產品修修補補造成本身的系統。
若是說技術上的發展尚可陳詞、有些亮點,那麼對人的管理和重視程度,就更加落後得太多。
能夠佐證的是,微信技術社區裏頭,討論技術熱點的文章很是之受追捧;但技術管理類的文章,每每很是被冷落。
究其緣由,仍是在於廣大互聯網技術人員的「手藝人情結」。從我所在的運維行業來看,尤其突出:
你們都是從Linux、Shell 開始學起,很是享受那種敲幾行命令一回車,自動部署多臺服務器的快感及成就感。並誤覺得這就是本身的所有。
技術人員夢想着身懷「絕技」,對Linux系統的某些壓箱底活兒或對某項編程技術的獨門祕籍,自此笑傲人生,並「不爲五斗米折腰」,如認爲公司或領導有讓本身不爽的地方,即刻」瀟灑」遁去。
雖然,這每每驗證了一句話「最有才能的人,每每是最無效的」。
技術人員不肯受束縛,更多很是相信本身,以爲個人技術槓槓的。爲何須要別人來檢查個人工做?我就是完美。
技術負責人每每工做年齡更長,可能經歷過更野蠻生長的時代。
並且不少人潛意識地認爲,技術能夠解決一切問題,但問題是:
當系統愈來愈大、自動化和智能化程度愈來愈高,開飛機的人,水平跟不上,怎麼辦?
機器再強大,也須要人來操做。你說是不?
1.爲何運維更容易發生事故?
其實相比運維,開發人員仍是幸福的。開發更多關注功能、怎麼快速交付項目需求便可。程序有Bug?還好啦!後面還有測試在兜底。甚至,Bug 多些也無妨,還能算作測試的績效。
在這個時候,開發是操做人,測試其實是檢查人,兩個崗位互補:
這就是爲何飛機駕駛艙會有兩名飛行員的緣由,即便副駕駛員看上去無所事事的樣子。但,關鍵時候但是能救命的。
運維就沒這麼幸運了。運維每每苦逼地衝在第一線,手上掌握着的都是生產環境。並且通常狀況下,問責自負,基本上沒有誰來檢查運維的工做。也少有人意識到這是個嚴重問題。
2.規範這麼全,爲何還有事故?
規範是用來「制約」人的,技術是用來「簡化」人的。But,系統再智能也得人來操做,不是麼?
對於人自己,咱們究竟作了哪些事情呢?這是值得捫心自問的。
規範再多,人也能夠束之高閣。因此管理者必定不能以爲規範制度完善了,就已萬事大吉。偏偏相反,放鬆警戒,放鬆對人的管理,放鬆貫徹執行,更大的悲劇可能將要來臨。
規範制度不是技術管理的所有,規範能夠理解爲最低標準,用來杜毫不專業的人去會犯毀滅性錯誤。
規範更可能是「術」,而不是「道」。雖然規範想體現「道」,但畢竟,「指向月亮的手不是月亮」。
重視選人、重視培養人的專業意識,纔是王道。
3.都自動化了,爲何還有事故?
近期這幾起嚴重故障定義爲人爲事故,我想應該沒有多少人反對。
自動化能夠減小人員例行的、重複的登陸服務器的操做,從而減小人爲事故的發生。那麼這又是鬧哪樣呢?
其實恰好相反,人爲事故由於運維自動化平臺的出現,其惡劣影響更是被無限放大。
以前小米加***的時代,你們都登陸服務器進行操做,千百臺服務器各自爲政,想一次性搞癱整個系統,還真的很難。
運維自動化平臺的出現,很好的「解決」了這個問題。畢竟,平臺再智能,也須要人來操做。而過度依賴平臺,反而削弱對人員專業性的培養。
人的關係沒協調好,問題的根源就沒解決。壓死咱們的每每是最後一根稻草。
4.灰度這麼好,爲何還有事故?
有人會說了,咱們公司灰度發佈很是完善,理應能控制各類事故發生。即便有,影響範圍也應該很是之小。
這其實有兩個問題。一則有了灰度發佈,就能夠忽略測試環境了麼?若是模擬環境並不足夠仿真,或沒有在模擬環境充分測試過、直接在生產系統上進行灰度,這個也是很是值得商榷的:
一個朋友說,電信內部作運營,動用了九個機櫃100%模擬生產環境,專門作測試。包括網絡設備版本,也都充分的穩定性測試。
可能根本緣由在於,互聯網行業草根出身,長期野蠻生長,從亂到治,習慣試錯和快速迭代,所以容易亂象叢生。而電信、銀行這些行業,這些從一開始就視安全爲命脈,循規蹈矩,謹小慎微。
還有,重大事故發生時,灰度範圍內的用戶,對他們而言,總歸是無妄之災。憑什麼他們就應該蒙受此等「待遇」呢?他們何罪之有?
他們就理應是」小白鼠「麼?
二則灰度策略,是否合適?版本發佈平臺每每匯聚衆人智慧結晶設計架構而成,但可能沒有定義具體的灰度策略(這不屬於技術範圍,而是業務範圍)。
也就是說,一次更新100臺服務器,仍是一次更新10000臺服務器,是能夠被操做人員手工指定的。
最怕的就是,工具作得很流弊,使用者綜合能力很通常。
使用者若是圖個省事,所謂的灰度發佈,一次性的更新成千上萬臺服務器,那麼工具就不只沒有產生效率,反而變成了幫兇(就像刀磨快了,反而變成殺人利器)。
究其本質而言,灰度其實就是一種制度和意識。是但願經過灰度,喚醒人的安全意識。若是操做人員,不能覺悟到這一點,就是死路一條。
3、怎麼規避人爲事故?
在生產系統上更新版本(特別是若是沒有同等模擬環境的話),就像在高速公路上換輪胎,各中危險,不一而足,特別是服務了成千上萬臺物理機的大系統而言。
人爲事故的出現每每不是個例,是長期積累的結果,單我的爲事故每每也只是呈現了問題的冰山一角而已。人爲事故,是必然而非偶然。
想要有機會完全的解決人爲事故,建議從以下幾方面着手。
1.選擇合適的人
選好人,每每能作到事半功倍,反之亦然。
管理學的重要原則之一是發揮人的優點,儘可能不要嘗試着去改變一我的。特別是對於一線生產系統的操做崗位(其實很是重要)而言,找到合適的人,比什麼都重要。
運維的首要工做職責是穩定性。所以須要找性格老實、謹小慎微的人來作更加合適。性格毛糙,甚至容易「幻聽」的人,明顯不合適,畢竟,「常在河邊走,哪能不溼鞋」。
爲何非得要讓二把刀來開飛機呢?
德才兼備是正途。這裏所謂的才就是技術,德是人的德行、行爲和意識。道和德是相通的,運維人員的意識加強了,綜合能力提升了,規範了,是能夠避免一些問題的。
這裏順序很重要,直接從規範切入,每每是失敗的開始。須要首先提升意識水平,而後順勢而爲。而不是生猛切入。
2.培養安全意識
「對運維操做要有敬畏之心」。這句話應該做爲警世恆言,掛在每個運維人員的心頭。
腦子裏牢記安全意識,比死記硬背規章制度更重要(固然,首先須要有規章制度)。
運維制度及規範體系的最大意義在於,控制死角可能的影響。每一次事故,都是一個盲點、一個死角又被發現的過程。運維最難之處在於,不可能作到沒死角。
規範制度確定落後於問題。爲了規範而規範不是目的,根據訴求控制風險的規範,纔是有意義的。
誠然,「安全沒有捷徑,該踩的雷都會踩到。」但這不是藉口,不是免死金牌。同理,用技術來保障技術,也是不可取的。
讓每個運維人員腦海裏都緊繃着安全這根弦,比什麼都重要。畢竟,死角永遠都存在。只能用未知來解決已知,而不是反之。
3.讓專業變成一種習慣
先哲亞里士多德曾說:「人的行爲老是一再重複。所以,卓越不是單一的舉動,而是習慣。」
單次的刺激沒法造成習慣,單次過猛的刺激,只會造成恐懼,變得畏手畏腳。
專業是否變成一種習慣,每每更多取決於管理者。由於管理者更能分清楚,哪些是重要緊急,哪些是不重要不緊急。專業首先應該是管理者的一種習慣,而後時時傳遞不鬆懈。
管理者應該選對人,而後對於有重大操做權限的人員,常常性的溫習各種故障、事故,採起各類辦法,讓員工時刻具有安全意識,真正認識到責任重大。
「警鐘常鳴」,各類震撼人心的模擬演練、演習和培訓,也必不可少。
須要樹立檢查人機制,創建一個好的團隊工做習慣,「結對運維」:
沒有檢查崗,單槍匹馬作事情,平時還好,在狀況複雜時,我的情緒波動和精神壓力均可能很是大,容易錯誤決策,或使出「昏招」。
另外補充說下:對於公有云而言,若是參與雲保險,這對於終端用戶而言也是幸事。畢竟雲廠商的賠償,即便100倍又能多少呢?業務的損失,若是由第三方保險公司來作些承當,應該更好。
路漫漫其修遠兮,吾將上下而求索。謹以此句,和天下運維同仁共勉。一塊兒加油。
如何一塊兒愉快地發展
「高效運維」公衆號(以下二維碼)值得您的關注,做爲高效運維繫列微信羣(國內領先的運維垂直社區)的惟一官方公衆號,每週發表多篇乾貨滿滿的 原創好文:來自於系列羣的討論精華、運維講壇精彩分享及羣友原創等。「高效運維」也是互聯網專欄《高效運維最佳實踐》及運維2.0官方公衆號。
重要提示:除非事先得到受權,請在本公衆號發佈2天后,才能轉載本文。尊重知識,請必須全文轉載,幷包括本行及以下二維碼。