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