
以SRE做為職涯的選擇,有其迷人之處,也有其困難與辛苦的地方。以下會從職涯的角度來給予相關的建議。
SRE這個領域的特別之處在於,工具數量非常多,但工具本身與公司實際的產品沒有特別深的關係。這反映在其中一件事情上,就是SRE不用像開發工程師一樣慎重地選擇自己專精的產業,因為基礎建設在所有地方都需要,也不會因為商業邏輯而有非常明顯的差異。
另外一件事情,則是SRE永遠都必須要追著新工具,因此要隨時保持學習新知的能力,也必須建立好轉換公司後要重新學習新工具的心態,因為即使是同一種類產品的公司,賴以維生的基礎建設也可能是完全不同的工具。
當然,無論工具如何推陳出新,底層的概念都是類似的,就如同即使是不同的程式語言,也都會共享許多基本的概念一樣。因此,我們仍然可以從這個角度切入,來找到做為一個SRE,有什麼是值得投資的技能。
第一層:雲端、容器、網路
在圖表中第一層中所展示的,主要是雲端服務、作業系統與容器化技術、以及網路相關的知識。這也是筆者認為現在最重要,既包含基礎知識也同時有熱門工具的地方。
其中,雲端服務包含三大雲端伺服器供應商的業者,分別是Amazon Web Service(AWS)、Google Cloud Platform(GCP)、Microsoft Azure(Azure)。筆者認為先摸熟其中一種,再根據後續的需求來學習其它即可。
沒有必要特別三種都專精,因為一般的業務也比較少出現會需要三者一起精通的狀況,再加上理解一種後,要理解另外一種雲端技術並非什麼特別困難的事情。
在學習雲端的過程裡,筆者非常推薦可以透過準備證照的方式來強化自身的能力。準備證照一來可以有比較明確的目標,二來也會有比較完整的學習計劃。
筆者過去主要準備的都是AWS證照,在書寫本書的當下,手上擁有的是「Solutions Architect Associate」、「SysOps Administrator Associate」、「Developer Associate」以及「Solutions Architect Professional」,接下來則希望朝「Advanced Networking Specialty」嘗試看看。
在這些證照中,筆者最推薦的則是「Solutions Architect Associate」,如果覺得這張太過吃力則可以從「Cloud Practitioner」開始,而考過的讀者則可以嘗試「SysOps Administrator Associate」或更進階的「Solutions Architect Professional」。
證照考試本身當然會與實際工作有一些落差,但就筆者從雲端小白到目前工作一年多的感受是,準備證照能夠讓自己對雲端的相關服務有一定程度的理解,等到獲得相關需求的時候,大致上可以知道能夠應用的服務,至於細節的部分雖然還不清楚怎麼處理,但只要到時候再透過文件去學習即可。
額外可以補充一點,筆者認為準備符合自己程度的證照是相當重要的。雖然有幸能考取「Solutions Architect Professional」,但實際上筆者不只準備得非常痛苦,實際最後也不是真的有非常多應用場景讓筆者使用到,只是拿到證照後放著忘記而已,因此在這件事情上面讀者也可以再自行斟酌。
除了雲端之外,做為現在非常重要的容器化技術,特別是「Kubernetes」(K8S),幾乎可以說是各家SRE的標準配備了。這部分同樣也有相關的證照可以讓讀者參考,名字則是Certified Kubernetes Application Developer(CKAD)與Certified Kubernetes Administrator(CKA)。
筆者同樣有拿到這兩張證照,建議可以先從CKAD開始準備起,並再以CKAD的基礎來準備CKA,如此的學習路徑會滑順很多。但一般在還沒有接觸過容器化的讀者,則也可以從「Docker」開始入手。
最後,同樣不可或缺的網路知識,但這部分筆者暫時還沒有找到比較適合的管道。最主要還是在於說,筆者也是工作了一年之後才開始真正意識到這一塊的重要性,特別在應對一些特別的P0事件中,就能深深感受到自己的不足。
由於這是基礎知識的關係,筆者在思考的是透過修習大學所開設的線上學習資源來補強相關概念。無論如何,關於這一塊的知識絕對是必要且沒有妥協空間的。
第二層:監控、日誌、分析
在圖表中的第二層也相當重要,最主要出現的是各種監控與分析工具。
在監控工具上,除了「Prometheus」或是筆者有實際在使用的AWS原生監控工具「CloudWatch」與從外部檢測服務可用性的「Pingdom」之外,任何其它有助於維運或值班的工具,比如我們用來打電話給值班工程師的「Pagerduty」都一樣相當重要。
分析工具包含日誌與資料視覺化工具,最常見的可能就會是「Grafana」以及著名的ELK(Elasticsearch、Logstash、Kibana)工具等等。
而這部分,因為筆者真正接觸過的只有CloudWatch、Pingdom以及Pagerduty,而且後兩者其實在進來公司前就已經被前輩給完成串接了。因此只有透過在AWS證照考試的時候來加強對CloudWatch的理解而已。
雖然可能沒有辦法提供讀者比較明確的學習資源,但做為參考,讀者還是可以往這個方向嘗試學習看看。
第三層:部署、架構、程式
在圖表中的第三層包含的是各類部署和架構工具、以及程式語言。
雖然在敝公司裡面分工比較細,維運與部署被切分成兩個不同團隊,所以SRE的團隊相對而言比較少接觸包含「Terraform」、「CloudFormation」、「Gitlab CI/CD」之類的工具,但也有許多公司應該會以同一個團隊來包辦這裡所有的事情。
因此部署和架構工具也是一個相當重要的知識。
程式語言則可以分兩個面向來分享。首先,我們所大量使用的自動化工具,特別是為了某些特殊狀況而開發的,都仰賴我們的開發能力。
在這個過程中最常被使用的可能會是「Python」。但「Golang」做為Kubernetes以及Terraform的底層語言,也同樣是一個可以儘可能瞭解的語言,而「JavaScript」做為另一個不需要編譯(compile)而且方便書寫的語言,也同樣值得一學。
另一方面,筆者的主管也曾經分享過,因為容器化與雲端技術日新月異的關係,未來維運的工作可能只會越來越少(比如「ECS Fargate」相較於EC2,在維運上所需要的人力就少上非常多),因此系統出狀況時,SRE跳進程式裡協助開發工程師除錯的狀況也越來越有可能發生,因此至少有讀懂程式的能力就變得相當重要。(本文摘錄整理自《SRE工作現場直擊》,博碩文化提供)
圖片來源_博碩文化
書名 SRE工作現場直擊:維運起點x實戰經驗x職涯規劃面面觀
葉承彥 (Sean Ia̍p)/著
博碩文化出版
定價:600元
作者簡介
葉承彥(Ia̍p Sêng Gān) (Sean Ia̍p)
念哲學出身的台北囡仔,曾在影音串流公司擔任SRE,現任於雲端服務供應商的Cloud Support Engineer。原本做後端開發,卻於某次進行架構描繪時發現對維運領域的熱情。期待透過本書分享一些過去的經驗,也希望在幫助到讀者的同時有機會彼此交流。
熱門新聞
2025-02-26
2025-02-25
2025-02-26
2025-02-24
2025-02-24