如何防止软件失效将变为灾难!
千年虫问题是进入 21 世纪时软件行业的大问题,大家都如临大敌,为此整整准备了一年甚至更久,写了各种脚本,更新了所有软件。有的 SA 甚至可以放心的离开岗位去休假。千年虫问题可能没那么严重,但行业对其的反应折射出了我们对风险对抗的认知:及时修复,降低风险,使软件失效不至于编程大灾难。
我们对于灾难的预处理,基本上都围绕着降低风险来做。如果有地方会引起问题,我们就会加倍注意。越大的可能性会引起我们越多的注意力。我们可能无法想到所有的可能性,但至少能处理已知的问题。
设立独立的安全区是一个常见的手段,在这个安全区里面我们想办法让这个子系统能够容忍风险,然后在想办法尽可能地将它与外部系统做好隔离。事实上,PR 和 code review 就是一种降低风险的手段,让别人和你一起把风。
另外一种手段是让系统尽可能的可预知,我们预测系统所有可能的状态,遍历所有的状态,要么想出怎么人工处理,要么修复它。
小步快跑也是个降低风险的手段,每次做一点改变。