Site Reliability Engineering #5

5章トイルの撲滅

通常運用中のシステムに人手が必要なら、それはバグだ。 通常の定義は、システムの成長と共に変化する。

-----Carla Geisser、Google SRE

5.1 トイルの定義

トイルは「労苦」を表します。 プロダクションサービスの動作に関係する作業で手作業で繰り返され、長期的な価値を持たず作業量がサービスの成長に比例する傾向を持つ。 自動化することが可能な作業である。 トイルの度合いが高い仕事は次の特徴がある

  • 手作業
  • 繰り返される
  • 自動化できる
  • 戦術的である
  • 長期的な価値を持たない
  • サービスの成長に対してO(n)

トイルと混同されやすい作業にオーバーヘッドがある。 管理上の雑務でプロダクションサービスの稼働に結びつかない仕事を含む、次のものである。

  • チームミーティング
  • ゴールの設定と評価
  • スニペット
  • 人事の事務作業

5.2 トイルは少ない方が良い理由

GoogleのSREは作業時間の50%以上を将来のトイル削減、またはサービスに機能を追加する作業に確保するべきである。 トイルの作業は50%以下に抑える目標がある。

トイルの作業を50%にするのはトイルに目を向けなければ自然に増えていき、全員の時間を100%トイルで埋め尽くす傾向があるためである。

トイルの下限も設定しており、6人が6週間ごとに2習慣のオンコールシフトと割り込み対応にあてる場合、潜在的なトイルの下限は

 \frac{2}{6} = 33 \%

になる。

5.3 エンジニアリングであるための条件

5.1, 5.2をまとめると典型的なSREの活動は次の分類に沿う。

  • ソフトウェア・エンジニアリング
    • コードの作成や修正を含む作業
  • システムエンジニアリング
    • プロダクションシステムの設定、システムのドキュメント作成が含まれ、1回の作業で改善効果が持続する方法で行われる。
  • といる
  • オーバーヘッド

5.4 トイルは常に悪なのか?

トイルは常に悪いものではなく、エンジニアリリングに関わる全ての職務にとって多少のトイルは避けられないものである。 トイルが大量になった場合、次の面で有害になる。

  • キャリアの停滞
  • モラルの低下
  • 混乱の発生
  • 進捗速度の低下
  • 習慣づけ
  • 摩擦の発生
  • 信義違反

5.5 まとめ

イノベーションを増やし、トイルを減らそう。