How Complex Systems Fail

查看原文

本文是 Chicago 大学的人写的关于 Failure 的小论文。

  • 复杂系统天生就是高风险的。
  • 复杂系统设计上花了大量的功夫抵御故障。
  • 灾难往往源于多点同时失效。
  • 复杂系统总是潜伏着各种混合的故障
  • 复杂系统可以被降级运行
  • 灾难总是藏在角落。
  • 事故后的分析其实没有一个 Root Cause,它肯定是多个地方同时失效连成串。
  • 事后评估总觉得故障其实很容易避免,这种事后诸葛亮要不得。
  • 人啊,即制造故障,也抵御故障。
  • 程序员们都在赌事故不会发生(尽管时候看起来这些事故完全无法避免
  • 系统模糊的一些边界行为只有在事故后才会被解决(这些模糊的地方其实本来就没人说清楚过
  • 程序员们是复杂系统的一颗螺丝钉
  • 复杂系统中的专家,过段时间就会需要另外一批(因为技术也在升级
  • 变更会引入新的故障。
  • 事后补救往往增加了系统复杂度,并引入了潜藏的风险。
  • 安全必须是系统必须满足的特征,而非要去实现的组件。
  • 人类会让系统越来越安全
  • 不产生故障的操作往往需要有应对很多故障的经验