在讀《SRE - Google運(yùn)維解密》的時(shí)候看到Google提出的錯(cuò)誤預(yù)算上線機(jī)制,覺得不錯(cuò),在這里細(xì)化一下,如果你們公司線上變更老是出問題,或許可以將這個(gè)機(jī)制引入。
錯(cuò)誤預(yù)算 = 1 - 可靠性目標(biāo)
比如某產(chǎn)品的可靠性目標(biāo)是4個(gè)9,即99.99%,那么錯(cuò)誤預(yù)算就是0.01%,即,一個(gè)月內(nèi)總共的不可用時(shí)長(zhǎng)是:
1440 * 30 * 0.01% = 4.32分鐘
一次上線,造成不可用時(shí)長(zhǎng)1.22分鐘,那么還剩3.1分鐘,又一次上線,造成不可用時(shí)長(zhǎng)4分鐘,還剩-0.9分鐘,超過了預(yù)算,那么,本月(一個(gè)月是一個(gè)記分周期)就不能再上線了。
如果非要上線不可,需研發(fā)部門大老板確認(rèn)。這意味著:平時(shí)大老板根本不用審核上線單,如果真有上線單走到大老板這了,說明這個(gè)團(tuán)隊(duì)已經(jīng)用光了他們的錯(cuò)誤預(yù)算。研發(fā)的大老板這個(gè)時(shí)候應(yīng)該干點(diǎn)啥了。
年底可以建立獎(jiǎng)勵(lì)機(jī)制:
不可用時(shí)長(zhǎng)最少的團(tuán)隊(duì),頒發(fā)最佳質(zhì)量獎(jiǎng) :)
*錯(cuò)誤預(yù)算可以用于什么范疇呢?
建議只用于上線升級(jí)過程導(dǎo)致的服務(wù)短暫不可用,主抓上線造成的問題,其他故障用其他機(jī)制避免,避免扯皮。
*部分可用的情況如何計(jì)算?
將不可用時(shí)長(zhǎng)按容量比例計(jì)算。比如某產(chǎn)品部署了北京、上海兩個(gè)機(jī)房,容量比例是1023:2765,某個(gè)上線,當(dāng)前只是灰度了北京機(jī)房,造成這個(gè)機(jī)房3分鐘不可用,但是只占了整個(gè)集群容量的一部分,整個(gè)產(chǎn)品的不可用時(shí)長(zhǎng):
3 * 1023 / (1023 + 2765) = 0.81分鐘
*這會(huì)帶來哪些好處?
- 研發(fā)同學(xué)心理上會(huì)特別小心,提高風(fēng)險(xiǎn)意識(shí)
- 會(huì)想各種招來減少不可用時(shí)長(zhǎng),比如灰度上線、AB上線
- 最終結(jié)果就是服務(wù)可靠性提高
嗯,如果你是某公司運(yùn)維總監(jiān),可以考慮將上面這個(gè)機(jī)制適配到自己公司:)