無論做(zuo)什么(me)運(yun)維(wei),運(yun)維(wei)工程(cheng)師最基本的職責都(dou)是負(fu)責服(fu)務(wu)的穩定性,確保服(fu)務(wu)可(ke)以7*24H不間斷地為用戶提供服(fu)務(wu)。在此之上運(yun)維(wei)工程(cheng)師的主要工作職責如下(xia):
質量:保障(zhang)并(bing)不斷提(ti)升服務的可用(yong)性(xing),確保用(yong)戶數(shu)據安全(quan),提(ti)升用(yong)戶體驗。
效率:用自(zi)動化的工具(ju)/平(ping)臺提升(sheng)軟件(jian)在研發生命周期中的工程效率。
成本:通(tong)過(guo)技術手段優化服務架構、性能(neng)調優;通(tong)過(guo)資源(yuan)優化組合降低成本、提升ROI。
從產品的生命(ming)周期(qi)來看:
1. 產品發布(bu)前:負責參與并審核架構設計的合理性(xing)(xing)和可運維性(xing)(xing),以(yi)確保在(zai)產品發布(bu)之后(hou)能高效(xiao)穩定的運行。
2. 產品發布階段(duan):負(fu)責(ze)用自動化(hua)的技術或者平臺確保產品可以高效的發布上線,之后可以快速穩定迭代。
3. 產(chan)品運行(xing)維護階段:負責(ze)保障產(chan)品7*24H穩定(ding)(ding)運行(xing),在此期(qi)間對出現的(de)各(ge)種問題可(ke)以快速定(ding)(ding)位并(bing)解決;在日(ri)常工作中不(bu)斷(duan)優(you)化(hua)系統(tong)架(jia)構和部署(shu)的(de)合理性(xing),以提升系統(tong)服務的(de)穩定(ding)(ding)性(xing)。
在軟件(jian)產品的整(zheng)個(ge)生命周(zhou)期中運維(wei)工程師都需要適時地參與并發揮不同的作用,因此運維(wei)工程師的工作內容(rong)和(he)方(fang)向(xiang)非常多:
事件(jian)管理:目標是(shi)在服(fu)(fu)(fu)務出現(xian)異常時(shi)盡可能快速的(de)恢復(fu)服(fu)(fu)(fu)務,從(cong)而保(bao)障服(fu)(fu)(fu)務的(de)可用性;同時(shi)深入分析(xi)故(gu)障產(chan)生(sheng)的(de)原因,推動并修復(fu)服(fu)(fu)(fu)務存在的(de)問題,同時(shi)設計(ji)并開發相(xiang)關的(de)預案以確保(bao)服(fu)(fu)(fu)務出現(xian)故(gu)障時(shi)可以高效的(de)止(zhi)損。在這方(fang)面主要工作(zuo)內容有:
問題發(fa)現(xian):設計(ji)并開發(fa)高效的監控平(ping)臺和(he)告警平(ping)臺,使用機器學習、大(da)數(shu)據分析等方法對系(xi)統中的大(da)量監控數(shu)據進行匯(hui)總分析,以(yi)(yi)及在(zai)系(xi)統出現(xian)異常的時候(hou)可以(yi)(yi)快(kuai)速的發(fa)現(xian)問題和(he)判斷故障的影響。
問題(ti)(ti)處理(li)(li):設計并(bing)開發高效的(de)問題(ti)(ti)處理(li)(li)平臺和工具,在系統出(chu)現異常的(de)時候可以快(kuai)速/自(zi)動決策并(bing)觸發相關止損(sun)預(yu)案(an),快(kuai)速恢復服務。
問題跟蹤:通(tong)過分析問題發(fa)生時系統(tong)的(de)各種表現(日志、變更、監(jian)控)確定問題發(fa)生的(de)根本(ben)原(yuan)因,制定并開發(fa)預案(an)工具。
變更(geng)管理:以可控的(de)(de)方(fang)式,盡可能高效(xiao)的(de)(de)完(wan)成(cheng)產品功能的(de)(de)迭代的(de)(de)變更(geng)工作(zuo)。在這方(fang)面主要(yao)工作(zuo)內容有:
配置管(guan)理:通(tong)過配置管(guan)理平臺(自研、開源)管(guan)理服務涉及(ji)到的多(duo)個(ge)模塊、多(duo)個(ge)版本的關(guan)系以及(ji)配置的準(zhun)確性。
發布管理:通過構(gou)建自動化的平臺(tai)確保每一(yi)次版本(ben)變更可(ke)(ke)以安全可(ke)(ke)控地發布到生產(chan)環境。
容量管(guan)理(li):在服務(wu)運(yun)行維(wei)護階(jie)段,為了確保服務(wu)架構部署的(de)合理(li)性同時(shi)掌握服務(wu)整體的(de)冗余,需要不斷(duan)(duan)評估系(xi)統(tong)的(de)承載(zai)能力,并(bing)不斷(duan)(duan)優化(hua)之。在這方面主(zhu)要工(gong)作內容有:
容量(liang)(liang)評估:通(tong)過(guo)技術(shu)手段模擬實(shi)際(ji)的(de)(de)用戶請求(qiu),測試整個(ge)系(xi)統所能(neng)承擔(dan)的(de)(de)最大吞吐;通(tong)過(guo)建立容量(liang)(liang)評估模型分析壓(ya)力測試過(guo)程中的(de)(de)數據以評估整個(ge)服(fu)務(wu)的(de)(de)容量(liang)(liang)。
容(rong)量(liang)優化:基于容(rong)量(liang)評(ping)估數據,判斷系(xi)統(tong)的瓶頸并提供容(rong)量(liang)優化的解(jie)決方案。比(bi)如通(tong)過調整系(xi)統(tong)參(can)數、優化服(fu)務部(bu)署架構等方法來(lai)高效的提升系(xi)統(tong)容(rong)量(liang)。
架構優化:為了支持產品的(de)(de)不(bu)斷(duan)(duan)迭代,需要(yao)不(bu)斷(duan)(duan)的(de)(de)進行架構優化調整。以(yi)確保整個(ge)產品能(neng)(neng)夠在功能(neng)(neng)不(bu)斷(duan)(duan)豐(feng)富和(he)復雜的(de)(de)條件下,同時保持高(gao)可用性。
基礎技能:
精(jing)通shell/Python/Perl等(deng)1至2種編程語(yu)言(yan)
熟練掌握常(chang)用數據(ju)結構(gou)和算法,并(bing)能靈活運用
熟悉網絡基(ji)礎知識
深(shen)入理解Linux操作系統
加分技能:
熟悉開(kai)源的監控平臺工具(ju),比(bi)如(ru):Ganglia、Nagios、Zabbix等
熟(shu)(shu)練掌握Shell腳本熟(shu)(shu)悉Awk、Sed等基礎工(gong)具
熟悉分(fen)布(bu)式計算或者存儲系統,比如Hadoop/Hbase/Storm等(deng)
熟悉機器學習原理能付諸(zhu)實踐者更佳
熟悉(xi)TCP/IP、HTTP等(deng)網絡協議,精通socket網絡編程
強(qiang)烈的責任心(xin)與主動(dong)性,對(dui)所負責工(gong)作有owner意識(shi),并能自(zi)我驅動(dong)成長
能承(cheng)擔較大工作壓力(li),有(you)較強獨立分析、解決問題的能力(li)
工(gong)作(zuo)中需要膽(dan)大心細,具備探索創新精(jing)神
運維(wei)人(ren)員(yuan)的要(yao)求特別嚴苛,因為(wei)運維(wei)人(ren)員(yuan)針對不同的問題,需要(yao)不斷的補(bu)充擴大自己的知識和研究范(fan)疇。
在初級階段(duan),優秀運(yun)維人(ren)員會(hui)體現出格外出眾(zhong)的(de)主(zhu)動性和責(ze)任(ren)心,面(mian)對陌生的(de)業務會(hui)主(zhu)動學習和拓展(zhan)自己對業務對認識和相應的(de)知識范疇,以能夠足夠的(de)勝任(ren)業務的(de)獨(du)立維護。
在逐(zhu)步(bu)的發展階(jie)(jie)段中,注(zhu)重(zhong)總結反(fan)省的工(gong)程師會逐(zhu)漸(jian)成長為高階(jie)(jie)運(yun)維(wei)人員,通常他們會有比較體(ti)系(xi)化的服(fu)務運(yun)維(wei)理(li)(li)解。也有一部分(fen)工(gong)程師由于出色的項目(mu)管理(li)(li)規劃(hua)能(neng)力,逐(zhu)漸(jian)成為項目(mu)經理(li)(li)。
再(zai)進一(yi)步的發展,高階的運維(wei)人員對于產品(pin)的理(li)(li)解將非常的透徹,因而(er)在這種情況下,高階運維(wei)人員甚至可以成為產品(pin)的產品(pin)經理(li)(li)、產品(pin)研發的咨詢顧(gu)問,在產品(pin)功(gong)能的設計與開(kai)發中起到至關(guan)重(zhong)要的角色。
運維所涉(she)及(ji)的知識面、專業點非(fei)常廣,對(dui)從業人員素質也要求(qiu)非(fei)常高,運維工(gong)作在(zai)大(da)型互聯(lian)網公司(si)也越(yue)(yue)來(lai)越(yue)(yue)重要。隨著(zhu)互聯(lian)網的高速發(fa)展、網站規模(mo)越(yue)(yue)來(lai)越(yue)(yue)大(da)、架構越(yue)(yue)來(lai)越(yue)(yue)復雜(za),對(dui)網站運維工(gong)程(cheng)師(shi)的需求(qiu)也會越(yue)(yue)來(lai)越(yue)(yue)急迫,特別是(shi)(shi)對(dui)有經驗的運維人才(cai)需求(qiu)量大(da),而且是(shi)(shi)越(yue)(yue)老越(yue)(yue)值錢。