首页/系统与基础设施/自动化运维速查/编排失败的回滚与重入
配置管理与编排60 条

编排失败的回滚与重入

回滚与重入是编排失败后的两条恢复路径:重入续跑断点,回滚回到已知良好状态。选择依据是失败性质与状态可预测性,前提是步骤幂等、断点可信、回滚物预先备好。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

编排失败的回滚与重入是什么

回滚与重入是编排失败后的两条恢复路径。回滚把已变更的目标恢复到最后一次已知良好状态(配置快照、上一版本制品、备份文件);重入不撤销已完成的步骤,而是让编排从断点继续,前提是每个步骤幂等且编排器记录了完成游标。选哪条取决于失败性质:瞬时失败且状态可收敛时重入更快;已经出现部分生效或不一致状态时回滚更安全。两者都必须在编排设计阶段就准备好,而不是故障现场临时决定。

基本信息

回滚粒度单步、单批、整单(视影响面选择)
重入前提步骤幂等 + 断点记录准确 + 目标状态可探测
状态依据配置快照、制品版本、数据备份
失败分类可重试、不可重试、需人工介入
常见实现编排器 resume 与游标、事务式反向操作、蓝绿切换

典型使用场景

  • 下发中断(会话闪断、设备超时)后,只对剩余目标续跑
  • 单台配置被设备语法校验拒绝,仅回退该台而不动整批
  • 版本发布失败时切回上一版本制品,恢复时间以分钟计
  • 数据库变更失败时用备份或反向脚本恢复结构
  • 有人手工改过目标之后如何重新纳管:先对齐现状再重入

恢复动作要点示意

恢复动作要点示意
# 回滚前先固化现场:导出当前配置与日志,便于事后定位根因
# 重入前比对断点记录与目标实际状态,二者不一致不许直接续跑
# 逐台校验再批量:先单台试回滚,成功后再扩到全批
# 回滚同样要过门禁,避免回滚动作本身引入第二次故障
# 超出约定时间未恢复即升级,不要在现场无限重试

失败分类与处置建议

失败类型建议处置理由
瞬时错误(超时、限流)重试或重入状态未变,重试成本最低
语义错误(参数非法)修正后重入重复重试必然再失败,先改内容
部分生效(多步中途失败)回滚到步骤前快照中间态不可预测,前进风险更高
状态不确定人工介入并先现场取证自动动作可能在错误前提上继续放大
数据层不兼容评估前进修复回退数据结构常比前进更危险
重入依赖幂等:追加式配置、自增编号、每次生成随机凭据这类非幂等步骤,重复执行会产生重复条目或覆盖有效值,必须先探测再执行。
回滚并不总是更快。涉及数据迁移、索引重建、消息格式变更时,回退可能造成数据丢失或双向不兼容,此时应评估前进修复而非机械回退。

易错点

  • 没有预置回滚物(快照、旧制品、反向脚本),故障现场才发现无法退回,只能带故障收尾
  • 非幂等步骤被直接重入,配置里出现重复段,甚至覆盖掉人工补充的本地定制
  • 回滚不走门禁也不分批,回滚动作本身成为第二次故障来源
  • 只回滚应用版本不管数据层,代码回退后与已迁移的数据结构不兼容,服务起不来
  • 断点记录与实际状态不一致(期间有人手工干预),重入直接跳过必要步骤造成配置缺口

数据来源与参考

  • Google SRE Book:发布工程与回滚实践
  • HashiCorp Terraform 官方文档:状态文件与撤销
  • ITIL 4 变更使能实践指南

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/orchestration-failure-rollback-reentry.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​