新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一個(gè)通用應(yīng)用運(yùn)維管控平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)

一個(gè)通用應(yīng)用運(yùn)維管控平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)

作者: 時(shí)間:2018-07-24 來(lái)源:網(wǎng)絡(luò) 收藏

在使用SSH方式情況下并發(fā)的速度會(huì)較差,可能控制在單機(jī)30-50個(gè)任務(wù)同時(shí)進(jìn)行。

本文引用地址:http://m.butianyuan.cn/article/201807/383696.htm

在使用Agent的方式情況下,任務(wù)本身是異步下發(fā)的,可以同時(shí)1000+任務(wù)同時(shí)進(jìn)行。

由于服務(wù)器數(shù)量較多,且分機(jī)房的模式,整個(gè)后端架構(gòu)會(huì)是與目前的UCloud后端架構(gòu)類似的分布式架構(gòu),一個(gè)中心任務(wù)下發(fā)節(jié)點(diǎn),每個(gè)機(jī)房一個(gè)任務(wù)中轉(zhuǎn)節(jié)點(diǎn),每臺(tái)服務(wù)器一個(gè)Agent(或者中轉(zhuǎn)節(jié)點(diǎn)SSH的方式)。

4. 定制任務(wù):

所謂的定制任務(wù),就是可以通過(guò)任務(wù)組裝的方式,將腳本執(zhí)行和文件分發(fā)這兩個(gè)主要功能(可以根據(jù)需要添加其他的功能,比如重啟后的服務(wù)器ping探測(cè),端口探測(cè)等),將上面的這些功能,按照1、2、3、4、5的方式組裝,具體的支持功能如下:

1) 支持使用基礎(chǔ)功能模塊的子任務(wù)組裝成完成任務(wù)

2) 支持設(shè)置每個(gè)子任務(wù)的子步驟的執(zhí)行控制。比如失敗后停止,完成后停止等待確認(rèn),忽略失敗等功能。

3) 支持每個(gè)子任務(wù)的執(zhí)行服務(wù)器ip修改。

定制任務(wù)適用于某些使用頻次較高的任務(wù),比如服務(wù)器初始化上線,代碼版本發(fā)布,軟件包更新等操作。

5. 定時(shí)任務(wù):

定時(shí)任務(wù)是對(duì)普通的基礎(chǔ)任務(wù)以及定制任務(wù)定時(shí)執(zhí)行的功能,該功能的也相對(duì)簡(jiǎn)單,即按照crontab的分時(shí)日月周的語(yǔ)法,支持周期性或者定時(shí)性,也可以按照手機(jī)創(chuàng)建鬧鈴的方式選擇觸發(fā)時(shí)間和觸發(fā)頻率。

具體的實(shí)現(xiàn)方式如下:

1)用戶輸入的時(shí)間計(jì)劃通過(guò)轉(zhuǎn)換后寫到管理機(jī)的crontab服務(wù)中。

2)每次有定時(shí)任務(wù)產(chǎn)生或刪除或修改后生成新的計(jì)劃任務(wù)。

3)計(jì)劃任務(wù)中寫明具體的執(zhí)行命令

4)通過(guò)腳本調(diào)度API的方式實(shí)現(xiàn)任務(wù)的定時(shí)執(zhí)行。

6. 灰度計(jì)劃:

對(duì)于非周期性重復(fù)執(zhí)行的任務(wù),都可以加入灰度計(jì)劃功能,該功能又結(jié)合定時(shí)任務(wù)實(shí)現(xiàn)。

灰度計(jì)劃可以有兩個(gè)維度體現(xiàn):

1)定制任務(wù)中的每個(gè)子任務(wù)的子步驟都可以實(shí)現(xiàn)灰度,即上面所說(shuō)的完成后暫停,或失敗后暫停。

2)物理機(jī)個(gè)數(shù)維度,并發(fā)執(zhí)行的時(shí)候支持自定義灰度計(jì)劃,比如:任務(wù)先執(zhí)行1臺(tái)服務(wù)器,成功后隔多久后可以執(zhí)行第二批服務(wù)器,再間隔一段時(shí)間再執(zhí)行第三批任務(wù)。同時(shí)可以設(shè)置任務(wù)失敗條件,比如:任何一臺(tái)服務(wù)器失敗,則整個(gè)任務(wù)失敗;或當(dāng)失敗服務(wù)器的數(shù)量達(dá)到灰度計(jì)劃服務(wù)器數(shù)量的百分比后整個(gè)任務(wù)放棄執(zhí)行。

上面這些是作業(yè)管理系統(tǒng)的主要功能,當(dāng)然想要實(shí)現(xiàn)整個(gè)作業(yè)管理系統(tǒng)還會(huì)有一些其他的子功能,比如:

1)任務(wù)結(jié)果記錄跟蹤系統(tǒng)。

2)任務(wù)重做,重做任務(wù)子步驟是否重做控制。

3)腳本內(nèi)容安全審核功能。

4)其他暫時(shí)未想到功能。

3.3 配置管理

配置管理功能是整個(gè)管控功能中十分重要的一環(huán),上面的作業(yè)管理系統(tǒng)中很多功能都依賴配置管理系統(tǒng)才能實(shí)現(xiàn)。

配置管理整個(gè)功能經(jīng)過(guò)梳理之后如下圖所示:

下面將依次介紹上面所述的功能:

1)賬戶管理:

所謂的賬戶管理十分簡(jiǎn)單,就是服務(wù)運(yùn)行的時(shí)候所使用的用戶,目前線上的服務(wù)大多都是root用戶,但是有改成業(yè)務(wù)用戶的趨勢(shì),故需要有一個(gè)賬戶管理功能。運(yùn)維人員在使用作業(yè)管理的時(shí)候,選擇相應(yīng)的用戶進(jìn)行任務(wù)執(zhí)行。

該功能可以發(fā)展成用戶權(quán)限管理系統(tǒng),即在該系統(tǒng)中控制每一個(gè)用戶的系統(tǒng)權(quán)限。生成相應(yīng)的權(quán)限配置文件,并下發(fā)到所有服務(wù)器上。不過(guò)用戶管理的功能可能系統(tǒng)運(yùn)維已經(jīng)管理,這里就不再敘述了。

2) 文件管理:

文件管理功能比較基礎(chǔ),其實(shí)主要是對(duì)管理機(jī)上的重要文件進(jìn)行管理,比如代碼版本,腳本文件,軟件包文件等等,文件類型包括:普通文件,文件夾,壓縮文件和模板文件。

文件管理中,用戶按照一定的規(guī)范將所需要的文件放到管理機(jī)上的指定位置,并將相應(yīng)的路徑配置在數(shù)據(jù)庫(kù)中。

文件管理主要用在作業(yè)管理中進(jìn)行文件分發(fā)的基礎(chǔ)文件依賴。

3)腳本管理:

腳本管理也是文件管理中的一種,但需要單獨(dú)管理,腳本是作業(yè)管理系統(tǒng)的基礎(chǔ)依賴。腳本分為基礎(chǔ)系統(tǒng)腳本和用戶自定義腳本兩種。

所謂的基礎(chǔ)系統(tǒng)腳本就是經(jīng)過(guò)嚴(yán)格認(rèn)證過(guò)的,可以重復(fù)多次使用的基礎(chǔ)功能腳本。而用戶自定義腳本指用戶通過(guò)上傳或是通過(guò)web 編輯器提交的腳本文件,存儲(chǔ)下來(lái)用戶后續(xù)可能的重復(fù)使用。

基礎(chǔ)系統(tǒng)腳本和用戶自定義腳本都會(huì)存儲(chǔ)在管理機(jī)的固定位置上,在文件管理中進(jìn)行管理,用戶在使用的時(shí)候選擇對(duì)應(yīng)的腳本名稱即可。

腳本也支持添加標(biāo)簽,方便記憶和查找。

4)分組管理:

分組管理也是基礎(chǔ)功能之一,在作業(yè)系統(tǒng)中腳本執(zhí)行和文件分發(fā)都需要有明確的服務(wù)器ip地址,而分組管理就是將這些ip地址按照特定的用戶自定義的方式來(lái)命名和分類,支持添加標(biāo)簽,用戶在選擇服務(wù)器的時(shí)候可以通過(guò)搜索的方式選擇到一組服務(wù)器中的一個(gè)或幾個(gè)。

分組管理依賴于資源管理系統(tǒng),以資源管理系統(tǒng)的物理機(jī)資源(管理服務(wù)是虛擬機(jī)資源)為依據(jù),用戶選擇一部分服務(wù)器并進(jìn)行命名或添加標(biāo)簽從而得到一個(gè)新的分組。

分組可以分為靜態(tài)分組和動(dòng)態(tài)分組兩種。

所謂的靜態(tài)分組指的是確定完分組后,如需變化必須手動(dòng)添加或修改的分組。這類分組會(huì)占很大一部分。

而動(dòng)態(tài)分組指的是可以通過(guò)對(duì)服務(wù)器資源的某種匹配而自動(dòng)將其添加到某個(gè)分組中的功能,比如說(shuō)某個(gè)機(jī)房新上線N臺(tái)服務(wù)器,可以不需要手動(dòng),而自動(dòng)的添加到某個(gè)組中。這種功能可以通過(guò)手動(dòng)來(lái)實(shí)現(xiàn),在技術(shù)和時(shí)間限制的情況下,可以暫時(shí)不考慮。

分組功能還有組優(yōu)先級(jí)的概念,主要是結(jié)合變量管理、模板管理結(jié)合使用,這些在變量管理和模板管理里面再進(jìn)行介紹。

5)變量管理:

變量管理主要是配合分組管理和模板管理使用,所謂的模板就是在不同的情況層顯不同內(nèi)容的文件,而如何呈現(xiàn)不同內(nèi)容就是在模板中配置了相關(guān)的變量名稱,而變量的具體賦值則需要在變量管理里面體現(xiàn)。

變量管理建議使用yml語(yǔ)法格式來(lái)編寫,比如如下的格式:

region: id: 7001 name: js mongodb: hosts: - 172.27.117.201 - 172.27.117.202 - 172.27.117.203 port: 27017



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉