SRE:Google运维解密
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

乏味是一种美德

与生活中的其他东西不同,对于软件而言,“乏味”实际上是非常正面的态度!我们不想要自发性的和有趣的程序;我们希望这些程序按设计执行,可以预见性地完成商业目标。Google工程师Robert Muth曾说过,“与侦探小说不同,缺少刺激、悬念和困惑是源代码的理想特性。”生产环境中的意外是SRE最大的敌人。

Fred Brooks 在他写的名为No Silver Bullet的文章(参见文献[Bro95])中表示,关注必要复杂度和意外复杂度之间的区别非常关键。必要复杂度是一个给定的情况所固有的复杂度,不能从该问题的定义中移除,而意外复杂度则是不固定的,可以通过工程上的努力来解决。例如,编写一个Web服务器需要处理快速提供Web页面的必要复杂度。但是,如果我们用Java编写该服务器,试图减少GC的影响就可能会引入意外复杂度。

为了最小化意外复杂度,SRE团队应该:

● 在他们所负责的系统中引入意外复杂度时,及时提出抗议。

● 不断地努力消除正在接手的和已经负责运维的系统的复杂度。