结论先行:网络自动化做不下去,多数时候不是编排引擎不行,而是底下的动作没有拆开。"一键下发"这类整包动作在演示里好看,出事时却说不清改了哪一步、能不能只退那一步。可行做法是先把网络操作拆成六个原子动作——纳管、采集、建模、校验、下发、回滚,每个动作有自己的输入与产物,编排只负责把它们串起来。

一个典型的自动化平台分四层:外部接入层、编排与应用层、网络原子服务资源池、设备纳管层。真正让项目能长期维护的,往往是第三层——原子服务。这一层不显眼,却决定了两件事:换品牌时要不要重写流程,以及出问题时能不能只回退一步。

为什么"一键下发"会变成"一键事故"

整包动作里通常混了四件事:先采集现状、再判断影响、然后执行、最后验证。四件事捆在一个按钮后面,任何一个环节出偏差,能做的只有整体重来。更麻烦的是回退:不知道变更前是什么状态,回退就只能靠人回忆。

拆开之后逻辑就清楚了。校验归校验,下发归下发,回滚是拿着变更前的快照做一个独立动作。出了事能说得清——"卡在下发这一步,第 12 台没成功,其余已回滚"。

六个原子动作,各自的产物

动作做什么要留的产物
纳管确认能否连上、用什么协议、用哪个账号纳管清单与协议版本
采集取配置、路由、会话、策略带时间与版本的配置快照
建模梳理链路、安全域、地址转换关系拓扑与对象清单
校验判断影响面、冲突与合规性校验报告与阻断原因
下发只执行变更,不再做判断逐台回执与失败明细
回滚回到指定快照回滚记录与比对结果

这张表里,容易缺的是"校验"和"回滚"两项的产物。校验不留报告,出了事就无法证明变更前判断过;回滚不留记录,下一次变更仍然从零开始。

原子层与设备层分开,换品牌才不用重写

设备纳管层解决的是"怎么跟这台设备说话",原子层解决的是"这个动作的标准形态是什么"。两层之间做适配,上层流程就不必关心具体品牌。反过来说,如果把设备命令直接写进流程,每接入一个新品牌都要重写一遍,流程越长,重写成本越高。

这也是很多项目首期只覆盖一类设备的原因:先把这一类设备的六个动作跑通、跑稳,再扩到其他品类。品类扩张靠的是适配,不是重做。

编排只是把动作串起来

编排的价值在顺序与条件:什么情况下先校验后下发、失败到第几台就停、什么条件下自动回滚、哪些动作需要人工确认。这些规则能写清楚,前提是动作本身足够小、有明确输入输出。动作不原子,编排就只能写死,写死的流程换一个场景就失效。

边界与前提

其一,原子拆得越细,维护成本越高。合适的粒度是"失败时需要单独重试的那一步",不必拆到命令级。

其二,回滚要真的测过。有回滚能力与回滚有效是两件事,建议定期抽一个业务域走一遍回滚流程,记录耗时。

其三,先把一类设备做透。首期覆盖范围窄不丢人,做不到回滚才丢人。

  • 把网络操作拆成纳管、采集、建模、校验、下发、回滚六个动作,逐个定输入与产物。
  • 校验动作必须产出报告,写明影响面与阻断原因。
  • 下发动作只执行不判断,判断全部前置到校验。
  • 变更前强制打快照,回滚以快照为基准,不靠人工回忆。
  • 设备适配与流程解耦,新品牌只加适配,不改流程。
  • 首期只覆盖一类设备,跑通六个动作后再扩品类。
  • 定期做一次回滚演练,记录实际耗时与比对结果。

深圳市奇摩计算机有限公司在网络自动化交付中,通常先和客户把原子动作与产物清单对齐,再谈编排怎么配——动作拆清楚了,后面的流程才有地方落。需要梳理原子服务与校验口径,欢迎预约咨询。