你需要了解自動化運(yùn)維的設(shè)計思想
嘉賓介紹
季文軒
北京云途騰科技有限責(zé)任公司高級系統(tǒng)架構(gòu)師,Magic-Stack自動化平臺作者
熱衷開源技術(shù)的研究,包括系統(tǒng)架構(gòu)、運(yùn)維開發(fā)、負(fù)載均衡、分布式存儲及云計算等領(lǐng)域,擅長大規(guī)模集群的運(yùn)維工作。擁有三年云計算基礎(chǔ)設(shè)施規(guī)劃和OpenStack開發(fā)經(jīng)驗。
背景
隨著信息時代突飛猛進(jìn)般的持續(xù)發(fā)展,IT運(yùn)維已經(jīng)成為IT服務(wù)中最重要的組成部分。近年來,云計算、大數(shù)據(jù)等技術(shù)日趨成熟,生產(chǎn)應(yīng)用自動化運(yùn)維也被推到了風(fēng)口浪尖。通過傳統(tǒng)手段對大型計算機(jī)集群進(jìn)行運(yùn)維即使是簡單的日常備份、服務(wù)器狀態(tài)監(jiān)控和報警,效率也十分低下,因此對自動化運(yùn)維的需求已經(jīng)迫在眉睫。
傳統(tǒng)運(yùn)維的弊端:
1.由人來發(fā)起運(yùn)維事件,運(yùn)維人員被動、效率低。
2.系統(tǒng)異構(gòu)性大,缺乏高效的運(yùn)維流程。
3.隨著云計算大數(shù)據(jù)的爆發(fā)帶來更大的困難,極度缺乏一套高效的運(yùn)維工具。
由于這些問題的存在,自動化應(yīng)該遵循四化原則:管理體系化、工作流程化、人員專業(yè)化、任務(wù)自動化。
以監(jiān)控作為自動化運(yùn)維的核心概念
運(yùn)維工作效率不高,主要原因是響應(yīng)速度。由于大量的人員長期盯著報警頁面,等待故障,然后通知相應(yīng)人員。所以在生產(chǎn)系統(tǒng)中,需將服務(wù)器的狀態(tài)監(jiān)控作為自動化運(yùn)維的核心問題。下圖為自動化運(yùn)維平臺處理流程圖,由監(jiān)控來驅(qū)動運(yùn)維事件的發(fā)起、處理和結(jié)束,由ElkStack 、Zabbix 和 Zabbix-Agent來獲取到服務(wù)器的日常工作狀態(tài)和服務(wù)信息,并生成時序統(tǒng)計圖等用于成果分析。
通過精準(zhǔn)有效的報警策略做到專業(yè)的事由專業(yè)的人去做。生產(chǎn)系統(tǒng)已經(jīng)實現(xiàn)了郵件、微信、短信告警等功能,可以根據(jù)故障類型和影響級別及時通知到相應(yīng)人員,并且可以根據(jù)SLA進(jìn)行事件升級。后續(xù)還可以針對微信平臺進(jìn)行持續(xù)開發(fā),提供更多功能,比如說模板化處理機(jī)制的問題。
舉個例子,服務(wù)器的磁盤占用率達(dá)到百分九十的時候,告警也會自動通過微信通知到相應(yīng)的處理人員,這時候處理人員只需采取從微信中選擇,并操作對應(yīng)的清理垃圾模板,如:數(shù)據(jù)修復(fù)模板、清理歷史日志模板等,進(jìn)行清理作業(yè)即可。
以模板化部署為自動化運(yùn)維的必備利器
對于運(yùn)維工程師來說,真正意義上維護(hù)服務(wù)器的工作并不算繁重,真正繁重的應(yīng)該是環(huán)境的部署,有的時候環(huán)境實施部署會占據(jù)到運(yùn)維工作百分之八十以上的時間。由于操作系統(tǒng)版本的不統(tǒng)一,手動且隨意的初始化系統(tǒng)環(huán)境,不同軟件包的版本更新等一系列的問題,會導(dǎo)致工程師部署運(yùn)維工具或公司產(chǎn)品時,總會出現(xiàn)各種各樣非常奇妙的囧境。
所以,我將模板化部署作為自動化運(yùn)維的第二塊內(nèi)容,下圖為自動化運(yùn)維平臺流程范例。通過cobber可以模板化操作系統(tǒng),系統(tǒng)初始化配置,軟件包版本控制,從而做到整個計算機(jī)集群基礎(chǔ)環(huán)境完全一模一樣。減少了因為基礎(chǔ)環(huán)境不同而導(dǎo)致部署錯誤。
當(dāng)然僅僅是系統(tǒng)的模板標(biāo)準(zhǔn)化還遠(yuǎn)遠(yuǎn)不夠,我們還可以通過結(jié)合Ansible Playbook 將運(yùn)維常用的工具腳本化,這樣不僅僅是為了減少人為因素的出錯點,更可以通過批量執(zhí)行大大的提高工作效率。同時,還可以通過Ansible 進(jìn)行并行的配置管理。
在我設(shè)計的運(yùn)維平臺中有兩個核心組件,分別是告警調(diào)度引擎(messageserver)和事件調(diào)度引擎(jobserver),告警調(diào)度引擎主要作用于分析日常報警信息,通過報警事件、時間、機(jī)器、類別等維度生成圖表。事件調(diào)度引擎的主要功能是根據(jù)相應(yīng)的告警項目,自動處理事件從而實現(xiàn)自動化運(yùn)維的目的。
自動化技術(shù)思想
有了上述的幾張圖和方案,相信運(yùn)維的大部分效率是可以帶動起來的。但是,這真的就是自動化嗎?當(dāng)然不是,自動化運(yùn)維不僅僅是工具上的革新,更多的是思想上的轉(zhuǎn)變,流程上的優(yōu)化,這將會是一個持續(xù)改進(jìn)的過程。
首先,運(yùn)維需要規(guī)范化流程化。其次,運(yùn)維工具容器化,將常用的運(yùn)維工具和公司產(chǎn)品構(gòu)建到容器或者VM中,盡量減少部署時間。再次,日常維護(hù)需腳本化,通過配置管理工具實現(xiàn)自動配置維護(hù),并且盡量減少人工的處理與參與。***,是自動化。
我認(rèn)為一個真正的自動化運(yùn)維平臺并不只是通過人或者通過技術(shù)去減少人工的參與成本,而是需要和運(yùn)維產(chǎn)品相結(jié)合,最終做到智能運(yùn)維。這樣的話產(chǎn)品本身就可以做到自維護(hù),從而形成一個完整的個體。
我們在自動化運(yùn)維平臺建設(shè)的多年實踐中,往往花時間最多的是在運(yùn)維流程優(yōu)化、權(quán)限控制、日志審核、等功能上。后期我們還整合了跳板機(jī)的功能并應(yīng)用整合到我們的自動化運(yùn)維平臺中。
現(xiàn)在部署一套環(huán)境僅需要二十分鐘。100臺服務(wù)器同時上線效率提高了35倍。環(huán)境日常維護(hù)或者應(yīng)用部署上線已經(jīng)很少登陸到單獨(dú)的節(jié)點上去操作,只要通過系統(tǒng)統(tǒng)一的平臺操作基本都能搞定。我想或許自動化運(yùn)維只是Ops到DevOps轉(zhuǎn)型所衍生出的一種特性吧!未來將走向全面智能運(yùn)維時代。