順豐該不該開(kāi)除運(yùn)維工程師堕仔?

image.png

順豐運(yùn)維工程師因誤刪庫(kù)被開(kāi)除的事擂橘,現(xiàn)在已經(jīng)在圈內(nèi)炸鍋了。

本來(lái)我是很討厭蹭熱點(diǎn)的摩骨,因?yàn)檫@樣寫(xiě)出來(lái)的內(nèi)容很可能缺乏長(zhǎng)期價(jià)值通贞。但是作為極少數(shù)既 drop 過(guò)生產(chǎn)庫(kù),也 rm -rf / 過(guò)線上服務(wù)器的過(guò)來(lái)人恼五,我覺(jué)得自己很有必要站出來(lái)說(shuō)點(diǎn)什么昌罩。

馬上要放假了,半夜爬起來(lái)碼字灾馒,倉(cāng)促之處必有疏漏茎用,還請(qǐng)各位海涵。

事件還原

本次事件流出的是一封順豐內(nèi)部通報(bào)郵件,大概描述了一位鄧姓工程師因操作不當(dāng)而導(dǎo)致數(shù)據(jù)丟失轨功、業(yè)務(wù)停擺的事故旭斥,郵件內(nèi)容如下:

鄧某錯(cuò)選了 RUSS 數(shù)據(jù)庫(kù),打算執(zhí)行刪除的 SQL古涧。在選定刪除時(shí)垂券,因其操作不嚴(yán)謹(jǐn),光標(biāo)回跳到 RUSS 庫(kù)的實(shí)例羡滑,在未看清所選內(nèi)容的情況下菇爪,便通過(guò) delete 執(zhí)行刪除,同時(shí)鄧某忽略了彈窗提醒柒昏,直接回車凳宙,導(dǎo)致** RUSS 生產(chǎn)數(shù)據(jù)庫(kù)被刪掉**。

因運(yùn)維工作人員不嚴(yán)謹(jǐn)?shù)牟僮麝汲瑢?dǎo)致 OMCS 運(yùn)營(yíng)監(jiān)控管控系統(tǒng)發(fā)生故障近速,該系統(tǒng)上臨時(shí)線上發(fā)車功能無(wú)法使用并持續(xù)了 590 分鐘。

…… 此次故障導(dǎo)致業(yè)務(wù)產(chǎn)生了嚴(yán)重的負(fù)面影響堪旧。

……根據(jù)《獎(jiǎng)勵(lì)與處罰管理規(guī)定3.0》……對(duì)直接責(zé)任人鄧XXX予以解除勞動(dòng)合同處罰,并予以順豐科技全網(wǎng)通報(bào)批評(píng)奖亚。

以上描述得有些專業(yè)了淳梦,非技術(shù)人員理解起來(lái)可能有點(diǎn)困難,我來(lái)給大家用白話翻譯一下:

小鄧是一名年輕的程序員昔字,干起活來(lái)手特別快爆袍,平時(shí)敲打鍵盤(pán)如狂風(fēng)暴雨一般,一般人的眼睛根本跟不上他的操作作郭。然而跑得越快陨囊、摔得越慘,終于有一天夹攒,他在做危險(xiǎn)操作的時(shí)候因?yàn)槭挚彀l(fā)生了失誤蜘醋,刪除了重要的工作數(shù)據(jù),讓公司的系統(tǒng)癱瘓了十個(gè)小時(shí)咏尝。結(jié)果他被開(kāi)除了压语,還被全公司通報(bào)批評(píng)。

好了编检,事情的經(jīng)過(guò)就是這樣胎食。接下來(lái)我再?gòu)募夹g(shù)角度分析一下。從“導(dǎo)致RUSS 生產(chǎn)數(shù)據(jù)庫(kù)被刪掉”這句話來(lái)看允懂,小鄧應(yīng)該做的是 drop (卸載庫(kù)) 操作厕怜,而不是 delete (刪除數(shù)據(jù)) 操作。根據(jù)我的經(jīng)驗(yàn)和理解,事情大概率是這樣的:

聲明:以下所述只是我個(gè)人的揣測(cè)粥航,很可能不是事實(shí)琅捏!

很明顯,小鄧想把生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)的數(shù)據(jù)搬到測(cè)試環(huán)境里躁锡。定期將生產(chǎn)數(shù)據(jù)同步到測(cè)試環(huán)境午绳,這是一個(gè)非常常見(jiàn)且高頻的需求。如果數(shù)據(jù)結(jié)構(gòu)不同映之,代碼就跑不起來(lái)拦焚;如果數(shù)據(jù)不新不真,產(chǎn)品經(jīng)理也不好評(píng)估新產(chǎn)品的效果杠输。

做數(shù)據(jù)同步和遷移有很多種方法赎败,其中最方便快捷、簡(jiǎn)單粗暴的方法就是:

  1. 把線上的數(shù)據(jù)庫(kù) dump(打包) 成一個(gè)文件

  2. 把這個(gè)文件下載到測(cè)試環(huán)境的機(jī)器上

  3. 在測(cè)試環(huán)境 drop (卸載)現(xiàn)有的庫(kù)

  4. 用文件中的數(shù)據(jù)重建新的庫(kù)

很明顯蠢甲,事故發(fā)生在第三步僵刮,也就是:本應(yīng)在測(cè)試環(huán)境執(zhí)行的 drop 操作,在生產(chǎn)環(huán)境被執(zhí)行了鹦牛。

如果是第一次做這樣的操作搞糕,我相信任何有基本職業(yè)操守的人都會(huì)非常小心的。從小鄧“忽略了彈窗提醒曼追,直接回車”來(lái)看窍仰,他對(duì)整個(gè)操作流程是非常熟練的,當(dāng)天他一定是已經(jīng)做了很多次這樣的操作礼殊。

我大膽地猜測(cè):小鄧同學(xué)是在 熬夜加班 / 臨近飯點(diǎn) / 老婆催回家 / …… 之類的狀態(tài)下驹吮,無(wú)心犯下這個(gè)錯(cuò)誤的。

問(wèn)題到底出在哪里晶伦?

既然問(wèn)題出現(xiàn)了碟狞,我們就得搞清楚以下三個(gè)問(wèn)題:

  1. Why:導(dǎo)致問(wèn)題的根本原因究竟是什么?

  2. How: 怎么避免以后再發(fā)生類似的問(wèn)題婚陪?

  3. What:現(xiàn)在我們應(yīng)該做些什么族沃?

我們先來(lái)研究一下,導(dǎo)致本起事故的根本原因到底是什么近忙?真的是小鄧 粗心大意竭业、一味求快 么?

對(duì)任何已有結(jié)論的問(wèn)題及舍,都應(yīng)該進(jìn)行自己的獨(dú)立思考未辆,這樣才不會(huì)人云亦云,掉入思維陷阱里锯玛。

在未看清所選內(nèi)容的情況下咐柜,便通過(guò) delete 執(zhí)行刪除
同時(shí)鄧某忽略了彈窗提醒兼蜈,直接回車

這一部分沒(méi)得說(shuō),100%是小鄧的問(wèn)題拙友。不看提醒直接默認(rèn)選擇为狸,這是一個(gè)非常不好的習(xí)慣。應(yīng)該有很多人在Windows里刪除文件時(shí)因?yàn)閼械迷偃デ寤厥照荆椭苯覵hift+Delete然后回車的吧?肯定還有嫌每次彈個(gè)對(duì)話框麻煩航徙,干脆設(shè)置成“不提醒確認(rèn)”的吧?那一旦刪錯(cuò)了漾根,就能去求助Rstudio之類的數(shù)據(jù)恢復(fù)軟件,至于能不能找回來(lái)鲫竞,就只能聽(tīng)天由命了辐怕。

做開(kāi)發(fā)和運(yùn)維的人理應(yīng)知道數(shù)據(jù)的重要性,在對(duì)數(shù)據(jù)做 drop从绘、delete 等無(wú)法撤銷的危險(xiǎn)操作時(shí)要慎之又慎寄疏,一定要反復(fù)檢查,最好找人結(jié)對(duì)和review僵井。

鄧某錯(cuò)選了 RUSS 數(shù)據(jù)庫(kù)陕截,打算執(zhí)行刪除的 SQL。
在選定刪除時(shí)批什,因其操作不嚴(yán)謹(jǐn)艘策,光標(biāo)回跳到 RUSS 庫(kù)的實(shí)例

順豐有DBA嗎?運(yùn)維同學(xué)為什么竟然有權(quán)限操作生產(chǎn)數(shù)據(jù)庫(kù)渊季?生產(chǎn)環(huán)境和測(cè)試環(huán)境為什么不進(jìn)行嚴(yán)格的隔離? 執(zhí)行線上危險(xiǎn)操作時(shí)罚渐,為什么不安排雙人結(jié)對(duì)或者review却汉?同步數(shù)據(jù)這種高頻操作為什么沒(méi)有做成腳本或服務(wù),而是靠容易出錯(cuò)的人工來(lái)執(zhí)行荷并?

當(dāng)然合砂,順豐體量雖大,但畢竟并不是一家互聯(lián)網(wǎng)公司源织,可能工程師數(shù)量還不及業(yè)內(nèi)一家小型創(chuàng)業(yè)公司翩伪。在這種情況下,一人多用谈息、權(quán)限混亂也是可以理解的常態(tài)缘屹。但對(duì)于數(shù)據(jù)十分重要、服務(wù)絕對(duì)不能停的業(yè)務(wù)侠仇,CTO和項(xiàng)目leader轻姿,應(yīng)該對(duì)員工可能出現(xiàn)的操作失誤設(shè)計(jì)預(yù)先防范的措施和制度犁珠,否則就是失職。當(dāng)你的業(yè)務(wù)有可能因?yàn)閱T工一個(gè)小失誤就癱瘓互亮,甚至數(shù)據(jù)無(wú)法找回導(dǎo)致公司關(guān)門(mén)時(shí)犁享,你怎么還睡得著覺(jué)?

在照顧孩子的時(shí)候豹休,我學(xué)到的最重要的道理就是:如果有樣?xùn)|西不能讓孩子玩炊昆,那就不能放在孩子夠得著的地方。 如果你是一名銷售威根,剛簽完一個(gè)大客戶凤巨,興高采烈地回到家里,把合同扔到茶幾上医窿,然后沖進(jìn)洗手間上了個(gè)廁所回來(lái)磅甩,就發(fā)現(xiàn)合同被你家熊孩子用筆涂得一塌糊涂,你覺(jué)得是該怪孩子調(diào)皮呢姥卢,還是該怪你自己不小心卷要?

綜上所述,我認(rèn)為雖然小鄧的誤操作是本次事故的直接原因独榴,但順豐公司對(duì)明顯的安全隱患視而不見(jiàn)僧叉,在權(quán)限管理、風(fēng)險(xiǎn)控制棺榔、流程設(shè)計(jì)上存在重大缺陷瓶堕,才是本次事故的根本原因

順豐到底該不該開(kāi)除小鄧症歇?

如果找不到問(wèn)題的根本原因郎笆,在錯(cuò)誤的方向上再怎么努力,也不可能找到解決方案忘晤。相反宛蚓,只要找到了正確的原因,解決方案也就自動(dòng)呈現(xiàn)设塔。所以凄吏,我們就不浪費(fèi)時(shí)間來(lái)討論如何避免再發(fā)生類似事故了。

現(xiàn)在最有爭(zhēng)議的話題就是:順豐到底怎么處理本次事件才是合理的闰蛔?

小鄧因工作失誤痕钢,給公司帶來(lái)了巨大的損失,這是客觀事實(shí)序六。而小鄧作為個(gè)人是無(wú)力賠償公司損失的任连,順豐公司作為非國(guó)家單位,能動(dòng)用最高級(jí)別的懲罰就只有開(kāi)除难咕。我相信课梳,順豐這么大的公司距辆,作出開(kāi)除并通報(bào)批評(píng)這個(gè)決定,應(yīng)該是經(jīng)過(guò)激烈的討論的暮刃。最終決策者還是決定殺雞儆猴跨算,以儆效尤。從法律的角度上講椭懊,順豐有權(quán)這么做诸蚕;從道德的角度上講,順豐的立場(chǎng)也沒(méi)有問(wèn)題氧猬。

可是背犯,為什么業(yè)內(nèi)對(duì)這個(gè)處理結(jié)果會(huì)出現(xiàn)如此大的反應(yīng)呢?因?yàn)轫権S在處理的過(guò)程中呈現(xiàn)了一副冷冰冰的姿態(tài)盅抚,在事故原因分析中把所有責(zé)任推卸到員工頭上漠魏,對(duì)公司制度的缺失及領(lǐng)導(dǎo)者的失職只字不提,實(shí)在讓人心寒妄均。

定義為人的問(wèn)題柱锹,那就只能解決人,卻解決不了問(wèn)題丰包。開(kāi)除了一個(gè)小鄧禁熏,卻不在權(quán)限設(shè)計(jì)、流程管控上下功夫邑彪,那還一定還會(huì)有小王瞧毙、小張們前仆后繼地繼續(xù)出同樣的問(wèn)題。也許現(xiàn)在風(fēng)聲緊寄症,大家都會(huì)對(duì)安全格外注意宙彪,但不會(huì)持續(xù)多久。

定義為程序和制度的問(wèn)題有巧,才能從根本上解決問(wèn)題您访。順豐本來(lái)可以保留一個(gè)忠心耿耿、加薪欲望低的好員工剪决,同時(shí)呈現(xiàn)出包容錯(cuò)誤的正能量企業(yè)文化,收買大片人心檀训。但是現(xiàn)在順豐的員工們會(huì)怎么想呢柑潦?原來(lái)公司沒(méi)有把我們當(dāng)人看,我們只是隨時(shí)可以更換的螺絲釘峻凫,出了問(wèn)題就走人渗鬼,就算是機(jī)器出了問(wèn)題,我們也得當(dāng)背鍋俠荧琼。

對(duì)小鄧來(lái)說(shuō)譬胎,被開(kāi)除反而是一個(gè)好消息差牛。 有過(guò)這么一次慘痛的經(jīng)驗(yàn)教訓(xùn),估計(jì)小鄧一輩子都不會(huì)再犯刪除線上庫(kù)這種錯(cuò)誤了堰乔。我們都知道人的價(jià)值是由稀缺性決定的偏化,擁有小鄧這樣有經(jīng)驗(yàn)的人可謂是少之又少。小鄧現(xiàn)在出了名镐侯,一定會(huì)有N多公司給他拋出橄欖枝侦讨,會(huì)有更好的機(jī)會(huì)等待著他。相反苟翻,如果順豐沒(méi)有開(kāi)除小鄧韵卤,他一定會(huì)因?yàn)閮?nèi)疚而對(duì)工作更加盡職盡責(zé),短期也不會(huì)選擇跳槽崇猫。交了這么高學(xué)費(fèi)的人沈条,怎么能放他走,便宜別的公司呢诅炉?

開(kāi)除了一個(gè)大有前途的員工蜡歹,順便傷了全公司的人的心,還引發(fā)業(yè)界口誅筆伐汞扎,帶動(dòng)股價(jià)下跌季稳。順豐這次真是賠到姥姥家了。

我自己經(jīng)歷的drop事故

我2011-2013年在微拍工作期間澈魄,既犯過(guò) drop 線上庫(kù)的錯(cuò)誤景鼠,也犯過(guò) rm rf / 線上服務(wù)器的錯(cuò)誤。其中drop線上庫(kù)的經(jīng)過(guò)痹扇,跟小鄧基本上是一模樣的铛漓。我后來(lái)寫(xiě)了一篇博客來(lái)反思,懶得排版就直接上圖吧:

image
image

感謝當(dāng)時(shí)的boss胡震生不僅給了我足夠的包容鲫构,還為我開(kāi)導(dǎo)排解浓恶,幫我學(xué)習(xí)和成長(zhǎng)。痛定思痛細(xì)查原因结笨,通過(guò)技術(shù)手段根治包晰,從此再?zèng)]有犯過(guò)這兩個(gè)錯(cuò)誤。

對(duì)我 rm rf / 的經(jīng)歷感興趣的朋友炕吸,可以查看我的博客文章:《欲速則不達(dá)》http://zhangshenjia.com/it/slow-down/

后話

人是靠不住的伐憾,因?yàn)槿藭?huì)變、會(huì)離開(kāi)赫模。只讓員工成長(zhǎng)树肃,卻不讓系統(tǒng)成長(zhǎng),結(jié)果就是經(jīng)驗(yàn)都沉淀到了員工自己身上瀑罗,當(dāng)員工離職時(shí)就帶走了所有胸嘴,公司一無(wú)所獲雏掠。

系統(tǒng)才是唯一能永遠(yuǎn)留在公司內(nèi)部的資源。真正優(yōu)秀的員工劣像,會(huì)想方設(shè)法來(lái)迭代系統(tǒng)乡话,即便自己離開(kāi)也能高效運(yùn)轉(zhuǎn)。而那種讓自己變得不可或缺驾讲,離開(kāi)之后系統(tǒng)便不可持續(xù)運(yùn)轉(zhuǎn)的員工蚊伞,其實(shí)是最大的隱患。

我又要說(shuō)我的口頭禪了:一個(gè)人的價(jià)值吮铭,不在于他得到過(guò)什么时迫;而在于他給這個(gè)世界留下了什么。

祝各位朋友中秋節(jié)愉快谓晌!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掠拳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纸肉,更是在濱河造成了極大的恐慌溺欧,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柏肪,死亡現(xiàn)場(chǎng)離奇詭異姐刁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)烦味,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)聂使,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谬俄,你說(shuō)我怎么就攤上這事柏靶。” “怎么了溃论?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵屎蜓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我钥勋,道長(zhǎng)炬转,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任算灸,我火速辦了婚禮返吻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乎婿。我一直安慰自己,他們只是感情好街佑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布谢翎。 她就那樣靜靜地躺著捍靠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪森逮。 梳的紋絲不亂的頭發(fā)上榨婆,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音褒侧,去河邊找鬼良风。 笑死,一個(gè)胖子當(dāng)著我的面吹牛闷供,可吹牛的內(nèi)容都是我干的烟央。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼歪脏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼疑俭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起婿失,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钞艇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后豪硅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體哩照,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年懒浮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飘弧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嵌溢,死狀恐怖眯牧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赖草,我是刑警寧澤学少,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站秧骑,受9級(jí)特大地震影響版确,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乎折,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一绒疗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧骂澄,春花似錦吓蘑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)溃蔫。三九已至,卻和暖如春琳猫,著一層夾襖步出監(jiān)牢的瞬間伟叛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工脐嫂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留统刮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓账千,卻偏偏與公主長(zhǎng)得像侥蒙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蕊爵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容