許 瀚,陳 劍,董 彬,俞 亮
(湖北華中電力科技開(kāi)發(fā)有限責(zé)任公司,武漢 430077)
隨著云計(jì)算技術(shù)的日趨成熟,企業(yè)大量應(yīng)用上云,海量數(shù)據(jù)將在云平臺(tái)得到統(tǒng)一的收集,計(jì)算,存儲(chǔ),加工,處理。數(shù)據(jù)的集中處理還將導(dǎo)致數(shù)據(jù)增值,推動(dòng)新興業(yè)務(wù)的誕生。企業(yè)業(yè)務(wù)模式和IT架構(gòu)的轉(zhuǎn)變勢(shì)必帶來(lái)運(yùn)維模式的轉(zhuǎn)變,傳統(tǒng)IT運(yùn)維向云運(yùn)維模式轉(zhuǎn)變是必然趨勢(shì)。云計(jì)算在為用戶(hù)提供高彈性,高可用性,高可擴(kuò)展性服務(wù)的同時(shí),也給運(yùn)維工作帶來(lái)新的挑戰(zhàn)。如何做好云計(jì)算時(shí)代的運(yùn)維,是每一個(gè)運(yùn)維人必須思考的問(wèn)題。
傳統(tǒng)意義上的運(yùn)維工作方向很多,隨著業(yè)務(wù)規(guī)模的不斷發(fā)展,運(yùn)維崗位會(huì)劃分的很細(xì)。一般情況下運(yùn)維團(tuán)隊(duì)的工作和職責(zé)分為:應(yīng)用運(yùn)維,系統(tǒng)運(yùn)維,數(shù)據(jù)庫(kù)運(yùn)維,運(yùn)維研發(fā),運(yùn)維安全等。而在云計(jì)算環(huán)境下,無(wú)論是私有云還是公有云,運(yùn)維的諸多崗位都將極大的依賴(lài)云計(jì)算環(huán)境開(kāi)展工作,這一點(diǎn)是毋庸置疑的。
首先,系統(tǒng)運(yùn)維工作內(nèi)容會(huì)發(fā)生較大的改變,原來(lái)系統(tǒng)運(yùn)維工程師的主要工作是對(duì)系統(tǒng)的基礎(chǔ)設(shè)施進(jìn)行運(yùn)行維護(hù),主要工作包括對(duì)數(shù)據(jù)中心各類(lèi)硬件,網(wǎng)絡(luò),操作系統(tǒng)等基礎(chǔ)服務(wù)的建設(shè)選型,資產(chǎn)管理,維護(hù)等?,F(xiàn)在,由于云平臺(tái)建設(shè)的需求,硬件維護(hù)的體量和IT架構(gòu)都會(huì)發(fā)生變化。云平臺(tái)使得基礎(chǔ)設(shè)施資源更加集中,體量變大,運(yùn)維工作量也倍增。一旦出現(xiàn)問(wèn)題,所造成的影響和損失也將是巨大的。相較傳統(tǒng)運(yùn)維模式,云平臺(tái)體量和IT架構(gòu)的變化使得傳統(tǒng)的基礎(chǔ)設(shè)施的管理和運(yùn)維方式不再湊效。系統(tǒng)運(yùn)維工作面臨巨大的挑戰(zhàn)。為應(yīng)對(duì)這種情況,阿里為云平臺(tái)開(kāi)發(fā)了一整套的自動(dòng)化管理工具-天基系統(tǒng),用來(lái)管理數(shù)據(jù)中心的硬件生命周期,包括程序、配置、操作系統(tǒng)鏡像、數(shù)據(jù)等,極大的提高了基礎(chǔ)設(shè)施運(yùn)維效率,并保證了系統(tǒng)的高可用性。
按照傳統(tǒng)運(yùn)維模式對(duì)于運(yùn)維職責(zé)的劃分,云平臺(tái)自身的運(yùn)維工作應(yīng)該劃分到系統(tǒng)運(yùn)維當(dāng)中去。但是由于云平臺(tái)運(yùn)維處于整個(gè)運(yùn)維工作的核心位置,具有一定的特殊性。在運(yùn)維崗位上應(yīng)該將云平臺(tái)運(yùn)維工作單獨(dú)劃分出來(lái),其主要工作包括云平臺(tái)各個(gè)功能模塊日常巡檢,監(jiān)控管理,變更管理,故障處理,告警管理。
在應(yīng)用運(yùn)維方面,云平臺(tái)環(huán)境天生適合進(jìn)行微服務(wù)和容器的部署。企業(yè)原先的大量應(yīng)用會(huì)根據(jù)實(shí)際情況進(jìn)行架構(gòu)的分拆和重構(gòu)。但是因?yàn)榘踩瑫r(shí)間,成本上的考慮,長(zhǎng)時(shí)間內(nèi),單一應(yīng)用和微服務(wù)必將長(zhǎng)期共存,且單體應(yīng)用模式向微服務(wù)架構(gòu)逐步演進(jìn)。應(yīng)用的運(yùn)維在云平臺(tái)環(huán)境下和傳統(tǒng)運(yùn)維具有如下不同。傳統(tǒng)應(yīng)用運(yùn)維在部署一個(gè)應(yīng)用時(shí)需要選型購(gòu)買(mǎi)服務(wù)器,安裝基礎(chǔ)服務(wù),包括操作系統(tǒng),申請(qǐng)資源,配置網(wǎng)絡(luò)等。而在云平臺(tái)環(huán)境下,基礎(chǔ)服務(wù)只需要向平臺(tái)管理員提需求,走正常流程進(jìn)行申請(qǐng),時(shí)間上相較傳統(tǒng)運(yùn)維方式要短的多,這樣就極大的提升了應(yīng)用部署的效率。并且在大部分云平臺(tái)環(huán)境下,運(yùn)維監(jiān)控系統(tǒng)已經(jīng)做的很好,功能十分強(qiáng)大,故障的預(yù)警,排查,修復(fù)都更加快速和自動(dòng)化。因此從這兩個(gè)方面來(lái)講,傳統(tǒng)應(yīng)用運(yùn)維工作是在弱化,原來(lái)的應(yīng)用運(yùn)維的的工作量在減小,效率在提高,原來(lái)需要5個(gè)人完成的工作現(xiàn)在可能只需要1個(gè)人就能完成。
應(yīng)用運(yùn)維方面另外一個(gè)大的變化是大量應(yīng)用微服務(wù)化,微服務(wù)化將是企業(yè)上云過(guò)程中一個(gè)顯著的趨勢(shì)。微服務(wù)的運(yùn)維將成為應(yīng)用運(yùn)維的一個(gè)新的方面,也是一個(gè)重點(diǎn)方面。微服務(wù)在帶來(lái)良好的設(shè)計(jì)和架構(gòu)理念的同時(shí),也為運(yùn)維帶來(lái)了額外的復(fù)雜性,主要體現(xiàn)在一是微服務(wù)將單體應(yīng)用拆分成多個(gè)獨(dú)立的功能模塊,在此架構(gòu)下,微服務(wù)的數(shù)量將變得十分龐大,服務(wù)與服務(wù)之間還存在依賴(lài)關(guān)系。當(dāng)模塊發(fā)生變更和快速交付時(shí),就需要對(duì)服務(wù)與服務(wù)之間的依賴(lài)關(guān)系,服務(wù)與業(yè)務(wù)之間的依賴(lài)關(guān)系進(jìn)行梳理。因此,一個(gè)企業(yè)選擇微服務(wù)架構(gòu)初始,就應(yīng)該在提前規(guī)劃好一體化的DevOps平臺(tái)。如果不使用DevOps做微服務(wù),整個(gè)環(huán)境將會(huì)變得混亂,使得開(kāi)發(fā),測(cè)試和運(yùn)維成本劇增。在微服務(wù)架構(gòu)下做運(yùn)維,運(yùn)維思路一定要轉(zhuǎn)變,一定要將視角轉(zhuǎn)換到應(yīng)用這個(gè)維度,從一開(kāi)始就要統(tǒng)一規(guī)劃,從一開(kāi)始就要將架構(gòu)、開(kāi)發(fā)和運(yùn)維的工作統(tǒng)一起來(lái)考慮問(wèn)題,這一點(diǎn)是與傳統(tǒng)運(yùn)維的思路完全不同的。其二一個(gè)比較重要的問(wèn)題是微服務(wù)的監(jiān)控和預(yù)警問(wèn)題需要重視。微服務(wù)拆分導(dǎo)致故障點(diǎn)增多,服務(wù)調(diào)用關(guān)系更加復(fù)雜,需要監(jiān)控的點(diǎn)增多。原本就存在的監(jiān)控告警風(fēng)暴問(wèn)題會(huì)更加突出。要實(shí)現(xiàn)精確告警,故障定位就必須做好告警的分級(jí)和合并。將真正重要的告警呈現(xiàn)在運(yùn)維人員面前,而自動(dòng)化的處理那些不重要的告警信息,避免重要的告警信息淹沒(méi)在大量的無(wú)用信息中。
傳統(tǒng)意義上的運(yùn)維開(kāi)發(fā)主要關(guān)注的是利用腳本編寫(xiě)小工具進(jìn)行自動(dòng)化部署,批量命令,日志分析,以此輔助日常運(yùn)維工作。更進(jìn)一步,根據(jù)企業(yè)特定的運(yùn)維環(huán)境和條件,選用合適的技術(shù)路線和框架,自主開(kāi)發(fā)本單位的監(jiān)控運(yùn)維平臺(tái)。這也是大多數(shù)傳統(tǒng)公司對(duì)運(yùn)維開(kāi)發(fā)人員的基本要求。在云平臺(tái)環(huán)境下,運(yùn)維開(kāi)發(fā)除了以上能力要求外,最主要的是要在觀念上發(fā)生轉(zhuǎn)變,運(yùn)維開(kāi)發(fā)不僅僅是會(huì)開(kāi)發(fā)的運(yùn)維,而是要體現(xiàn)在DevOps運(yùn)維體系的建立上,體現(xiàn)在運(yùn)維和開(kāi)發(fā)的緊密合作上。整個(gè)應(yīng)用的生命周期中,運(yùn)維和開(kāi)發(fā)都必須全程參與規(guī)劃,參與開(kāi)發(fā),參與測(cè)試,參與變更,參與運(yùn)維,以實(shí)現(xiàn)持續(xù)交付,高效發(fā)布,運(yùn)維人員實(shí)際上是在運(yùn)維自己開(kāi)發(fā)的系統(tǒng)。另外一點(diǎn),各大云平臺(tái)都開(kāi)放有大數(shù)據(jù)研發(fā)平臺(tái),提供數(shù)據(jù)集成、數(shù)據(jù)開(kāi)發(fā)、數(shù)據(jù)管理、數(shù)據(jù)治理、數(shù)據(jù)分享等全方位的產(chǎn)品服務(wù),幫助研發(fā)人員進(jìn)行數(shù)據(jù)價(jià)值的挖掘和探索。對(duì)于運(yùn)維人員來(lái)說(shuō),則是需要運(yùn)用機(jī)器學(xué)習(xí)算法從海量的運(yùn)維數(shù)據(jù)中不斷學(xué)習(xí),不斷總結(jié)規(guī)則,以達(dá)到指標(biāo)監(jiān)控、異常檢測(cè)、故障發(fā)現(xiàn)、故障止損、成本優(yōu)化、容量規(guī)劃和性能優(yōu)化等目標(biāo)。這需要運(yùn)維開(kāi)發(fā)人員具有兩個(gè)方面的能力,把具體的運(yùn)維場(chǎng)景抽象為機(jī)器學(xué)習(xí)算法的能力,把機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)成腳本,軟件或者平臺(tái)的開(kāi)發(fā)能力。
傳統(tǒng)運(yùn)維人員關(guān)心的是硬件,如服務(wù)器,網(wǎng)絡(luò)設(shè)備,機(jī)房水電等。機(jī)器較少時(shí),這些工作可以憑借人力完成。但當(dāng)運(yùn)維升級(jí)到云平臺(tái)時(shí)代時(shí),機(jī)器多則上千,有的IDC甚至達(dá)到上萬(wàn)的規(guī)模。在這種情況下,單靠人力是不能保證提供穩(wěn)定、安全、可靠的服務(wù)的。再者,在云計(jì)算服務(wù)也對(duì)基礎(chǔ)設(shè)施的管理提出了更加苛刻的要求:產(chǎn)品要滿足快速變化的用戶(hù)需求,基礎(chǔ)設(shè)施要有更快的響應(yīng)速度。產(chǎn)品的持續(xù)交付對(duì)部署和運(yùn)維提出了更高的靈活性。運(yùn)維人員需不在僅僅是開(kāi)發(fā)和使用腳本,而是更好的軟件開(kāi)發(fā)者,承擔(dān)更多開(kāi)發(fā)上面的責(zé)任。
代碼需要完成3個(gè)方面的事情:
標(biāo)準(zhǔn)化:以代碼來(lái)定義環(huán)境,實(shí)現(xiàn)開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境的標(biāo)準(zhǔn)化。
自動(dòng)化:以自動(dòng)化工具來(lái)驅(qū)動(dòng)代碼準(zhǔn)備環(huán)境。包括創(chuàng)建環(huán)境、更新環(huán)境以及銷(xiāo)毀環(huán)境。
可視化:以監(jiān)控來(lái)可視化環(huán)境信息。環(huán)境當(dāng)前狀態(tài)可視、環(huán)境變更歷史可視、可追溯。
云計(jì)算運(yùn)維已經(jīng)完全打破了傳統(tǒng)運(yùn)維模式,對(duì)從業(yè)人員素質(zhì)提出了更高的要求。傳統(tǒng)意義上,要想做好運(yùn)維工作,除了必須有本運(yùn)維領(lǐng)域的基礎(chǔ)知識(shí)和經(jīng)驗(yàn)外,可能還需要有python或者shell的編程能力,以應(yīng)對(duì)一些簡(jiǎn)單的自動(dòng)化運(yùn)維場(chǎng)景。由于云計(jì)算所有服務(wù)都是基于云平臺(tái)的服務(wù)和功能模塊來(lái)開(kāi)發(fā),這就要求工程師對(duì)云平臺(tái)服務(wù)框架有個(gè)整體的把握和了解,既能夠?yàn)闃I(yè)務(wù)設(shè)計(jì)合理的云計(jì)算架構(gòu),還要保證代碼在云平臺(tái)上的平穩(wěn)測(cè)試、部署、集成。在這個(gè)意義上,運(yùn)維工程師到是開(kāi)發(fā)還是運(yùn)維已經(jīng)很難分的清,界限已經(jīng)很模糊。實(shí)際上,DevOps運(yùn)維體系的建立是云平臺(tái)運(yùn)維的基本內(nèi)在要求。運(yùn)維人員的工作會(huì)前置到產(chǎn)品設(shè)計(jì)階段,協(xié)助研發(fā)人員改造服務(wù)使其可以更加方便的接入到已有的自動(dòng)化運(yùn)維體系中去。此外,運(yùn)維人員不僅要掌握基本運(yùn)維知識(shí),還需要有人工智能算法能力。針對(duì)具體的應(yīng)用場(chǎng)景開(kāi)發(fā)機(jī)器學(xué)習(xí)算法來(lái)智能的完成云平臺(tái)運(yùn)維所面臨的一系列挑戰(zhàn)和難題,例如:應(yīng)用的快速部署,快速更新,實(shí)時(shí)監(jiān)控,自動(dòng)容量預(yù)配置、負(fù)載均衡等。在故障處理方面,機(jī)器學(xué)習(xí)算法更是大有用武之地。例如:異常檢測(cè),根因分析,故障自愈等。
云平臺(tái)環(huán)境為智能運(yùn)維的落地帶來(lái)了現(xiàn)實(shí)的物質(zhì)基礎(chǔ)。大數(shù)據(jù)平臺(tái)必須依托云計(jì)算的分布式處理、分布式數(shù)據(jù)庫(kù)、云存儲(chǔ)和虛擬化技術(shù)。它的特色在于對(duì)海量數(shù)據(jù)的挖掘,這其中就包括海量的運(yùn)維數(shù)據(jù),如監(jiān)控時(shí)間序列,日志,告警信息等。以前,各類(lèi)海量數(shù)據(jù)產(chǎn)生和存儲(chǔ)在不同平臺(tái),不同位置,不同格式,很難實(shí)現(xiàn)統(tǒng)一的處理和深度融合。智能運(yùn)維仍然還停留在初步探索階段,成功落地難度巨大。以阿里云平臺(tái)為例,監(jiān)控和告警系統(tǒng)已經(jīng)集成的十分完善了。各類(lèi)海量數(shù)據(jù)在大數(shù)據(jù)研發(fā)平臺(tái)得到了統(tǒng)一的處理,并且大數(shù)據(jù)研發(fā)平臺(tái)以服務(wù)模塊的形式對(duì)外提供二次應(yīng)用開(kāi)發(fā)。對(duì)于運(yùn)維人員來(lái)說(shuō),智能運(yùn)維算法集成環(huán)境已經(jīng)完備??梢灶A(yù)見(jiàn),在不久的將來(lái),智能運(yùn)維算法應(yīng)用會(huì)取得大的突破。運(yùn)維人員利用手工,人力開(kāi)展運(yùn)維工作的現(xiàn)狀將一去不復(fù)返。運(yùn)維工程師的勞力將得到極大的解放的同時(shí),也對(duì)從業(yè)人員素質(zhì)提出了更高的要求。