穩(wěn)定性建設(shè)四要素:人耽装、工具愤炸、預(yù)案、目標(biāo)
穩(wěn)定性建設(shè)四個(gè)方向:根基牢(45%)日常(30%)預(yù)案(15%)容量(10%)
一掉奄、穩(wěn)定性建設(shè)四要素
人规个、工具、預(yù)案和目標(biāo)姓建。
(1)人
主導(dǎo)是開(kāi)發(fā)诞仓、測(cè)試和運(yùn)維,還有安全速兔、產(chǎn)品等參與墅拭,在OKR中背負(fù)一部分,合規(guī)化涣狗,有跡可循谍婉,
1)編碼規(guī)范:對(duì)外接口命名、統(tǒng)一異常父類(lèi)镀钓、異常碼規(guī)范穗熬、對(duì)外拋異常還是返回錯(cuò)誤碼、統(tǒng)一三方庫(kù)版本掸宛、哪些場(chǎng)景必須用內(nèi)部公共庫(kù)死陆、埋點(diǎn)日志怎么打、統(tǒng)一日志唧瘾、監(jiān)控切面實(shí)現(xiàn)等
? 為什么統(tǒng)一異常父類(lèi)和異常碼:統(tǒng)一后措译,很多切面就可公共庫(kù)做,如監(jiān)控饰序、出入口日志打印领虹,異常攔截,壓測(cè)標(biāo)識(shí)透?jìng)髑笤ァ⑻厥獾淖侄温顸c(diǎn)等塌衰。例:可能不同模塊異常父類(lèi)不同的诉稍,訂單模塊異常父類(lèi)OrderException、交易支付TradeException最疆,OrderException和TradeException的父類(lèi)BizException(定義在通用共公共庫(kù)中)杯巨,統(tǒng)一200代表正確碼,異常6位數(shù)字(前3位模塊努酸,后3位異常類(lèi)型)服爷,
2)公共庫(kù):內(nèi)部公共庫(kù)(也升級(jí)迭代),如日志庫(kù)获诈、HTTP庫(kù)仍源、線程池庫(kù)、監(jiān)控埋點(diǎn)庫(kù)等舔涎,都“久經(jīng)考驗(yàn)”應(yīng)強(qiáng)制用笼踩,。
3)項(xiàng)目結(jié)構(gòu)規(guī)范:統(tǒng)一結(jié)構(gòu)快速接手項(xiàng)目
4)數(shù)據(jù)庫(kù)規(guī)范:庫(kù)名亡嫌、表名嚎于、索引、字段挟冠、分庫(kù)分表規(guī)范明確匾旭,分表數(shù)不用2的冪(很多人認(rèn)為計(jì)算分表時(shí)用位運(yùn)算更快,這個(gè)開(kāi)銷(xiāo)相比數(shù)據(jù)庫(kù)操作可忽略)圃郊,1024張表用質(zhì)數(shù)(接近1024的1019)价涝,數(shù)據(jù)分的更均勻。
(2)工具
能做什么持舆?做到什么程度色瘩?如何降低穩(wěn)定性工作成本?
日志采集分析檢索(滴滴Arius)逸寓、監(jiān)控告警(滴滴Odin Metrics)居兆、分布式追蹤系統(tǒng)(Google的Dapper、滴滴把脈)竹伸、自動(dòng)化打包部署(滴滴One Experience)泥栖、服務(wù)降級(jí)系統(tǒng)(滴滴SDS)、預(yù)案平臺(tái)(滴滴911)勋篓、根因定位(記錄所有故障發(fā)生前所有系統(tǒng)變更事件)吧享、放火平臺(tái)等。
內(nèi)部公共庫(kù)譬嚣,接入Odin Metrics和把脈幾乎不要做額外工作(接入把脈要提日志采集工單钢颂,頭疼),不要吝嗇工具投入拜银,用或參考開(kāi)源框架
(3)預(yù)案
故障時(shí)通知:團(tuán)隊(duì)內(nèi)其他成員殊鞭、Leader(尋求幫助)和客服遭垛、上游業(yè)務(wù)開(kāi)發(fā)等可能影響方
選出協(xié)調(diào)者,什么情況選
協(xié)調(diào)者職責(zé):排查和止損操灿,避免介入同學(xué)重復(fù)工作锯仪,持續(xù)和影響方溝通。
操作開(kāi)關(guān)誰(shuí)決策:對(duì)于排查問(wèn)題和止損同學(xué)來(lái)說(shuō)趾盐,查代碼看開(kāi)關(guān)名卵酪,關(guān)掉一個(gè)功能需多個(gè)開(kāi)關(guān),什么條件能操作
止損方式谤碳、原則,善后方案誰(shuí)拍板
(4)目標(biāo)
星辰花將故障分成P0至P5六個(gè)等級(jí)溢豆,P0蜒简、P1、P2屬重大:
二漩仙、穩(wěn)定性建設(shè)四個(gè)方向
(1)根基牢(45%)
CR:閉環(huán)搞定搓茬,時(shí)間長(zhǎng)容易懈怠,大于4人日項(xiàng)目進(jìn)小黑屋CR
設(shè)計(jì):講最終和淘汰方案队他!
提測(cè):補(bǔ)單測(cè)卷仑、自測(cè)、聯(lián)調(diào)麸折、通過(guò)用例
上線流程:小流量集群灰度(單量少城市做小流量集群)锡凝,再線上灰度,觀察線上大盤(pán)和日志垢啼,有問(wèn)題快回滾
(2)日常工作在(30%)
監(jiān)控告警窜锯、及時(shí)消滅線上小隱患、跨團(tuán)隊(duì)溝通芭析、復(fù)盤(pán)锚扎、定期會(huì)議來(lái)總結(jié)
(3)預(yù)案(15%)
去定位和止損復(fù)雜的線上問(wèn)題時(shí)。緊急預(yù)案重要馁启,動(dòng)態(tài)預(yù)案才有效
1)分場(chǎng)和完善:分場(chǎng)景整理如MySQL驾孔、MQ、發(fā)單接口故障惯疙。如有損翠勉,副作描述清楚。
2)驗(yàn)證預(yù)案:借助放火平臺(tái)和降級(jí)系統(tǒng)霉颠,給主流程非核心依賴注入故障
(4)容量(10%)
老板問(wèn)你明年單量要Double要預(yù)算眉菱,要規(guī)劃你憑什么給?壓測(cè)容量來(lái)預(yù)估掉分。摸到分布式系統(tǒng)中“短木板”才知道系統(tǒng)吞吐量(容量)
投入10%的精力來(lái)摸容量俭缓、擴(kuò)容量克伊、水位預(yù)警等。線上有大約10%故障和容量有關(guān)华坦,擴(kuò)容三點(diǎn):
1)全鏈路壓測(cè):老瓶頸可能消失愿吹,新的出現(xiàn),之前結(jié)果失效惜姐,定期去摸這個(gè)閾值犁跪。
2)擴(kuò)容演練:緊急時(shí)候,彈性云擴(kuò)容比修改閾值重新上線更快
3)多活建設(shè)