運維自動化與標準規范化:解析、設計及實現(1)
2016-02-20 19:34:07 來源: 史影/童寧/韓曉光 高效運維 評論:0 點擊:
本文主要介紹我們的運維自動化系統如何設計與實現的,在介紹運維自動化時,首先需要先探討一下運維標準規范化與自動化關系,因為這是大多數運維自動化的必經之路,也是很多運維體系成長的必經之路。
一、運維標準化、規范化、流程化
要做運維自動化,首先要落實運維體系的標準化、規范化、流程化。否則,如果不規范標準化,很難具體實施運維自動化。
在開發運維自動化系統過程與執行中,會有很多事情無法開展,或很難執行下去。
1.1 對于運維自動化與標準規范化的認識
對于運維自動化、標準規范化的認識與理解。
不同企業圈子,每個人的理解總會有差異性,但總體方向應該是一致的:我們需要運維自動化、標準化,因為它能促使我們的工作更加高效、智能、有規則,有預見性……對于運維自動化,標準規范化的認識,這里舉例說明兩種極端類型。
極端類型一:極端排斥流程標準及自動化,認為這是噱頭,不干實事,不出成果。
這種類型的人做事貌似風風火火,思考規劃10分鐘,邊想邊干1整天,結果到了明天再重來——典型地邊計劃邊實施邊填坑,結果是又忙又亂又出錯。
其實這種類型的問題就出在:事前沒有規劃好,事中沒有實施好,事后沒有總結好,無規矩不成方圓。
針對該類型,我們的觀點是:標準規范與自動化是當前主流運維成熟進階的必經之路。
流程標準很重要,必須要執行與持續完善,這是運維自動化以及公司運營一切的基礎。
看過復雜的航空線路圖,航海線路圖,鐵路交通圖吧!是不是會感嘆標準化與自動化的重要性。
運維工作也是一樣的道理,例如在實際項目過程中,你要上新業務買設備,則需要提出技術需求,找財務、上級會簽審批,然后還得招投標(內部邀標),簽合同,收到貨得付款,設備入庫備案,初始化設備,自動化部署系統,自動化部署應用,自動采集信息與告警……等等,正是這些規范流程,運維自動化才使我們的運維工作高效能、高質量、低風險。
極端類型二:極端追求標準流程。例如還是上述購新業務及采購設備流程。該類型的人做事非常規范細致:
while (true): {
調研;
開會;
統計需求;
提交審批;}
如此一遍又一遍的死循環,必須做到極致。如此結果是今年的需求,明年服務器才到貨,后年業務才上線,為了部署一次性就全面全部OK,就費盡窮舉一切可能,但凡有例外,就認為不是自動化,標準化。
這樣做貌似流程規范做到了天衣無縫,但其結果往往是人算不如天算,因為時間事情隨時在變,最后在實際生產中還是會有意外尷尬事情發生……
針對該類型,我們的觀點是:流程規范是最佳實踐方法論,但不是目的。
從哲學角度,這個世界不完美,因此2/8原則與持續性改進應該是思考與解決事情的一種最佳實踐。流程標準固然很重要,但是流程標準目的是為了很好地執行并解決事情,而不是要卡死、堵死一系列意外。
我們沒必要糾結于高大全的標準與自動化,我們需要從運維需求出發,痛點出發,持續改進與解決運維實際問題。
例如,在做自動化部署過程,總會有一些例外的情況。例如批量部署salt minion,由于系統版本,安裝批次不一樣。導致有些salt安裝因沒有依賴包而部署失敗。
這就要考慮,自動部署環節是要考慮增加更多狀態部署細節,還是保留一個精簡的狀態部署方案。
或許對于一個例外問題,例外分析與解決,而不是為了這一個例外而變動所有的全體。記住,不要認為搞個運維自動化系統,部署一個saltstack,puppet工具就能解決所有運維問題。
1.2 運維自動化與標準規范化的關系
任何一個企業運行都有很多配套的公司流程標準,否則很多事情將一團亂麻,根本無法推行,運維自動化也不例外,實施自動化前提需要標準規范與流程化。
比如,如果系統版本,主機名,IP不統一規范,則可能會導致saltstack部署執行,zabbix自動化發現,日志監控部署,應用部署等一系列問題。
沒有良好的標準與自動化解決方案,運維人員常會背黑鍋
運維自動化需要規范標準化,當然運維自動化又促進規范標準化。運維自動化,標準化需要落實,不能空談,不能只說不練,有“法“不依。
標準要深入人心,融入日常行為思想中,達到個人與集體的潛移默化間的一致性、共通性。例如,我們總會碰到一些不規范的程序員,隨意往線上部署了一段代碼,搞得系統緩慢,最后由運維人員背黑鍋。
標準與自動化往往是由業務、IT環境需求驅動的
諸如上述,運維自動化與標準化往往是由業務,IT環境驅動的,逐步優化完善出來的,或者是被動逼出來的。比如,由于業務增長迅速,系統(應用)環境需求天天都有很多。
那你還是手工一臺臺系統(應用)部署么,或許就算鍵盤敲到手抽筋仍然沒完成業務需求,這時突然你又發現部署的代碼不一致…..此時估計整個人都快要”瘋掉了”,或許此時你對運維自動化,標準規范化的理解與需求會透徹骨子里。
標準與自動化需要持續性改進優化
運維自動化不是一蹴而就,而是逐漸持續性優化改進(ITIL理念)和實施的。
沒有任何一個企業創立之初,其IT架構就非常高大上,上來就構建全球機房,初始就設計一個超級高性能,高安全的系統,立刻滿足上億的UV請求……這些或許沒必要,也幾乎不可能。
