如何打造一款高逼格的運(yùn)維平臺(tái)(詳解三)
業(yè)務(wù)流技術(shù)
上圖是我們具體的一個(gè)業(yè)務(wù)流程,左邊是我們這個(gè)云運(yùn)維平臺(tái)的界面,一個(gè)運(yùn)維請(qǐng)求會(huì)被封裝為一個(gè)消息會(huì)放到消息隊(duì)列里面,schedule模塊接收到消息后按照調(diào)度算法,自動(dòng)分配給ansible節(jié)點(diǎn),ansible節(jié)點(diǎn)通過(guò)ssh到服務(wù)器上執(zhí)行,并將執(zhí)行結(jié)果異步返回給消息隊(duì)列。
schedule的調(diào)度算法與Ansible分布式架構(gòu)
schedule的調(diào)度算法,是我們考慮到我們生產(chǎn)環(huán)境有很多的分區(qū),我們會(huì)根據(jù)他的IP自動(dòng)生成一個(gè)所屬區(qū)域的tag,schedule在發(fā)現(xiàn)這些消息以后,他會(huì)針對(duì)你tag以及目標(biāo)機(jī)器數(shù)據(jù)進(jìn)行拆分,我們把這個(gè)詳細(xì)拆分幾個(gè)消息,ansible去訂閱處理自己的消息。
我們?cè)赼nsible上進(jìn)行一個(gè)改造,所有任務(wù)均有唯一的id,處理完成后返回消息,從而實(shí)現(xiàn)多任務(wù)的并發(fā)異步執(zhí)行。
數(shù)據(jù)可視化
我們?cè)跀?shù)據(jù)可視化方面,我們通過(guò)采集器采集信息,通過(guò)同步器同步其它平臺(tái)信息,存儲(chǔ)在核心數(shù)據(jù)庫(kù),通過(guò)閾值庫(kù)產(chǎn)生進(jìn)行對(duì)比告警,通過(guò)分析函數(shù)庫(kù)進(jìn)行性能分析,并產(chǎn)生一些我們運(yùn)維需要的報(bào)表進(jìn)行可視化管理。
銀行卡組織云運(yùn)維平臺(tái)成果展示
我們平臺(tái)的建設(shè)結(jié)果,我們這個(gè)平臺(tái)上面已經(jīng)完全建設(shè)的一些部分,另外有一些功能我們?cè)陂_發(fā),這個(gè)是我們?cè)趯?shí)際中已經(jīng)上線的平臺(tái),大概有幾千太的虛擬服務(wù)器,我們首先看到這個(gè)信息中心里面有一個(gè)機(jī)房,我們看到一些機(jī)柜,并且配置好每一個(gè)機(jī)柜里面對(duì)應(yīng)的哪些服務(wù)器。
這個(gè)交換機(jī)/F5-物理服務(wù)器-虛擬服務(wù)器自動(dòng)拓?fù)涞捻?yè)面,是我們根據(jù)snmp抓取交換機(jī)、F5信息,通過(guò)anbible抓取物理機(jī)的信息,通過(guò)openstack抓取虛擬機(jī)的信息,根據(jù)上述消息自動(dòng)生成拓?fù)洹?/strong>