運維工程師(Operations),負責維護并確保整個服務的高可用性,同時不斷優化系統架構提升部署效率、優化資源利用率提高整體的ROI。
運維工程師面對的最大挑戰是大規模集群的管理問題,如何管理好幾十萬臺服務器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。
運維工程師崗位職責
無論做什么運維,運維工程師最基本的職責都是負責服務的穩定性,確保服務可以7*24H不間斷地為用戶提供服務。在此之上運維工程師的主要工作職責如下:
1.質量:保障并不斷提升服務的可用性,確保用戶數據安全,提升用戶體驗。
2.效率:用自動化的工具/平臺提升軟件在研發生命周期中的工程效率。
3.成本:通過技術手段優化服務架構、性能調優;通過資源優化組合降低成本、提升ROI。
從產品的生命周期來看:
1. 產品發布前:負責參與并審核架構設計的合理性和可運維性,以確保在產品發布之后能高效穩定的運行。
2. 產品發布階段:負責用自動化的技術或者平臺確保產品可以高效的發布上線,之后可以快速穩定迭代。
3. 產品運行維護階段:負責保障產品7*24H穩定運行,在此期間對出現的各種問題可以快速定位并解決;在日常工作中不斷優化系統架構和部署的合理性,以提升系統服務的穩定性。
運維工程師崗位要求
基礎技能:
1.精通shell/Python/Perl等1至2種編程語言
2.熟練掌握常用數據結構和算法,并能靈活運用
3.熟悉網絡基礎知識
4.深入理解Linux操作系統
加分技能:
1.熟悉開源的監控平臺工具,比如:Ganglia、Nagios等
2.熟練掌握Shell腳本熟悉Awk、Sed等基礎工具
3.熟悉分布式計算或者存儲系統,比如Hadoop/Hbase/Storm等
4.熟悉機器學習原理能付諸實踐者更佳
5.熟悉TCP/IP、HTTP等網絡協議,精通socket網絡編程
運維工程師發展方向
運維人員的要求特別嚴苛,因為運維人員針對不同的問題,需要不斷的補充擴大自己的知識和研究范疇。
在初級階段,優秀運維人員會體現出格外出眾的主動性和責任心,面對陌生的業務會主動學習和拓展自己對業務對認識和相應的知識范疇,以能夠足夠的勝任業務的獨立維護。
在逐步的發展階段中,注重總結反省的工程師會逐漸成長為高階運維人員,通常他們會有比較體系化的服務運維理解。也有一部分工程師由于出色的項目管理規劃能力,逐漸成為項目經理。
再進一步的發展,高階的運維人員對于產品的理解將非常的透徹,因而在這種情況下,高階運維人員甚至可以成為產品的產品經理、產品研發的咨詢顧問,在產品功能的設計與開發中起到至關重要的角色。