運維工程師

網路工程師

運維工程師(Operations),負責維護並確保整個服務的高可用性,同時不斷優化系統架構提升部署效率、優化資源利用率提高整體的ROI.

運徠維工程師面對的最大挑戰是大規模集群的管理問題,如何管理好幾十萬台伺服器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。

職責


無論做什麼運維,運維工程師最基本的職責都是負責服務的穩定性,確保服務可以7*24H不間斷地為用戶提供服務。在此之上運維工程師的主要工作職責如下:
1.質量:保障並不斷提升服務的可用性,確保用戶數據安全,提升用戶體驗。
2徠.效率:用自動化的工具/平台提升軟體在研發生命周期中的工程效率。
3.成本:通過技術手段優化服務架構、性能調優;通過資源優化組合降低成本、提升ROI。
從產品的生命周期來看:
1. 產品發布前:負責參與並審核架構設計的合理性和可運維性,以確保在產品發布之後能高效穩定的運行。
2. 產品發布階段:負責用自動化的技術或者平台確保產品可以高效的發布上線,之後可以快速穩定迭代。
3. 產品運行維護階段:負責保障產品7*24H穩定運行,在此期間對出現的各種問題可以快速定位並解決;在日常工作中不斷優化系統架構和部署的合理性,以提升系統服務的穩定性。

工作內容


在軟體產品的整個生命周期中運維工程師都需要適時地參與併發揮不同的作用,因此運維工程師的工作內容和方向非常多:
1 事件管理:目標是在服務出現異常時儘可能快速的恢復服務,從而保障服務的可用性;同時深入分析故障產生的原因,推動並修復服務存在的問題,同時設計並開發相關的預案以確保服務出現故障時可以高效的止損。在這方面主要工作內容有:
2.問題發現:設計並開發高效的監控平台和告警平台,使用機器學習、大數據分析等方法對系統中的大量監控數據進行匯總分析,以期在系統出現異常的時候可以快速的發現問題和判斷故障的影響。
3.問題處理:設計並開發高效的問題處理平台和工具,在系統出現異常的時候可以快速/自動決策並觸發相關止損預案,快速恢復服務。
4.問題跟蹤:通過分析問題發生時系統的各種表現(日誌、變更、監控)確定問題發生的根本原因,制定並開發預案工具。
5.配置管理:通過配置管理平台(自研、開源)管理服務涉及到的多個模塊、多個版本的關係以及配置的準確性。
6.發布管理:通過構建自動化的平台確保每一次版本變更可以安全可控地發布到生產環境。
7.容量評估:通過技術手段模擬實際的用戶請求,測試整個系統所能承擔的最大吞吐;通過建立容量評估模型分析壓力測試過程中的數據以評估整個服務的容量。
8.容量優化:基於容量評估數據,判斷系統的瓶頸並提供容量優化的解決方案。比如通過調整系統參數、優化服務部署架構等方法來高效的提升系統容量。

能力要求


基礎技能

1.精通shell/Python/Perl等1至2種編程語言
2.熟練掌握常用數據結構和演演算法,並能靈活運用
3.熟悉網路基礎知識
4.深入理解Linux操作系統

加分技能

1.熟悉開源的監控平台工具,比如:Ganglia、Nagios、Zabbix等
2.熟練掌握Shell腳本熟悉Awk、Sed等基礎工具
3.熟悉分散式計算或者存儲系統,比如Hadoop/Hbase/Storm等
4.熟悉機器學習原理能付諸實踐者更佳
5.熟悉TCP/IP、HTTP等網路協議,精通socket網路編程

軟素質要求


1.強烈的責任心與主動性,對所負責工作有owner意識,並能自我驅動成長
2.能承擔較大工作壓力,有較強獨立分析、解決問題的能力
3.工作中需要膽大心細,具備探索創新精神

職業發展


運維人員的要求特別嚴苛,因為運維人員針對不同的問題,需要不斷的補充擴大自己的知識和研究範疇。
在初級階段,優秀運維人員會體現出格外出眾的主動性和責任心,面對陌生的業務會主動學習和拓展自己對業務對認識和相應的知識範疇,以能夠足夠的勝任業務的獨立維護。
在逐步的發展階段中,注重總結反省的工程師會逐漸成長為高階運維人員,通常他們會有比較體系化的服務運維理解。也有一部分工程師由於出色的項目管理規劃能力,逐漸成為項目經理。
再進一步的發展,高階的運維人員對於產品的理解將非常的透徹,因而在這種情況下,高階運維人員甚至可以成為產品的產品經理、產品研發的諮詢顧問,在產品功能的設計與開發中起到至關重要的角色。

前景


運維所涉及的知識面、專業點非常廣,對從業人員素質也要求非常高,運維工作在大型網際網路公司也越來越重要。隨著網際網路的高速發展、網站規模越來越大、架構越來越複雜,對網站運維工程師的需求也會越來越急迫,特別是對有經驗的運維人才需求量大,而且是越老越值錢。