高级软件工程师教会小白的那些事(15)

1、如果其中一个有bug,就会自发阻止一个功能。

2、这样做违背了降低风险的原则,或者说是增加了出错的风险。

然后,无论你选择哪种部署流程,你总是希望你的机器像牛一样,而不是像宠物一样。它们并不珍贵。你确切知道每台机器上运行的是什么,以及如何在它坏掉的时候重新创建一个出来。当一台机器坏掉时,你不会感到沮丧,你只需要启动一台新机器。你豢养它们,而不是抚养它们。

当有地方出错时

当出现问题时(问题必然会出现的),黄金法则就是尽量减少对客户的影响。

当出现问题时,我的自然反应是去解决问题。事实证明,这不是最优解决方案。

首先要做的是回滚,而不是修复出错的地方,即使“改一行代码就行”。回到之前的工作状态。这是让客户恢复工作版本的最快方式。

然后我再去看看出了什么问题,并修复这些bug。

集群中的“borked”机器也是如此——先将其下线,标记为不可用,然后再尝试找出机器出了什么毛病。

推荐阅读