那些年,我親身經(jīng)歷過(guò)的IT事故
在IT行業(yè),事故是每個(gè)從業(yè)者都可能遇到的挑戰(zhàn)。這些事故不僅會(huì)給企業(yè)帶來(lái)直接的經(jīng)濟(jì)損失,還會(huì)對(duì)團(tuán)隊(duì)士氣和項(xiàng)目進(jìn)度產(chǎn)生深遠(yuǎn)影響。本文通過(guò)作者親身經(jīng)歷的六個(gè)真實(shí)IT事故案例,詳細(xì)剖析了事故發(fā)生的背景、原因、處理方式以及最終的損失,希望能幫到大家。
正所謂吃一塹長(zhǎng)一智,IT事故會(huì)讓企業(yè)蒙受巨大的損失,給開(kāi)發(fā)團(tuán)隊(duì)沉重的打擊,從另一方面看,也是產(chǎn)研深刻學(xué)習(xí)的絕佳時(shí)機(jī),拋開(kāi)打擊,反思問(wèn)題,我們會(huì)明白有些看似無(wú)用的規(guī)范、流程的價(jià)值。產(chǎn)品經(jīng)理雖然不寫(xiě)代碼,不直接搞技術(shù),但事故反映出的對(duì)于項(xiàng)目管理、流程管理、人員管理和技術(shù)規(guī)范的要求值得我們思考、借鑒。
我例舉了6個(gè)經(jīng)歷過(guò)的生產(chǎn)事故,我會(huì)從事故、損失、原因、處理方式4個(gè)方面來(lái)闡述。
事故一
我第一次親身經(jīng)歷IT事故,是在大客戶現(xiàn)場(chǎng),該大客戶是一家精品酒店,坐落在5A級(jí)景區(qū)邊上,房?jī)r(jià)每晚要1000元。當(dāng)時(shí)這家酒店正好要做系統(tǒng)升級(jí),我就隨著運(yùn)維同事一起前去調(diào)研學(xué)習(xí),沒(méi)想到升級(jí)當(dāng)晚系統(tǒng)宕機(jī)了一段時(shí)間,導(dǎo)致部分訂單丟失。第二天早上,酒店總經(jīng)理來(lái)到我們客房里,我(一個(gè)產(chǎn)品新人)、運(yùn)維小哥、酒店總經(jīng)理,三人面面相覷。酒店總經(jīng)理在旁督促,希望想盡一切辦法找回訂單,運(yùn)維小哥滿眼愁容地想辦法,我立在邊上啥忙也幫不上。
損失:酒店損失約5000元收入(約5個(gè)訂單)
問(wèn)題原因:系統(tǒng)初次升級(jí)不穩(wěn)定。
處理方式:
- 系統(tǒng)重新啟動(dòng)后正常運(yùn)行。
- 丟失的訂單大約20個(gè),補(bǔ)救措施則是酒店人員通過(guò)歷史訂單記錄和員工的回憶,回補(bǔ)了十幾個(gè)訂單,最后丟失的訂單約5個(gè)。
這個(gè)問(wèn)題在IT事故里只能算“小問(wèn)題”,可給我卻留下了深刻的印象,尤其是當(dāng)事情發(fā)生時(shí)那種我無(wú)能為力的感受,令我暗暗下決心要提升個(gè)人能力,以便在關(guān)鍵時(shí)刻能有所幫助。隨著時(shí)光流逝,我碰到的IT事故也越來(lái)越多,五花八門(mén),有些事故難以避免,更多的都是“人禍”造成的,事故經(jīng)常出現(xiàn)在系統(tǒng)發(fā)版、老代碼維護(hù)、技術(shù)人員不規(guī)范操作的情況下。
事故二
一個(gè)常規(guī)的CRM系統(tǒng)版本功能發(fā)布后,當(dāng)晚風(fēng)平浪靜,第二天上午9:30分左右,系統(tǒng)部的電話突然炸鍋,IT報(bào)修的電話都被業(yè)務(wù)部打爆了,業(yè)務(wù)經(jīng)理很著急:“開(kāi)工30分鐘了,CRM一條客戶名單都沒(méi)下發(fā),幾百人的電銷(xiāo)團(tuán)隊(duì)干坐在職場(chǎng)”。當(dāng)時(shí),昨晚熬夜發(fā)版的IT開(kāi)發(fā)還在家補(bǔ)覺(jué),上午開(kāi)工過(guò)了3小時(shí)才修復(fù)問(wèn)題。
損失:公司損失約2000萬(wàn)的貸款業(yè)績(jī)(業(yè)務(wù)部平均每天5000萬(wàn)貸款業(yè)績(jī),當(dāng)天上午沒(méi)有業(yè)績(jī)產(chǎn)生)
問(wèn)題原因:此次發(fā)版功能中,有一個(gè)“上線新渠道”的需求,這個(gè)新渠道并不是新的,而是原渠道的客戶通過(guò)“新渠道”來(lái)標(biāo)記,使同一個(gè)渠道來(lái)源的客戶可以在系統(tǒng)上區(qū)分開(kāi)來(lái),走不同的銷(xiāo)售流程。然而,技術(shù)人員理解成了“上線新渠道,替換原渠道”,因此,系統(tǒng)上線后就把“原渠道”干掉了,而上線當(dāng)晚的生產(chǎn)驗(yàn)收時(shí),產(chǎn)品、業(yè)務(wù)同事只驗(yàn)證了“新渠道”,客戶名單下發(fā)自然正常的,可第二天渠道過(guò)來(lái)的客戶名單實(shí)際都還是“原渠道”的,CRM系統(tǒng)匹配不上,就導(dǎo)致了客戶名單無(wú)法下發(fā)。
處理方案:
- 立即回滾代碼,先讓業(yè)務(wù)團(tuán)隊(duì)作業(yè)。
- 緊急修復(fù)渠道規(guī)則,通過(guò)臨時(shí)版本補(bǔ)上需求。
- 問(wèn)題定責(zé),產(chǎn)品和技術(shù)各承擔(dān)50%的責(zé)任,被領(lǐng)導(dǎo)記在小本本上。實(shí)際情況是:產(chǎn)品說(shuō)技術(shù)理解錯(cuò)了,技術(shù)說(shuō)產(chǎn)品沒(méi)講清楚——溝通理解差異造成的老套劇情。
事故三
年底了,財(cái)務(wù)同事熬夜對(duì)賬,發(fā)現(xiàn)公司賬務(wù)少了60萬(wàn),于是拉出全量賬單核對(duì),半宿過(guò)去,細(xì)查后發(fā)現(xiàn)有一個(gè)賬戶沒(méi)有實(shí)際的充值記錄,卻提現(xiàn)了60萬(wàn)。于是,立即找技術(shù)經(jīng)理核對(duì)問(wèn)題發(fā)生原因,震驚的是,同樣有問(wèn)題的賬戶還有好幾個(gè),總共被異常提取的金額達(dá)到300萬(wàn),公司立即報(bào)警,連夜召開(kāi)高層管理層緊急會(huì)議,公司進(jìn)入預(yù)警狀態(tài)。
敏銳的同事立馬猜到始作俑者是誰(shuí)了——清結(jié)算系統(tǒng)的技術(shù)負(fù)責(zé)人H。H沉迷氪金游戲,以前還常向同事借錢(qián),但不知從何時(shí)開(kāi)始,H忽然手頭闊綽起來(lái),手機(jī)、手表都換成了最高配的蘋(píng)果設(shè)備,不坐地鐵還買(mǎi)了奔馳E300,每天游戲氪金好幾千。很多人以為他家拆遷了。
很快警方就帶走了H,對(duì)自己所作所為供認(rèn)不諱。
損失:300萬(wàn)
問(wèn)題原因:H手法也并不高明,他利用了兩個(gè)漏洞,一是他可以直接修改數(shù)據(jù)庫(kù)中的用戶賬戶余額,二是他發(fā)現(xiàn)提現(xiàn)有個(gè)免審核白名單(在白名單的賬戶提現(xiàn)無(wú)需經(jīng)過(guò)財(cái)務(wù)審批),而他也有修改白名單的權(quán)限。H為了掩人耳目,他先用母親的身份信息注冊(cè)了一個(gè)賬戶,每個(gè)禮拜“提款”幾萬(wàn)到他母親銀行卡。偷的錢(qián)越多,開(kāi)銷(xiāo)越大,H開(kāi)始不滿足每個(gè)禮拜幾萬(wàn)塊,再聯(lián)合了幾個(gè)朋友故技重施,而“提款”金額大了很多,最多一次性60萬(wàn)。
以前,H老鼠偷米式的盜取,財(cái)務(wù)沒(méi)有發(fā)現(xiàn),最終因?yàn)樗呢澙?,東窗事發(fā),現(xiàn)在鋃鐺入獄。
處理方案:
- 報(bào)警把人帶走
- 加強(qiáng)數(shù)據(jù)庫(kù)權(quán)限管理,廢除提款白名單
- 技術(shù)領(lǐng)導(dǎo)管理失職,扣一個(gè)月績(jī)效
事故四
一個(gè)深夜,幾百個(gè)大貨車(chē)被卡在高速收費(fèi)站出口,原因是ETC被拉黑,無(wú)法扣款,深夜趕路的貨車(chē)司機(jī)又急又氣,罵罵咧咧的打電話找公司、找ETC服務(wù)商解決問(wèn)題,但當(dāng)晚無(wú)法解決ETC被拉黑的問(wèn)題,最后,司機(jī)只能自掏腰包支付通行費(fèi),不僅無(wú)法享受ETC通行便利和優(yōu)惠,還造成了交通擁堵。
損失:約20萬(wàn)(2萬(wàn)多張ETC通行卡被拉黑,外部影響極為惡劣;商務(wù)部?jī)A巢出動(dòng),給予客戶賠償)
原因:技術(shù)人員D為了處理一個(gè)小問(wèn)題,私自修改代碼,未經(jīng)測(cè)試、驗(yàn)收,私自發(fā)布上線。D原先是想偷偷修復(fù)這個(gè)小問(wèn)題,可他盲目自信,以為自己的代碼邏輯沒(méi)問(wèn)題,違反代碼發(fā)布規(guī)范,上線后觸發(fā)了“拉黑”代碼邏輯,導(dǎo)致系統(tǒng)誤將2萬(wàn)多張ETC卡拉黑。
處理方案:
- 立即回滾代碼,并將誤拉黑的ETC卡解黑;
- 商務(wù)對(duì)大客戶一個(gè)個(gè)登門(mén)道歉,賠償損失,產(chǎn)品讓利;
- 技術(shù)部加強(qiáng)代碼發(fā)布流程規(guī)范;
- 公司原本打算讓D“走人”,后念在其為公司工作多年,降職降薪處理;其上級(jí)領(lǐng)導(dǎo)管理失職,扣一個(gè)月績(jī)效。
事故五
某集團(tuán)的報(bào)修電話炸了,門(mén)店紛紛表示客人無(wú)法下單,系統(tǒng)里沒(méi)有訂單進(jìn)來(lái)。技術(shù)負(fù)責(zé)人一看報(bào)錯(cuò),數(shù)據(jù)庫(kù)里的訂單表被“鎖”了(無(wú)法新增、修改訂單,意味著客人無(wú)法下單,公司收入中斷)!
原因:前一天晚上,新上了一個(gè)統(tǒng)計(jì)訂單的數(shù)據(jù)匯總報(bào)表。然而,開(kāi)發(fā)的技術(shù)方案是“直接查生產(chǎn)訂單表”,每天凌晨去查。這塊功能代碼是晚上8點(diǎn)發(fā)布的,發(fā)布完開(kāi)發(fā)人員也沒(méi)有試跑一遍就“下班”了。此前測(cè)試環(huán)境沒(méi)有發(fā)現(xiàn)該問(wèn)題,因?yàn)闇y(cè)試環(huán)境的數(shù)據(jù)量跟生產(chǎn)完全不是同一個(gè)級(jí)別,測(cè)試環(huán)境只有幾萬(wàn)條人造的數(shù)據(jù),生產(chǎn)環(huán)境是上億條真實(shí)數(shù)據(jù)。此外,公司的測(cè)試人員能力有限,無(wú)法模擬生產(chǎn)造出這么多的數(shù)據(jù)。 設(shè)計(jì)該技術(shù)方案并負(fù)責(zé)開(kāi)發(fā)的是一位剛?cè)肼殐蓚€(gè)月的外包工程師。
損失:約50萬(wàn)收入(2個(gè)小時(shí)無(wú)法下單)
處理方案:
- 數(shù)據(jù)庫(kù)解鎖,新報(bào)表功能下線
- 連夜開(kāi)除外包人員
- 規(guī)定所有報(bào)表類(lèi)需求不能直接訪問(wèn)生產(chǎn)數(shù)據(jù)庫(kù)
事故六
一個(gè)周四早上,我邁著輕松的步伐來(lái)到辦公室,總監(jiān)問(wèn)我的企業(yè)微信怎么樣?我說(shuō)“正常的呀,咋了?”,然后,總監(jiān)告訴我他“被離職了”——原來(lái),前一天晚上企業(yè)員工同步出了問(wèn)題,導(dǎo)致大約2000員工在系統(tǒng)上“被離職”,導(dǎo)致下游企業(yè)微信、SSO、業(yè)務(wù)管理系統(tǒng)均無(wú)法使用。這其中最嚴(yán)重的是企業(yè)微信無(wú)法登錄,員工日常所有的同事溝通、聊天記錄、內(nèi)部材料都在企業(yè)微信上,企微沒(méi)了意味著大部分事情都做不了。
原因:公司為了降低成本,采購(gòu)了新的人事系統(tǒng)替換老的人事系統(tǒng)。事發(fā)前一天,新人事系統(tǒng)有發(fā)版升級(jí),事發(fā)當(dāng)晚,公司的員工數(shù)據(jù)同步服務(wù)(該服務(wù)將人事系統(tǒng)的員工數(shù)據(jù)同步給企業(yè)內(nèi)部各個(gè)系統(tǒng),包含企業(yè)微信)升級(jí)。夜間凌晨,員工同步服務(wù)的代碼判斷2000人“已離職”,并同步企微,隨即企微執(zhí)行了員工離職操作。員工同步服務(wù)的離職代碼本是數(shù)據(jù)梳理遷移時(shí)用的“一次性代碼”,本應(yīng)注釋?zhuān)?fù)責(zé)的開(kāi)發(fā)人員Z用完后一直放在生產(chǎn)環(huán)境。
可是怎么觸發(fā)的離職規(guī)則呢?技術(shù)負(fù)責(zé)人查了一天的代碼邏輯,發(fā)現(xiàn)并不會(huì)主動(dòng)觸發(fā)該規(guī)則,只能是上游人事系統(tǒng)觸發(fā)的,可開(kāi)發(fā)人員Z又沒(méi)有記詳細(xì)日志,因此,無(wú)法得知具體上游同步了什么數(shù)據(jù)。新人事系統(tǒng)那邊,則聲明前一天上線不可能導(dǎo)致員工離職,其提供的日志也查不出個(gè)原由。因此,此案至今懸而未決。
負(fù)責(zé)員工同步服務(wù)的開(kāi)發(fā)人員Z的是外包。
損失:60萬(wàn),找騰訊回復(fù)企業(yè)微信的數(shù)據(jù)25萬(wàn),2000人半天無(wú)法正常辦公的損失約35萬(wàn)
處理方案:
- 找騰訊企業(yè)微信數(shù)據(jù),包括“被離職”員工、聊天記錄、文件
- 一次性的“離職代碼”注釋
- 企業(yè)扣除外包公司合同費(fèi)用5萬(wàn)(外包公司便給其下兩位駐場(chǎng)的外包人員停發(fā)工資,其中之一的當(dāng)事人被辭退,另一個(gè)因被停薪便主動(dòng)離職);此外,兩位IT負(fù)責(zé)人當(dāng)月績(jī)效為0,再罰5000
總結(jié)
跟歷史一樣,哪怕經(jīng)歷了這么多問(wèn)題,系統(tǒng)也永遠(yuǎn)無(wú)法保證不會(huì)出問(wèn)題,在信息技術(shù)、大數(shù)據(jù)、AI日益貼近普羅大眾的今天,對(duì)于技術(shù)人員來(lái)說(shuō),應(yīng)學(xué)會(huì)與系統(tǒng)問(wèn)題相處。這不是說(shuō)面對(duì)復(fù)雜的系統(tǒng)問(wèn)題只求心理安慰,躺平應(yīng)對(duì),而是要轉(zhuǎn)變思路:不追求完美的結(jié)果,去追求完美的流程,盡量避免問(wèn)題反復(fù)發(fā)生,以及有問(wèn)題發(fā)生也可以及時(shí)響應(yīng)處理。
- 功能開(kāi)發(fā)前做好技術(shù)方案評(píng)審,要由高級(jí)的技術(shù)經(jīng)理決定的技術(shù)開(kāi)發(fā)方案,而不是普通開(kāi)發(fā)人員
- 標(biāo)準(zhǔn)的上線發(fā)版流程,開(kāi)發(fā)提交、測(cè)試通過(guò)報(bào)告、技術(shù)經(jīng)理審核、上線生產(chǎn)驗(yàn)收這幾個(gè)步驟一個(gè)都不能少
- 凡發(fā)版,必要有回退方案
- 凡涉及系統(tǒng)切換、數(shù)據(jù)遷移,必做相關(guān)數(shù)據(jù)的前后備份
- 技術(shù)人員的權(quán)限管控,數(shù)據(jù)庫(kù)修改權(quán)限、代碼發(fā)布權(quán)限要按人品和資歷分配,嚴(yán)禁賬密共享
- 如企業(yè)用外包開(kāi)發(fā)人員,不建議開(kāi)放過(guò)高權(quán)限,其編寫(xiě)的代碼邏輯要檢查
最后,作為產(chǎn)品經(jīng)理,應(yīng)與技術(shù)充分溝通,對(duì)技術(shù)表示理解,有些問(wèn)題技術(shù)本來(lái)不會(huì)犯,但是產(chǎn)品、業(yè)務(wù)催的太死了,技術(shù)被趕鴨子上架,那做出來(lái)的東西就會(huì)丟三落四。
假如以上這些都做到位了,還是發(fā)生了生產(chǎn)事故,那也只能聽(tīng)天由命、盡力找補(bǔ)。畢竟只要有IT系統(tǒng),就必然會(huì)有IT事故。
本文由 @吳德馨 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
設(shè)計(jì)該技術(shù)方案并負(fù)責(zé)開(kāi)發(fā)的是一位剛?cè)肼殐蓚€(gè)月的外包工程師。??
找騰訊回復(fù)(恢復(fù))企業(yè)微信的數(shù)據(jù)25萬(wàn)