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