自動化運(yùn)維在中交興路的應(yīng)用
原創(chuàng)【51CTO專稿】在人們的印象中,只有大型的互聯(lián)網(wǎng)企業(yè)(如:百度、新浪、淘寶等)才能用到自動化運(yùn)維部署,其實(shí)不然,現(xiàn)在很多其他類型的企業(yè)也在運(yùn)用自動化運(yùn)維部署這一技術(shù)。立足于交通行業(yè),營運(yùn)車輛監(jiān)控管理和服務(wù)為基礎(chǔ),專業(yè)從事交通信息化領(lǐng)域的技術(shù)研發(fā)、解決方案提供、運(yùn)營服務(wù)和相關(guān)增值服務(wù)于一體的全國性綜合交通信息服務(wù)提供商北京中交興路信息科技有限公司便是如此。
中交興路走向自動化運(yùn)維之路
為了了解自動化運(yùn)維在中交興路的應(yīng)用情況,記者專程采訪了中交興路負(fù)責(zé)運(yùn)維自動化軟件開發(fā)領(lǐng)域的運(yùn)維工程師鄧?yán)冢?a target="_blank" >博客)。談到以前的傳統(tǒng)運(yùn)維的經(jīng)歷,鄧?yán)诶蠋煵唤锌环?ldquo;傳統(tǒng)運(yùn)維主要通過手動或者寫腳本方式來進(jìn)行維護(hù)、升級、上線應(yīng)用平臺,在工作的時候,沒有更新與修改的日志,都是研發(fā)對平臺有了最新的版本,運(yùn)維就得升級,有的時候不知道升級什么內(nèi)容,如果升級的次數(shù)過多,間隔過短,都不知道修改與升級了什么,一旦出現(xiàn)事故,就會有相當(dāng)長的時間來解決此問題。
相對于傳統(tǒng)的運(yùn)維而言,自動化運(yùn)維有很多優(yōu)勢,以下三個方面更為突出:
(1)有記錄可循:比如使用Svn進(jìn)行版本控制,一旦新版本出現(xiàn)問題,可以恢復(fù)舊版本,為解決問題提供了很大的便利。
(2)使用開源的自動化軟件:比如在進(jìn)行系統(tǒng)安裝的時候,使用Cobbler或者Kickstart,進(jìn)行配置的時候使用Puppet,進(jìn)行監(jiān)控的時候使用Nagios、Cacti、Zabbix等,通過這些軟件能極大的幫助我們對系統(tǒng)進(jìn)行安裝、部署與監(jiān)控,節(jié)省我們的時間。我們不但要能實(shí)時的了解系統(tǒng)的運(yùn)行情況,還需要能預(yù)判系統(tǒng)將要出現(xiàn)的問題,盡量的在出現(xiàn)問題前解決問題,這才是我們運(yùn)維真正需要做的,而不是忙著救火。
(3)有相應(yīng)的制度:想要實(shí)現(xiàn)自動化制度,就一定要有自動化運(yùn)維的實(shí)行標(biāo)準(zhǔn),出現(xiàn)各個問題,都有相應(yīng)的解決方法,這樣的做事效率將會有很大的提升。
建立高效IT運(yùn)維自動化管理部署
記者與鄧?yán)诶蠋熣劦街薪慌d路目前的自動運(yùn)維情況時,他談到:"從今年2月份開始,中交興路就開始了自動化運(yùn)維的部署,系統(tǒng)部署類工具使用Cobbler;這個軟件是朋友推薦的,加上測試過一段時間,使用后覺得比Kickstart更方便,Cobbler支持命令行管理,web界面管理,還提供了API接口,可以方便二次開發(fā)使用。配置類工具選擇Puppet;可管理配置文件、用戶、Cron任務(wù)、軟件包、系統(tǒng)服務(wù)等。非常的方便。監(jiān)控類工具是自己開發(fā)的監(jiān)控系統(tǒng)Php+Mysql+Shell。"
公司監(jiān)控系統(tǒng)有3個階段:
1、 使用Nagios+Cacti
在這個階段主要是通過Nagios監(jiān)控服務(wù)運(yùn)行情況,使用Cacti監(jiān)控系統(tǒng)資源情況,雖然軟件監(jiān)控的時候沒問題,但由于公司在全國20個省都有機(jī)房,使用Nagios+Cacti監(jiān)控起來十分麻煩,使用Nagios分布式監(jiān)控也十分麻煩;
2、使用Shell腳本監(jiān)控公司服務(wù)
在這個階段主要是通過Shell腳本定制的,根據(jù)公司的實(shí)際情況來進(jìn)行專門監(jiān)控,雖然通過這樣的方式監(jiān)控很方便,但在進(jìn)行日常維護(hù)的時候很麻煩,100+以上臺機(jī)器,每天光巡檢就是累死人的工作量。
3、使用我自己搭建的Php+Mysql+Shell監(jiān)控系統(tǒng)
通過我自己搭建的監(jiān)控系統(tǒng)監(jiān)控系統(tǒng),解決了前2個問題,不僅能通過Shell腳本根據(jù)公司的實(shí)際需求來監(jiān)控,而且能通過Php來在Web端查看監(jiān)控的內(nèi)容,并且能通過Gnuplot軟件生成相應(yīng)的數(shù)據(jù)圖。”
自動化運(yùn)維部署細(xì)節(jié)分析
“自動化運(yùn)維固然優(yōu)勢明顯,但是在部署的過程中也應(yīng)注意一些小細(xì)節(jié),”鄧?yán)诶蠋熣劦饺c(diǎn),
“一、選擇一個適合自己的軟件,要對相應(yīng)的軟件做相應(yīng)的了解,比如你想進(jìn)行系統(tǒng)部署類的軟件,你是選擇Kickstart還是Cobbler,哪個的功能更適合你,哪個你更熟悉的配置與管理,同時一定要在虛擬環(huán)境測試成功后,在試運(yùn)行環(huán)境里測試,都沒有問題在再生產(chǎn)里部署。
二、一定要有一個完整的思路,不要想做什么就做什么。比如你在進(jìn)行配置類如Puppet的安裝與部署的時候,如果你沒有一個完整的思路,想一個做一個,比如域名采用什么方式都不考慮、主從端的時間都不同步、主從的IP不能互相平通,那么你肯定做一個失敗一個,不能成功實(shí)行運(yùn)維自動化。
三、實(shí)現(xiàn)運(yùn)維自動化要有相應(yīng)的流程與制度,如果你只是通過軟件來實(shí)現(xiàn)了自動化,但在流程與制度上沒有相應(yīng)的措施,比如想通過Svn+Puppet對監(jiān)控系統(tǒng)進(jìn)行版本控制與自動化的部署的時候,研發(fā)與運(yùn)維隨意的對Svn內(nèi)容進(jìn)行修改與刪除,那么運(yùn)維自動化不如不實(shí)行,一但這樣的實(shí)行,你出現(xiàn)問題的機(jī)率會非常的大,而且問題的解決時間也會非常的多,得不償失。”
下面是某公司事故升級與處理流程圖,從用戶的問題反饋到各部門之間的調(diào)查分析、協(xié)調(diào)工作都有詳細(xì)的規(guī)劃。
總結(jié):
自動化運(yùn)維會給IT人員帶來便利,同時會減少IT人員的投入,在今天這樣硬盤、CPU價格低廉的日子,公司的服務(wù)器數(shù)量會增加的非常的快,如果還是向以前那樣通過手工或者腳本來升級、部署、修改系統(tǒng)的話,你會發(fā)現(xiàn)你的工作時間嚴(yán)重不足,而且出現(xiàn)問題的機(jī)率也很大,解決問題的時間也會很長,每天忙著救火,自己累不說,領(lǐng)導(dǎo)也對這樣的運(yùn)維不滿意,職位與薪資自然無法得到增長。如果你會自動化運(yùn)維的話,你就會發(fā)現(xiàn),其實(shí)管理100+的機(jī)器非常的簡單,一個人就可以做到系統(tǒng)部署(使用Cobbler)、系統(tǒng)軟件部署與管理(使用Puppet)、系統(tǒng)服務(wù)與資源的監(jiān)控(使用Nagios+Cacti或者其他),通過這些開源的自動化運(yùn)維軟件,來減少我們的工作量,減少錯誤產(chǎn)生頻率,增加我們的休息時間,來使我們能有更多的時間來學(xué)習(xí)與做其他自己想做的事。
專題推薦