當(dāng)前位置:首頁>職場>sre工程師需要會(huì)什么(如何成為SRE先了解這些真相和面試情況)
發(fā)布時(shí)間:2024-01-24閱讀(18)

我?guī)啄陙硪恢痹谕莆闹兄v話和怒吼,一次又一次地被問到同樣的問題:“如何成為 SRE?”
我的回答通常是漫無邊際的。這么久,有時(shí)候我甚至都沒有回信。可以說的太多了!太多的歷史、太多的內(nèi)容、太多由于不同個(gè)人情況而產(chǎn)生的因素。
所以,在這里表達(dá)一些我關(guān)于如何成為 SRE 的正式的回應(yīng):我認(rèn)為它是什么,我是如何成為 SRE 的,要成為 SRE 你應(yīng)該做些什么。本文是一本指南,可用作書簽、參考和分享。它提供了一些見解,讀者可以根據(jù)具體情況進(jìn)行映射,以幫助開始自己特定的路徑。
希望你在旅程中發(fā)現(xiàn)這些內(nèi)容很有用。
目錄那么,什么是 SRE(網(wǎng)站可靠性工程)?根據(jù) Google SRE 的書:“SRE 就是軟件工程師設(shè)計(jì)一個(gè)運(yùn)維團(tuán)隊(duì)的過程。”由于多種原因,這個(gè)定義有點(diǎn)爭議,尤其是它的含義是運(yùn)維團(tuán)隊(duì)無法進(jìn)行合理的系統(tǒng)設(shè)計(jì),而不是運(yùn)維團(tuán)隊(duì)經(jīng)常資源不足。這個(gè)定義的爭議性還在于它暗含著所有的 SRE 都在日復(fù)一日地對(duì)后端系統(tǒng)進(jìn)行編碼,而這在 Google 甚至都不正確。
雖然谷歌投入了相當(dāng)多的資金來對(duì)外宣傳 SRE 的定義,但業(yè)內(nèi)人士根據(jù)自己的情況開始實(shí)踐 SRE,這樣就導(dǎo)致了公司與公司之間有很大差異。而對(duì)它的定義,我看到的 SRE 指的是:
我想明確一點(diǎn):本指南不是關(guān)于 Google SRE 的。Google SRE 有自身 SRE 的實(shí)踐風(fēng)格,某種程度來說是一個(gè)完全不同的學(xué)科。其他大公司可能會(huì)采用 Google SRE 的一部分,但我不知道谷歌以外誰會(huì)完全這樣實(shí)施。如果你想成為 Google SRE,那完全沒問題,但是這篇文章并不想這樣引導(dǎo)。
那么,SRE 更廣泛的定義是什么呢?很難為所有公司確定一個(gè)定義,就像很難為所有公司定義軟件工程一樣。如果軟件工程師(SE)是由代碼定義的,那么 SRE 也是軟件工程師。那么,SRE 和需要 on-call 的軟件工程師之間有什么區(qū)別呢?
如果你非要讓我說,我會(huì)將網(wǎng)站可靠性工程定義為:“大規(guī)模構(gòu)建和維護(hù)可靠的 SaaS 平臺(tái)的實(shí)踐。”我認(rèn)為 SRE 適用于擁有大型 SaaS 產(chǎn)品的公司,他們通常有高流量的網(wǎng)站和相關(guān)服務(wù)。也就是說,我是按照“網(wǎng)站可靠性”的字面意思來下的定義。
(你可能認(rèn)為大型的內(nèi)部服務(wù)(例如數(shù)據(jù)庫)需要 SRE,但我的觀點(diǎn)是這樣的服務(wù)可能支持更大的面向客戶的平臺(tái))。

一個(gè)需要 on-call 的軟件工程師知道代碼如何工作、破解和修復(fù)。網(wǎng)站可靠性工程師知道代碼要如何適應(yīng)公司的架構(gòu),并且需要設(shè)置整個(gè)系統(tǒng)以保證服務(wù)成功運(yùn)行。
那么根據(jù)這個(gè)定義,SRE 的一些關(guān)鍵技能覆蓋哪些領(lǐng)域?
有人會(huì)抱怨“太多了!”,確實(shí)如此。SRE 是一門廣泛的學(xué)科,因?yàn)檫\(yùn)行大型分布式站點(diǎn)需要很多的技能。事實(shí)上,許多 SRE 傾向于專注上述的一種或兩種技能。你可能也發(fā)現(xiàn)了,有的公司通常有多個(gè) SRE 團(tuán)隊(duì),支持平臺(tái)上的不同領(lǐng)域。也有的團(tuán)隊(duì)可能正在實(shí)踐 SRE 但叫法不同,例如叫基礎(chǔ)設(shè)施工程或生產(chǎn)工程。你還會(huì)發(fā)現(xiàn)有些擁有 SRE 團(tuán)隊(duì)的公司根本就沒有在實(shí)踐 SRE。我鼓勵(lì)大家把注意力集中在工作本身上,不用太糾結(jié) SRE 的實(shí)際含義是什么。
現(xiàn)實(shí)每當(dāng)有人問我如何成為 SRE 時(shí),通常他們最后會(huì)問自己為什么要做 SRE。這樣說似乎不太禮貌,讓我們花點(diǎn)時(shí)間來解釋一些可能對(duì)該領(lǐng)域的誤解。根據(jù) Google 的深度營銷與行業(yè)整體情況,期望與現(xiàn)實(shí)之間可能存在很大差異。
期望
現(xiàn)實(shí)
上述現(xiàn)實(shí)并非在每個(gè)地方都是如此,但還是比很多人期望的要真實(shí)。有時(shí)你要為新的花哨平臺(tái)構(gòu)建工具,有時(shí)候需要與 Puppet(一個(gè)自動(dòng)化部署工具)和 DNS 作斗爭。你需要具備靈活性并積累各種技能來完成工作。
SRE 的其他一些現(xiàn)實(shí)
有一個(gè)非常老套的說法:如果是為了權(quán)力和榮耀,可能會(huì)感到失望。成為 SRE,因?yàn)槟銓?duì)這個(gè)工作感興趣。
我自己的路有時(shí)人們會(huì)根據(jù)我職業(yè)生涯中的具體步驟來追問:書名,公司,會(huì)議等。他們希望得到盡可能多的信息,以便嘗試復(fù)制我的道路。問題是,我的道路不容易復(fù)制。
我普通的道路
如果回放,這就是一個(gè)電影學(xué)生成為科技工作者的故事。 只要努力工作,你也會(huì)實(shí)現(xiàn)自己的夢想! 但這條道路是他人無法復(fù)制的,例如,當(dāng)我面試支持方面的工作時(shí),我是一個(gè)年輕的、白人、純女性打扮的女人,由年長的、有家室的白種男性雇傭。 他們決定“給我個(gè)機(jī)會(huì)”,并說我讓他們想起了他們的女兒,其中有個(gè)人甚至基于他小女兒的學(xué)校作業(yè)面試了我! 做這種關(guān)聯(lián)的感覺并不好,雖然它確實(shí)對(duì)我有利,但我無法幫助你復(fù)制它。
我認(rèn)為我的道路中可以而且應(yīng)該復(fù)制的,是不斷學(xué)習(xí)。我的整個(gè)科技生涯就是我做的工作和我正在學(xué)習(xí)的工作。我不斷閱讀書籍,觀看講座,上課,學(xué)習(xí)新語言,與業(yè)界朋友交談。我不會(huì)滿足于現(xiàn)狀,如果對(duì)當(dāng)前正在做的工作不感興趣,我會(huì)在晚上找到一些有趣的東西,然后會(huì)付諸行動(dòng)。最終,這些新技能可以幫助我完成目前的工作或保證下一個(gè)工作。
我沒有做到,但是你應(yīng)該去做的是利用你的社區(qū)。在開始一家科技公司的工作之前,我還不知道技術(shù)社區(qū)是怎么一回事,我一個(gè)人一直在抨擊 Python 問題,而不是參加聚會(huì)并獲得幫助。有一段時(shí)間我找不到工作,也不了解技術(shù)工作相關(guān)的情況。后來我終于找到了工作,但我認(rèn)為這更多的是一些運(yùn)氣的成分而不是我的能力。利用你的社區(qū)吧!它會(huì)幫助你找到一份工作。
你的道路我遇到過各種不同背景的人,他們都想要成為 SRE。有些人已經(jīng)是開發(fā)人員,有些人還在訓(xùn)練營,有些人在做 QA 或營銷,他們都想知道下一步應(yīng)該是什么。
官方的答案是“看情況”,這是認(rèn)真思考權(quán)衡所有情況后的答案!但我知道這個(gè)答案沒有什么用,所以讓我們以不同的方式來往下說。
如果我現(xiàn)在試圖成為 SRE,會(huì)做兩件事:
你可能不熟悉這個(gè)術(shù)語 - “跳躍”(hops)。它是一種網(wǎng)絡(luò)概念,指的是數(shù)據(jù)包在來源和目標(biāo)之間發(fā)生的路由網(wǎng)絡(luò)設(shè)備(路由器、網(wǎng)橋等)的數(shù)量。在家用 wifi 上的筆記本電腦和朋友的筆記本電腦之間傳輸?shù)臄?shù)據(jù)包,可能比在筆記本電腦和另一個(gè)國家 / 地區(qū)的朋友的筆記本電腦之間傳輸?shù)臄?shù)據(jù)包少。同樣地,我認(rèn)為與 SRE 團(tuán)隊(duì)合作的開發(fā)人員,比學(xué)習(xí)電影畢業(yè)后想要成為 SRE 的人之間的跳躍會(huì)更少。

職業(yè)生涯中的跳躍就像是技能和網(wǎng)絡(luò)(人際網(wǎng)絡(luò)!)間的組合 。這是一個(gè)持續(xù)的過程,找到需要什么技能來進(jìn)行下一跳,并找到能幫助你成功的人。你的下一跳很可能不是一個(gè) SRE 工作,但它會(huì)讓你更接近 SRE!
與計(jì)算機(jī)網(wǎng)絡(luò)非常相似,社交網(wǎng)絡(luò)越大,道路就越有效率。這取決于誰幫助你、擁有的技能和時(shí)間,你的道路可能比同一個(gè)地方的其他人更長或更短。一個(gè)人的道路可能看起來像新兵訓(xùn)練營 - 自由職業(yè)者 - 兼職開發(fā)人員 - 副業(yè)做做運(yùn)維 - 系統(tǒng)管理員 - 運(yùn)維 - SRE。而另一個(gè)人可能會(huì)在剛畢業(yè)就找到 SRE 團(tuán)隊(duì)的實(shí)習(xí)機(jī)會(huì)。不同的人有不同的機(jī)會(huì),你需要找到符合自己實(shí)際情況的機(jī)會(huì)。
因此,先找到 SRE 有哪些相關(guān)的技能然后縮小這些技能范圍。縮小到什么程度呢,就是如果你擁有了這部分技能,你就可以得到一份更接近 SRE 的新工作。然后重復(fù)。
例如,如果不知道如何編程:學(xué)會(huì)編程!去訓(xùn)練營,參加在線課程,獲得計(jì)算機(jī)科學(xué)學(xué)位,做一切合適的事情。擴(kuò)展人際網(wǎng)絡(luò)并找到招聘人員,或做自由職業(yè)。盡量讓你的簡歷上有開發(fā)經(jīng)歷,然后在新職位中學(xué)習(xí)下一個(gè)技能,例如網(wǎng)絡(luò)或數(shù)據(jù)庫。參加更多的課程,找到更多的聚會(huì),換新工作,一步步接近 SRE。
最難的部分,是如何讓你的腳踏進(jìn)那道門檻。一旦有了開發(fā)人員或系統(tǒng)管理員的工作,一旦可以在簡歷上展示出某種形式的“工程師”,你就有空間來呼吸。堅(jiān)持那份工作 1 到 2 年,獲得一些經(jīng)驗(yàn),建立自己的網(wǎng)絡(luò),并開始下一個(gè)支點(diǎn)。這需要時(shí)間,但會(huì)是你職業(yè)生涯剩余的時(shí)間中,成為 SRE 并超越它的一個(gè)方法。
面試無論你過程如何,最終都會(huì)碰到 SRE 工作的面試。恭喜!不同公司和團(tuán)隊(duì)的 SRE 面試是不同的,具體取決于你的職責(zé)。因此,提前研究好工作崗位(無論如何你都應(yīng)該這樣做),并準(zhǔn)備好要涵蓋的主要主題。
除了在所有面試中常見的行為方面的問題之外,SRE 的面試還會(huì)包括編碼、故障排除和可靠性方面的問題。
編碼
故障排除
可靠性
對(duì)于入門級(jí) SRE,我希望能夠使用一種靈活的編程語言,比如 Python。可以創(chuàng)建一個(gè)小的應(yīng)用程序,編寫測試并處理異常。還希望看到像 Linux 這樣的操作系統(tǒng)方面的一些能力,可以在命令行上搜索文件系統(tǒng),知道如何 grep 日志,可以 ping 一個(gè)域。希望看到大規(guī)模技能方面的一些預(yù)見,例如使用配置管理系統(tǒng)或 CI 工具。可能無法負(fù)擔(dān)運(yùn)行 AWS 實(shí)例的費(fèi)用,但也許已經(jīng)使用免費(fèi)的 Heroku 帳戶,并在免費(fèi)的監(jiān)控 add-ons 程序中檢出了你的應(yīng)用程序指標(biāo)。無論在 SRE 職業(yè)生涯中,無論是 Kubernetes 還是 MySQL 還是邊緣網(wǎng)絡(luò),這些基礎(chǔ)的技能都將幫助你取得成功。
一個(gè)有趣的部分,每次面試結(jié)束時(shí)都應(yīng)該留出時(shí)間讓你提問 ; 也就是說,你要面試公司。應(yīng)該提前計(jì)劃出這些問題,并寫下來以供參考。要注意他們的答案。要從感覺上了解他們的工作文化、項(xiàng)目和團(tuán)隊(duì)的健康狀況。
可能不會(huì)第一次得到你夢寐以求的工作,但是詢問其中的一些問題,可以幫你了解這項(xiàng)工作將如何為下一次求職提供幫助。
“過去六個(gè)月你做了哪些項(xiàng)目?”
“你最后一次被呼叫的時(shí)間是什么時(shí)候,是因?yàn)槭裁矗俊?/p>
“你所有的開發(fā)團(tuán)隊(duì)都 on-call 嗎?”
問這些問題不是來確保呆在最好的公司,而是要清楚你想要的是什么。例如,如果喜歡未來的隊(duì)友和福利套餐,但是知道自己正在進(jìn)行可怕的 on-call 輪換,那么你可以在薪資談判中提到這一點(diǎn)。重復(fù)一遍,可能不會(huì)第一次嘗試就得到夢寐以求的工作,所有的公司都有其優(yōu)點(diǎn)和缺點(diǎn)。牢牢地記住哪些因素破壞了雙方的印象,并盡力去搞清楚哪些公司存在這個(gè)因素。
資源現(xiàn)在,你已經(jīng)了解了什么是 SRE,并且有一條通向它的道路。下一步就是發(fā)展你的技能!
如上所述,通往 SRE 有很多道路,包括計(jì)算機(jī)科學(xué)學(xué)位和編碼訓(xùn)練營。但那些要花錢,并且可能對(duì)你來說遙不可及。可以利用免費(fèi)資源進(jìn)入市場,我認(rèn)為每個(gè)人都應(yīng)該擁有同樣的機(jī)會(huì)。
以下是 SRE/Ops/Systems 社區(qū)提供的免費(fèi)教育資源的合集,我還沒有親自把所有的都使用過,所以也沒有什么排名,但每一個(gè)都強(qiáng)烈推薦。這里提供了這些材料的不同類型,以便你根據(jù)自己的學(xué)習(xí)方式進(jìn)行選擇。
你在這里的所有學(xué)習(xí)都不要停下來。選擇看起來很有趣的內(nèi)容,如果不能解決問題,請選擇其它內(nèi)容。使用以下列表作為學(xué)習(xí)指南,來作為填補(bǔ)你空白的備忘單,它甚至還是檢查你是否會(huì)享受 SRE 工作的一個(gè)好方法!
一般 / 多個(gè)主題
Architecture
Cloud
Databases
Git
Networking
Operating system internals
Programming
Puppet
Security
Unix / Linux operations
Vim
歡迎分享轉(zhuǎn)載→http://m.avcorse.com/read-236085.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號(hào)-5 TXT地圖HTML地圖XML地圖