當(dāng)產(chǎn)品發(fā)生重大事故時(shí),正確的姿勢(shì)是什么?
互聯(lián)網(wǎng)運(yùn)營(yíng)多多少少都會(huì)遇到一些事故,事故有大有小,影響不一,有些微乎其微,但是有一些卻舉足輕重。系統(tǒng)發(fā)生重大災(zāi)難難道只能“刪庫(kù)跑路”?本文作者列舉了互聯(lián)網(wǎng)公司一些比較重大的事故,并總結(jié)了自己的幾點(diǎn)建議,與大家分享。
一、什么是重大事故?
刪庫(kù)跑路?還是系統(tǒng)奔潰?重大事故讓人沮喪、肝兒顫、似乎又無(wú)可奈何?
近來(lái)所在的部門和產(chǎn)品發(fā)生幾次大事故,用戶大量涌入,在峰值時(shí)刻導(dǎo)致系統(tǒng)癱瘓,造成不可估量的經(jīng)濟(jì)損失:原有線上活動(dòng)不能正常進(jìn)行,除此之外,無(wú)論是對(duì)產(chǎn)品本身還是品牌形象的損害更是無(wú)法估量,所謂創(chuàng)業(yè)難、守業(yè)更難。
當(dāng)然重大事故在任何產(chǎn)品和任何公司都有發(fā)生的可能,比如——
1. 拼多多優(yōu)惠券BUG事件
2019年1月20日凌晨,拼多多遭遇了成立以來(lái)的最大BUG事件:當(dāng)日凌晨,有用戶發(fā)現(xiàn)可以領(lǐng)取100元無(wú)門檻券,切換微信、QQ等賬號(hào)可以多次領(lǐng)取,且兌換券可直接用于充值話費(fèi)、Q幣、購(gòu)買商品時(shí)抵扣。
該BUG于凌晨被發(fā)現(xiàn),隨之被擴(kuò)散開(kāi)來(lái),凌晨五點(diǎn)傳遍全網(wǎng),吸引了大批羊毛黨進(jìn)入,至早上九點(diǎn)拼多多才反應(yīng)過(guò)來(lái),下架了相關(guān)優(yōu)惠券,10點(diǎn)左右BUG被修復(fù)。由于有羊毛黨進(jìn)入,眾所周知其作戰(zhàn)能力彪悍,開(kāi)啟了嘻唰唰模式。傳言該BUG使拼多多一夜損失200億。
2. 攜程癱瘓門事件
2015年做互聯(lián)網(wǎng)行業(yè)的人應(yīng)該都耳聞過(guò)攜程“癱瘓門”事件,那天是5月28日,突然之間攜程官網(wǎng)和APP雙雙崩潰,訪問(wèn)不了。一時(shí)間謠言四起,兩個(gè)小時(shí)后,攜程發(fā)布聲明說(shuō)服務(wù)器受到不明攻擊,正在努力恢復(fù)中。
但是據(jù)坊間流傳,說(shuō)攜程的數(shù)據(jù)被懷恨在心的一個(gè)工程師物理刪除,數(shù)據(jù)全部丟失?;ヂ?lián)網(wǎng)公司最核心的就是數(shù)據(jù)了,若用戶數(shù)據(jù)丟失,公司會(huì)成為一個(gè)空殼,變的一文不值。次日攜程發(fā)布官方聲明,說(shuō)是由于員工操作失誤,誤刪除了生產(chǎn)服務(wù)器上的代碼所致,就此事件結(jié)束,受此事件影響,攜程盤前股價(jià)暴跌11.67%。
3. 王者榮耀test郵件事件
如果你不知道玩什么,就玩王者榮耀吧。如果你不知道朋友去哪了,就去王者榮耀找吧。
2018年12月3日王者榮耀不少安卓QQ區(qū)的用戶收到了標(biāo)題為“test”的郵件,打開(kāi)后里面是英雄沈夢(mèng)溪、棒球奇才、英雄李信和灼熱之刃四個(gè)永久道具。價(jià)值有多大呢,這次郵件內(nèi)容被用戶戲稱為“天美史上最強(qiáng)福利”。
郵件發(fā)出后,全網(wǎng)沸騰,微信群、QQ群關(guān)于郵件內(nèi)容的截圖滿天飛,然而不到1小時(shí),進(jìn)入游戲提示:停服維護(hù)。官方動(dòng)手了,對(duì)已經(jīng)使用了道具的賬號(hào),強(qiáng)制進(jìn)行了回收。未打開(kāi)郵件的賬號(hào),郵件被刪除。按照游戲出 BUG 必補(bǔ)償?shù)脑瓌t,事后官方對(duì)全服玩家發(fā)放了每人10個(gè)英雄碎片和2000個(gè)銘文碎片補(bǔ)償。
二、一分為二看待“重大事故”這件事情
1. 第一個(gè)“一分為二”:主動(dòng)還是被動(dòng)
通過(guò)上邊的案例我們可以看到,重大事故的發(fā)生分為人為的、故意的,和非人力可以控制的、意外的,前者如程序員刪庫(kù)跑路,后者如活動(dòng)大量流量訪問(wèn)時(shí)系統(tǒng)的暫時(shí)性奔潰(此處應(yīng)該有一個(gè)淚奔的表情)。
2. 一分為二看待“重大事故”這件事情的生命周期,挑戰(zhàn)還是機(jī)遇
首先我們應(yīng)該慶幸,我們能夠遇到和處理、解決這些“重大事故”,因?yàn)橐欢ǔ潭壬险f(shuō)明了我們做的產(chǎn)品到了一個(gè)比較大的用戶量階段,對(duì)系統(tǒng)的高并發(fā)有了比較高的要求,這無(wú)論是對(duì)產(chǎn)品還是對(duì)技術(shù)來(lái)講,都是一次在壓力中成長(zhǎng)的機(jī)會(huì)。
就像一個(gè)孩子的成長(zhǎng)一樣,一路上的跌跌撞撞、磕磕碰碰之后,才能成長(zhǎng)為一個(gè)身體和心理都較為強(qiáng)壯的人,而系統(tǒng)也因此變得越來(lái)越健壯。
三、重大事故是事實(shí)和性質(zhì)雙重嚴(yán)重的問(wèn)題,怎么辦?
這總歸不算事一件特別好的事情,至少不值得炫耀。
這是項(xiàng)目或者產(chǎn)品冒著拼盡洪荒之力的重壓給參與者的一次成長(zhǎng)的機(jī)會(huì),風(fēng)險(xiǎn)永遠(yuǎn)不可消除和避免,但是我們還是有章可循盡量能預(yù)防,從而降低風(fēng)險(xiǎn)和損失。
(1)對(duì)于人為原因的事故,我們只能從人的角度多關(guān)注,關(guān)注每一個(gè)參與者的幸苦付出,讓大家感受到參與的熱情和價(jià)值,做好團(tuán)隊(duì)的心理建設(shè)
(2)對(duì)于非人為的原因造成的事故,大概有以下一些處理方案,主要是一些在用的方案,坊間通用的以后用到再談。
- 首先,產(chǎn)品的功能和壓力測(cè)試要做、并且要做好。很多次事故的發(fā)生,除了不可以預(yù)估的問(wèn)題之外,很多都是所謂的“小問(wèn)題”導(dǎo)致的,比如一行代碼寫錯(cuò)、代碼編寫的不規(guī)范、需求邏輯的漏洞等等;
- 第二點(diǎn),針對(duì)大型活動(dòng)的緊急預(yù)案怎么做也很關(guān)鍵,比如服務(wù)器的動(dòng)態(tài)擴(kuò)容,如果沒(méi)有動(dòng)態(tài),那么讓運(yùn)維的同學(xué)現(xiàn)場(chǎng)支援行不行,我們要想盡一切辦法和可以動(dòng)用的資源去保障活動(dòng)過(guò)程中盡量將損失降到最低;
- 第三點(diǎn),持續(xù)的性能優(yōu)化。我們?cè)诋a(chǎn)品從0到1點(diǎn)階段往往會(huì)一定程度上降低對(duì)產(chǎn)品性能的要求,加上不同的人由于經(jīng)驗(yàn)和能力的不同,往往會(huì)不能夠兼顧到“以后”,我們很多時(shí)候總是滿足“當(dāng)下的需求”而忘記了看遠(yuǎn)方的路。因此,我們要找機(jī)會(huì),對(duì)做過(guò)的東西不斷的優(yōu)化,一種是純技術(shù)層面的,比如代碼邏輯和編譯上的優(yōu)化;更好的方式當(dāng)然是要在戰(zhàn)場(chǎng)去驗(yàn)證,產(chǎn)品做出來(lái)一定要在不停的實(shí)戰(zhàn)使用中、在一次次的峰值跳躍間,找到問(wèn)題,優(yōu)化問(wèn)題。
- 活動(dòng)過(guò)程中的實(shí)時(shí)監(jiān)控。在業(yè)務(wù)線上使用的過(guò)程中,我們也不斷增加了一些實(shí)時(shí)監(jiān)控工具,可以實(shí)現(xiàn)在活動(dòng)作業(yè)過(guò)程中對(duì)服務(wù)器壓力、CPU性能、數(shù)據(jù)庫(kù)壓力等的實(shí)時(shí)看板監(jiān)控,做到秒級(jí)的實(shí)時(shí)監(jiān)控。
- 一比一模擬線上活動(dòng),功能自動(dòng)化腳本測(cè)試和性能腳本壓測(cè)。永遠(yuǎn)沒(méi)有萬(wàn)全之策,但是我們可以離安全再近一點(diǎn)。每次活動(dòng)之前我們按照業(yè)務(wù)預(yù)估的訪問(wèn)量進(jìn)行模擬環(huán)境的功能測(cè)試和性能測(cè)試,當(dāng)然這一切都要形成腳本,進(jìn)而可以變成自動(dòng)化,這樣一方面可以節(jié)省時(shí)間,另一方面也可以不斷豐富監(jiān)控庫(kù)。
- 活動(dòng)策劃的時(shí)間把控和活動(dòng)報(bào)備,同時(shí)段多個(gè)活動(dòng)同時(shí)在線時(shí)怎樣錯(cuò)峰處理。其實(shí)很多時(shí)候系統(tǒng)奔潰的問(wèn)題會(huì)出現(xiàn)在活動(dòng)運(yùn)營(yíng)的整體時(shí)間把控不足,對(duì)活動(dòng)效果估計(jì)不足或者樂(lè)觀估計(jì)等問(wèn)題上。比如,我們預(yù)估活動(dòng)只會(huì)有20萬(wàn)人參與,但是實(shí)際訪問(wèn)量卻是100萬(wàn);我們認(rèn)為一切萬(wàn)無(wú)一失,但總是馬失前蹄。還有,同時(shí)段如果有多個(gè)活動(dòng)同時(shí)進(jìn)行,這種多線程的壓力就會(huì)被放大多倍。
- 多系統(tǒng)聯(lián)動(dòng)而導(dǎo)致的關(guān)系復(fù)雜度提高問(wèn)題。除了我們自己?jiǎn)为?dú)的系統(tǒng)會(huì)遇到瓶頸而導(dǎo)致系統(tǒng)問(wèn)題之外,如果我們跟多個(gè)系統(tǒng)進(jìn)行多次聯(lián)動(dòng),那么發(fā)生問(wèn)題概率會(huì)大大提升。比如,一個(gè)業(yè)務(wù)規(guī)則在我們自己的系統(tǒng)是OK的,但是保不齊上下游關(guān)聯(lián)系統(tǒng)會(huì)發(fā)生什么“意外”,這個(gè)時(shí)候出了問(wèn)題大家就只能一起背鍋(請(qǐng)叫我背鍋俠)。
- 很有很多,這次先寫這么多……
四、性能優(yōu)化與用戶體驗(yàn)的永恒博弈
剛剛講了很多實(shí)際處理重大事故的方案和預(yù)案,但是當(dāng)我們透過(guò)現(xiàn)象看本質(zhì)我們會(huì)發(fā)現(xiàn),在基本的功能問(wèn)題處理完畢后,后續(xù)我們將面臨的是系統(tǒng)性能和用戶體驗(yàn)的艱難博弈。
簡(jiǎn)單來(lái)講:比如我們減少一個(gè)炫酷交互的操作,可以提高頁(yè)面打開(kāi)效率的1%;為了方便用戶篩選,我們將篩選做的層級(jí)分明,極為細(xì)致,但是這樣的設(shè)計(jì)系統(tǒng)接口間的詢問(wèn)次數(shù)就會(huì)變得多了起來(lái)。
在處理這部分問(wèn)題和工作的時(shí)候,小胖發(fā)現(xiàn)一個(gè)很有意思的點(diǎn):技術(shù)同學(xué)往往想讓產(chǎn)品降低一些操作和搜索類邏輯的使用,從而可以提高一部分系統(tǒng)的性能,但是產(chǎn)品同學(xué)往往對(duì)用戶體驗(yàn)細(xì)節(jié)要求極高,所以很多方案都是大家盡量溝通達(dá)到所謂的“中和”點(diǎn),但是這樣的中和是否就是完全對(duì)的呢?
五、怎么進(jìn)行事故的解釋和匯報(bào)
1. 下下策:報(bào)喜不報(bào)憂
許多人喜歡報(bào)喜不報(bào)憂,哪怕是出了很大的事故,這種做法其實(shí)是不太明智的,畢竟老板也不是傻子,可能開(kāi)始的一兩次忽悠還可以蒙混過(guò)關(guān),但是路遙知馬力日久見(jiàn)人心,諸君共勉。
2. 中策:報(bào)憂不報(bào)喜
有些人又比較慫,只是會(huì)承認(rèn)錯(cuò)誤,災(zāi)難都發(fā)生了,承認(rèn)錯(cuò)誤是應(yīng)該的,但是光承認(rèn)錯(cuò)誤是沒(méi)有用的。并且,如果只講不好的部分,本來(lái)相關(guān)人員就不順心,無(wú)疑是雪上加霜。
3. 上策:往往絕境就是機(jī)會(huì)
小胖比較人可以的方式是既要主動(dòng)認(rèn)識(shí)到問(wèn)題的嚴(yán)重性和快速定位到為題,解決問(wèn)題;也要找到問(wèn)題的轉(zhuǎn)折點(diǎn),化悲痛為力量。比如可以抓住機(jī)會(huì)提出針對(duì)產(chǎn)品的優(yōu)化資源需求,要錢要資源;當(dāng)然更好的方式是,能否讓一個(gè)災(zāi)難變成一次好的公關(guān)。
比如曾經(jīng)某個(gè)漢堡品牌被爆出使用的肉有問(wèn)題,媒體一時(shí)間得理不饒人,但是后來(lái)公司想了一個(gè)讓社會(huì)繼續(xù)幫這個(gè)品牌尋找用餐過(guò)程中的重大問(wèn)題的活動(dòng),經(jīng)過(guò)一段時(shí)間后,不但更多的人知道了這個(gè)品牌,更知道了這個(gè)品牌是一個(gè)敢于當(dāng)擔(dān)的品牌。人也一樣,擔(dān)當(dāng)很重要。
以上,從事故中總結(jié)而來(lái),也希望如果有一天你用的到,可以給你一些有用的思路和借鑒。
愛(ài)你們的小胖子。2020年夏。
參考資料:
http://www.codemsi.com/operate/2903465.html/comment-page-1
#專欄作家#
FatBoy,微信公眾號(hào):夜來(lái)妖,人人都是產(chǎn)品經(jīng)理專欄作家,做了幾年產(chǎn)品。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
系統(tǒng)怎么樣才能穩(wěn)定?