SRE 关键原则和实践:SRE 人性化的一面

已完成

成功的操作过程是实现所需可靠性并维持其可靠性的过程。 这样的过程既取决于它如何对待对环境负责的人类,也取决于它如何对待计算机。 站点可靠性工程在很多方面承认了这一事实,这些方面对于其实践至关重要。

辛劳

首先关注“辛劳”的概念。 在 SRE 环境中,辛劳指的是由具有某些特征的人类完成的操作。 “辛劳”没有长期补偿价值。 它不会以任何有意义的方式推进服务。 它通常是重复操作并且主要是手动(即使可以自动化)。 当服务或系统随着时间的推移规模变大后,对该系统的请求数量也可能按比例增加,并且需要更多的手工劳动。

例如,服务可能要求 SRE 团队承担如下操作负载,这些负载被认为是苦工:

  • 每周重置一些内容。
  • 手动预配新帐户和磁盘空间。
  • 手动重复重启进程。

完成这些操作并没有使服务以任何长期、持久的方式得到改善。 还可能需要一遍又一遍地重复这些操作。

备注

即使像许多地方一样在某些票证系统中保留这种性质的请求,执行操作和解决票证问题仍然很辛苦。 它只是机械式的辛苦操作。

SRE 无法接受辛劳。 他们努力在可能且适当的时候消除辛劳。 此目标是自动化在 SRE 中发挥作用的地方之一。 如果这些请求可以自动处理,就可以让团队将精力投入到更有价值和影响力的事情,而不是耗尽请求队列。

与苦工相比,“适当”一词的用法与其在可靠性方面的用法类似。 在某些情况下,消除辛劳的工作的优先级低于其他工作。 但总的来说,使服务不再需要辛劳操作是 SRE 的关键重点。

项目工作与反应性“操作”工作

若要执行可消除苦工的工作或提高系统可靠性,必须适当分配 SRE 的时间。 他们希望确保他们不会将所有时间都用于解决紧急问题、回复页面或只是处理票证队列。 他们需要留出时间来编写代码以消除辛劳,构建自助服务自动化以不再需要票证,以及构建可使服务和用户更高效的项目。 通常引用的数字(来自最初的 Google 模型)是团队中至多 50% 的操作负载之一。

备注

50% 是一个有点武断的数字,但实际上对许多人而言,它似乎是一个合理的目标。

在 SRE 的生命周期内有一些时刻,所有时间都用于解决紧急问题,但这不是一个稳定的状态。 如果一个团队的反应性“操作”工作(大部分工作)长时间占用他们超过 50% 的时间,那就是倦怠和可靠性差的体现。 在这种情况下,无法运作或构建我们之前讨论过的良性循环。 SRE 同样关注均衡性较差的待命负载,因为它也有可能对团队产生强烈的负面影响。

现在我们已经有机会看到 SRE 的一些核心实践和原则,可以谈谈如何开始使用。

知识检查

1.

下面哪一项不是辛劳工作的特征(在 SRE 上下文中)?

2.

SRE 与辛劳工作有何关系?

3.

什么是建议的 SRE 工作细分配?