自動化運維其實也算是老生常談,一談談了十幾年,但卻一直沒有質的提升。數據中心的運維工作反而變得越來越繁重與復雜,當然這和這些年數據中心巨大的變化緊密相關,數據中心承載的各種應用越來越多,運維工作也變得異常復雜,簡單的自動化運維已經不能徹底解決數據中心運維工作效率低下的問題。以前,數據中心運維人員就像流水線上的一名工人,不斷重復地做著同樣的工作,枯燥又容易出錯,自動化運維就是要引入一些工具,通過這些工具來替代運維人員來工作,從而減少人力成本,同時提升數據中心的運維水平。
那么自動化運維,其實就是向數據中心引入一批工具,這批工具是“可編程”的,你只需要為這批工具寫上幾行“代碼”,它便會幫你自動完成所有的工作,而這批工具就是實現自動化運維的手段。這些工具可以分為三大類:預備、配置管理和監控,從這三大方面代替人力工作。預備自動化工具常見的有Cobbler、Kickstart、OpenQRM、Spacewalk。在早期,Linux管理員整理出一個軟件包列表,通過rpm進行批量軟件安裝。后來,我們用Kickstart來執行無人值守的Linux安裝。現在,Cobbler把這個功能提升到了一個新的高度:它實現了物理機與虛擬機的并行系統構建,并且可以進行DHCP和DNS的配置。OpenQRM是開源系統管理解決方案,用來管理企業數據中心業務,同時包括虛擬環境管理、數據中心自動化,是一個基于Web的開源云計算和數據中心管理平臺。Spacewalk是一個Linux和Solaris的系統管理解決方案,它是Red Hat網絡衛星項目衍生出來的上游社區項目。這些預備管理工具多是針對服務器的,對服務器進行自動化管理,如果不是自己親身使用和體驗,很難說這些工具軟件孰好孰壞,每種工具都有其適合的應用場合,這些工具尤其在互聯網企業的數據中心運維中使用極為廣泛,這些工具需要操作者具有較高的計算機編程能力,對運維人員的要求較高。
配置管理工具用來設置參數或者開啟一個新服務器上的服務。配置管理可以用于服務器自動構建。服務器自動構建工具可以加速部署速度,并可以在短時間內大規模部署服務器,同時也可以讓構建過程更容易復制。在發生嚴重故障時,還可以重建架構。配置管理工具常見的有Chef、ControlTier、Func、Puppet。比如Chef是一款自動化服務器配置管理工具,可以對管理的對象實行自動化配置,Chef由三大組件組成:Chef Server、Chef Workstation和 Chef Node。Chef Server 是核心服務器,維護了一套配置腳本,與每個被管節點交互并給出配置指令,Chef Workstation提供了我們與 Chef Server交互的接口:我們在Workstation上創建定義Cookbook,并將 Cookbook上傳到Chef Server上以保證被管機器能從Chef Server 上取得最新的配置指令。Chef Node是安裝了chef-client并注冊了的被管理節點,可以是物理機或者虛擬機或者其他對象。Chef Node每次運行chef-client時都會從Chef Server端取得最新的配置指令并按照指令配置自己。ControlTier是一個完全開放源碼系統的自動化服務管理活動的多個服務器和多個應用層的工具,它可以對數據中心里的各種設備進行自動配置下發和管理。
這些大部分工具都是實時的,可以用來進行變動并執行某些任務。它們卻缺乏關于當前系統狀況的信息,于是監控工具就有了用武之地。對于傳統的系統管理員而言,監控無非是在發生錯誤的時候通過一個頁面或者一封郵件提醒他們。監控工具常見的有Nagios、OpenNMS、Zabbix、Zenoss Core等等。Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等,當發現監控設備運行異常時,自動發出告警,還可以將告警消息發給運維人員,以便可以得到及時處理,避免異常對業務造成嚴重影響。OpenNMS是一個企業級基于Java/XML的分布式網絡和系統監控管理平臺,OpenNMS是你管理網絡的絕好工具,它能夠顯示你網絡中各中終端和服務器的狀態和配置,可以監控各個網絡設備運行的狀態,互通情況,一旦出現異常立即可以上報異常告警。
說了這么多工具,不難發現這些工具主要針對的都是服務器的,部分工具有網絡監控的功能,而且這些軟件都是開源的、免費的,大家都可以根據自己的數據中心需要對這些軟件進行修改,更加適應自己的數據中心,這樣這些工具獲得了很廣泛的應用。網絡是數據中心里最封閉的一個系統,對網絡進行管理的軟件也無法完全做到開源,所以那些免費的、網絡上的軟件都不是很好用,不得不使用網絡設備廠家提供的網絡管理軟件,才能達到很好的適配效果。工具畢竟是死的,人是活的,工具只能按照繼承的順序來執行一些人為提前設置好的腳本而已,這樣的自動化應該只能算是一種低級的運維方式。真正的自動化運維是可以和數據中心有機結合,數據中心運行中配置自動下發、網絡自動調節,形成對應各種復雜場景的自適應數據中心,數據中心自動化運行。
這些工具的出現,為數據中心運維提供了極大方便,是自動化運維的具體表現。數據中心要走自動化運維的路,就需要大批地使用這些工具,通過這些工具逐漸代替運維人員的工作。運維人員通過自動化運維,將規范、常規的操作固定化,減少重復的手工操作,避免誤操作。通過模板化,根據模塊信息智能化分析,實現快速發單,同時串并行控制,提升模塊更新效率,這就是數據中心自動化運維的時代,只有堅持走自動化運維的路,數據中心的運維效能才會有質的提升,讓我們沿著數據中心自動化運維的道路堅持走下去。