轉(zhuǎn)自:http://www.cnblogs.com/tylercao/p/7788893.html
任何事情都沒有表面看起來那么簡單
所有事情的發(fā)展都會比你預(yù)計的時間長
會出錯的事情總會出錯
如果擔(dān)心某個事情發(fā)生昵观,那么它更有可能發(fā)生
墨菲定律暗示我們厚宰,如果擔(dān)心某種情況會發(fā)生,那么它更有可能發(fā)生,久而久之就一定會發(fā)生峻贮。這警示我們逃沿,在互聯(lián)網(wǎng)公司鸵钝,對生成環(huán)境發(fā)生的任何怪異現(xiàn)象和問題都不要輕視吹由,對其背后的原因一定要調(diào)查清楚。同樣才顿,海恩法則也強調(diào)任何嚴(yán)重的事故背后都是很多次小問題的積累莫湘,當(dāng)?shù)揭欢考壓髸?dǎo)致質(zhì)變,嚴(yán)重的問題就會浮出水面郑气。
那么幅垮,我們需要對線上服務(wù)產(chǎn)生任何現(xiàn)象,哪怕是小問題尾组,都要刨根問底忙芒,對任何現(xiàn)象都要遵循下面問題
為什么會發(fā)生 ?
發(fā)生了該怎么應(yīng)對 演怎?
怎么恢復(fù) 匕争?
怎么避免 ?
在生成環(huán)境發(fā)生故障時快速恢復(fù)服務(wù)爷耀,避免或減少故障帶來的損失,避免或減少故障對客戶的影響
應(yīng)第一時間恢復(fù)系統(tǒng)拍皮,而不是徹底解決呢問題歹叮,快速止損
明顯資金損失時,要第時間升級铆帽,快速止損
指標(biāo)要圍繞目標(biāo)咆耿,快速啟動應(yīng)急過程與止損方案
當(dāng)前負責(zé)人不能短時間內(nèi)解決問題,則必須進行升級處理
處理過程在不影響用戶體驗的前提下爹橱,保留現(xiàn)場
線上應(yīng)急一般分為 6 個階段
發(fā)現(xiàn)問題
定位問題
解決問題
回顧問題
改進措施
過程中要記住萨螺,應(yīng)急只有一個總體目標(biāo):盡快恢復(fù),消除影響。不管處于哪個階段慰技,首先想到的必須是恢復(fù)問題椭盏,恢復(fù)問題不一定能定位問題,也不一定有完美的解決方案吻商,可能通過經(jīng)驗或者開關(guān)等掏颊。但這可以達到快速恢復(fù)的目的,然后保留現(xiàn)場艾帐,以及定位問題乌叶,解決問題和復(fù)盤
通常我們通過系統(tǒng)層面、應(yīng)用層面和中間件層面監(jiān)控來發(fā)現(xiàn)問題
系統(tǒng)層面監(jiān)控包括
系統(tǒng)的 CPU 使用率
Load average
Memory
I/O (網(wǎng)絡(luò)與磁盤)
SWAP 使用情況
線程數(shù)
File Description 文件描述符等
應(yīng)用層面監(jiān)控包括
接口的響應(yīng)時間
QPS
調(diào)用頻次
接口成功率
接口波動率等
中間件層面監(jiān)控包括數(shù)據(jù)庫柒爸、緩存慢洋、消息隊列。
對數(shù)據(jù)庫的負載啤斗、慢查詢池凄、連接數(shù)等監(jiān)控
對緩存的連接數(shù)、占用內(nèi)存阳藻、吞吐量晰奖、響應(yīng)時間等監(jiān)控
消息隊列的響應(yīng)時間、吞吐量腥泥、負載匾南、堆積情況等監(jiān)控
分析定位過程中先考慮系統(tǒng)最近發(fā)生的變化,需要考慮如下幾方面
故障系統(tǒng)最近是否上過線蛔外?
依賴的基礎(chǔ)平臺與資源是否升級過蛆楞?
依賴的系統(tǒng)是否上過線?
運營是否在系統(tǒng)內(nèi)做過運營變更夹厌?
網(wǎng)絡(luò)是否有波動豹爹?
最近的業(yè)務(wù)量是否漲了?
運營方是否有促銷活動矛纹?
解決問題要以定位問題為基礎(chǔ)臂聋,必須清晰定位問題產(chǎn)生的根本原因,在提出解決問題的有效方案或南,沒有明確原因之前孩等,不用使用各種方法來嘗試修復(fù)問題,可能還沒有解決這個問題又引入了下個問題采够,想想剛剛提到的墨菲定律
解決問題后肄方,需應(yīng)急團隊與相關(guān)方回顧事故產(chǎn)生的原因、應(yīng)急過程的合理性蹬癌、提出整改措施权她,主要聚焦在以下幾個問題:
類似的問題還有哪些沒有發(fā)生虹茶?
做了哪些事情,事故就不會再發(fā)生隅要?
做了哪些事情蝴罪,及時發(fā)生故障,也不會產(chǎn)生影響拾徙?
根據(jù)回顧問題提出的改進措施洲炊,以正式的項目管理方式進行統(tǒng)一管理,采用 SMART 原則來跟進
分布式服務(wù)架構(gòu)原理尼啡、設(shè)計與實戰(zhàn)
相關(guān)學(xué)習(xí)資料移步: