SLO与SLI:软件可靠性实践指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 服务的真理

对于一个特定的服务,很多事情可能是正确的,但是有三件事总是正确的。

第一,适当的可靠性级别是服务最重要的运维要求。服务对其用户来说要足够可靠,可靠性不仅包括可用性,还包括许多其他指标,例如质量、可依赖性和响应能力。重要的是“我的服务可靠吗?”或者说“我的服务是否在做用户需要它做的事情?”正如我们在本书中详细讨论的那样,你不希望你的目标具备完美的可靠性,但需要它完成它应该做的事情,让它对用户有用。我们将在第2章更详细地讨论可靠性的实际含义,但归根结底还是满足用户需求。

第二,决定你的服务是否可靠的是你怎么从用户的角度去运维,而不是从你的角度看。如果你的日志中没有错误,或者有完美的可用性指标或难以置信的正常运行时间,那么这都无关紧要。如果你的用户认为你不可靠,那么你就不可靠。

我们说的“用户”是什么意思?简单地说,用户就是任何依赖于你的服务的系统或人。它可以是一个真正的人、付费客户的软件、内部团队的另一个服务、机器人等。为了简洁起见,本书把所有需要与你的服务进行通信的统称为用户。

第三,没有什么是完美的,所以你的服务也不一定是完美的。不仅不可能做到完美,而且随着服务越来越接近完美,财务和人力资源的成本也越来越高,高于线性增速。幸运的是,事实证明,软件也不必总是100%完美的。