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