由于運(yùn)維的瑣碎、故障出現(xiàn)的不確定性以及解決問題的不可控性的存在,所以讓運(yùn)維人痛并快樂著。
運(yùn)維的角度看:好的架構(gòu)不是設(shè)計出來的,而是一步步的演進(jìn)出來的。
命運(yùn)就是這么難以捉摸,當(dāng)你拼盡一切前進(jìn)時才發(fā)現(xiàn)前無大道,想放棄一切后退之時卻后路盡絕,最后生無可戀的縱身一躍時,希望卻不知何時悄然而至。
? 運(yùn)維自動化平臺構(gòu)建
第一階段:標(biāo)準(zhǔn)化
OS級別基礎(chǔ)環(huán)境一致,配置文件統(tǒng)一管理,軟件安裝目錄一致,操控方式一致,監(jiān)控方式一致,日志格式一致,標(biāo)準(zhǔn)化基礎(chǔ)建設(shè)以便將來使用起來方便。
第二階段:自動化
減少響應(yīng)時間,減少人為因素的故障,對業(yè)務(wù)流程進(jìn)行固化,將手工腳本化為界面可操作系統(tǒng),權(quán)限管理聚合在一起,統(tǒng)一管控服務(wù)器等。
第三階段:平臺化
相對于自動化來講平臺化,講究的更為人性化,屏蔽硬代碼,使各方人員的操作習(xí)慣形成工作流,然后給大家更大的自主權(quán)。比如可自主的申請權(quán)限操作、可自主的發(fā)布游戲版本、可自主的查看各集群報錯等。
? 運(yùn)維任務(wù)調(diào)度平臺構(gòu)建
游戲運(yùn)維日常內(nèi)容種類繁多、零散、多變,當(dāng)以定制化系統(tǒng)來應(yīng)對時,會經(jīng)常需要麻煩開發(fā)人員改動代碼來適應(yīng)運(yùn)維場景,所以借鑒OA、CMS系統(tǒng)定制化工作流以此來應(yīng)對,這樣減少開發(fā)人員相應(yīng)的工作量,也可以使運(yùn)維利用自己最熟悉的 shell、python在不改動頁面的前提下,盡快完成功能的開發(fā),加快項目的落地。
第一:定制工作流
基于運(yùn)維人員對各個工作流統(tǒng)一命名、統(tǒng)一部署、統(tǒng)一使用,使得基礎(chǔ)環(huán)境一致性得以落地使用,并將日常工作內(nèi)容固化。
工作流元素:工作流(多個)任務(wù)節(jié)點(diǎn)(具有優(yōu)先級)(多個)進(jìn)程節(jié)點(diǎn)(具有優(yōu)先級)
工作流參數(shù):在執(zhí)行過程中可替換
在定制過程中盡量保證工作流的原子性,一個工作流只做一件事。不要出現(xiàn)歧義
第二:執(zhí)行工作流
定制的工作流可在任意集群上執(zhí)行,執(zhí)行工作流,工作流上可填寫所需變量內(nèi)容。每個任務(wù)節(jié)點(diǎn)單獨(dú)展示,使運(yùn)維方便定位問題,方便定位發(fā)生在哪個服務(wù)器。
第三:工作流程執(zhí)行引擎
工作流之間沒有優(yōu)先級、任務(wù)節(jié)點(diǎn)之間有優(yōu)先級、進(jìn)程節(jié)點(diǎn)之間有優(yōu)先級,所以 工作流之間是并行關(guān)系,任務(wù)節(jié)點(diǎn)之間是串行關(guān)系,進(jìn)程節(jié)點(diǎn)之間是串行關(guān)系。在描述這一切時忽略了服務(wù)器之間并行的關(guān)系,而所有的任務(wù)節(jié)點(diǎn)其實是作用到服務(wù)器上,同一個任務(wù)節(jié)點(diǎn)的不同進(jìn)程節(jié)點(diǎn)是在同一臺服務(wù)器上執(zhí)行的。在工作流數(shù)增大或者單個工作流延時比較長的情況下,需要考慮分布執(zhí)行的情況,用生產(chǎn)者和消費(fèi)者加鎖的方案解決。
個人微信公眾號,歡迎各位交流