久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>sre工程師需要會什么(如何成為SRE先了解這些真相和面試情況)

sre工程師需要會什么(如何成為SRE先了解這些真相和面試情況)

發布時間:2024-01-24閱讀(17)

導讀我幾年來一直在推文中講話和怒吼,一次又一次地被問到同樣的問題:“如何成為SRE?”我的回答通常是漫無邊際的。這么久,有時候我甚至都沒有回信。可以說的太多了!....

sre工程師需要會什么(如何成為SRE先了解這些真相和面試情況)(1)

我幾年來一直在推文中講話和怒吼,一次又一次地被問到同樣的問題:“如何成為 SRE?”

我的回答通常是漫無邊際的。這么久,有時候我甚至都沒有回信。可以說的太多了!太多的歷史、太多的內容、太多由于不同個人情況而產生的因素。

所以,在這里表達一些我關于如何成為 SRE 的正式的回應:我認為它是什么,我是如何成為 SRE 的,要成為 SRE 你應該做些什么。本文是一本指南,可用作書簽、參考和分享。它提供了一些見解,讀者可以根據具體情況進行映射,以幫助開始自己特定的路徑。

希望你在旅程中發現這些內容很有用。

目錄
  1. 定義
  2. 現實
  3. 我自己的路
  4. 你的道路
  5. 面試
  6. 資源
定義

那么,什么是 SRE(網站可靠性工程)?根據 Google SRE 的書:“SRE 就是軟件工程師設計一個運維團隊的過程。”由于多種原因,這個定義有點爭議,尤其是它的含義是運維團隊無法進行合理的系統設計,而不是運維團隊經常資源不足。這個定義的爭議性還在于它暗含著所有的 SRE 都在日復一日地對后端系統進行編碼,而這在 Google 甚至都不正確。

雖然谷歌投入了相當多的資金來對外宣傳 SRE 的定義,但業內人士根據自己的情況開始實踐 SRE,這樣就導致了公司與公司之間有很大差異。而對它的定義,我看到的 SRE 指的是:

  • 負責事件響應的團隊;
  • 負責內部部署工具的團隊;
  • 負責數據中心的團隊;
  • 負責所有工程可靠性流程的團隊;
  • 負責容器平臺的團隊;
  • 負責數據庫的團隊;
  • 負責網絡的團隊;
  • 負責監控的團隊;
  • 嵌入開發團隊中,做開發人員不負責的任務的團隊

我想明確一點:本指南不是關于 Google SRE 的。Google SRE 有自身 SRE 的實踐風格,某種程度來說是一個完全不同的學科。其他大公司可能會采用 Google SRE 的一部分,但我不知道谷歌以外誰會完全這樣實施。如果你想成為 Google SRE,那完全沒問題,但是這篇文章并不想這樣引導。

那么,SRE 更廣泛的定義是什么呢?很難為所有公司確定一個定義,就像很難為所有公司定義軟件工程一樣。如果軟件工程師(SE)是由代碼定義的,那么 SRE 也是軟件工程師。那么,SRE 和需要 on-call 的軟件工程師之間有什么區別呢?

如果你非要讓我說,我會將網站可靠性工程定義為:“大規模構建和維護可靠的 SaaS 平臺的實踐。”我認為 SRE 適用于擁有大型 SaaS 產品的公司,他們通常有高流量的網站和相關服務。也就是說,我是按照“網站可靠性”的字面意思來下的定義。

(你可能認為大型的內部服務(例如數據庫)需要 SRE,但我的觀點是這樣的服務可能支持更大的面向客戶的平臺)。

sre工程師需要會什么(如何成為SRE先了解這些真相和面試情況)(2)

一個需要 on-call 的軟件工程師知道代碼如何工作、破解和修復。網站可靠性工程師知道代碼要如何適應公司的架構,并且需要設置整個系統以保證服務成功運行。

那么根據這個定義,SRE 的一些關鍵技能覆蓋哪些領域?

  • 軟件工程
  • 分布式系統設計
  • 操作系統
  • 網絡
  • 數據庫
  • 安全
  • 可靠性最佳實踐
  • 故障排除
  • 客戶支持

有人會抱怨“太多了!”,確實如此。SRE 是一門廣泛的學科,因為運行大型分布式站點需要很多的技能。事實上,許多 SRE 傾向于專注上述的一種或兩種技能。你可能也發現了,有的公司通常有多個 SRE 團隊,支持平臺上的不同領域。也有的團隊可能正在實踐 SRE 但叫法不同,例如叫基礎設施工程或生產工程。你還會發現有些擁有 SRE 團隊的公司根本就沒有在實踐 SRE。我鼓勵大家把注意力集中在工作本身上,不用太糾結 SRE 的實際含義是什么。

現實

每當有人問我如何成為 SRE 時,通常他們最后會問自己為什么要做 SRE。這樣說似乎不太禮貌,讓我們花點時間來解釋一些可能對該領域的誤解。根據 Google 的深度營銷與行業整體情況,期望與現實之間可能存在很大差異。

期望

  • 擁有一件皮夾克
  • 收入比開發人員多
  • 每個人都聽你說的話
  • 有權推遲交付實踐,調整錯誤的優先級
  • 一直研究跨技術的新興事物
  • 幾乎不干體力活,只是一直在編碼
  • 如果要求 on-call(譯者:隨叫隨到,SRE 在 Google 的特色之一)還態度粗魯,可以隨時掛斷呼叫

現實

  • 收入與開發人員一樣
  • 考慮到 on-call 的負擔,實際收入可能比開發人員還少
  • 要對自己的東西 on-call
  • 有時還要對開發人員的東西 on-call!
  • 可以一連幾個月不寫代碼
  • 同時,你需要知道如何讀代碼并診斷代碼問題
  • 可能要負責可靠性,但無權修復它
  • 需要高級的客戶支持技能,來說服開發人員采用大規模系統運行的最佳實踐

上述現實并非在每個地方都是如此,但還是比很多人期望的要真實。有時你要為新的花哨平臺構建工具,有時候需要與 Puppet(一個自動化部署工具)和 DNS 作斗爭。你需要具備靈活性并積累各種技能來完成工作。

SRE 的其他一些現實

  • 解決 StackOverflow 無法解決的真正有趣的問題;
  • 有機會在整個軟件 / 硬件堆棧中學習各種領域;
  • 體驗大規模問題的快感,比如部署數千臺服務器或緩解 DDoS 攻擊;
  • 推進公司的全新流程;
  • 磨練溝通技巧,比如解決內部開發過程中的糾紛,以及對公開事故的很長的事后分析;
  • 作為負責和維護生產平臺的人,得到該有的信任;
  • 與各領域和職業生涯中的工程專業人士合作。

有一個非常老套的說法:如果是為了權力和榮耀,可能會感到失望。成為 SRE,因為你對這個工作感興趣。

我自己的路

有時人們會根據我職業生涯中的具體步驟來追問:書名,公司,會議等。他們希望得到盡可能多的信息,以便嘗試復制我的道路。問題是,我的道路不容易復制。

我普通的道路

  • 在計算機和互聯網環境中長大,也就是說如果無聊我可以閑逛
  • 擁有電影學位
  • 經濟衰退期間畢業,無法在創意領域找到工作
  • 獲得了一份技術支持的工作來支付學生貸款
  • 對服務器管理的職位著迷
  • 成為了一名光榮的接待員 / 銷售代表
  • 很無聊地成長,晚上開始學習 Python
  • 留下來為不同公司提供更好的支持工作
  • 結識了很酷的開發人員,不斷地在晚上學習 Python
  • 應聘了 Python 工作
  • 沒得到 Python 工作
  • 應聘了內部工具的工作
  • 獲得了這樣的共苦
  • Ops 同事休了陪產假,暫時接過他的職務
  • SRE 經理要我加入 SRE 團隊

如果回放,這就是一個電影學生成為科技工作者的故事。 只要努力工作,你也會實現自己的夢想! 但這條道路是他人無法復制的,例如,當我面試支持方面的工作時,我是一個年輕的、白人、純女性打扮的女人,由年長的、有家室的白種男性雇傭。 他們決定“給我個機會”,并說我讓他們想起了他們的女兒,其中有個人甚至基于他小女兒的學校作業面試了我! 做這種關聯的感覺并不好,雖然它確實對我有利,但我無法幫助你復制它。

我認為我的道路中可以而且應該復制的,是不斷學習。我的整個科技生涯就是我做的工作和我正在學習的工作。我不斷閱讀書籍,觀看講座,上課,學習新語言,與業界朋友交談。我不會滿足于現狀,如果對當前正在做的工作不感興趣,我會在晚上找到一些有趣的東西,然后會付諸行動。最終,這些新技能可以幫助我完成目前的工作或保證下一個工作。

我沒有做到,但是你應該去做的是利用你的社區。在開始一家科技公司的工作之前,我還不知道技術社區是怎么一回事,我一個人一直在抨擊 Python 問題,而不是參加聚會并獲得幫助。有一段時間我找不到工作,也不了解技術工作相關的情況。后來我終于找到了工作,但我認為這更多的是一些運氣的成分而不是我的能力。利用你的社區吧!它會幫助你找到一份工作。

你的道路

我遇到過各種不同背景的人,他們都想要成為 SRE。有些人已經是開發人員,有些人還在訓練營,有些人在做 QA 或營銷,他們都想知道下一步應該是什么。

官方的答案是“看情況”,這是認真思考權衡所有情況后的答案!但我知道這個答案沒有什么用,所以讓我們以不同的方式來往下說。

如果我現在試圖成為 SRE,會做兩件事:

  1. 找到離我最近的 SRE 組織(請記住,它可能不會被稱為“SRE”!)。
  2. 弄清楚成為 SRE 我需要跳(hop) 幾次。

你可能不熟悉這個術語 - “跳躍”(hops)。它是一種網絡概念,指的是數據包在來源和目標之間發生的路由網絡設備(路由器、網橋等)的數量。在家用 wifi 上的筆記本電腦和朋友的筆記本電腦之間傳輸的數據包,可能比在筆記本電腦和另一個國家 / 地區的朋友的筆記本電腦之間傳輸的數據包少。同樣地,我認為與 SRE 團隊合作的開發人員,比學習電影畢業后想要成為 SRE 的人之間的跳躍會更少。

sre工程師需要會什么(如何成為SRE先了解這些真相和面試情況)(3)

職業生涯中的跳躍就像是技能和網絡(際網絡!)間的組合 。這是一個持續的過程,找到需要什么技能來進行下一跳,并找到能幫助你成功的人。你的下一跳很可能不是一個 SRE 工作,但它會讓你更接近 SRE!

與計算機網絡非常相似,社交網絡越大,道路就越有效率。這取決于誰幫助你、擁有的技能和時間,你的道路可能比同一個地方的其他人更長或更短。一個人的道路可能看起來像新兵訓練營 - 自由職業者 - 兼職開發人員 - 副業做做運維 - 系統管理員 - 運維 - SRE。而另一個人可能會在剛畢業就找到 SRE 團隊的實習機會。不同的人有不同的機會,你需要找到符合自己實際情況的機會。

因此,先找到 SRE 有哪些相關的技能然后縮小這些技能范圍。縮小到什么程度呢,就是如果你擁有了這部分技能,你就可以得到一份更接近 SRE 的新工作。然后重復。

例如,如果不知道如何編程:學會編程!去訓練營,參加在線課程,獲得計算機科學學位,做一切合適的事情。擴展人際網絡并找到招聘人員,或做自由職業。盡量讓你的簡歷上有開發經歷,然后在新職位中學習下一個技能,例如網絡或數據庫。參加更多的課程,找到更多的聚會,換新工作,一步步接近 SRE。

最難的部分,是如何讓你的腳踏進那道門檻。一旦有了開發人員或系統管理員的工作,一旦可以在簡歷上展示出某種形式的“工程師”,你就有空間來呼吸。堅持那份工作 1 到 2 年,獲得一些經驗,建立自己的網絡,并開始下一個支點。這需要時間,但會是你職業生涯剩余的時間中,成為 SRE 并超越它的一個方法。

面試

無論你過程如何,最終都會碰到 SRE 工作的面試。恭喜!不同公司和團隊的 SRE 面試是不同的,具體取決于你的職責。因此,提前研究好工作崗位(無論如何你都應該這樣做),并準備好要涵蓋的主要主題。

除了在所有面試中常見的行為方面的問題之外,SRE 的面試還會包括編碼、故障排除和可靠性方面的問題。

編碼

  • 無論是帶回家的腳本問題還是現場的白板面試,你都不得不編碼。
  • 通常他們會告訴你哪些語言是可以接受的。如果他們沒有告訴你,請提問。
  • 通常,任何面向對象的語言都要會(Python、Ruby、C 、Java 等),Go 是一個例外。
  • 一般的建議是描述你正在思考的一切,但這方法在以前對我無效的。花時間靜靜地考慮你自己的方法,然后解釋你將要做什么,如果需要就不斷重復。
  • 如果沒有明確計時、還可以帶回家的作業,那就花上你所需要的所有時間!員工肯定被安排在候選人之前去做這些作業,許多編碼任務都沒有計時,因此你可能需要花比他們認為的還多的時間。
  • 如果他們問你需要多長時間,請給一個合理的謊言。除非它恰好是他們專有的應用程序,否則他們無法分辨。(譯者:不贊成謊言,更合適的是一個合理的預估)

故障排除

  • 他們希望看到你的思考方式,以及對系統的理解程度。
  • 可能采取經驗示例的形式,即告訴“碰到過的的故障以及自己的貢獻”。
  • 也可能采取謎題的形式,即“時區 A 的開發人員抱怨每天下午 3 點網絡連接會速度慢,你會怎么調查這個?“
  • 隨意提問(“我有 root 嗎?”)并在墻上拋出示例(“我會先查看日志,以防開發人員并不認為應該看那里。”)
  • 這些問題的關鍵在于了解你對以前使用過的系統的熟悉程度、所擁有的體驗以及碰到過的不常見的例子。重點是判斷深度,而不是正確性。可以放心地說,“這就是我所知道的”或“我不知道,但我會試試它。”

可靠性

  • 整個工作中,對可靠性的要求是明顯的。
  • 編寫代碼時,應該編寫異常處理和測試。如果沒時間,請寫下來或解釋你將如何解決這個問題。
  • 會測試什么?怎樣測?會如何進行變更?會怎么回滾?
  • 在進行故障排除時,考慮可靠性以及每個步驟所承擔的風險。
  • 是否建議重啟還在處理生產事務的服務器?如何確保故障不再發生?

對于入門級 SRE,我希望能夠使用一種靈活的編程語言,比如 Python。可以創建一個小的應用程序,編寫測試并處理異常。還希望看到像 Linux 這樣的操作系統方面的一些能力,可以在命令行上搜索文件系統,知道如何 grep 日志,可以 ping 一個域。希望看到大規模技能方面的一些預見,例如使用配置管理系統或 CI 工具。可能無法負擔運行 AWS 實例的費用,但也許已經使用免費的 Heroku 帳戶,并在免費的監控 add-ons 程序中檢出了你的應用程序指標。無論在 SRE 職業生涯中,無論是 Kubernetes 還是 MySQL 還是邊緣網絡,這些基礎的技能都將幫助你取得成功。

一個有趣的部分,每次面試結束時都應該留出時間讓提問 ; 也就是說,你要面試公司。應該提前計劃出這些問題,并寫下來以供參考。要注意他們的答案。要從感覺上了解他們的工作文化、項目和團隊的健康狀況。

可能不會第一次得到你夢寐以求的工作,但是詢問其中的一些問題,可以幫你了解這項工作將如何為下一次求職提供幫助。

“過去六個月你做了哪些項目?”

  • SRE 的工作是周期性的,是主動和被動的混合體。六個月涵蓋兩個季度,可以很好地了解如何平衡你的工作。
  • 在那段時間編了什么代碼嗎?或者手動停用了 1,000 臺服務器?如果創建了什么,是否寫了什么文檔?

“你最后一次被呼叫的時間是什么時候,是因為什么?”

  • 呼叫發生了。我們準備好了 on-call,因為我們希望在某個時候被呼叫。
  • 但是,“主數據庫發生了故障,已經通知到了所有的人”,和“這個舊的服務器無法 ping,這就是重要的一切,但沒人有時間修復它”,這兩者是有區別的。

“你所有的開發團隊都 on-call 嗎?”

  • 分配 on-call 的任務,是 DevOps 文化的關鍵部分,應該知道公司處于什么階段。
  • 所有開發團隊都 on-call 嗎?到了這個階段嗎?如果是,它有多久了?哪些團隊還沒有 on-call?適當的時候問這個問題,你會希望了解開發團隊以及團隊之間的關系。
  • 如果覺得這個話題還可以繼續,可以問問需要你 on-call 的內容是什么。答案可能很明顯,但可能是另一個團隊尚未替換舊的 Nagios,你會被安排它的安裝 on-call。

問這些問題不是來確保呆在最好的公司,而是要清楚你想要的是什么。例如,如果喜歡未來的隊友和福利套餐,但是知道自己正在進行可怕的 on-call 輪換,那么你可以在薪資談判中提到這一點。重復一遍,可能不會第一次嘗試就得到夢寐以求的工作,所有的公司都有其優點和缺點。牢牢地記住哪些因素破壞了雙方的印象,并盡力去搞清楚哪些公司存在這個因素。

資源

現在,你已經了解了什么是 SRE,并且有一條通向它的道路。下一步就是發展你的技能!

如上所述,通往 SRE 有很多道路,包括計算機科學學位和編碼訓練營。但那些要花錢,并且可能對你來說遙不可及。可以利用免費資源進入市場,我認為每個人都應該擁有同樣的機會。

以下是 SRE/Ops/Systems 社區提供的免費教育資源的合集,我還沒有親自把所有的都使用過,所以也沒有什么排名,但每一個都強烈推薦。這里提供了這些材料的不同類型,以便你根據自己的學習方式進行選擇。

你在這里的所有學習都不要停下來。選擇看起來很有趣的內容,如果不能解決問題,請選擇其它內容。使用以下列表作為學習指南,來作為填補你空白的備忘單,它甚至還是檢查你是否會享受 SRE 工作的一個好方法!

一般 / 多個主題

  • Ops School (docs collection)
  • SRE Weekly (newsletter)
  • SREcon (conference videos)
  • DevOpsDays (conference videos)
  • Eli the Computer Guy (videos)
  • Katacoda (interactive training)
  • Sysadmin Casts (podcast)
  • The Google SRE Book (book)
  • The Geek stuff (blog)
  • DevOps BootCamp (course)
  • Coursera (courses)

Architecture

  • The System Design Primer (guide)
  • Distributed Systems (videos)

Cloud

  • The Open Guide to Amazon Web Services (docs)
  • Architecting Distributed Cloud Apps (videos)

Databases

  • sqlzoo (interactive SQL training)
  • Andy Pavlo’s courses (online course material)
  • Readings in Database Systems (book)
  • Intro to SQL: Querying and managing data (online course with videos)
  • MongoDB University (courses)

Git

  • Introduction to git (video)
  • Ry’s Git Tutorial (book)
  • Learn git branching (interactive tutorial)
  • Git Immersion (interactive tutorial)

Networking

  • How DNS Works (comic)
  • Understanding IP Addressing: Everything You Ever Wanted To Know (whitepaper)
  • Beej’s Guide to Network Programming (book)

Operating system internals

  • Operating system basics (video)
  • Unix system calls p1 (video)
  • Unix system calls p2 (video)
  • fork() and exec() (video)
  • Wizard Zines (online zines, mostly free)
  • NAND2Tetris (online course / book)
  • Programming from the Ground Up (book)
  • MIT’S Operating System Engineering (course)
  • Crash Course Computer Science (videos)
  • Intro to Operating Systems (videos)
  • Operating Systems: Three Easy Pieces (book)

Programming

  • Codecademy (interactive tutorials)
  • Learn Python (interactive tutorials)
  • Awesome Python (curated list of resources)
  • Automate the Boring Stuff (book)
  • Learn to Program (book / tutorial)
  • Higher-Order Perl (book)

Puppet

  • Puppet Learning VM (interactive tutorial)

Security

  • The Big Blog Post of Information Security Training Materials (blog)
  • Cyber Aces (courses)
  • Over the Wire (capture the flag games)

Unix / Linux operations

  • The Unix Workbench (book)
  • Advanced bash scripting guide (book)
  • Introduction to Linux (online course)
  • Unix toolbox (cheatsheet)
  • Command Line Challenge (games)

Vim

  • VIM Adventures (interactive game)
,

相關文章

    Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖