很多网络工程师和网络管理员都不愿意部署网络自动化。在实际操作中,任何在合理时间内运行网络的人都可能遇到过重大网络中断,这种网络中断令人不快,并且带来压力,因此,网络团队都努力试图避免这种情况的发生。如果说,简单的更改可能导致重大中断,那么,我们会质疑为什么有人会考虑使用自动化,毕竟自动化可能导致在整个网络中快速传播错误配置。
如果是自动化导致的网络中断,网络团队可能不会考虑通过自动化来解决中断问题。而首选补救工具通常是命令行界面,网络团队只能一次配置一台设备。
如果网络团队需要更新100台设备,每次配置需要一分钟,则更改将花费一个半小时。再考虑该过程实际所需的时间以及所涉及设备数量,这不难理解为什么网络团队不愿意使用自动化。
但是,网络自动化风险真的超过好处吗?网络团队是否可用缓解这些风险?首先,让我们看看为什么企业需要使用网络自动化以及不采用网络自动化的风险。
为什么应该使用网络自动化?
标准化设计,而不是雪花设计。复杂的网络设计(所谓的雪花设计)会增加风险,因为网络各个部分的配置都有所不同。缺乏标准会增加风险,标准化很重要,因为网络很少会有或者基本没有特殊情况。网络标准化可更好地确定故障模式并开发标准程序来处理网络问题。
在网络设计中,使用标准化构建块可简化网络自动化。对于构建块式设计而言,企业可能需要为设备花费更多成本,但好处是降低Opex以及更大的弹性。同时,通过使用标准操作过程进行故障排除和修复,网络团队可以更轻松地了解和缓解故障。
并且,构建块网络设计更容易进行自动化。自动化可帮助初始配置、配置更新、物理连接验证和故障排除。
网络灵活性。网络自动化已经落后于计算和存储系统自动化,它必须迎头赶上。那些推迟部署全面IT自动化的企业可能无法提高灵活性,从而失去竞争力。
自动化意味着整个企业更加高效地利用IT资源。对于相同数量的员工,效率可转化为生产力和更高的利润。同时,更稳定的IT环境意味着更高的客户稳定性和更高的客户满意度。在很多情况下,这还可以实现更高的利润和更大的市场份额。
灵活网络还可以更轻松地适应新的网络技术,网络团队只需要对一些构建块设计和相关的自动化任务进行增量更改即可。
网络自动化任务
然而,自动化并非没有风险。任何准备不充分且部署不当的流程都可能破坏网络,自动化也不例外。
网络团队应考虑以下要点以降低网络自动化风险:
- 从小而简单的任务开始。对于自动化,最好从简单的任务开始。在开始时,可构建一些简单脚本,执行基本的只读故障排除或网络分析,例如跟踪媒体访问控制地址或在生成树域中查找根网桥。你应该自动化经常使用且耗费时间最多的调查性或诊断性任务。在此阶段不要做任何自动更改;而是专注于学习自动化工具,为网络运营提供真正价值。
- 测试。网络自动化需要采用与应用程序开发相同的流程:广泛的测试。应用程序开发人员可以快速启动服务器虚拟机和客户端测试VM,并自动运行大量测试。相比之下,网络测试历来是一个问题,因为测试实验室设置过于昂贵且耗时。
构建块设计可减少需要测试的变化的数量。现在供应商还提供针对很多设备类型的虚拟实例,通常只收取很少费用或不收费,但性能有限。验证这些设备的配置更改非常重要。
网络团队可能需要与其他IT部门合作,以创建准确反映运营网络的测试环境。理想情况下,测试环境将包括应用程序和测试客户端以生成网络流量。
- 网络验证。基于意图的网络(IBN)是最新的行业热点,你可以通过创建一组基本的网络检查来开始实现IBN。验证网络状态是降低自动化风险的好方法。网络验证也是验证网络是否按预期运行的绝佳工具,即使在你部署自动变更前。
为验证你的网络是否按预期连接和运行,请查看网络状态。这包括设备接口状态、地址分配、相邻设备以及2层和3层网络协议信息。在此阶段,你不会对网络进行任何更改。基于意图的验证脚本应该在检查到失败时创建警报,这使团队能够及时采取适当的操作。
然后,网络验证脚本可成为你在将来的变更过程中使用的工具,以执行更改前和更改后的网络验证检查。如果任何更改前验证检查到故障,则终止更改。同样,如果验证后检查到故障,请提醒网络工作人员并可能终止更改。请确保在更改后重复更改前验证,以确保网络返回到更改前的状态。
使其可行
对于任何网络变更系统,最重要的概念是采用降低风险的流程。手动更改会使用更改控制板和审查周期,这些过程仍然很有必要。但自动化将添加其他流程,例如更改前和更改后的自动验证。
如果你刚刚开始使用自动化,请将你的工作限制为不会影响网络的只读任务。最重要的是,你应该开始使用网络自动化。