实战 | 基于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.下一步工作安排。网络是多个设备之间共享信息的连接,构建良好、高效的管理方式对于维持网络的正常运转至关重要。下一步,呼伦贝尔市中支将继续对网络自动化运维管理平台进行完善和优化,如增加安全审计功能,通过对操作过程的记录和跟踪,实现自动化运维的合规性管理。
