DevOps / SRE 需要會什麼?

Linux、Docker、Kubernetes、AWS、Azure、GCP、Terraform、Ansible、Prometheus、Grafana、Jenkins、GitLab、Argo CD、Python、Go⋯⋯光看工具清單,很容易覺得學不完。

可以先把要做的事分清楚,再看工具放在哪裡。

Computer Fundamentals:理解系統

從 Linux 開始,弄懂 Process、File System、Memory、CPU、I/O 和 Permission。這些是理解系統行為的基礎。

Networking:理解連線

TCP/IP、DNS、HTTP/HTTPS、Load Balancer、Firewall、Routing 都會碰到。

Programming:能讀、能改,也能除錯

Python、Go、C#、JavaScript 等語言,至少學一種。比起把重點放在 LeetCode,更需要練習讀 Code、Debug,以及把工作自動化。

Software Delivery:把程式交付出去

Git、Build、Test、CI/CD、Artifact、Release,是從程式碼到發布會接觸的環節。

Infrastructure:準備運行環境

Cloud、VM、Container、Kubernetes、IaC,都屬於這個範圍。

Reliability:知道服務出了什麼事

Monitoring、Logging、Tracing、Alerting、SLO、Incident Response,處理的是觀察服務狀態與回應問題。

Architecture:考慮整體設計

High Availability、Scalability、Disaster Recovery、Security 和 Cost,也需要放進系統設計裡考量。

下次看到一個沒用過的工具,可以先看它在解決上面哪一類問題,再決定要補哪一段能力。

碎碎念(經驗談)

概念(或基礎)和工具不能混為一談,甚至不同公司、不同環境(測試/正式)使用不同的雲端方案都有不小的差異(熟悉度與適合度)。

如果是已經有DevOps/SRE團隊(多人)或部門的公司,或許會有個範圍,也可能接受加入了之後再擴大了解。

如果是一個人負責DevOps/SRE的公司,要看公司在哪個階段當下要解決的問題缺少什麼樣的人才。

但是更多的是想要了解過往在哪些部份有過什麼樣的實務經驗。

所以,到底需要會什麼,其實很難說得準。

 

本文為個人職涯觀察與經驗分享,不代表所有企業的招聘標準或未來市場一定如此。

前一篇:DevOps 和 SRE 有什麼不同?

後一篇:DevOps / SRE 需不需要會寫程式?

歡迎持續追蹤系列文:DevOps / SRE 學習指南:從職涯探索到實戰技能

發表留言