實戰 | ?基于DevNetOps的網絡設備自動化運維探索與實踐
伴隨著近些年科技的迅速發展,尤其是云計算、虛擬化技術的崛起,傳統的網絡無論從技術架構還是運維方式都在發生顯著變化,呈現出運維體量增大、運維管理細化、運維響應敏捷化的特點。三者疊加給網絡運維工作帶來了新的困難與挑戰,一方面設備數量和需求的增加,對網絡運維工作提出了更高的要求,另一方面網絡運維人員的專業水平無法跟上技術的快速迭代,尤其是一些基層組織,網絡管理人員的技術能力普遍不高。為解決網絡運維工作繁雜、提高運維效率和安全性等問題,人行呼倫貝爾市中心支行積極探索網絡自動化運維技術,利用“DevNetOps”網絡運維方法實現了對轄內網絡設備日常運維的自動化管理。
網絡運維面臨的主要問題
1.運維多以手動操作為主。呼倫貝爾市中支目前有包括本級在內的13家分支機構,日常網絡運維多以手工操作為主。尤其在涉及配置變更以及設備巡檢等日常運維時,需要大量的命令操作,而手工方式效率低,運維人員每日都在重復執行底層命令,在操作失誤方面,也存在不可忽略的風險因素。此外,設備信息和檢查記錄等數據必須要實時更新才能準確,需要運維人員投入大量的精力去維護,鮮有時間能關注業務層面的需求。
2.網絡設備類型多,難以全面掌握。呼倫貝爾市中支根據實際業務需求,在各網絡層部署了不同品牌和類型的網絡設備,這也使得網絡運維工作的復雜程度也有所增加。一方面在新增設備時需要考慮不同類型設備的兼容性;另一方面運維人員需要花費大量時間去熟悉這些設備,尤其面對一些晦澀難懂的設備命令和反饋結果,難以做出有效的判斷和分析。
3.運維人員技術水平不高。基層網絡運維人員專業技術水平普遍不高,面對突發問題難以做到及時準確的判斷。呼倫貝爾市中支地處偏遠,科技工作人力資源長期不足,部分支行不具備網絡運維外包條件,網絡日常管理和設備巡檢只能依靠本單位人員,這些運維人員大多不具備專業背景,只是兼職負責網絡維護,沒有能力和精力去應對繁雜的日常運維,出現問題也都是在已經影響到業務運行后才被發現,稍有不慎極易引發一系列不可控風險。
NetDevOps在網絡自動化運維中的應用
由于網絡技術的封閉性和排它性,導致網絡運維在難度上高于其他的日常運維工作,而且網絡設備一旦出現問題,尤其是核心網絡,影響的將是整體業務的運行。網絡作為所有業務的底層平臺,如果將邏輯梳理清楚,采用相關技術實現自動化部署管理,不僅可以提升工作效率,降低操作失誤的風險,同時還能將技術人員從繁瑣的底層運維中解放出來,更好的服務于業務需求上的變化。
近些年在IT運維領域興起了一種被稱為“DevOps”的方法,這種方法強調透過自動化“軟件交付”和“架構變更”的流程,使得構建、測試、發布軟件能夠更加地快捷、頻繁和可靠。而NetDevOps主要針對網絡設備,通過將DevOps的文化和理念引入到網絡領域,目標是實現網絡的自動化,最終實現網絡的智能化。其中Net代表網絡運維領域;Ops代表網絡運維的具體需求和場景;Dev是指通過編程,借助一些開源工具,實現網絡運維人員在工作中對于自動化需求的滿足。NetDevOps的優勢在于通過人員、領域與技術的不斷融合,更有效的踐行工作思路和方法,從而提高網絡的敏捷性,推動各類業務的快速交付。
1.自動化運維。NetDevOps使用自動化工具和腳本來配置和管理網絡設備,可以大大減少手動配置和管理的時間和精力,并可以提高配置的準確性和一致性。通過自動化,NetDevOps可以更快地部署新服務和解決問題,并能夠更快地響應業務需求。
2.可編程性。NetDevOps可以使用編程語言來管理和配置網絡設備。這使得網絡管理員可以使用他們熟悉的編程語言來管理網絡,以此提高效率并減少錯誤。另外,可編程性還使得NetDevOps可以更輕松地實現網絡設備的自動化和集成。
3.實時監測和分析。NetDevOps可以使用實時監測和分析工具來監視網絡設備的狀態和性能。這可以幫助網絡管理員及時發現和解決問題,并能夠更好地了解網絡的使用情況和趨勢。通過實時監測和分析,NetDevOps可以幫助管理人員做出更明智的決策,并優化網絡性能和可靠性。
網絡自動化運維實踐
1.基于NetDevOps的網絡自動化運維平臺。借助NetDevOps,網絡運維人員可以實現非常多的自動化運維場景。筆者結合實際網絡運維工作環境,設計出一套基于NetDevOps的網絡自動化運維系統平臺。該平臺以NetDevOps中的“Netmiko+TextFSM”模塊為核心,可兼容多種主流網絡設備類型,實現了配置備份、配置下發、設備巡檢和配置生成等功能的自動化管理。使用過程中無需熟悉系統的底層邏輯和具體實現,便于不同層次的運維人員進行日常操作和管理。

圖1 功能結構圖
2.網絡自動化運維具體實踐。針對轄內部分機構網絡設備無第三方維保、運維技術人員不足、專業水平不高等問題,呼倫貝爾市中支利用NetDevOps技術,實現了對轄內機構網絡設備巡檢的自動化管理。首先將全部網絡設備信息、巡檢指令以配置文件的形式進行存儲(設備關鍵信息通過加密算法以密文存取);其次,調用模塊Netmiko與各網絡設備建立連接,并自動執行巡檢指令。Netmiko工具針對主流的網絡設備進行了適配,通過一個關鍵名為CLASS_MAPPER的字典,將各類設備名稱的字符串映射到各個驅動類,這些驅動類提供了許多便捷的方法,可以幫助運維人員實現諸如自動登錄、信息收集、配置推送等自動化應用;接下來利用TextFSM模塊,按需設置關鍵指標和匹配規則,通過有效狀態自動機來完成文本內容解析的自動化配置解析模板,用于提取網絡設備終端回顯的文本并解析成格式化數據,快速將運維經驗轉化成生產力,提升工作效率,最后自動生成記錄文件存取巡檢結果。整個巡檢過程無需人工參與,可實現包括內存、CPU、電源、鏈路狀態在內各類設備參數的快速巡檢。

圖2 網絡設備自動化巡檢流程
通過自動化巡檢,呼倫貝爾市中支在網絡運維的各方面取得了明顯的改善效果:一是節約了約91.7%的時間和人力成本;二是巡檢錯誤率與之前的人工巡檢降相比,降低至15%左右;三是提高了巡檢結果的可靠性和一致性,結果精度提升85%;四是更快地發現和解決了網絡設備問題,故障修復時間和成本降低了80%。
3.下一步工作安排。網絡是多個設備之間共享信息的連接,構建良好、高效的管理方式對于維持網絡的正常運轉至關重要。下一步,呼倫貝爾市中支將繼續對網絡自動化運維管理平臺進行完善和優化,如增加安全審計功能,通過對操作過程的記錄和跟蹤,實現自動化運維的合規性管理。