下拉查看目录

不能容错的系统肯定是脆弱的 | 前言

不能容错的系统肯定是脆弱的

不能容错的系统肯定是脆弱的

整个《新生 —— 七年就是一辈子》,只基于一个 类比 ,我们的思考系统就好像是个计算机的操作系统一样,需要不断升级 —— 既然“生产厂家”不提供这样的服务,那么我们就只好不断自主升级……

把人脑比作计算机,我其实并不是第一个。据我所知,第一个这样类比的人,是约翰·冯·诺伊曼(John von Neumann),嗯,你一定早已经听说过这个人。晚年的时候,他有一本未完成的书,后来由耶鲁大学出版社结集出版,书名是:

The Computer and the Brain

我们从计算机上可以学到的,其实是 极少数极少数聪明人 的思维方式和方法论。约翰·冯·诺伊曼显然就是地球上存在过的极少数极少数聪明人之一。今天的计算机科学里(包括它的“邻居”工程学里),都有一个重要的概念:

容错(Fault tolerance

如果一个系统不能容错,那么它就是脆弱的。因为 任何一个在现实世界里运转的系统所面对的,必然是一个不完美的、不理想的、各种意外频繁发生的现实世界 。有一点错,就直接停止运转,那系统基本上就是个废物。

从这一点上来看,绝大多数人在没有恰当训练之前,不懂得容错,就基本上跟废物差不多。看看那些易怒的人罢。有一点差池,他们就暴跳如雷,大脑充血,系统完全瘫痪…… 这不是废物是什么?其实他们比废物还可怕。暴怒的人不大像一个失灵了的冰箱,坏了也就坏了,暴怒的人更像失控的火车,要冲出轨道,毁掉停下来之前撞到的一切……

也就是说, 我们最好给自己的操作系统设置一定的容错机制。 比如,遇到貌似不能沟通的人(操作系统不同),多想想,就知道起码有以下几个选择:

  1. 直接停止沟通(注意不要引爆自己的情绪进而浪费时间);
  2. 只沟通能沟通的(为了节省自己的时间精力)
  3. 换个方式沟通( 开个虚拟机玩玩?
  4. 伪沟通……(为了避免引爆对方的情绪浪费自己的时间)

你看,这就是给自己创建了“容错机制”之后的效果和好处。许多年前, 我放弃了争论,而因为写《重生 —— 七年就是一辈子》, 我甚至觉得应该好好考虑是否应该放弃对他人和外界的评论了 。或者,至少放弃 对外界或者他人的负面评论 —— 即便人家是错的,不好的,我的评论真的有多大意义吗?与其花时间在那上面,还不如做点自己认为对的事儿更好一些罢?

工程学里有一个概念,叫“ 冗余 ”(Redundancy),就是约翰·冯·诺伊曼在上个世纪五十年代提出的。

所谓冗余设计,就是为了能够让一个机器(或者系统)在非正常情况下也能运转,要把一些关键的组件安放一个以上…… 万一其中一个坏了,机器依然能够正常运转,甚至可以在机器的运转过程中修复或者替换那个坏掉的组件。

大型货车有很多轮子,并且还常常是每一组由两个轮子并列构成,就是这种设计思想的应用。所有轮子同时坏了的可能性几乎没有,因为某个单个的轮子坏掉,完全不影响大型货车的正常功用。这样的设计使得系统更为可靠。

细想想, 我们人类自身就是个“冗余度”很好的设计 ,我们有很多重要器官都是有一个以上的,比如肺、肾、手、足等等。所以,摘掉一个肾、断了一只手、少了一条腿、瞎了一只眼、掉了一只耳朵、少了几根手指或者脚趾…… 这些本质上来看都不大影响一个人继续生活。

为什么头、心脏看起来更为重要,但只有一个?(这是个很深刻的问题,不在此文讨论范围……)

约翰·冯·诺伊曼观察到这个现象,于是在工程学里提出了“冗余”的概念;也就是说,

没有冗余度设计的系统,通常不够健壮,不够可靠。

不仅我们自身就是个“冗余度”很强的设计,放眼望过去,整个世界也是个冗余度很强的设计,不是吗?从这个角度望过去,那句话是对的:

这地球不是少了你就不运转了!

是啊,多个正确的你我,少个错误的他或他们,又怎样呢?绝大多数情况下,其实这世界还是一样的,它从来都是以不完美甚至千疮百孔的状态持续运转……

现在,我们知道了:

有容错能力的系统更为强壮,有冗余度设计的系统运转更为持久……

那我们应该怎么做呢?

想明白这个道理之后,我个人就开始不太在意遇到的人们身上有这样那样的缺点了,即便是有些之前实在令我厌恶的缺点,我也尽量尝试着忽视它们 —— 因为我想把自己打造成一个容错能力很强的系统。

实践过程中,我发现这是很难的。除了因为这样做的时候通常要么显得虚伪、要么显得无原则(这两个都是我十分讨厌的性格特质),更是因为这么做多少有点感觉浪费时间。必须适应一段时间才能深入理解一个事实:

一切更为健壮的都要耗费更多的成本。

是啊,别的车只有四个轮子,你却要给自己搞八对轮子,肯定便宜不下去啊!实践一段时间,你就会跟我一样有所体会了,好处还是很多的。

比如,我自己不仅反对中医,也讨厌中医,甚至一度认为“怎么可以相信一个竟然蠢到相信中医的人呢?” —— 请原谅我在上辈子时使用的措辞……

可等我打开 容错模式 之后,才“发现”另外一个可能让之前的我无比震惊的 事实 :相信中医的人群里,也有很多聪明人(其中的一些肯定比我聪明),也有很多有趣的人(其中的一些肯定比我有趣),反正我在他们身上学到了很多东西 —— 不管是正向的学习,还是反向的研究。

有了容错机制之后,最重要的收获是:

学习范围广了,思考更为深入了。

这很容易想象,一个更为健壮,一个更为强大,一个更为可靠的系统,当然走得更远,做得更多,长得更快……

另外一个经验是,

容错是自己的事儿。

…… 至于那个“错”,尽量别公开。这跟计算机一样,“遇错报警”,以便及时处理,这确实是容错机制中常用的手段;但计算机是遇错向自己的系统报警,而不是向别的系统报警,道理也很简单,对别的系统报警没用啊!一般来说,公开不见得有好处,甚至有坏处 —— 这么明显会做会阻碍你更多的“容错”的实践和机会。

当然,有些事情除外, 有些错,容不得又当然,在这里我就没必要做伦理教育了罢?


评论