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

第一部分 SLO开发

第1章 可靠性栈

Alex Hidalgo

我们生活在一个充满服务的世界。有些厂商会向你销售网络服务或者基础设施服务。你会花钱购买监控服务或者数据库服务。但这还没有涉及使用最广泛的缩写词——SaaS,它本身可以代表软件、安全、搜索或存储即服务。

此外,许多组织已经转向了微服务,你可以将功能划分为许多小型服务,这些服务都可以相互通信和相互依赖。我们的系统正变得越来越复杂,越来越分散。

现在似乎一切皆服务,以至于很难准确地定义什么是服务。如果你运营一个零售网站,可能会有许多微服务,它们可以处理诸如用户身份验证、支付系统,并跟踪用户在购物车中放置的东西等事务。但是很明显,整个零售网站本身也是一种服务,尽管它由许多较小的组件组成。

我们要确保自己的服务是可靠的,要在复杂的系统中实现这一点,需要开始用一种不同于过去的方式来思考问题。你可能负责一个具有数千个组件的全球分布式服务,也可能只负责维护少数几个虚拟机的运行。无论哪种情况,几乎可以肯定的是,总有用户在某一点上依赖于这些服务,即使它们被移除了许多层。一旦你考虑到用户,就需要从他们的角度考虑问题。

我们的服务可能很小,或者非常深入和复杂,但是几乎毫无疑问,如果没有遇到过故障,我们很难通过过去依赖的日志或者栈跟踪来理解这些服务。随着这种转变,我们不仅需要新的遥测技术,而且还需要新的方法来使用这种遥测技术。

本章的开篇部分将介绍有关服务及其用户的一些事实、概述SLO各个组件是如何工作的、提供一些服务示例和一些在阅读本书其余部分时需要记住的指导要点。