先给结论:这次把半个互联网放倒的,不是黑客,也不是流量洪峰,是一次"意外的配置更改"。

这是微软自己复盘里写的。一次租户配置更改,引入了一份无效、不一致的配置状态,一大批 Azure Front Door(AFD)的节点加载不了,下游随即出现延迟、超时、连接错误。到这里,它还只算"某个区域出问题"的常规事故——真正把它升级成全球故障的,是接下来发生的事:

那些异常节点一个个被踢出全球节点池。节点少了,流量就得往剩下那些"看起来健康"的节点上压,分配很快严重失衡。结果连原本没事的区域,也开始间歇性不可用。一个点上的错误,被系统自己的"自保动作"放大成了全网的问题。

受影响的服务名单长得不像话:Microsoft 365、Xbox Live、Minecraft、Copilot、Entra ID、Azure SQL……下游还拖着一串——两家美国航司的在线值机、一个省的医疗系统、星巴克和 Costco 的线上服务。外媒调侃说,微软下次不如直接一句"无处不在"。

但我觉得,这条新闻里最该被记住的,是根因那一句。

微软说,问题出在配置部署流程:原本用来"验证并拦截错误部署"的那道防呆机制,因为一个软件缺陷失效了,让那份异常配置直接绕过了校验。

注意——防线不是"漏了",是"塌了"。本该站出来说"这份配置不对,别推"的那一环,坏在了它自己身上。

运维有句话:不怕变更,怕的是"变更 + 兜底同时失效"。平时做变更流程,我们习惯给自己留好几层——先备份、灰度发布、自动回滚、变更前跑校验——默认每一层都在工作。可一旦某一层的失效是"静默"的,你根本不知道它已经不算数了。Azure 这次就是:拦配置的那道校验坏了,但没人知道它坏了,于是它照常"放行",只是这回放行的是错的配置。

这类"防御本身失效",有点像我们做七亿批量远程管理工具时踩过的一个坑。AI 助手要执行高危命令,一开始我给它做了个确认框,以为有"人工确认"就稳了。后来才发现,那个"同意"如果可以被命令自己带进来(模型在命令里写一句"用户已同意"),这道门就是假门——它自己就能给自己开门(那次我砸了四轮的闸门)。

一个道理:凡是安全机制,都要问一句——它失效的时候,是"报错",还是"静默通过"。 报错的失效还是失效,但至少看得见;静默通过的失效,约等于没有。Azure 这次是后者,我们那个假门也是后者。

顺带说,这事也不是孤例。今年二月 Cloudflare 也栽过一回——一个 BGP 前缀被意外撤掉,触发了"路径狩猎",绕了一大圈才稳定下来。大厂的防线都拦不住"配置层面的一次手滑",可见这事不分规模。

所以落到自己头上,我的做法反而很土:任何改配置的动作,先留一份能一键回去的备份。哪怕只是个顺手的小改动(它一遍遍说"先备份配置",任务却一步没动)。备份不解决问题,可它是你发现"防线塌了"之后,唯一还能兜住你的东西。

机制会坏,人会困。这也是七亿批量远程管理工具里那套流程一直念叨同一件事的原因——改之前先给自己留条后路。

毕竟,能兜住你的,从来不是那道你以为永远在的防线。

—— 参考:微软 Azure Front Door 事故复盘(36kr 转载);Cloudflare 2026-02-20 前缀撤销引发的 BGP 路径狩猎。

七亿批量远程管理工具是免费的,Windows 端,RDP 九宫格、SSH 终端、SFTP、FTP 都在里头。