上周部門總監(jiān)驴剔,到現(xiàn)場來視察,順便被項目經(jīng)理很愉快的出賣啦。好吧岖瑰,飯點的時候給總監(jiān)演示啦一遍系統(tǒng)叛买。
總監(jiān)的想法果然與眾不同,提出啦以下幾項建議:
1.系統(tǒng)是否能用在其他省得項目組使用蹋订。
2.是否可以將主機(jī)率挣,虛擬機(jī),網(wǎng)絡(luò)設(shè)備也一起加入進(jìn)來露戒,形成一個整體性的系統(tǒng)椒功,且業(yè)務(wù)跟主機(jī),網(wǎng)絡(luò)設(shè)備及防火墻進(jìn)行關(guān)聯(lián)智什。
3.能否直接接入內(nèi)網(wǎng)动漾,直接采集所有設(shè)備的信息,及性能相關(guān)信息。
根據(jù)領(lǐng)導(dǎo)提出的想法荠锭,我這邊進(jìn)行逐步分析旱眯,情況如下:
1.由于系統(tǒng)對于設(shè)備是高度定制化的,除啦光交能通用以外证九,存儲類型眾多删豺,個人的力量無法收集所有的存儲信息。
2.主機(jī)甫贯,網(wǎng)絡(luò)設(shè)備這邊都有商業(yè)化的系統(tǒng)進(jìn)行采集(比如華為的設(shè)備管理軟件吼鳞,emc的高端存儲運維系統(tǒng)),但商業(yè)化的產(chǎn)品基本上是基于設(shè)備的叫搁,而不是基于業(yè)務(wù)的赔桌,通過他們的系統(tǒng)沒法看到屬于哪個業(yè)務(wù)系統(tǒng)。我這邊的設(shè)想是通過api接口或者爬蟲的方式對以上的系統(tǒng)進(jìn)行信息采集渴逻,并且存入自己的數(shù)據(jù)庫疾党,并進(jìn)行業(yè)務(wù)名稱的添加。
3.虛擬機(jī)這塊也是大頭惨奕,經(jīng)常有需求說需要統(tǒng)計某某部門的虛擬機(jī)的量等等雪位,vmware這塊比較好辦,通過python的第三方模塊梨撞,可以直接登入vmware雹洗,進(jìn)行信息采集愚臀。citrix的我就沒則啦先慷。
4.性能采集這塊,由它去吧,我這是基于業(yè)務(wù)的恃锉,而不是基于設(shè)備的, 我最多通過第三方的商業(yè)化產(chǎn)品進(jìn)行抽取數(shù)據(jù)港粱。
系統(tǒng)的重構(gòu)開發(fā):
先上個圖:
1.所有的光交及存儲采集的代碼全部抽取獨立出來螃成,修改成agent旦签,系統(tǒng)通過api封裝,定義接口規(guī)范寸宏。其他運維人員只要懂python宁炫,可以自己寫agent,通過定期的方式將自己所管理的不同類型存儲氮凝,光交信息及服務(wù)器信息通過api的接口進(jìn)行post羔巢。
2.系統(tǒng)層面的views.py
代碼寫的太爛,重復(fù)性太多罩阵,針對權(quán)限這塊比較麻煩朵纷,也需要重構(gòu),需要將業(yè)務(wù)邏輯跟數(shù)據(jù)庫的訪問進(jìn)行分開來寫永脓,而不是像這個系統(tǒng)全部寫在一起,導(dǎo)致權(quán)限設(shè)計這塊相當(dāng)麻煩鞋仍,應(yīng)該也是通過接口的方式進(jìn)行調(diào)用常摧。所有針對數(shù)據(jù)庫的增刪改查寫在一個model_api.py
文件里面,views.py
里面專注業(yè)務(wù)邏輯威创。
model_api.py設(shè)計大致邏輯如下:
class 表名稱:
@權(quán)限檢查
def 增:
@權(quán)限檢查
def 刪:
@權(quán)限檢查
def 改:
@權(quán)限檢查
def 查:
技術(shù)水平在不斷的提升落午,發(fā)現(xiàn)之前寫的代碼簡直爛到渣啦,不過能用就行,整套系統(tǒng)歷時半年肚豺,根據(jù)客戶的需求不斷的定制修改溃斋,現(xiàn)在基本上OK。
最后吸申,好吧梗劫,想法是美好的,現(xiàn)實是骨感的截碴。夠用就行梳侨,重構(gòu)一個人就算啦,太累日丹,有這個精力還不如哦去啃啃django的源代碼走哺,加強(qiáng)對代碼的理解能力。
目錄
django開發(fā)之存儲光交業(yè)務(wù)管理系統(tǒng)第一節(jié)-序言
django存儲光交業(yè)務(wù)管理系統(tǒng)第二節(jié)-pyhon腳本的編寫
django存儲光交業(yè)務(wù)管理系統(tǒng)第三節(jié)-系統(tǒng)初步分析需求
django存儲光交業(yè)務(wù)管理系統(tǒng)第四節(jié)-光交數(shù)據(jù)庫的設(shè)計
django存儲光交業(yè)務(wù)管理系統(tǒng)第五節(jié)-存儲數(shù)據(jù)庫的設(shè)計
django存儲光交業(yè)務(wù)管理系統(tǒng)第六節(jié)-系統(tǒng)的架構(gòu)流程圖
django存儲光交業(yè)務(wù)管理系統(tǒng)第七節(jié)-程序的啟動
django存儲光交業(yè)務(wù)管理系統(tǒng)-菜鳥開發(fā)日記第八節(jié)-目錄的結(jié)構(gòu)說明
django存儲光交業(yè)務(wù)管理系統(tǒng)-菜鳥開發(fā)日記第九節(jié)-系統(tǒng)開發(fā)遇到的坑
django存儲光交業(yè)務(wù)管理系統(tǒng)-菜鳥開發(fā)日記第10節(jié)-業(yè)務(wù)圖表需求
django存儲光交業(yè)務(wù)管理系統(tǒng)-菜鳥開發(fā)日記第11節(jié)-結(jié)束及總結(jié)
………………………………………………………………