如何成為站點可靠性工程師?
1. 什麼是站點可靠性工程師?
過去,“可靠性工程師”指的是一個更開放的職位,無論產品的型別如何,都負責監督其建立過程中涉及的系統和流程。
隨著21世紀初計算機技術的飛速發展,相關的日常任務量也隨之增加,這催生了可靠性工程領域一個全新的職業:站點可靠性工程師。該職位源於對計算機網路、網站和軟體開發流程的管理。
與DevOps工程師類似,兩者都管理當前運營,站點可靠性工程師還建立軟體以增強使用者體驗,同時對大部分自動化系統採取更深入的質量保證方法。站點可靠性工程以此作為資訊科技和軟體開發之間的橋樑。
2. 站點可靠性工程師的角色是什麼?
根據組織的不同,站點可靠性工程師可能與各個技術部門合作,有時作為程式設計師,有時更像系統分析師。鑑於這種交叉性,站點可靠性工程師的一些典型職責包括:
構建軟體以簡化(或自動化)日常任務
站點可靠性工程的主要目標是儘可能多地自動化人工勞動。因此,SRE開發、維護和升級軟體,以確保IT部門高效執行,並將人為錯誤的可能性降到最低。
IT支援服務的實施和文件化
SRE不僅響應在解決系統問題時出現的求助電話,而且還記錄遇到的問題、解決方案和發現的任何最佳實踐。SRE的目標是識別有效的流程、需要改進的流程以及可能需要關注的任何其他事項,以便進一步簡化流程。
識別和解決支援升級問題
站點可靠性工程師精通IT問題及其解決方案,這使他們能夠處理複雜問題,並嘗試避免將來出現新的問題。
採取行動解決事故報告後
同樣,站點可靠性工程師不僅解決問題,而且還會回到問題的結果上來。他們採用整體的除錯方法,獲取可用於進一步自動化流程的資料。
與軟體開發人員合作
除了與軟體開發人員緊密合作以確保其他效能因素(如安全性和可維護性)外,站點可靠性工程師還專注於效率和解決方案。
3. 你正在考慮從事站點可靠性工程師的工作嗎?
一名高效的站點可靠性工程師組織良好,思維繫統化,並具備故障排除能力。站點可靠性工程師的主要目標是使系統儘可能自主執行。他們是系統管理員和DevOps工程師的混合體。
這項工作也高度關注技術。如果你想在這個職業中獲得最大的成功機會,你通常應該對程式設計和高等數學沒有問題。
站點可靠性工程師通常是那些既對了解軟體如何工作感興趣,又對考慮它如何更有效地工作感興趣的人。如果你曾考慮過攻讀計算機科學或程式設計學位,那麼你可能已經在SRE的道路上了。
4. 作為SRE成功所需的技能集
開發和編碼知識 - 這些技能對於自動化操作和與技術互動至關重要。
作業系統理解 - SRE工程師必須大規模地與伺服器協同工作,如果你沒有強大的作業系統背景,這可能會很困難。
持續整合和持續交付 (CI/CD) 不僅DevOps開發人員使用這些流程。SRE工程師應該能夠從頭開始建立CI/CD管道。
如何實施版本控制工具 - 在團隊中工作時,尤其是在編碼時,瞭解程式碼版本控制至關重要。因此,如果你想成為一名站點可靠性工程師,你必須將精益版本控制系統新增到你的技能集中。
如何使用監控工具 - 對於SRE工程師來說,監控工具是救星。如果不使用監控工具,就無法跟蹤系統性能和問題。
資料庫知識 - 為了讓工程師理解資料模型是什麼,為什麼資料模型很重要,以及資料模型應該如何影響你的資料庫選擇和服務設計,你必須具備資料庫的工作知識。
“雲原生”應用程式 - 紮實地理解這些程式可以幫助你更快地完成工作。SRE工程師需要熟悉像Docker和Kubernetes這樣的容器應用程式。
分散式計算 - 因為SRE工程師必須使用大型分散式系統,所以他們必須瞭解分散式計算是如何工作的,並掌握微服務的原理。
透過溝通一起工作 - 作為一名SRE工程師,你必須與各種利益相關者進行互動和溝通,包括與你一起從事同一專案的軟體工程師、執行長、首席技術官或你的管理層。還必須報告可能發生的任何重大事件或可能影響應用程式的事件。
結論
無論是正在考慮從事SRE工作的軟體工程師,還是想要開始SRE職業生涯的新人。SRE是一個非常年輕的領域,它在今天不斷發展。總的來說,如果你喜歡使用分散式系統併為工程師建立可靠的平臺,那麼SRE可能適合你。大多數SRE問題都是開放式的,需要不斷朝著正確的方向前進。有時你可能會連續幾天甚至幾周都不寫一行程式碼。你應該能夠接受這一點。在我的SRE小冒險中,還有很多我不知道的事情。但我渴望看到未來會發生什麼。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP