系统遇到了麻烦。也许网络链路已经饱和,或者被推出了一个糟糕的DNS配置。也许传入请求的混合突然改变,现在有更多的沉重请求,而不是光的要求,并且自动播放并没有帮助。也许数据饲料已损坏,并且没有简单的方法可以将受影响的节点带回良好状态。
无论具体细节是什么,系统都遇到了不设计处理的情况。这是警报掉落的时候,人工运营商参与其中。运营商正在重新配置系统以通过麻烦。也许他们手动扩展一个不会自动扩展的群集,或者它们回收节点,或者进行一些配置改变或重定向流量以缓解来自系统的某些方面的压力。
如果我们在计算机-Y零件,硬件和软件方面考虑系统,那么它很清楚系统无法处理此新故障模式。如果可以,人类不必涉及。
我们可以扩大我们对系统的看法,还包括人类,有时称为社会技术系统。在某些情况下,社会技术系统实际上设计用于处理单独的软件系统不能:这些是我们在我们的流程本中记录的方案。但是,我们经常遇到完全新颖的失败模式。对于糟糕的随叫随线,Runbook中没有条目,描述了解决此问题的步骤。
在失败是完全小说的情况下,人类运营商必须即兴创作:他们必须弄清楚禁用该怎么做,然后对系统进行相关的操作变化。
如果运营商是有效的,那么即使社会技术系统在这种新的麻烦这面上正常运行,系统内的人员也会使其在整个系统再次运行的变化。
这是一个系统的能力,它在面对新颖的情况时改变自己的能力,以便有效地处理这种新颖性,大卫伍兹称为优雅的可扩展性。
这是树林如何在纸质中定义优雅的可扩展性:优雅的可扩展性理论:管理自适应系统的基本规则:
优雅的可扩展性与脆性相反,如果事件推动系统,以突然崩溃或失败,以便处理更改干扰和变化的界限。与脆性的相反一样,优雅的可扩展性是系统扩展其适应能力的能力,当令人惊讶的事件挑战其界限时。
这个想法是我们在软件世界中的人的真正概念跃迁,因为我们习惯于仅考虑系统作为软件和硬件。一种适应新颖的失败模式的系统的想法是我们的外星人,因为我们无法编写那样的软件。如果我们可以,我们不需要员工随叫随到。
我们人类可以适应:我们可以改变系统,技术比特(例如,改变配置)和人站(例如,在事件期间改变通信模式,我们与之交谈或涉及的通信信道)。
但是,因为我们不认为自己是系统的一部分,当我们遇到一个新颖的失败模式时,然后人工运营商介入并弄清楚如何恢复,我们的响应通常是,“系统无法处理这种故障模式(因此人类必须介入)“。
从某种意义上说,该评估是真的:系统不设计用于处理此故障模式。但是在另一个意义上,当我们扩展我们对系统的看法来包括人民来说,替代响应是,“系统遇到了一种新颖的故障模式,我们弄清楚如何进行操作变化,以便再次使系统健康。”
我们击中了我们的系统可以处理的边界,我们改编,我们优雅地将该边界扩展到包括这种新的情况。我们的系统可能无法处理一些新的麻烦。但是,如果系统具有优雅的可扩展性,那么它可以在新的麻烦发生时改变自己,所以它可以处理麻烦。