最近看了一本書(shū)《SRE google運(yùn)維解密》,由自己所在團(tuán)隊(duì)使命出發(fā),來(lái)看這本書(shū)確實(shí)能夠獲得不少共鳴。
SRE(site reliability engineering)是專注于整個(gè)軟件系統(tǒng)的生命周期管理,使用計(jì)算機(jī)科學(xué)和軟件工程手段來(lái)設(shè)計(jì)和研發(fā)大型/分布式計(jì)算機(jī)軟件系統(tǒng)。因此SRE專注于對(duì)其負(fù)責(zé)的軟件系統(tǒng)架構(gòu)設(shè)計(jì),運(yùn)維流程的不斷優(yōu)化,讓這些大型軟件系統(tǒng)運(yùn)行的更可靠,擴(kuò)展性更好,能夠更有效的利用資源。但是并不是無(wú)止境的追求完美,當(dāng)一個(gè)系統(tǒng)已經(jīng)“足夠可靠”的時(shí)候,(我們平常說(shuō)的SLA幾個(gè)9),SRE需要將精力轉(zhuǎn)而投入到研發(fā)新的功能和創(chuàng)造新的產(chǎn)品中。
Google SRE代表了對(duì)行業(yè)現(xiàn)存管理大型復(fù)雜服務(wù)的最佳實(shí)踐的一個(gè)重要突破。有一個(gè)簡(jiǎn)單的想法“我是一名軟件工程師,這是我如何來(lái)應(yīng)付重復(fù)勞動(dòng)的辦法”而生,SRE模型已經(jīng)發(fā)展成為一套指導(dǎo)思想,一套方法論,一套激勵(lì)方法和一個(gè)擁有廣闊空間的獨(dú)立職業(yè)。
現(xiàn)在的工程師基本上都要求有三種思維:產(chǎn)品思維,技術(shù)思維,工程思維。產(chǎn)品思維顧名思義需要從產(chǎn)品市場(chǎng)和用戶的角度來(lái)分析思考,充分挖掘產(chǎn)品需求價(jià)值,接入終端用戶,形成數(shù)據(jù)閉環(huán),多運(yùn)用減法,而不是功能的隨意疊加。技術(shù)思維的源頭是需求,充分理解需求,并擁抱變化,保持對(duì)新技術(shù)的敏感度,而不是為了按時(shí)出現(xiàn)趕工,拒絕變化引發(fā)一地雞毛。工程思維的源頭是流程,確保流程和工程師的工作環(huán)境無(wú)縫銜接,“無(wú)縫”體現(xiàn)于流程中的概念與工程師群體已建立的專業(yè)常識(shí)相一致、沒(méi)有增加毫無(wú)價(jià)值的負(fù)擔(dān),根本仍是確保易用性。很直接的做法就是形成一套規(guī)范或者機(jī)制。產(chǎn)品質(zhì)量直接決定了工程師的工作和生活幸福感。為了讓產(chǎn)品的質(zhì)量做到可靠,單元測(cè)試、靜態(tài)分析、動(dòng)態(tài)分析等確保工程質(zhì)量的手段應(yīng)成為工程師的基本 工作內(nèi)容,通過(guò)將這些手段與CI流程進(jìn)行整合去持續(xù)構(gòu)建起對(duì)軟件產(chǎn)品的質(zhì)量信心。同時(shí)還需要注意風(fēng)險(xiǎn)可控,以及成本(軟硬件成本,甚至部分人力成本)。

Google的解決之道,SRE需要對(duì)重復(fù)性,手工性的操作有天然的排斥感,需要有足夠的技術(shù)能力快速開(kāi)發(fā)出軟件系統(tǒng)以替代手工操作。同時(shí)還需要和傳統(tǒng)的運(yùn)維工作區(qū)別開(kāi)來(lái),設(shè)立50%的上限。google的經(jīng)驗(yàn)法則就是團(tuán)隊(duì)必須將50%的經(jīng)歷花在真實(shí)的開(kāi)發(fā)工作中。不管對(duì)個(gè)人還是團(tuán)隊(duì)來(lái)說(shuō)都是有益的。我們需要將流程不斷優(yōu)化,將簡(jiǎn)單的,易錯(cuò)的,經(jīng)常需要做的事情自動(dòng)化。一方面可以避免人為出錯(cuò),帶來(lái)?yè)p失。另一方面解放自己,脫離枯燥的單一工作。