?最近和一些朋友做了一些線下的溝通安皱,大家都是互聯(lián)網(wǎng)技術(shù)同行, 自然會(huì)談一下各自工作中遇到的一些問題疤苹。聊完后我有一個(gè)感受信峻,就是大家在各自業(yè)務(wù)中實(shí)施高可用過程中,踩了一些坑祭饭,然后再反過來不斷優(yōu)化自己的系統(tǒng)芜茵,但是實(shí)際上如果我們一開始就能在運(yùn)維端打下基礎(chǔ),就可以避免里面的很多問題倡蝙。所以今天來簡單談?wù)勥@一塊我個(gè)人的一些實(shí)戰(zhàn)經(jīng)驗(yàn)九串。
簡單來說,就是做好三件事:?
故障發(fā)現(xiàn)機(jī)制?
系統(tǒng)恢復(fù)機(jī)制
線上故障復(fù)盤機(jī)制
接下來寺鸥,我們?cè)偌?xì)說這三件事如何來落地蒸辆。
1. 故障發(fā)現(xiàn)機(jī)制?
1.?報(bào)警的移動(dòng)化,故障出現(xiàn)后的第一步析既,自然是報(bào)警,系統(tǒng)不會(huì)自我修復(fù)谆奥,需要工程師來處理眼坏,所以需要通知到處理人。在24x7的時(shí)間維度下酸些,只有報(bào)警系統(tǒng)通過短信或者語音電話才能有效通知宰译。如果你閑報(bào)警不帶勁,可以考慮換志玲JJ的語音魄懂。
2.?報(bào)警的實(shí)時(shí)化沿侈,?這一點(diǎn)不必多解釋,時(shí)間就是系統(tǒng)的生命市栗,所以報(bào)警的延遲必須控制在1-3分鐘的延遲內(nèi)缀拭,不能再多了。
3.?監(jiān)控的可視化填帽,光靠報(bào)警短信蛛淋,是很難第一時(shí)間定位問題的,所以這就需要做好監(jiān)控的可視化篡腌,無論是系統(tǒng)打點(diǎn)還是日志搜集褐荷,具體拿石投來說,我們?nèi)罩臼占腅LK方式或者通過系統(tǒng)打點(diǎn)嘹悼,走kafka + Storm全鏈路監(jiān)控我們都做了叛甫,然后通過控制臺(tái)清楚的定位問題层宫,所有業(yè)務(wù)的關(guān)鍵數(shù)據(jù),我們也有通過grafana做實(shí)時(shí)的采樣其监。
2. 系統(tǒng)的恢復(fù)機(jī)制
其實(shí)恢復(fù)機(jī)制也沒有什么神秘的地方萌腿,就是努力做好運(yùn)維的四項(xiàng)關(guān)鍵任務(wù):回滾、重啟棠赛、擴(kuò)容哮奇、下機(jī)器。
回滾睛约,每次發(fā)布前鼎俘,本次發(fā)布的服務(wù)必須做好回滾的準(zhǔn)備,PlanB要想好辩涝,絕不能等線上故障后贸伐,才開始考慮如何回滾。一鍵回滾是家中常規(guī)武器怔揩。
重啟捉邢,還是要落實(shí)到心跳或者服務(wù)監(jiān)聽,通過系統(tǒng)腳本做到服務(wù)自動(dòng)重啟商膊,除非無法正常重啟伏伐,再引入手工操作。
擴(kuò)容/下機(jī)器晕拆,落實(shí)到鏡像的快速生成藐翎,有一套現(xiàn)成腳本做到一鍵上線或者下線。現(xiàn)成的輪子已經(jīng)很多实幕,二次開發(fā)一下很快吝镣。
除此之外,平時(shí)需要做好主備切換昆庇、集群遷移末贾、異地容災(zāi)等等的演練,“平時(shí)多流汗整吆,戰(zhàn)時(shí)少流血”拱撵,一直都是真理。
3. 線上故障復(fù)盤機(jī)制
即便是做到以上提到的第1點(diǎn)和第2點(diǎn)表蝙,還是無法保證系統(tǒng)不會(huì)出問題裕膀,所以我們需要有一套機(jī)制來分析線上故障,通過復(fù)盤勇哗,分析從故障發(fā)生前到發(fā)生后的應(yīng)急處理過程昼扛,然后系統(tǒng)思考故障未來的解決方案,再逐漸落地。同時(shí)抄谐,系統(tǒng)在任何時(shí)候都要考慮不可用的時(shí)候渺鹦,如何提供降級(jí)方案。
????????為什么復(fù)盤很重要蛹含?因?yàn)槠匠5墓δ軠y試也好毅厚,性能測試也罷,其實(shí)都是無法100%難覆蓋到各種情況的浦箱,而線上的真實(shí)流量能如實(shí)地反映出系統(tǒng)當(dāng)前的狀態(tài)吸耿,能真實(shí)地評(píng)估出系統(tǒng)目前的短板或者瓶頸在哪里。
復(fù)盤不只是運(yùn)維或者開發(fā)參加酷窥,而是相關(guān)技術(shù)團(tuán)隊(duì)(開發(fā)咽安、測試、運(yùn)維)蓬推,拉上產(chǎn)品乃至運(yùn)營人員妆棒,一起進(jìn)行,從各個(gè)角度分析沸伏,出現(xiàn)線上故障很多時(shí)候都是多方面原因糕珊。珍惜每次線上故障復(fù)盤,上一層樓看問題毅糟,下一層樓解決問題红选。
掃描二維碼或手動(dòng)搜索微信公眾號(hào)【架構(gòu)棧】: ForestNotes
歡迎轉(zhuǎn)載姆另,帶上以下二維碼即可