無論做什么運維,運維工程師最基本的職責都是負責服務的穩(wěn)定性,確保服務可以7*24H不間斷地為用戶提供服務。在此之上運維工程師的主要工作職責如下:
質(zhì)量:保障并不斷提升服務的可用性,確保用戶數(shù)據(jù)安全,提升用戶體驗。
效率:用自動化的工具/平臺提升軟件在研發(fā)生命周期中的工程效率。
成本:通過技術手段優(yōu)化服務架構、性能調(diào)優(yōu);通過資源優(yōu)化組合降低成本、提升ROI。
從產(chǎn)品的生命周期來看:
1. 產(chǎn)品發(fā)布前:負責參與并審核架構設計的合理性和可運維性,以確保在產(chǎn)品發(fā)布之后能高效穩(wěn)定的運行。
2. 產(chǎn)品發(fā)布階段:負責用自動化的技術或者平臺確保產(chǎn)品可以高效的發(fā)布上線,之后可以快速穩(wěn)定迭代。
3. 產(chǎn)品運行維護階段:負責保障產(chǎn)品7*24H穩(wěn)定運行,在此期間對出現(xiàn)的各種問題可以快速定位并解決;在日常工作中不斷優(yōu)化系統(tǒng)架構和部署的合理性,以提升系統(tǒng)服務的穩(wěn)定性。
在軟件產(chǎn)品的整個生命周期中運維工程師都需要適時地參與并發(fā)揮不同的作用,因此運維工程師的工作內(nèi)容和方向非常多:
事件管理:目標是在服務出現(xiàn)異常時盡可能快速的恢復服務,從而保障服務的可用性;同時深入分析故障產(chǎn)生的原因,推動并修復服務存在的問題,同時設計并開發(fā)相關的預案以確保服務出現(xiàn)故障時可以高效的止損。在這方面主要工作內(nèi)容有:
問題發(fā)現(xiàn):設計并開發(fā)高效的監(jiān)控平臺和告警平臺,使用機器學習、大數(shù)據(jù)分析等方法對系統(tǒng)中的大量監(jiān)控數(shù)據(jù)進行匯總分析,以及在系統(tǒng)出現(xiàn)異常的時候可以快速的發(fā)現(xiàn)問題和判斷故障的影響。
問題處理:設計并開發(fā)高效的問題處理平臺和工具,在系統(tǒng)出現(xiàn)異常的時候可以快速/自動決策并觸發(fā)相關止損預案,快速恢復服務。
問題跟蹤:通過分析問題發(fā)生時系統(tǒng)的各種表現(xiàn)(日志、變更、監(jiān)控)確定問題發(fā)生的根本原因,制定并開發(fā)預案工具。
變更管理:以可控的方式,盡可能高效的完成產(chǎn)品功能的迭代的變更工作。在這方面主要工作內(nèi)容有:
配置管理:通過配置管理平臺(自研、開源)管理服務涉及到的多個模塊、多個版本的關系以及配置的準確性。
發(fā)布管理:通過構建自動化的平臺確保每一次版本變更可以安全可控地發(fā)布到生產(chǎn)環(huán)境。
容量管理:在服務運行維護階段,為了確保服務架構部署的合理性同時掌握服務整體的冗余,需要不斷評估系統(tǒng)的承載能力,并不斷優(yōu)化之。在這方面主要工作內(nèi)容有:
容量評估:通過技術手段模擬實際的用戶請求,測試整個系統(tǒng)所能承擔的最大吞吐;通過建立容量評估模型分析壓力測試過程中的數(shù)據(jù)以評估整個服務的容量。
容量優(yōu)化:基于容量評估數(shù)據(jù),判斷系統(tǒng)的瓶頸并提供容量優(yōu)化的解決方案。比如通過調(diào)整系統(tǒng)參數(shù)、優(yōu)化服務部署架構等方法來高效的提升系統(tǒng)容量。
架構優(yōu)化:為了支持產(chǎn)品的不斷迭代,需要不斷的進行架構優(yōu)化調(diào)整。以確保整個產(chǎn)品能夠在功能不斷豐富和復雜的條件下,同時保持高可用性。
基礎技能:
精通shell/Python/Perl等1至2種編程語言
熟練掌握常用數(shù)據(jù)結(jié)構和算法,并能靈活運用
熟悉網(wǎng)絡基礎知識
深入理解Linux操作系統(tǒng)
加分技能:
熟悉開源的監(jiān)控平臺工具,比如:Ganglia、Nagios、Zabbix等
熟練掌握Shell腳本熟悉Awk、Sed等基礎工具
熟悉分布式計算或者存儲系統(tǒng),比如Hadoop/Hbase/Storm等
熟悉機器學習原理能付諸實踐者更佳
熟悉TCP/IP、HTTP等網(wǎng)絡協(xié)議,精通socket網(wǎng)絡編程
強烈的責任心與主動性,對所負責工作有owner意識,并能自我驅(qū)動成長
能承擔較大工作壓力,有較強獨立分析、解決問題的能力
工作中需要膽大心細,具備探索創(chuàng)新精神
運維人員的要求特別嚴苛,因為運維人員針對不同的問題,需要不斷的補充擴大自己的知識和研究范疇。
在初級階段,優(yōu)秀運維人員會體現(xiàn)出格外出眾的主動性和責任心,面對陌生的業(yè)務會主動學習和拓展自己對業(yè)務對認識和相應的知識范疇,以能夠足夠的勝任業(yè)務的獨立維護。
在逐步的發(fā)展階段中,注重總結(jié)反省的工程師會逐漸成長為高階運維人員,通常他們會有比較體系化的服務運維理解。也有一部分工程師由于出色的項目管理規(guī)劃能力,逐漸成為項目經(jīng)理。
再進一步的發(fā)展,高階的運維人員對于產(chǎn)品的理解將非常的透徹,因而在這種情況下,高階運維人員甚至可以成為產(chǎn)品的產(chǎn)品經(jīng)理、產(chǎn)品研發(fā)的咨詢顧問,在產(chǎn)品功能的設計與開發(fā)中起到至關重要的角色。
運維所涉及的知識面、專業(yè)點非常廣,對從業(yè)人員素質(zhì)也要求非常高,運維工作在大型互聯(lián)網(wǎng)公司也越來越重要。隨著互聯(lián)網(wǎng)的高速發(fā)展、網(wǎng)站規(guī)模越來越大、架構越來越復雜,對網(wǎng)站運維工程師的需求也會越來越急迫,特別是對有經(jīng)驗的運維人才需求量大,而且是越老越值錢。