企業(yè)應(yīng)用運(yùn)維定義
我們把企業(yè)內(nèi)的IT團(tuán)隊(duì)做一個(gè)初步職責(zé)和邊界劃分:
運(yùn)維的起始點(diǎn)是拿到開發(fā)的代碼包開始,然后進(jìn)行資源環(huán)境準(zhǔn)備、環(huán)境搭建、應(yīng)用發(fā)布,以及一些列的運(yùn)維支撐保障工作;而從運(yùn)維團(tuán)隊(duì)內(nèi)部來看,大致從技術(shù)棧層面分為幾類:
IDC運(yùn)維:負(fù)責(zé)操作系統(tǒng)及以下的運(yùn)維支撐工作,主要提供穩(wěn)定的網(wǎng)絡(luò)、存儲(chǔ)和服務(wù)器。
SA:系統(tǒng)管理員,負(fù)責(zé)操作系統(tǒng)以上,代碼以下的運(yùn)維管理工作,不過有的公司,由于中間件的運(yùn)維支撐與應(yīng)用關(guān)聯(lián)緊密,很多時(shí)候SA只負(fù)責(zé)操作系統(tǒng)和數(shù)據(jù)庫兩個(gè)內(nèi)容。
應(yīng)用運(yùn)維:核心職能是確保進(jìn)程和服務(wù)可用,同時(shí)響應(yīng)研發(fā)、運(yùn)營人員的訴求,維護(hù)新版本的穩(wěn)定運(yùn)行,以及提供數(shù)據(jù)和服務(wù)給到運(yùn)營人員。
應(yīng)用運(yùn)維在各個(gè)行業(yè)里面都非常重要,其發(fā)揮的價(jià)值深度,對(duì)于公司業(yè)務(wù)支撐保障和與優(yōu)化輔助,都起著至關(guān)重要的作用,但面臨的困境也很多。
應(yīng)用架構(gòu)多樣性、異構(gòu)化程度大;無論是多年前無法重構(gòu)的單體架構(gòu),SOA架構(gòu)的應(yīng)用,微服務(wù)架構(gòu)應(yīng)用,基于業(yè)務(wù)中臺(tái)的架構(gòu),還是近幾年號(hào)召的云原生架構(gòu),越大的企業(yè),應(yīng)用的多樣與異構(gòu)化程度就越大,對(duì)于應(yīng)用運(yùn)維人員的技術(shù)棧要求高,管理復(fù)雜度大。
安全和質(zhì)量級(jí)別要求高;無論是新版本發(fā)布,災(zāi)備切換與演練,應(yīng)用故障處理還是其他維護(hù)場景,都直接影響應(yīng)用服務(wù)的可用性,更不要說因?yàn)椴僮鳈?quán)限很高,可能出現(xiàn)誤操作或破壞性行為的風(fēng)險(xiǎn)。
效率要求高;快速發(fā)現(xiàn)問題,定位問題和觸發(fā)預(yù)案處置,每一個(gè)節(jié)點(diǎn)的速度都影響了SLA,因而應(yīng)用運(yùn)維主動(dòng)和被動(dòng)響應(yīng)的要求都越來越高,沒有自動(dòng)化手段已經(jīng)無法解決現(xiàn)有的局面。
無法提供數(shù)據(jù)分析的增值服務(wù);應(yīng)用運(yùn)維擁有核心的日志、配置、監(jiān)控?cái)?shù)據(jù),這些數(shù)據(jù)往往能通過一些技術(shù)手段分析后,提供給運(yùn)營人員,給他們帶來增值服務(wù),而日常繁雜的工作,和缺乏有效的數(shù)據(jù)分析手段,導(dǎo)致價(jià)值沒有得到充分發(fā)揮。
應(yīng)用運(yùn)維自動(dòng)化設(shè)計(jì)前提
在應(yīng)用運(yùn)維自動(dòng)化設(shè)計(jì)前,我們需要有兩個(gè)基本的共同認(rèn)知,這樣才能保障整體的設(shè)計(jì)規(guī)劃是有效的。
應(yīng)用的異構(gòu)化是一個(gè)長期存在的狀態(tài)。
應(yīng)用運(yùn)維自動(dòng)化平臺(tái)具備適應(yīng)靈活場景的能力,具備很強(qiáng)的擴(kuò)展性。
為什么需要有這兩個(gè)約束,最核心的原因是如果企業(yè)的業(yè)務(wù)標(biāo)準(zhǔn)化程度足夠高,甚至全部能云原生化,這個(gè)時(shí)候業(yè)務(wù)API也是服務(wù)、函數(shù)也是服務(wù)。而云自身能提供足夠高的可用性和保障功能,其實(shí)對(duì)于體系化的自動(dòng)化運(yùn)維平臺(tái)需求并沒那么強(qiáng)烈了,因?yàn)樵谶@種理想化的情況下,場景足夠單一了,并不需要適配各種異構(gòu)化的場景。但是我們都知道,目前實(shí)際情況來看,多種架構(gòu)和類型的應(yīng)用共存,是一個(gè)可能很長期的狀態(tài)。因而,從設(shè)計(jì)原則看:
平臺(tái)化架構(gòu):
把應(yīng)用運(yùn)維需要的通用能力沉淀下來,然后場景可以保留持續(xù)擴(kuò)展構(gòu)建的能力,只有這樣,才能適配應(yīng)用運(yùn)維過程中,各種靈活和自定義的運(yùn)維場景。
原子化:
豐富應(yīng)用運(yùn)維的最小操作單元,然后基于平臺(tái)可以快速迭代出各類場景,例如有了分發(fā)文件、執(zhí)行腳本的原子,就可以編排出一個(gè)簡單的應(yīng)用發(fā)布自動(dòng)化場景。
要覆蓋企業(yè)應(yīng)用運(yùn)維全生命周期:
從應(yīng)用的上線、運(yùn)行,到后續(xù)一系列運(yùn)維場景和過程來規(guī)劃所需的功能和工具;
標(biāo)準(zhǔn)性:
從輸入、輸出、操作規(guī)范、安全控制等方面對(duì)運(yùn)維操作組件進(jìn)行規(guī)范性約束。
基于應(yīng)用生命周期設(shè)計(jì)應(yīng)用運(yùn)維自動(dòng)化
我們從應(yīng)用運(yùn)維的生命周期來看,大致分為如下幾個(gè)部分:
應(yīng)用上線:應(yīng)用上線前的標(biāo)準(zhǔn)化資源與運(yùn)行環(huán)境準(zhǔn)備,以及應(yīng)用上線過程中的發(fā)布與更新操作。
應(yīng)用上線的資源準(zhǔn)備實(shí)現(xiàn)資源交付標(biāo)準(zhǔn)化:包括基礎(chǔ)資源準(zhǔn)備,數(shù)據(jù)庫、中間件、組件資源準(zhǔn)備,而且保持標(biāo)準(zhǔn)化的環(huán)境部署,如程序路徑、組件配置等。
應(yīng)用上線包括新的版本發(fā)布與版本更新:實(shí)現(xiàn)批量發(fā)布、回滾、發(fā)布依賴的自動(dòng)化。
應(yīng)用運(yùn)行:應(yīng)用上線后,運(yùn)行過程SLA保障運(yùn)維服務(wù)。
應(yīng)用巡檢:包括OS、DB、組件、進(jìn)程、模塊的功能性、規(guī)范性、安全性、性能巡檢,從基礎(chǔ)組件服務(wù)狀態(tài)、日志關(guān)鍵字來反饋應(yīng)用整體運(yùn)行狀態(tài)。
應(yīng)用監(jiān)控:監(jiān)控應(yīng)用的可用性、功能模塊的可用性、調(diào)用鏈監(jiān)控和性能監(jiān)控(APM),整合統(tǒng)一的告警中心服務(wù),實(shí)現(xiàn)故障的預(yù)警與告警。
應(yīng)用配置管理:包括應(yīng)用的配置模型,對(duì)象、屬性、關(guān)聯(lián)關(guān)系,和應(yīng)用配置文件的版本、配置下發(fā)、程序包綁定的管理。
運(yùn)維流程協(xié)同:運(yùn)維流程基本管理,事件、問題、變更、知識(shí)庫管理,以及相應(yīng)協(xié)同部門的服務(wù)請(qǐng)求,包括運(yùn)營用戶服務(wù)目錄等。
故障處理:應(yīng)用運(yùn)行過程中的故障分析和處理環(huán)節(jié),快速恢復(fù)應(yīng)用可用性。
日志分析:實(shí)現(xiàn)統(tǒng)一的日志搜集、存儲(chǔ)與分析平臺(tái),輔助排障人員快速獲取到關(guān)聯(lián)日志。
故障定位:基于CMDB的關(guān)聯(lián)關(guān)系,確定影響范圍,細(xì)化故障點(diǎn);并逐步演進(jìn)到AIOps智能監(jiān)控領(lǐng)域,通過多個(gè)指標(biāo)異常檢測、知識(shí)圖譜、故障鏈傳播,實(shí)現(xiàn)智能化的快速故障點(diǎn)定位。
故障自愈:基于自動(dòng)化編排引擎,實(shí)現(xiàn)常用的故障自動(dòng)化處理,包括日志清理、服務(wù)重啟、參數(shù)調(diào)整等操作編排;未來可擴(kuò)展引入AIOps,與知識(shí)庫關(guān)聯(lián),實(shí)現(xiàn)智能預(yù)案推薦。
生產(chǎn)操作:應(yīng)用運(yùn)維過程中,需要主動(dòng)性的完成很多變更或周期性的運(yùn)維操作。
災(zāi)備切換自動(dòng)化:實(shí)現(xiàn)企業(yè)應(yīng)用容災(zāi)管理的自動(dòng)化、可視化,讓災(zāi)備切換與演練成為常態(tài),檢驗(yàn)應(yīng)用災(zāi)備架構(gòu),和實(shí)現(xiàn)災(zāi)難的快速恢復(fù)。
擴(kuò)縮容自動(dòng)化:根據(jù)業(yè)務(wù)類型,實(shí)現(xiàn)應(yīng)用架構(gòu)、底層資源的容量管理,包括容量分析模型、容量預(yù)測、自動(dòng)擴(kuò)縮容操作編排。
服務(wù)啟停:日常運(yùn)維過程中需要對(duì)服務(wù)進(jìn)行批量啟停,以及服務(wù)依賴編排的啟停管理。
其他可以提升運(yùn)維效率和安全性的工具系統(tǒng),包括報(bào)表、作業(yè)、安全加固等場景化的操作管理。
增值服務(wù):指基于運(yùn)維大數(shù)據(jù)服務(wù)的能力,面向運(yùn)營人員,提供數(shù)據(jù)分析服務(wù)或工具輔助服務(wù)。
數(shù)據(jù)分析與提?。簩?duì)接各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)、日志數(shù)據(jù)、指標(biāo)數(shù)據(jù)、事件或告警數(shù)據(jù),面向運(yùn)營人員提供數(shù)據(jù)計(jì)算結(jié)果服務(wù),輔助運(yùn)營人員決策、分析和判斷。
運(yùn)營輔助工具:面向運(yùn)營人員個(gè)性化需求,封裝底層工具系統(tǒng)和數(shù)據(jù)服務(wù),提供輔助工具,如用戶體驗(yàn)管理、智能擴(kuò)容建議等。
我們挑幾個(gè)重點(diǎn)模塊,結(jié)合基于藍(lán)鯨客戶化落地場景,進(jìn)行闡述說明。
1.應(yīng)用的配置管理如何建設(shè)?
應(yīng)用的配置管理是應(yīng)用實(shí)現(xiàn)自動(dòng)化運(yùn)維的基石,應(yīng)用的配置管理建設(shè)應(yīng)該涵蓋兩個(gè)方面的內(nèi)容,一方面是基于業(yè)務(wù)和應(yīng)用維度建立CMDB配置管理模型,且配置管理模型是屬于企業(yè)整體CMDB的一部分,并實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入或自動(dòng)采集;另外一方面是與CMDB中具體應(yīng)用模塊關(guān)聯(lián)的配置文件管理。
利用藍(lán)鯨CMDB模塊,則很便捷的實(shí)現(xiàn)應(yīng)用模型管理,包括應(yīng)用層級(jí)和模型自定義。
基于藍(lán)鯨平臺(tái)構(gòu)建應(yīng)用管理SaaS,實(shí)現(xiàn)配置文件管理,并把配置文件管理與應(yīng)用的模塊、主機(jī)、資源(軟件包等)、程序包進(jìn)行整體關(guān)聯(lián),實(shí)現(xiàn)配置文件版本管理、批量配置下發(fā)、參數(shù)提取等管理行為。
2.應(yīng)用發(fā)布如何設(shè)計(jì)?
企業(yè)的應(yīng)用發(fā)布設(shè)計(jì)需要考慮幾個(gè)關(guān)鍵要素:應(yīng)該基于CMDB消費(fèi)發(fā)布過程中的配置信息、配置文件與程序包的管理是為應(yīng)用發(fā)布提供資源服務(wù)的、需要依賴比較強(qiáng)大和靈活的自動(dòng)化編排引擎。
基于藍(lán)鯨平臺(tái)的工具構(gòu)建能力,和藍(lán)鯨自動(dòng)化編排引擎一級(jí)saas標(biāo)準(zhǔn)運(yùn)維,實(shí)現(xiàn)企業(yè)級(jí)靈活的發(fā)布場景。把發(fā)布過程中的操作原子化,然后封裝成相對(duì)固化的場景;把發(fā)布需要的配置和資源信息,提前基于CMDB和應(yīng)用管理封裝好。
3.應(yīng)用災(zāi)備切換設(shè)計(jì)?
企業(yè)應(yīng)用災(zāi)備切換自動(dòng)化設(shè)計(jì)主要考慮幾個(gè)關(guān)鍵要素:需要原子化對(duì)接災(zāi)備過程中的各個(gè)對(duì)象,前端路由切換、數(shù)據(jù)庫、虛擬化、網(wǎng)絡(luò)等;依然需要強(qiáng)大的編排引擎;災(zāi)備演練和切換要做到可視化。
4.數(shù)據(jù)分析服務(wù)如何設(shè)計(jì)?
運(yùn)維中產(chǎn)生的數(shù)據(jù)很多,運(yùn)維數(shù)據(jù)的異構(gòu)化和數(shù)據(jù)類型特別復(fù)雜,包括指標(biāo)、事件、告警、日志、CMDB等數(shù)據(jù),覆蓋mysql、InfluxDB、MongoDB、文本文件等多個(gè)數(shù)據(jù)類型,且分散在各個(gè)系統(tǒng)中,平臺(tái)要求具備很強(qiáng)的適配性和靈活性,通過單一Agent和數(shù)據(jù)管道解決異構(gòu)化數(shù)據(jù)接入和適配的問題。
因而運(yùn)維大數(shù)據(jù)服務(wù)平臺(tái)應(yīng)該和業(yè)務(wù)大數(shù)據(jù)服務(wù)平臺(tái)單獨(dú)考慮,運(yùn)維大數(shù)據(jù)平臺(tái)建設(shè)需要考慮幾個(gè)關(guān)鍵因素:數(shù)據(jù)采集、低門檻的數(shù)據(jù)開發(fā)、數(shù)據(jù)開發(fā)結(jié)果可消費(fèi)。
應(yīng)用運(yùn)維自動(dòng)化設(shè)計(jì)架構(gòu)
我們圍繞應(yīng)用運(yùn)維自動(dòng)化的生命周期,可以分層來看所需要的能力,包括所有場景都需要的平臺(tái)能力、對(duì)應(yīng)環(huán)節(jié)需要的功能模塊、其他組合場景模塊。
整體架構(gòu)描述:
從層次上來看:PaaS平臺(tái)提供工具所需的公共模塊能力,例如CMDB、Agent、作業(yè)執(zhí)行等;應(yīng)用自動(dòng)化工具鏈,提供滿足企業(yè)應(yīng)用自動(dòng)化運(yùn)維生命周期的工具鏈,并基于平臺(tái)整體能力實(shí)現(xiàn)融合;場景組合SaaS,少量代碼拼裝出各類靈活的場景,例如節(jié)假日值班、應(yīng)急中心等。
場景是靈活且個(gè)性化的,因而需要PaaS化的平臺(tái)支撐。
iPaaS層:API GateWay(統(tǒng)一接入模塊),將配置管理(CMDB)平臺(tái)、作業(yè)平臺(tái)、數(shù)據(jù)平臺(tái)、挖掘平臺(tái)等原子平臺(tái)統(tǒng)一接入、集成、驅(qū)動(dòng)和調(diào)度,供上層運(yùn)維場景APP驅(qū)動(dòng)和調(diào)用。
aPaaS開發(fā)者中心(提供前后端開發(fā)框架):開發(fā)者中心提供完整的前后端開發(fā)框架,當(dāng)企業(yè)在未來出現(xiàn)新的運(yùn)維需求的時(shí)候,企業(yè)可以快速利用開發(fā)者中心完成相應(yīng)的運(yùn)維系統(tǒng)開發(fā),并一鍵部署。
總結(jié)
互聯(lián)網(wǎng)+的時(shí)代,各種應(yīng)用賦能企業(yè)業(yè)務(wù)普遍,從研發(fā)、運(yùn)維至運(yùn)營測都面臨到應(yīng)用異構(gòu)、響應(yīng)業(yè)務(wù)的效能要求、安全與質(zhì)量把控、數(shù)字化助力業(yè)務(wù)的挑戰(zhàn)。我們在文章中基于應(yīng)用生命周期設(shè)計(jì)應(yīng)用運(yùn)維自動(dòng)化,并利用PaaS平臺(tái)給予所有場景所需的能力。整體設(shè)計(jì)解決了幾個(gè)關(guān)鍵問題,異構(gòu)化的應(yīng)用如何不侵入做運(yùn)維、如何做到可持續(xù)性建設(shè)或足夠的擴(kuò)展性、架構(gòu)分層帶來場景的靈活性、生命周期的工具鏈滿足整體保障與效能提升場景。