劉來(lái)權(quán)
摘? 要: 大數(shù)據(jù)時(shí)代的來(lái)臨以及人工智能的快速發(fā)展,自動(dòng)化運(yùn)維必將替代人工運(yùn)維,這已經(jīng)是未來(lái)發(fā)展的一種必然。而Python 語(yǔ)言因其強(qiáng)大的第三方程序庫(kù),在系統(tǒng)運(yùn)維方面有著非常大的優(yōu)勢(shì)。本文主要介紹自動(dòng)化運(yùn)維的重要性以及探討Python 語(yǔ)言在自動(dòng)化運(yùn)維方面的應(yīng)用。
關(guān)鍵詞: 自動(dòng)化;運(yùn)維;應(yīng)用;系統(tǒng)
【Abstract】: With the coming of Big Data Era and the fast development of artificial intelligence, the manual operation and maintenance will be replaced by automatic operation and maintenance and this is a necessary trend for the future development. Meanwhile, the Python language shows a great advantage in the system operation and maintenance due to its powerful third party program base. This paper mainly introduces the importance of automatic operation and maintenance and explores the application of Python language in automatic operation and maintenance.
【Key words】: Automation; Operation and maintenance; Application; System
0? 引言
目前,很多小中型企業(yè)信息化系統(tǒng)的運(yùn)維方式還是比較原始的,主要通過(guò)運(yùn)維人員面對(duì)面或遠(yuǎn)程訪問(wèn)服務(wù)端進(jìn)行的,比如對(duì)服務(wù)器的安裝、配置、軟件部署、服務(wù)發(fā)布以及操作系統(tǒng)的監(jiān)控等等都由人工方式完成,同時(shí)系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)的任何問(wèn)題都需要以運(yùn)維人員自己的實(shí)際工作經(jīng)驗(yàn)去進(jìn)行判斷并且修正。人工運(yùn)維方式可能會(huì)出現(xiàn)操作員的操作失誤,而導(dǎo)致同一組服務(wù)器配置出現(xiàn)差異,再或者以經(jīng)驗(yàn)進(jìn)行系統(tǒng)的運(yùn)維判斷也會(huì)出現(xiàn)誤判等情況。隨著企業(yè)發(fā)展過(guò)程中業(yè)務(wù)量的不斷增加,網(wǎng)絡(luò)環(huán)境的進(jìn)一步復(fù)雜,服務(wù)器數(shù)量的不斷增長(zhǎng),運(yùn)維的任務(wù)量也在逐步增加,人工運(yùn)維的成本太高,并且也難以滿足信息系統(tǒng)的需求,這時(shí)候,要求運(yùn)維人員開始使用腳本和批量管理工具來(lái)提升工作效率。而將Python應(yīng)用在信息化系統(tǒng)的運(yùn)維中,不但能進(jìn)一步提高系統(tǒng)的運(yùn)維效率和運(yùn)維質(zhì)量,而且成本也比人工運(yùn)維方式低很多[1]。
1? Python介紹
1991年,第一個(gè)Python編譯器(同時(shí)也是解釋器)誕生。Python隱藏機(jī)器層面的細(xì)節(jié),將這些機(jī)器層面的細(xì)節(jié)交給編譯器處理,這樣編程人員就可以將更多的精力放到邏輯層面的編程思考上來(lái),提升了編程人員的工作效率。Python從最開始設(shè)計(jì)就非常重視可拓展性(extensibility)。Python支持各個(gè)層次上的拓展功能,在底層,Python可以引用C語(yǔ)言的庫(kù),也可以寫C程序,然后將寫好的C程序編譯成.so文件,之后在Python中作引用。在高層,程序員可以直接寫.py文件作為拓展模塊來(lái)用。Python先制定好房子的整體框架,程序員就可以在這個(gè)框架下自由自在的進(jìn)行設(shè)計(jì)并且拓展[2]。
Python語(yǔ)言靈活、開源、免費(fèi)、方便拓展,既支持面向過(guò)程,也支持面向?qū)ο缶幊?。Python被親切的稱為“膠水語(yǔ)言”,也被喜歡它的編程人員贊美為“最美麗的”編程語(yǔ)言。Python之所以被稱為“膠水語(yǔ)言”,是因?yàn)樗胸S富的第三方程序庫(kù),而這些標(biāo)準(zhǔn)庫(kù)的功能相當(dāng)強(qiáng)大,Python的開發(fā)者來(lái)自全世界的不同領(lǐng)域,他們將不同領(lǐng)域的優(yōu)點(diǎn)帶給Python。
Python從發(fā)布到現(xiàn)在,在近二十多年的時(shí)間里,因其語(yǔ)法的簡(jiǎn)潔性、第三方程序庫(kù)的強(qiáng)大,快速發(fā)展,應(yīng)用拓展到各個(gè)領(lǐng)域,成為今天最流行的腳本語(yǔ)言之一。Python受到了越來(lái)越多的關(guān)注,JetBrains根據(jù)最新的數(shù)據(jù)報(bào)告結(jié)果得出,最受歡迎的編程語(yǔ)言是 Java 和 Python。而在TIOBE榜單也是常年穩(wěn)居前五,排名一直呈上漲趨勢(shì)[3],2019年7月的排名如表1所示。
Python也因?yàn)槿缟系膬?yōu)點(diǎn),目前幾乎應(yīng)用于各個(gè)專業(yè)領(lǐng)域,比如數(shù)據(jù)分析處理、統(tǒng)計(jì)、計(jì)算可視化、人工智能等,同時(shí)在編寫自動(dòng)化腳本中也使用頗多。圖1則是 TIOBE關(guān)于Python應(yīng)用的數(shù)據(jù)? ?調(diào)查。
2? 自動(dòng)化運(yùn)維的重要性
隨著企業(yè)發(fā)展過(guò)程中業(yè)務(wù)量的不斷增加,網(wǎng)絡(luò)環(huán)境的進(jìn)一步復(fù)雜,服務(wù)器數(shù)量的不斷增長(zhǎng),運(yùn)維的任務(wù)量也在逐步增加,人工運(yùn)維的成本太高,并且也難以滿足信息系統(tǒng)的需求,自動(dòng)化運(yùn)維則可以解決如上這些問(wèn)題,尤其適合人力有限的情況。自動(dòng)化運(yùn)維有如下好處。
(1)低成本:若系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)系統(tǒng)中斷、人為錯(cuò)誤、人手不足等情況,都會(huì)增加企業(yè)成本或者付出相當(dāng)大的代價(jià),而自動(dòng)化運(yùn)維一方面可以提高效率,另一方面可以減少人為失誤和降低人手需求,達(dá)到降低企業(yè)成本的需求。
(2)提高生產(chǎn)力:將運(yùn)維從手動(dòng)工作轉(zhuǎn)向自動(dòng)化,除了顯著提升效率,也可以將運(yùn)維人員的工作從繁瑣的運(yùn)維工作中釋放出來(lái),將精力應(yīng)用于更能體現(xiàn)創(chuàng)造力的工作中去。
(3)減少錯(cuò)誤:人無(wú)完人,即使再謹(jǐn)慎,人總會(huì)犯錯(cuò),尤其是面對(duì)大量重復(fù)性的工作。通過(guò)運(yùn)維自動(dòng)化,人為因素得到消除,人為錯(cuò)誤大大降低,自動(dòng)化運(yùn)維的錯(cuò)誤也就比較少見。
(4)高可用:系統(tǒng)正常運(yùn)維過(guò)程中一旦發(fā)生宕機(jī)等事件,企業(yè)在經(jīng)濟(jì)上、聲譽(yù)上都會(huì)遭受巨大的損失,所以,運(yùn)維最先要保證系統(tǒng)的高可用性,這也是自動(dòng)化運(yùn)維的目的。自動(dòng)化運(yùn)維過(guò)程中,自動(dòng)化保存、自動(dòng)化恢復(fù)、24小時(shí)系統(tǒng)監(jiān)控等一些列自動(dòng)化運(yùn)維的工作,可以達(dá)到降低網(wǎng)絡(luò)停用時(shí)間、使系統(tǒng)快速恢復(fù),以減少網(wǎng)絡(luò)故障帶來(lái)的損失。