運維自動化與標準規(guī)范化:解析、設(shè)計及實現(xiàn)
本文主要介紹我們的運維自動化系統(tǒng)如何設(shè)計與實現(xiàn)的,在介紹運維自動化時,首先需要先探討一下運維標準規(guī)范化與自動化關(guān)系,因為這是大多數(shù)運維自動化的必經(jīng)之路,也是很多運維體系成長的必經(jīng)之路。
一、運維標準化、規(guī)范化、流程化
要做運維自動化,首先要落實運維體系的標準化、規(guī)范化、流程化。否則,如果不規(guī)范標準化,很難具體實施運維自動化。
在開發(fā)運維自動化系統(tǒng)過程與執(zhí)行中,會有很多事情無法開展,或很難執(zhí)行下去。
1.1 對于運維自動化與標準規(guī)范化的認識
對于運維自動化、標準規(guī)范化的認識與理解。
不同企業(yè)圈子,每個人的理解總會有差異性,但總體方向應(yīng)該是一致的:我們需要運維自動化、標準化,因為它能促使我們的工作更加高效、智能、有規(guī)則,有預(yù)見性……對于運維自動化,標準規(guī)范化的認識,這里舉例說明兩種極端類型。
極端類型一:極端排斥流程標準及自動化,認為這是噱頭,不干實事,不出成果。
這種類型的人做事貌似風(fēng)風(fēng)火火,思考規(guī)劃10分鐘,邊想邊干1整天,結(jié)果到了明天再重來——典型地邊計劃邊實施邊填坑,結(jié)果是又忙又亂又出錯。
其實這種類型的問題就出在:事前沒有規(guī)劃好,事中沒有實施好,事后沒有總結(jié)好,無規(guī)矩不成方圓。
針對該類型,我們的觀點是:標準規(guī)范與自動化是當(dāng)前主流運維成熟進階的必經(jīng)之路。
流程標準很重要,必須要執(zhí)行與持續(xù)完善,這是運維自動化以及公司運營一切的基礎(chǔ)。
看過復(fù)雜的航空線路圖,航海線路圖,鐵路交通圖吧!是不是會感嘆標準化與自動化的重要性。
運維工作也是一樣的道理,例如在實際項目過程中,你要上新業(yè)務(wù)買設(shè)備,則需要提出技術(shù)需求,找財務(wù)、上級會簽審批,然后還得招投標(內(nèi)部邀標),簽合同,收到貨得付款,設(shè)備入庫備案,初始化設(shè)備,自動化部署系統(tǒng),自動化部署應(yīng)用,自動采集信息與告警……等等,正是這些規(guī)范流程,運維自動化才使我們的運維工作高效能、高質(zhì)量、低風(fēng)險。
極端類型二:極端追求標準流程。例如還是上述購新業(yè)務(wù)及采購設(shè)備流程。該類型的人做事非常規(guī)范細致:
while (true): {
調(diào)研;
開會;
統(tǒng)計需求;
提交審批;}
如此一遍又一遍的死循環(huán),必須做到***。如此結(jié)果是今年的需求,明年服務(wù)器才到貨,后年業(yè)務(wù)才上線,為了部署一次性就全面全部OK,就費盡窮舉一切可能,但凡有例外,就認為不是自動化,標準化。
這樣做貌似流程規(guī)范做到了天衣無縫,但其結(jié)果往往是人算不如天算,因為時間事情隨時在變,***在實際生產(chǎn)中還是會有意外尷尬事情發(fā)生……
針對該類型,我們的觀點是:流程規(guī)范是***實踐方法論,但不是目的。
從哲學(xué)角度,這個世界不***,因此2/8原則與持續(xù)性改進應(yīng)該是思考與解決事情的一種***實踐。流程標準固然很重要,但是流程標準目的是為了很好地執(zhí)行并解決事情,而不是要卡死、堵死一系列意外。
我們沒必要糾結(jié)于高大全的標準與自動化,我們需要從運維需求出發(fā),痛點出發(fā),持續(xù)改進與解決運維實際問題。
例如,在做自動化部署過程,總會有一些例外的情況。例如批量部署salt minion,由于系統(tǒng)版本,安裝批次不一樣。導(dǎo)致有些salt安裝因沒有依賴包而部署失敗。
這就要考慮,自動部署環(huán)節(jié)是要考慮增加更多狀態(tài)部署細節(jié),還是保留一個精簡的狀態(tài)部署方案。
或許對于一個例外問題,例外分析與解決,而不是為了這一個例外而變動所有的全體。記住,不要認為搞個運維自動化系統(tǒng),部署一個saltstack,puppet工具就能解決所有運維問題。
1.2 運維自動化與標準規(guī)范化的關(guān)系
任何一個企業(yè)運行都有很多配套的公司流程標準,否則很多事情將一團亂麻,根本無法推行,運維自動化也不例外,實施自動化前提需要標準規(guī)范與流程化。
比如,如果系統(tǒng)版本,主機名,IP不統(tǒng)一規(guī)范,則可能會導(dǎo)致saltstack部署執(zhí)行,zabbix自動化發(fā)現(xiàn),日志監(jiān)控部署,應(yīng)用部署等一系列問題。
沒有良好的標準與自動化解決方案,運維人員常會背黑鍋
運維自動化需要規(guī)范標準化,當(dāng)然運維自動化又促進規(guī)范標準化。運維自動化,標準化需要落實,不能空談,不能只說不練,有“法“不依。
標準要深入人心,融入日常行為思想中,達到個人與集體的潛移默化間的一致性、共通性。例如,我們總會碰到一些不規(guī)范的程序員,隨意往線上部署了一段代碼,搞得系統(tǒng)緩慢,***由運維人員背黑鍋。
標準與自動化往往是由業(yè)務(wù)、IT環(huán)境需求驅(qū)動的
諸如上述,運維自動化與標準化往往是由業(yè)務(wù),IT環(huán)境驅(qū)動的,逐步優(yōu)化完善出來的,或者是被動逼出來的。比如,由于業(yè)務(wù)增長迅速,系統(tǒng)(應(yīng)用)環(huán)境需求天天都有很多。
那你還是手工一臺臺系統(tǒng)(應(yīng)用)部署么,或許就算鍵盤敲到手抽筋仍然沒完成業(yè)務(wù)需求,這時突然你又發(fā)現(xiàn)部署的代碼不一致…..此時估計整個人都快要”瘋掉了”,或許此時你對運維自動化,標準規(guī)范化的理解與需求會透徹骨子里。
標準與自動化需要持續(xù)性改進優(yōu)化
運維自動化不是一蹴而就,而是逐漸持續(xù)性優(yōu)化改進(ITIL理念)和實施的。
沒有任何一個企業(yè)創(chuàng)立之初,其IT架構(gòu)就非常高大上,上來就構(gòu)建全球機房,初始就設(shè)計一個超級高性能,高安全的系統(tǒng),立刻滿足上億的UV請求……這些或許沒必要,也幾乎不可能。
#p#
二、運維自動化系統(tǒng)設(shè)計
如下以一個實際的運維自動化系統(tǒng)為例,介紹一些該系統(tǒng)平臺的設(shè)計與實現(xiàn)的內(nèi)容。
2.1 運維自動化需求
隨著業(yè)務(wù)規(guī)模逐漸增大,IT運維環(huán)境會越來越龐大復(fù)雜,這些將驅(qū)使運維工作需要科學(xué)規(guī)范化的管理。
這要求我們用較少的人力、物力資源做更多的工作,必須高效、準確執(zhí)行任務(wù)。
當(dāng)前市場上已經(jīng)有很多成熟的(商業(yè)、開源)運維產(chǎn)品工具,各有特色也各有利弊,這也同時造成一個尷尬局面:運維人員要不斷學(xué)習(xí)和管理很多運維產(chǎn)品工具,但卻很難找出一個可以很好適應(yīng)本企業(yè)(持續(xù)不斷)定制化需要的產(chǎn)品工具。
因此,很多有實力的企業(yè)都會選擇自主運維及開發(fā)。
從運維大環(huán)境來看,IT運維綜合管理已成為主流運維管理發(fā)展方向,運維+開發(fā)成為運維發(fā)展的大趨勢。
我們不再單純、局限地依靠某個網(wǎng)管監(jiān)控產(chǎn)品,而是需要運維自動化,提供體系化運維解決方案,包括系統(tǒng)網(wǎng)絡(luò)管理、CMDB資產(chǎn)信息管理、知識庫管理、乃至ITSM信息服務(wù)流程管理等。
2.2 系統(tǒng)概要設(shè)計介紹
如圖2-1所示,本運維自動化綜合管理平臺的設(shè)計理念是:盡量融合、統(tǒng)一管理現(xiàn)有的各個運維工具平臺,統(tǒng)一監(jiān)控管理系統(tǒng)資源,有效關(guān)聯(lián)整合數(shù)據(jù)信息。自主開發(fā)(同時基于現(xiàn)有運維管理工具二次開發(fā))出適合自身需要的綜合運維管理平臺。
本解決方案立足從三大維度構(gòu)建,分別是IT運維流程、IT監(jiān)控平臺整合、IT運維自動化。這三大維度主要具有如下幾大功能模塊。
◆IT運維流程:資產(chǎn)管理、知識庫管理、安全管理、事件管理、日常事項管理。
◆IT監(jiān)控平臺整合:監(jiān)控報警管理、日志管理、性能管理、報表管理。
◆IT運維自動化:應(yīng)用管理、配置管理、程序運行管理。
2-1 系統(tǒng)邏輯架構(gòu)設(shè)計
本解決方案使用的開發(fā)語言及工具:
◆后端及系統(tǒng)客戶端開發(fā)主要通過Python、Shell等程序語言實現(xiàn)。
◆信息采集寫入MySQL數(shù)據(jù)庫。
◆前端WEB展示以及與后臺數(shù)據(jù)層、應(yīng)用層的邏輯交互通過Django框架實現(xiàn)。
◆界面修飾美化使用Bootstrap等框架工具。
2.3 程序功能框圖設(shè)計
根據(jù)我們的需求,程序功能框圖設(shè)計如下圖所示。
2-2 程序功能框圖
2.4 數(shù)據(jù)庫模型設(shè)計
數(shù)據(jù)庫模型(部分)設(shè)計如圖2-3所示。
圖2-3
2.5 工單流程設(shè)計
基于ITIL理念的事件工單流程如圖2-4所示。
圖2-4
#p#
2.6 系統(tǒng)架構(gòu)示意圖
基于我們的運維現(xiàn)狀及需求等內(nèi)容,我們的系統(tǒng)架構(gòu)設(shè)計如下圖2-5所示。
圖2-5
三、運維自動化系統(tǒng)平臺實例介紹
如圖3-1所示是系統(tǒng)一級菜單與二級菜單,對應(yīng)了上述設(shè)計的各主要模塊。
圖3-1
如圖3-2所示在全局查詢里,可以輸入任意要查詢的關(guān)鍵字。該模塊主要是基于數(shù)據(jù)庫表的查詢,而不是對于日志的查詢。該模塊會基于關(guān)鍵字,模糊遍歷所有的關(guān)鍵庫表,然后將查詢結(jié)果自動組織后再反饋到Web展示。
圖3-2
如下圖3-3所示是系統(tǒng)性能信息圖表。該模塊主要使用echarts前端繪圖工具,后端邏輯處理使用了django restframework框架模塊進行信息序列化。性能數(shù)據(jù)來自系統(tǒng)客戶端采集入庫信息。
圖3-3
如圖3-4所示是資產(chǎn)管理模塊中的硬件配置模塊。主要是資產(chǎn)的增刪改查功能。對于大量資產(chǎn)信息的錄入是通過后臺管理中的信息導(dǎo)入模塊(將固定格式的Excel資產(chǎn)信息表)批量錄入到系統(tǒng)中。該模塊主要通過Django CBV方式快速實現(xiàn)。
圖3-4
如圖3-5所示是基于Wordpress定制的系統(tǒng)以作為知識庫系統(tǒng)。用于日常信息、知識資料的發(fā)布與共享。
圖3-5
如圖3-6所示是事件信息模塊。本模塊基于ITIL流程理念。系統(tǒng)平臺一些重要的事件信息會自動觸發(fā)事件流程,并需要人為交互去響應(yīng)處理不同類型級別的事件。對于不同類型的事件,在處理時,所觸發(fā)的流程也有所不同。
圖3-6
如圖3-7所示是集成融合了現(xiàn)有基調(diào)網(wǎng)絡(luò)監(jiān)控產(chǎn)品。通過該運維自動化管理平臺,實現(xiàn)了對現(xiàn)有各種分散的工具軟件的統(tǒng)一整合集成。
圖3-7
#p#
如圖3-8所示是基于ELK深度定制的日志監(jiān)控模塊。基于各類日志信息進行監(jiān)控與統(tǒng)計。
圖3-8
如圖3-9所示是日志安全與審計。主要是針對服務(wù)器系統(tǒng)、網(wǎng)絡(luò)設(shè)備等安全日志進行監(jiān)控與審計。系統(tǒng)日志的采集使用了rsyslog和logstash shipper客戶端兩種方式采集發(fā)送信息。對于audit審計日志,則首先在被管節(jié)點上配置審計策略,然后由logstash shipper進行日志采集與發(fā)送。
圖3-9
如圖3-10所示是基于Cacti深度定制的網(wǎng)絡(luò)流量監(jiān)控。主要是動態(tài)實時地監(jiān)控各個主要節(jié)點的網(wǎng)絡(luò)流量。
圖3-10
如圖3-11所示是網(wǎng)址鏈接狀態(tài)監(jiān)測模塊??勺詣踊蚴謩颖O(jiān)控一些(自定義的)重要網(wǎng)址連接狀態(tài)。
圖3-11
如3-12所示是系統(tǒng)服務(wù)狀態(tài)監(jiān)控信息。由client客戶端抓取系統(tǒng)服務(wù)狀態(tài)信息,然后反饋給服務(wù)器端進行統(tǒng)計與展示。在各種監(jiān)控配置方面,一方面采取服務(wù)器端主動抓取監(jiān)控信息(如上述的網(wǎng)址監(jiān)控),另一方面,由客戶端程序主動抓取當(dāng)前系統(tǒng)的監(jiān)控信息(如系統(tǒng)賬號、文件系統(tǒng)、配置、服務(wù)等),并通過C/S架構(gòu)發(fā)(數(shù)據(jù)以json格式為主)給服務(wù)器端接收。
圖3-12
如圖3-13所示是自動化管理中的系統(tǒng)自動部署模塊,具有批量查詢IP使用情況、派發(fā)客戶端、部署與配置系統(tǒng)等功能。自動化部署主要基于kvm、Saltstack等開發(fā)而實現(xiàn)。
圖3-13
想了解IT運維更多內(nèi)容,請參閱 電子工業(yè)出版社:《系統(tǒng)運維全面解析》
空間門戶:http://xhnetops.home.news.cn/
如何一起愉快地發(fā)展
“高效運維”公眾號(如下二維碼)值得您的關(guān)注,作為高效運維系列微信群的唯一官方公眾號,每周發(fā)表多篇干貨滿滿的原創(chuàng)好文:來自于系列群的討論精華、運維講壇線上精彩分享及群友原創(chuàng)。“高效運維”也是互聯(lián)網(wǎng)專欄《高效運維***實踐》及運維2.0官方公眾號。
提示:目前高效運維新群已經(jīng)建立,歡迎加入。您可添加蕭田國個人微信號xiaotianguo8 為好友,進行申請,請備注“申請入群”。
重要提示:除非事先獲得授權(quán),請在本公眾號發(fā)布2天后,才能轉(zhuǎn)載本文。尊重知識,請必須全文轉(zhuǎn)載,并包括本行。