我的博客

配置漂移本质上是文档问题

运行中的系统和对该系统的描述之间出现了偏差。关键是要检测这个差异,而不只是试图阻止它。

我合作过的每个基础设施团队都把配置漂移当作安全或合规问题来处理——锁定服务器、强制执行黄金镜像、定期运行扫描。背后的假设是:漂移是应该被预防的。

但漂移是不可避免的。那次事故应急需要一条临时防火墙规则;凌晨两点避开变更管理流程的热修复;新同事需要权限,通过手动覆盖获取了访问。每一次单独来看都是合理的决定,而每一次都在拉大文档描述和系统实际情况之间的差距。

把漂移视为可预防的问题,会让你陷入一场必败的战役。把它视为文档问题,则将问题从「我们怎么阻止它」转变为「我们如何让偏差变得可见、可理解、可临时处理」。

什么方法有效

  • 从单一数据源生成配置,并确保生成过程是幂等的。如果有人修改了输出结果,下一次运行就会覆盖它。
  • 定期对比生成的配置与在线配置的差异,并把结果发布到人们已经关注的地方。
  • 仅对无法解释的差异发出告警。没人看的差异报告比没有更糟。
  • 发现漂移后,要么将其编码化纳入配置管理,要么将其清除。放任不管就是让它变成永久性差异。

文档必须是可执行的

不可执行的文档默认就会发生漂移,因为没有任何机制会在它过时时失败。能长期存活下来的版本是每次部署都会执行的那个:错误会立刻显现,而不是悄无声息地、自信满满地存在着。

← 返回首页