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