穩(wěn)定性建設(shè)
目前在公司聽了兩場(chǎng)關(guān)于穩(wěn)定性的討論,一場(chǎng)是內(nèi)部周會(huì)上的,還有一場(chǎng)是會(huì)議上分享的,這邊也說(shuō)下自己認(rèn)為的穩(wěn)定性,供大家一起討論。
首先穩(wěn)定性這個(gè)東西就比較虛,怎么拆分細(xì)化,轉(zhuǎn)變成比較實(shí)在的東西?
首先從技術(shù)角度來(lái)看,可以從質(zhì)量,性能,可用性,健壯性四個(gè)維度來(lái)說(shuō)。
- 質(zhì)量:簡(jiǎn)單的來(lái)說(shuō)就是提高代碼邏輯準(zhǔn)確性,減少錯(cuò)誤率和
crash率,達(dá)到一個(gè)高質(zhì)量標(biāo)準(zhǔn)。 - 性能:在較少的時(shí)間內(nèi)完成任務(wù),可以分庫(kù)分表,緩存,異步,算法優(yōu)化,搜索引擎(Elasticsearch)
- 可用性:幾乎任何時(shí)刻服務(wù)都在可用狀態(tài)
- 健壯性:在遇到問(wèn)題時(shí)依舊可以支撐服務(wù),比如遇到某個(gè)系統(tǒng)故障,最少程度或者不影響其他系統(tǒng)的運(yùn)行,前端可以展示友好的兜底頁(yè)面來(lái)避免不友好的行為;比如高峰期,服務(wù)達(dá)到峰值,采用限流等;一般常用的預(yù)防災(zāi)備能力手段有服務(wù)集群,降級(jí),限流,隔離等,對(duì)于客戶端來(lái)說(shuō)就是處理好異常(接口異常)情況下的邏輯,保證不crash,做好邊界處理。當(dāng)然還包含擴(kuò)展性,為未來(lái)可能達(dá)到新的挑戰(zhàn)時(shí),有一定的擴(kuò)展能力,正是所謂的未雨綢繆
說(shuō)了以上4點(diǎn),怎么進(jìn)行實(shí)質(zhì)的措施,簡(jiǎn)單來(lái)說(shuō)監(jiān)控。監(jiān)控比較廣,一個(gè)是接口監(jiān)控,比如說(shuō)可以通過(guò)網(wǎng)關(guān)日志來(lái)統(tǒng)計(jì)分析;一個(gè)是服務(wù)器的監(jiān)控,當(dāng)某個(gè)服務(wù)器快達(dá)到峰值時(shí),自動(dòng)擴(kuò)容;一個(gè)是業(yè)務(wù)監(jiān)控,有時(shí)候雖然接口數(shù)據(jù)都正常返回了,但是數(shù)據(jù)不準(zhǔn)確;客戶端前端日志數(shù)據(jù)監(jiān)控,觀察其穩(wěn)定性和體驗(yàn)情況
最后一點(diǎn)就是事故的處理和報(bào)備。開發(fā):快速定位解決問(wèn)題 產(chǎn)品&運(yùn)維:在完全修復(fù)問(wèn)題之前的降級(jí)方案是否能達(dá)到產(chǎn)品的預(yù)期,運(yùn)行狀況是否可以接受,運(yùn)營(yíng)活動(dòng)是否可以接受
大多數(shù)時(shí)候,業(yè)務(wù)組處理并決定方案即可;但是有些時(shí)候事故特別嚴(yán)重,有可能還要往上報(bào)備,可能需要公關(guān)處理,甚至驚動(dòng)高管層。
大的如上,細(xì)的可能就需要落實(shí)到每一個(gè)點(diǎn)。一般問(wèn)題反饋流程:?jiǎn)栴}池(客服,監(jiān)控系統(tǒng),用戶等)->技術(shù)支持或者測(cè)試人員(定位問(wèn)題)->相應(yīng)人員解決
這也需要每個(gè)業(yè)務(wù)模塊有相應(yīng)的負(fù)責(zé)人,遇到問(wèn)題相應(yīng)負(fù)責(zé)人快速定位和解決問(wèn)題