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 學習指南:從職涯探索到實戰技能