重要 SRE 原則和做法:SRE 的人性化方面
成功的作業流程是可達到所需可靠性並可加以維持的作業流程。 這樣的流程除了取決於其對待機器的方式之外,大程度上也取決於它如何對待該環境負責的人員。 網站可靠性工程以多種方式認知這一事實,這些方式對網站可靠性工程的實務至關重要。
辛勞
第一個方式,是對「辛勞」這個概念的關注。 在 SRE 內容中,辛勞意指由具有某些特性之人所完成的作業。 辛勞沒有長期的可兌換價值。 不會以任何有意義的方式將服務往前推進。 它通常是重複的,且大部分需要手動運作 (即使有可能自動化)。 當服務或系統隨著時間變大,對該系統的要求數量也可能按比例增加,並且需要更多的手動人力。
例如,服務可能會要求 SRE 小組產生作業負載,例如這些視為辛勞的負載:
- 每週重設的一些事項。
- 手動佈建新帳戶和磁碟空間。
- 手動重複重新啟動程序。
完成這些動作,並沒有使服務以任何長期且持久的方式得到改善。 這些動作也可能必須重複執行。
注意
就算像許多地方一樣,在某種票證系統中保留這種性質的要求,執行動作和解決票證仍然是辛勞。 這不過是一種能完善追蹤的辛勞。
SRE 不喜歡辛勞。 其會在適當的情況下,盡可能將其消除。 這個目標是自動化在 SRE 中發揮效用的地方之一。 如果這些要求可以自動處理,就可以讓小組把時間精力用來做更有價值和影響力的事情,而不是耗費於處理要求佇列。
「適當」一詞跟辛勞相關的使用與其在可靠性方面的用法類似。 在某些情況下,消除勞力的工作比其他工作的優先順序更低。 但整體而言,從服務中抽離勞力為 SRE 的重點。
專案工作與反應式「作業」工作
若要執行移除辛勞所需的工作或改善系統的可靠性,必須適當地配置 SRE 的時間。 他們想要確保不會花費所有時間在救火解決問題、回覆頁面,或只是處理票證佇列。 他們需要安排時間來撰寫程式碼以消除辛勞、建構自助式服務自動化以便不再需要票證、並構建能使服務和人員更有效率的專案。 通常會引用的數字 (來自原始 Google 模型) 之一,是不超過小組 50% 的作業負荷。
注意
50% 是個有點任意的數字,但在實務上對許多人來說是合理的目標。
SRE 的生命中有一些時刻會將所有時間都用於救難,但這不會是一個穩定持續的狀態。 如果小組的反應式「作業」工作 (大部分為辛勞) 長時間佔用他們超過 50% 時間,即代表著精疲力竭和可靠性不佳。 在這種情況下,我們先前討論過的良性循環將無法運作或構建。 SRE 同樣關注失衡的待命負荷,因為也有可能對小組產生強烈的負面影響。
我們已經看到了 SRE 的一些核心實務和準則,讓我們來談談如何開始。