網(wǎng)站建設(shè)流程域名申請云搜索下載
作為技術(shù)人員,有沒有遇到下班路上收到老板電話,系統(tǒng)故障,然后地鐵上掏出電腦,修bug的場景。自己負責(zé)的業(yè)務(wù)線上出現(xiàn)問題,負責(zé)人心里是很慌的,在這種心理狀態(tài)下做事很容易二次犯錯,造成更大的問題。
但是線上業(yè)務(wù)在高速迭代的過程中,出現(xiàn)問題,又總是難免的。這個時候,對業(yè)務(wù)系統(tǒng)建立完備的監(jiān)控體系是十分有必要的。
監(jiān)控的目標(biāo)是及時發(fā)現(xiàn)系統(tǒng)問題,并盡可能快地做出相應(yīng)的動作,讓系統(tǒng)處于一種健康狀態(tài)。
監(jiān)控,顧名思義就是監(jiān)視和控制
監(jiān)視:通過采集業(yè)務(wù)日志,系統(tǒng)運行指標(biāo)等,觀察系統(tǒng)運行狀況,實現(xiàn)快速定位問題的目的。
控制:采用一定的技術(shù)手段,解決問題,使系統(tǒng)恢復(fù)正常狀態(tài)。
定位問題是一件考驗一個技術(shù)人員技術(shù)能力和對系統(tǒng)熟悉程度的事情,需要業(yè)務(wù)系統(tǒng)輸出的日志等信息作為線索,順藤摸瓜,細心排查,才能最終定位到問題。
解決問題是一個對技術(shù)人員工作經(jīng)驗要求比較高的事情,把問題解決是最基本的要求,同時還要考慮解決問題的效率,對業(yè)務(wù)的影響程度等。
解決問題的方式有很多,可能大部分技術(shù)人員都十分崇拜那種,直接在線上改bug,然后發(fā)布,告警消失,系統(tǒng)趨于穩(wěn)定。但是這種解決問題方式對技術(shù)人員的技術(shù)能力、心理素質(zhì)都有較高的要求,并不是所有技術(shù)人員都能做到的,這種解決問題的方案,很難普適。
這里小編介紹一種簡單粗暴的解決問題的方案,對于大部分技術(shù)人來說操作起來都比較簡單。
在討論這種方案之前,我們先來討論一下問題產(chǎn)生原因,問題的產(chǎn)生絕大部分的原因來自于“變化”,這里的變化怎么理解呢?
這里的變化分為兩種:
1.業(yè)務(wù)系統(tǒng)功能迭代,發(fā)版。有沒有同感,絕大部分情況下,產(chǎn)生線上問題,都是發(fā)版導(dǎo)致的。
2.業(yè)務(wù)流量變化:業(yè)務(wù)運營活動產(chǎn)生突發(fā)流量。
既然是變化導(dǎo)致的問題,那么消滅變化,讓系統(tǒng)回歸到變化前的狀態(tài),是不是就解決了問題了,如果沒有解決,說明變化沒有消滅徹底。
怎么消滅變化呢?
對于第一種:通常的做法是版本回退,業(yè)務(wù)功能回退,sql腳本回退等。
對于第二種:系統(tǒng)具有限流的功能,或者快速擴縮容的能力。
總結(jié)來說就是:流控和版本回退,簡單,粗暴。但對于任何線上問題,都可以采用這種方案,這種方案可能沒有直接在線上解決問題那么“酷”,但是,對技術(shù)人員的專業(yè)能力依賴不高,是一個標(biāo)準(zhǔn)化的流程,甚至可以做到自動化,二次出錯概率很小。
而且作為一個技術(shù)人員,一定要轉(zhuǎn)變一下思維方式:不解決bug,也可以解問題,并不一定要硬剛bug,要考慮解決方案對業(yè)務(wù)的影響。技術(shù)的價值是通過業(yè)務(wù)體現(xiàn)的,尤其是對于做業(yè)務(wù)的同學(xué)來說,技術(shù)nb,并不一定能給你帶來成長,你支撐的業(yè)務(wù)nb,才能體現(xiàn)你的價值。