遙想我剛開始工作秀又,做的是一份令我感到十分厭惡的運(yùn)維工作顶瞳,為什么呢?因?yàn)樗惺虑閹缀醵家渴謩?dòng)去執(zhí)行独令,沒有什么dashboard或自動(dòng)化工具能分擔(dān)工作負(fù)擔(dān)(word load)摔桦。這讓我一開始對運(yùn)維工作的印象是消極的社付,同時(shí)也讓我意識(shí)到運(yùn)維開發(fā)是大有可為的。
那么今天就看看谷歌的SRE是怎么看待工作中這類繁瑣、重復(fù)的工作鸥咖。
定義
不僅是我不喜歡做的工作(the work I don't like to do)
和一般管理性工作或者grungy工作不同燕鸽,這類工作是仁者見仁的,有些人甚至比較享受這種重復(fù)啼辣、完全手動(dòng)的工作啊研。那么toil到底是什么工作呢?這里有這么幾個(gè)詞
manual,repetitive,automatable,tatical,devoid,enduring value,linearly grows
- manual熙兔,不像是導(dǎo)航失控之后必須切換成手動(dòng)控制悲伶,而是本可以通過一個(gè)script來解決,但仍要使用手動(dòng)的方法(個(gè)人覺得這里應(yīng)該加個(gè)前提:操作人員有腳本化的能力與意愿)
- repetitive 這里的重復(fù)是有一個(gè)前提住涉,比如這件工作一個(gè)月執(zhí)行兩次麸锉,每次耗時(shí)5分鐘,然后自動(dòng)化可能需要1~2小時(shí)(并且可能還需要進(jìn)行驗(yàn)證)舆声,那么可以不稱這種工作是重復(fù)的
- automatable 這個(gè)詞雖然含義是自動(dòng)化花沉,但注意,其實(shí)原文的意思是媳握,如果一件工作碱屁,它不是以依賴人的判斷(這里偏重經(jīng)驗(yàn)),那么它就是automatable的蛾找。比如生產(chǎn)線上的機(jī)器人娩脾,它的工作結(jié)果是有圖紙這種非人類經(jīng)驗(yàn)判斷為基準(zhǔn)的,那么它就是可自動(dòng)化的
-
tatical 這個(gè)解釋打毛,我覺得是SRE中對toil定義非常重要的一點(diǎn)柿赊,不同于什么機(jī)械重復(fù)這種耳熟能詳?shù)脑~匯,toil工作有一個(gè)特點(diǎn)幻枉,就是它是會(huì)打斷你的工作流且讓你必須做出及時(shí)回應(yīng)的工作碰声,而不是策略驅(qū)動(dòng)的(strategy-driven,這里策略驅(qū)動(dòng)的意思就是提前計(jì)劃好的)
我覺得這里非常給人以啟發(fā)熬甫,其實(shí)好的站點(diǎn)穩(wěn)定性運(yùn)維工作胰挑,最理想的狀況就是變成類似windows的事務(wù)管理器那樣,我可以設(shè)定好策略椿肩,我每小時(shí)瞻颂、每天、每周都要做什么郑象,我又能將突然的toil集中到一起進(jìn)行臨時(shí)性的處理 - no ending value
這個(gè)概念也很新穎蘸朋,簡單來說,如果這件工作對未來并沒有好處扣唱,或者沒有明顯的好處,那么它也是toil。怎么理解呢噪沙?滿足你對命令行敲命令的快感并不是好處炼彪,真正有意義的工作,需要能整個(gè)服務(wù)正歼、項(xiàng)目的發(fā)展上辐马,起到積極作用。
比如你突遇某偶發(fā)bug局义,花費(fèi)若干小時(shí)替換了所有項(xiàng)目都會(huì)使用的一個(gè)中間件喜爷,這個(gè)中間件可以提升25%的請求鑒權(quán)效率,那么它就不是toil萄唇,因?yàn)樗虚L期意義檩帐。
再比如你把某數(shù)據(jù)庫引擎的缺陷整理稱文檔并輸出,這也不算是toil另萤。
O(n) with service growth
隨著服務(wù)規(guī)模的增長線性增長
這里還是沒有把“共性”進(jìn)行提取湃密,將一些工作的成果進(jìn)行“復(fù)用”
比如我新增服務(wù)之后,會(huì)自動(dòng)下發(fā)任務(wù)按照配置好的模板部署監(jiān)控服務(wù)四敞,那么這一塊就不是線性增長的(當(dāng)然需要考慮泛源,處理告警這塊的開銷也有做到非線性增長嗎)
為何toil少了就好
谷歌SRE的標(biāo)準(zhǔn)是,toil工作不能超過SRE工程師50%的工作時(shí)間忿危。其實(shí)從這個(gè)數(shù)字可以看出达箍,即便是技術(shù)標(biāo)桿的谷歌,toil工作也不少铺厨,不然也不可能定這個(gè)數(shù)字缎玫。
書中講到,首先我們需要明白一點(diǎn)的是努释,這種工作是無法絕對杜絕的碘梢,這和技術(shù)沒關(guān)系,也業(yè)務(wù)類型也沒關(guān)系伐蒂。我們需要做的就是守住這個(gè)紅線煞躬,因?yàn)橐坏┏^這個(gè)數(shù)字,這類工作就會(huì)像緩存雪崩一樣惡化逸邦,占比迅速增長到每個(gè)工程師每天所有時(shí)間都要處理這類工作恩沛。
工程
這小節(jié)我覺得應(yīng)注意一下,我們很多崗位缕减,很多title都帶有工程師的字樣雷客,但是我們很多人并不理解什么是工程師。工程師脫胎于工程桥狡,而工程是需要人類判斷的(human judgement)搅裙,所謂工程能給你的提供的服務(wù)帶來持續(xù)的提高(improvement)皱卓,讓這些服務(wù)能被策略所指引。它是非常需要?jiǎng)?chuàng)造性和創(chuàng)新性的部逮。
我們將我們所有SRE(站點(diǎn)運(yùn)維)活動(dòng)歸為四類:
1娜汁,軟件工程
如編寫自動(dòng)化腳本,編寫相關(guān)工具兄朋、框架掐禁,新增服務(wù)特性(service feature,就是版本變更點(diǎn))颅和,增強(qiáng)服務(wù)的伸縮性和可靠性傅事,使基礎(chǔ)設(shè)施更加健壯
2,系統(tǒng)工程
如配置生產(chǎn)環(huán)境峡扩、修改配置蹭越、編寫相關(guān)文檔、構(gòu)建系統(tǒng)負(fù)載均衡等
3有额,toil
上文的那些工作
4般又,overhead
管理型工作,和你負(fù)責(zé)的軟件服務(wù)無直接關(guān)聯(lián)的工作巍佑,比如HR paperwork茴迁, 小組、公司會(huì)議萤衰、個(gè)人評估堕义、培訓(xùn)等
然后再次強(qiáng)調(diào),toil不能超過總量的50%(這里感覺谷歌SRE形似我們的業(yè)務(wù)運(yùn)維脆栋,但是相比業(yè)務(wù)運(yùn)維倦卖,又有更多工程師的成分)
toil總是不好的嗎?
直接答案:不是