本文是我對SRE實(shí)踐的介紹,這些實(shí)踐來自于我組建過的不同SRE團(tuán)隊(duì),這些團(tuán)隊(duì)負(fù)責(zé)管理SaaS平臺(tái)快速添加特性。
為什么選擇Site Reliability Engineering(SRE)?
處于成長期的基于SaaS/PaaS的公司需要:
提升速度
持續(xù)提高可靠性
保持精簡
上述目標(biāo)需要SRE實(shí)踐,如果還沒到位的話。下面是我的概述,如果你需要深入研究SRE,可以參考一些關(guān)于SRE實(shí)踐的書籍和博客。
SRE的任務(wù)是什么?
方便以下工作:
快速開發(fā)
免回歸的版本周期
通過自動(dòng)化解決復(fù)雜問題
跨部門共享生產(chǎn)知識(shí)
“SRE就是要把風(fēng)險(xiǎn)降到最低。”
實(shí)現(xiàn)SRE的重點(diǎn)應(yīng)該放在哪里?
你如何快速驅(qū)動(dòng)SRE變化取決于你的工程團(tuán)隊(duì)結(jié)構(gòu)、文化和SDLC過程的成熟度。在較高的層次上,以下領(lǐng)域?qū)⑹情_始使用SRE的一個(gè)很好的框架。
合作和溝通
SRE是一種工程文化,并不是特定于任何垂直功能。只有所有的工程領(lǐng)導(dǎo)者團(tuán)結(jié)在一起,形成一個(gè)共同的愿景,這才會(huì)成功。
合作:
在工程部門之間設(shè)置共享的目標(biāo)和對象。
領(lǐng)導(dǎo)者接納并執(zhí)行。
為各種服務(wù)設(shè)定“服務(wù)水平目標(biāo)”(SLO)文化。在可靠性和穩(wěn)定性(it成本)方面,我們要走多遠(yuǎn)?
明確定義產(chǎn)品/服務(wù)所有權(quán),包括將SLO作為生產(chǎn)準(zhǔn)備要求的一部分。
溝通:與工程團(tuán)隊(duì)的所有成員保持一致的溝通。每個(gè)領(lǐng)導(dǎo)者都應(yīng)該以自己喜歡的方式來推動(dòng)這一進(jìn)程。
要從利弊兩方面分析我們?yōu)槭裁匆鲞@件事?(要提到商務(wù)司機(jī)。)
對每個(gè)團(tuán)隊(duì)/成員的期望是什么?新的結(jié)構(gòu)在未來會(huì)是什么樣的?
領(lǐng)導(dǎo)如何幫助避免擴(kuò)大知識(shí)差距或減輕未來的挑戰(zhàn)/風(fēng)險(xiǎn)?
帶有時(shí)間表路線圖的高層次里程碑——我們?nèi)绾蔚竭_(dá)那里?
“聚焦在切實(shí)可以實(shí)現(xiàn)的目標(biāo)上?!?/p>
人員和團(tuán)隊(duì)結(jié)構(gòu)
混合人才使用,優(yōu)化到最佳結(jié)構(gòu)。
文化:尋求幫助、合作、教導(dǎo)和負(fù)責(zé)任
雇傭合適的人才(面向未來的以及經(jīng)驗(yàn)豐富的人才)。
組織團(tuán)隊(duì)以利于平滑傳播知識(shí)。
雇傭員工是為了解決復(fù)雜問題,而不是為了擴(kuò)大規(guī)模(通過自動(dòng)化來擴(kuò)大規(guī)模)。
團(tuán)隊(duì)?wèi)?yīng)該對解決復(fù)雜的問題感到興奮。
50%的SRE時(shí)間應(yīng)用于質(zhì)量工程工作。
“SRE文化應(yīng)該是一種力量倍增器?!?/p>
工具/平臺(tái)
從POC開始(從小處開始),并在此基礎(chǔ)上不斷發(fā)展。
使用星型方法來實(shí)現(xiàn)任何更改。在沒有明確目標(biāo)和預(yù)期結(jié)果的情況下,不要引入任何改變(無論多么小)。
實(shí)現(xiàn)成功:傾聽用戶(工程師),適應(yīng)并推動(dòng)采用的想法。
模板
帶有關(guān)鍵性能指標(biāo)的儀表板(保持簡單,愚蠢)。
最佳實(shí)踐的劇本
用于監(jiān)視和安全的通用插件/模板。
自動(dòng)化工具/劇本是版本控制的,并遵循自助模式。
“自動(dòng)化的重點(diǎn)是解決復(fù)雜的問題?!?/p>
版本工程學(xué)(RE)
發(fā)布工程不應(yīng)該是事后的想法。相反,這是為了一致地測試和驗(yàn)證發(fā)行版而構(gòu)建的主要支柱之一。這是SRE的核心功能:
原則:
自助服務(wù)
高速
一致性
加強(qiáng)ACL和策略
質(zhì)量和安全應(yīng)該移到SDLC的左邊,并且應(yīng)該是版本工程自動(dòng)化的一部分。
每個(gè)版本都應(yīng)該通過KPI的鏡頭進(jìn)行驗(yàn)證,并與設(shè)定的SLO進(jìn)行比較。
負(fù)載和容量在放行前要進(jìn)行測試和認(rèn)證。
構(gòu)建一個(gè)測試環(huán)境來檢測零MTTR,從而避免生產(chǎn)錯(cuò)誤。
產(chǎn)品準(zhǔn)備就緒后才發(fā)布服務(wù)。
“服務(wù)的可靠性在于了解用戶的容忍度?!?/p>
監(jiān)控
在客戶端和服務(wù)端使用工具收集時(shí)間序列數(shù)據(jù)。
使開發(fā)人員能夠輕松地向監(jiān)控系統(tǒng)添加各種指標(biāo)。
為每個(gè)常用指標(biāo)構(gòu)建一組可重用的SLI模板;這也使得每個(gè)人更容易理解特定SLI的含義。
“如果你不能監(jiān)控某樣?xùn)|西,那它就沒有生產(chǎn)的必要?!?/p>
匯報(bào)/RCA(事后的)
每次都修正(戰(zhàn)術(shù)和戰(zhàn)略)。
不要責(zé)怪任何人,專注于解決方案、過程和技術(shù)。
通過適當(dāng)?shù)陌l(fā)布周期,有一個(gè)過程來跟蹤問題和采取的修復(fù)行動(dòng)。
定期召開架構(gòu)和產(chǎn)品評審會(huì)議。
“你不可能在沒有經(jīng)歷過問題的情況下找到正確的解決方案?!?/p>
注意:無所畏懼和協(xié)作是組成一個(gè)有效的SRE團(tuán)隊(duì)的關(guān)鍵特征。
關(guān)鍵詞: SRE正確做事的法門