運(yùn)維服務(wù)進(jìn)化論
本文作者苗輝先生負(fù)責(zé)白山第一個(gè)產(chǎn)品線CDN-X的相關(guān)研發(fā)工作,帶領(lǐng)團(tuán)隊(duì)在3個(gè)月內(nèi)實(shí)現(xiàn)CDN-X系統(tǒng)從無到有,依靠獨(dú)特的SHAQUE、MANTA、TUNA、DOLFIN技術(shù)和質(zhì)量化運(yùn)維體系取得平臺(tái)4個(gè)月上量500G,90%以上客戶PK第一名的成績。
作為網(wǎng)絡(luò)傳輸優(yōu)化專家,苗輝先生在運(yùn)營支撐與性能優(yōu)化方面積累了豐富經(jīng)驗(yàn)。2007年至2011年,就職于網(wǎng)宿,帶領(lǐng)團(tuán)隊(duì)創(chuàng)建網(wǎng)宿科技CDN運(yùn)營監(jiān)控體系;2011年至2014年任百度架構(gòu)師,負(fù)責(zé)百度自建CDN架構(gòu)和服務(wù)質(zhì)量的優(yōu)化改進(jìn),自建CDN穩(wěn)定性業(yè)內(nèi)首達(dá)4個(gè)9,并成功承載百度搜索等80%的百度核心業(yè)務(wù)。
下文是苗輝先生對(duì)于質(zhì)量化運(yùn)維思考與實(shí)踐的分享:
自動(dòng)化運(yùn)維的話題大家都已經(jīng)很熟悉了。不過,正如世間萬物一樣,運(yùn)維服務(wù)也處于不斷進(jìn)化之中。在白山云科技有限公司(簡稱“白山”)的團(tuán)隊(duì)看來,在如今云服務(wù)時(shí)代,相對(duì)于自動(dòng)化運(yùn)維,我們更需要質(zhì)量化運(yùn)維。
作為從事運(yùn)維工作的一員,大家可能深都有體會(huì):運(yùn)維同學(xué)很苦逼。
圖片中天臺(tái)上運(yùn)維同學(xué)的壓力并非來自于老板與同事,而是來自于圖中沒有畫出來的客戶!因?yàn)榉⻊?wù)沒做好,全公司都處在被動(dòng)的境地,客戶通過老板與同事把壓力傳達(dá)給了運(yùn)維。
樓下的同事哪一個(gè)不苦逼,哪一個(gè)無壓力?今天之所以站在天臺(tái)上的是運(yùn)維而不是別的角色,恰恰說明運(yùn)維與服務(wù)質(zhì)量關(guān)系最為重大。
要在這樣的環(huán)境中做好運(yùn)維,必須要明白運(yùn)維的本質(zhì)—— 做好服務(wù)才是運(yùn)維的本質(zhì)。
眾所周知,服務(wù)是互聯(lián)網(wǎng)行業(yè)的立足之本,云服務(wù)時(shí)代的到來,更是一切皆服務(wù)。在這個(gè)時(shí)代運(yùn)維的方式也發(fā)生了改變。此時(shí)的運(yùn)維與服務(wù)的關(guān)系更為直接,與最終用戶的距離也前所未有的近。
有人說做好自動(dòng)化運(yùn)維,矛盾不就解決了嗎?墒钦娴氖沁@樣嗎?
舉個(gè)例子,面對(duì)不可規(guī)避的宕機(jī)和網(wǎng)絡(luò)問題,你開發(fā)了一個(gè)高水平的智能調(diào)度系統(tǒng),它能夠及時(shí)辨別各個(gè)IP的服務(wù)質(zhì)量高低,并且你設(shè)立了一個(gè)閾值,如果低于客戶要求,就會(huì)立即自動(dòng)切走。這算是高級(jí)而精密的運(yùn)維自動(dòng)化系統(tǒng)了,可是這樣一個(gè)運(yùn)維自動(dòng)化平臺(tái)真的能讓服務(wù)質(zhì)量達(dá)到客戶要求嗎?很可能最終你發(fā)現(xiàn)調(diào)來調(diào)去你的服務(wù)質(zhì)量就是達(dá)不到客戶的要求,因?yàn)槟愕拿總(gè)節(jié)點(diǎn)的服務(wù)質(zhì)量就是這樣了。
這個(gè)皮球可能被你暫時(shí)踢給了研發(fā)和產(chǎn)品,但這個(gè)球終究還是會(huì)回到你這里,并且會(huì)使你更加痛苦。因?yàn)檎麄(gè)平臺(tái)的服務(wù)質(zhì)量并沒有提高。
我們不僅需要能夠提高效率、減少出錯(cuò)、消除故障的自動(dòng)化運(yùn)維,我們更需要以提高服務(wù)質(zhì)量為核心的,涉及自動(dòng)化、服務(wù)質(zhì)量檢測、快速的持續(xù)服務(wù)能力、客戶有效溝通等諸多環(huán)節(jié)的質(zhì)量化運(yùn)維。
2. 何為質(zhì)量化運(yùn)維?
其實(shí)就是盡一切努力為客戶提供更好的、符合要求的服務(wù)。這不僅是概念上的改變,更是平臺(tái)架構(gòu)和服務(wù)理念的革新。
運(yùn)維。
當(dāng)然,質(zhì)量化的基礎(chǔ)在于自動(dòng)化。
自動(dòng)化
自動(dòng)化必須要做,沒有自動(dòng)化,保證服務(wù)質(zhì)量就無從談起。一家配置全部需要人肉登錄服務(wù)器進(jìn)行修改的公司,客戶能放心使用它的服務(wù)嗎?
快速定位與質(zhì)量敏感體系
只有自動(dòng)化遠(yuǎn)遠(yuǎn)不夠,面對(duì)諸多用戶反饋的各種質(zhì)量問題,很多自動(dòng)化工具無能為力。你還需要進(jìn)行細(xì)節(jié)分析才能找到問題的根本。因此我們需要一個(gè)快速定位功能和質(zhì)量敏感體系,讓我們能夠先于客戶發(fā)現(xiàn)質(zhì)量問題,并且快速找到問題所在。
透明化
很多時(shí)候客戶對(duì)服務(wù)質(zhì)量的評(píng)判手段跟你的并不相同。作為服務(wù)提供方,我們最了解服務(wù)質(zhì)量內(nèi)部的細(xì)微變動(dòng),而很多客戶則會(huì)在若干小時(shí)之后才能用其自己的判斷手段感受到。所以我們還需要一個(gè)透明化的機(jī)制,讓客戶和我們同步看到服務(wù)質(zhì)量的細(xì)微變化。
同其他互聯(lián)網(wǎng)公司一樣,在運(yùn)維自動(dòng)化方面,我們也投入了大量的精力。
上圖是白山的運(yùn)維自動(dòng)化體系,大體分為三層:
1.內(nèi)容管理數(shù)據(jù)庫
以CMDB為核心,用以記錄資源信息、資源狀態(tài)、應(yīng)用類型、客戶信息、客戶配置信息等核心基礎(chǔ)數(shù)據(jù);
2.資源層面
構(gòu)建了自動(dòng)掃描、自動(dòng)監(jiān)控、自動(dòng)部署、自動(dòng)配置和故障自動(dòng)處理等小粒度自動(dòng)化操作;
3.業(yè)務(wù)層面
在內(nèi)部兩層的基礎(chǔ)上,結(jié)合流程引擎來實(shí)現(xiàn)業(yè)務(wù)層面自動(dòng)化上包括:
1>資源管理自動(dòng)化:節(jié)點(diǎn)的自動(dòng)上下架、自動(dòng)割接等;
2>服務(wù)管理自動(dòng)化:服務(wù)開通自動(dòng)化、服務(wù)終止自動(dòng)化等;
3>服務(wù)質(zhì)量調(diào)度自動(dòng)化:根據(jù)每個(gè)IP當(dāng)前服務(wù)質(zhì)量來動(dòng)態(tài)調(diào)度覆蓋,持續(xù)保證穩(wěn)定可用和高服務(wù)質(zhì)量;
4>計(jì)費(fèi)賬單自動(dòng)化:按不同客戶要求自動(dòng)統(tǒng)計(jì)出賬單,并發(fā)送給客戶。
我們?cè)谧鲎詣?dòng)化的過程中,有一個(gè)貫穿始終的原則
就是:適合的才是最好的。我們不怕重復(fù)造輪子,就怕輪子拿來用不上。
接下來我們通過舉例來進(jìn)一步介紹我們的運(yùn)維自動(dòng)化體系。
上圖是我們的節(jié)點(diǎn)建設(shè)自動(dòng)化流程圖。
我們集成了設(shè)備自動(dòng)掃描、軟件自動(dòng)部署、配置自動(dòng)安裝等業(yè)務(wù)層的自動(dòng)化過程。
節(jié)點(diǎn)建設(shè)自動(dòng)化是每家公司都在做的,并且許多公司已經(jīng)做得比較完善,思路通常就是將節(jié)點(diǎn)建設(shè)過程中復(fù)雜的部分剝離給供應(yīng)商,讓供應(yīng)商按要求裝好系統(tǒng),甚至把軟件部署在服務(wù)器上,運(yùn)維只需要下發(fā)配置就可啟動(dòng)。
但這對(duì)于創(chuàng)業(yè)公司來講,是根本不可能的,原因很簡單,供應(yīng)商不愿陪你這樣玩。 以白山為例,我們單次采購量也就上百臺(tái)服務(wù)器,我們采購的核心標(biāo)準(zhǔn)就兩個(gè):一是設(shè)備必須滿足我們的要求;二是在入圍供應(yīng)商中選相對(duì)便宜的,這樣對(duì)方自然不愿提供額外的自動(dòng)化支持;另一方面,我們目前合作的供應(yīng)商有數(shù)十家之多,在自動(dòng)化方面分別管理協(xié)調(diào)供應(yīng)商的成本遠(yuǎn)遠(yuǎn)高于自己實(shí)現(xiàn)的成本。于是我們?cè)O(shè)計(jì)了這個(gè)適用的節(jié)點(diǎn)建設(shè)的自動(dòng)化流程,但是就解放運(yùn)維生產(chǎn)力的角度來說已經(jīng)足夠。
啟用該自動(dòng)化流程之前,我們面對(duì)的是一堆零散的自動(dòng)化腳本,需要一個(gè)運(yùn)維同學(xué)用兩個(gè)小時(shí)跟蹤執(zhí)行這些腳本,F(xiàn)在運(yùn)維同學(xué)被解放出來了,只需要在平臺(tái)規(guī)劃好每臺(tái)服務(wù)器的用途即可全自動(dòng)完成,這個(gè)過程只需運(yùn)維同學(xué)幾分鐘。
這樣,我們就可以將運(yùn)維人員的精力釋放出來,轉(zhuǎn)移到提高服務(wù)質(zhì)量上。
白山第三版配置自動(dòng)化架構(gòu)可以分為如下部分:
以CMDB為核心,通過消息隊(duì)列來進(jìn)行配置文件生成與配置文件分發(fā)大交互。之所以演化三個(gè)版本最終這樣設(shè)計(jì),是為了解決實(shí)際運(yùn)營中的痛點(diǎn):
1. 高并發(fā):平臺(tái)要支持每分鐘上百次的配置變更需求,而每次配置變更都將涉及上千臺(tái)服務(wù)器上配置文件發(fā)布和生效;
2. 支持事務(wù):對(duì)于客戶提交的配置,發(fā)布途中客戶發(fā)現(xiàn)語義錯(cuò)誤需要撤回,平臺(tái)要能立即回退所有已發(fā)布的配置;
3. 灰度發(fā)布:分批次灰度部署,配置自動(dòng)化測試和監(jiān)控將風(fēng)險(xiǎn)控制在最低。
目前我們所有客戶通過portal自助修改的配置和運(yùn)維同學(xué)通過后臺(tái)修改的配置,其后臺(tái)都是使用上述架構(gòu)在支撐。
上圖是我們?nèi)蛑悄苷{(diào)度系統(tǒng)DOLFIN的原理圖。智能調(diào)度是服務(wù)質(zhì)量的生命和大腦,目前我們是國內(nèi)唯一一家將解析系統(tǒng)做到全球邊緣化的公司。利用DOLFIN系統(tǒng),實(shí)現(xiàn)了基于服務(wù)質(zhì)量的調(diào)度,切換從原來的分鐘級(jí)提升到秒級(jí)。(此架構(gòu)去年我們的架構(gòu)師符立佳已經(jīng)進(jìn)行了一次分享,大家可以關(guān)注白山官方微信baishancloud獲取)
不過自動(dòng)化運(yùn)維還遠(yuǎn)遠(yuǎn)不夠。做完自動(dòng)化,質(zhì)量化運(yùn)維才剛剛開始。
自動(dòng)化實(shí)現(xiàn)后,我們會(huì)發(fā)現(xiàn)客戶的不滿確實(shí)有所減少,但你還是無法完全避免。那我們是怎么解決的呢?
通常做法是查看監(jiān)控系統(tǒng)找異常,審查日志找線索,復(fù)盤整個(gè)操作過程。在一個(gè)三層網(wǎng)絡(luò)架構(gòu)中,復(fù)盤過程可能會(huì)橫跨3-4臺(tái)服務(wù)器。這個(gè)過程少則30分鐘,多則需要3-4天,有時(shí)可能更長。所以我們需要一個(gè)快速定位來解決這個(gè)痛苦的過程。
所謂天下武功唯快不破。客戶并非不允許出問題,而是怕出現(xiàn)問題后解決速度慢。所以我們需要快速定位的功能來找到根本問題。
上圖是快速定位的實(shí)現(xiàn)過程。
我們將以往的運(yùn)維手工操作升級(jí)到了自動(dòng)化。IDO打通了運(yùn)營支撐的各個(gè)平臺(tái),將監(jiān)控系統(tǒng)跟CMDB以及配置管理系統(tǒng)、日志系統(tǒng)、流程引擎等數(shù)據(jù)結(jié)合,針對(duì)不同場景快速在各平臺(tái)中搜索匹配的監(jiān)控?cái)?shù)據(jù)或變更行為,在3分鐘內(nèi)定位問題。
這樣已經(jīng)很自動(dòng)化了,定位質(zhì)量問題也夠快了,可這樣還是一種被動(dòng)響應(yīng),因?yàn)檫@樣依然是“救火”的思維。
服務(wù)變差那客服損失的可是真金白銀。有沒有辦法提前于客戶發(fā)現(xiàn)質(zhì)量問題呢?
因此,我們還建立了質(zhì)量敏感體系。質(zhì)量敏感體系建設(shè)的目標(biāo)是先于客戶發(fā)現(xiàn)服務(wù)質(zhì)量問題。
如上圖所示,我們進(jìn)行了兩個(gè)層面的建設(shè)。
首先,我們通過日志和網(wǎng)絡(luò)層數(shù)據(jù)分析,結(jié)合外部平臺(tái)監(jiān)控,匹配客戶對(duì)服務(wù)質(zhì)量要求的算法,時(shí)時(shí)分析服務(wù)質(zhì)量,一旦發(fā)現(xiàn)異常立即報(bào)警。
其次,我們梳理了與服務(wù)質(zhì)量相關(guān)的高風(fēng)險(xiǎn)操作和基礎(chǔ)故障,并以風(fēng)險(xiǎn)預(yù)警的方式發(fā)送給運(yùn)維。
最開始,我們通過分析日志建模,模擬與用戶同樣的算法匹配服務(wù)質(zhì)量的變化。但在分析過程中,我們發(fā)現(xiàn)日志其實(shí)是一個(gè)黑盒子。通過日志可以統(tǒng)計(jì)用戶訪問的狀態(tài)碼比例、成功率,但日志實(shí)際記錄的只是用戶請(qǐng)求到達(dá)及內(nèi)容寫入網(wǎng)卡緩沖的時(shí)間,而數(shù)據(jù)包則需要經(jīng)歷兩個(gè)甚至更長的網(wǎng)絡(luò)傳輸,以及至少五個(gè)緩沖區(qū)。
所以日志紀(jì)錄了零毫秒,但客戶實(shí)際感受到的可能是1s,內(nèi)核偷走了你的時(shí)間。因此,對(duì)于小文件來說,發(fā)送計(jì)時(shí)永遠(yuǎn)不準(zhǔn)確。
另外,以流媒體服務(wù)來說,用戶非常關(guān)心首次緩沖時(shí)間,而日志記錄的是用戶訪問播放流媒體的完整時(shí)間,無法獲取首次緩沖時(shí)間。
為解決日志問題,我們實(shí)現(xiàn)了一個(gè)內(nèi)核模塊在四層進(jìn)行完整的訪問過程監(jiān)控。從開始收到SYN包到整個(gè)TCP連接過程結(jié)束,可以實(shí)時(shí)監(jiān)控到整個(gè)連接上的每一刻的丟包率、傳輸速率;诖,我們可以得到小文件的傳輸所用時(shí)間。另外,對(duì)于流媒體的首次緩沖時(shí)間,同樣可以通過近似的算法計(jì)算得出(例如計(jì)算第一個(gè)500K字節(jié)傳輸完畢的時(shí)間)。同時(shí)我們可以實(shí)時(shí)計(jì)算視頻的播放碼流,評(píng)判客戶播放的服務(wù)質(zhì)量。
上圖是信息報(bào)警的展示。
一切都做好了,客戶總該滿意了。然而信息的不對(duì)稱,卻使客戶的焦慮并未消除。
所以,我們必須將服務(wù)透明化,讓客戶清晰地知道我們的服務(wù)到底發(fā)生了什么。
首先,與網(wǎng)購物流跟蹤類似,通過白山的質(zhì)量化運(yùn)維平臺(tái),客戶可以方便地跟蹤當(dāng)前需求/問題的處理狀態(tài),預(yù)估解決時(shí)間,甚至可以直接聯(lián)系運(yùn)維人員進(jìn)行催單。
其次,我們將整個(gè)服務(wù)過程公開給客戶。上圖展示了四層監(jiān)控全量采樣的用戶實(shí)時(shí)服務(wù)質(zhì)量?蛻敉ㄟ^portal可以看到以上信息。同時(shí),我們將秒推系統(tǒng)的工作過程以及動(dòng)態(tài)路由選路過程也實(shí)時(shí)展現(xiàn)給客戶。
透明化其實(shí)沒那么可怕!做好透明化,會(huì)使客戶對(duì)于服務(wù)具有更強(qiáng)的掌控力,對(duì)我們的服務(wù)更放心,產(chǎn)生更好的信任,進(jìn)而與我們產(chǎn)生更多的交流互助。最后帶來的效果就是服務(wù)質(zhì)量的不斷提升,與客戶滿意度的不斷提高。
再回到我們的起點(diǎn)。在我們看來,從自動(dòng)化到質(zhì)量化不僅僅是概念上的迭代!
改變也不只一點(diǎn)點(diǎn)。
因?yàn)榘咨阶龅搅速|(zhì)量化運(yùn)維,實(shí)現(xiàn)了平臺(tái)建起四個(gè)月上量500G,超過90%的客戶PK服務(wù)質(zhì)量第一。
白山不存在PK平臺(tái),我們只建設(shè)全質(zhì)量平臺(tái),保證客戶在測試和正式上量使用的服務(wù)質(zhì)量完全一致。
這就是關(guān)于質(zhì)量化運(yùn)維我要給大家分享的內(nèi)容,歡迎各位關(guān)注白山的官方微信“baishancloud”和官方微博“白山云科技”,或通過各種方式與白山開展交流互動(dòng)。