前章はこちら
5章 トイルの撲滅
トイルの定義
- 運用作業という言葉は誤解を招きかねないため、Googleではトイルという言葉を用いる、これは「やりたくない仕事」ではなく、汚れ仕事など単純に言い換えられるものでもない
- トイルとは以下の傾向を持つ、1つ以上当てはまればトイルの度合いは高い
- 手作業
- 自動で作業をするスクリプトも、手作業で叩いていればトイルの時間
- 繰り返し行われる
- 0~数回目、もしくは新しい問題を解決していればトイルではない
- 自動化できる
- マシンが人間同様にできる作業
- 人間の判断が必要ならトイルではない
- 戦術的
- ページャーのアラートの対応はトイル
- 長期的な価値を持たない
- あるタスクを追えたあとでも、サービスが同じ状態であればトイル
- サービスの成長に対してO(n)
- サービスのサイズやトラフィック・ユーザの量に比例してスケールするタスク
- 手作業
トイルは少ないほうが良い理由
- GoogleのSREの組織はトイルを各人の作業時間の50%に抑えるという目標がある
- 各人は作業時間の50%を将来のトイル撲滅や機能追加するプロジェクトの作業に費やされるべきである
- 機能開発の焦点は信頼性やパフォーマンスの改善に置かれることが普通で、これでトイルを削減できることもある
- 50%に目標を定めている理由はトイルは確認せずにいると知らない間に拡大し、急速に100%になってしまう傾向があるためである、トイルを撲滅し、サービスをスケールさせる作業がSREにとってのエンジニアリングである
- これを守ることで、採用する際に運用の組織では無いことを約束するし、運用の組織に退化させないようにしなければならない
エンジニアリングであるための条件
- エンジニアリングの作業とは、新しいことをするものであり人間の判断を必要とする。更には恒久的にサービスに改善を加え戦略によって導かれる
- 典型的なSREの作業は以下に分類できる
- ソフトウェアエンジニアリング
- コードの作成・修正
- 設計のドキュメント作成
- 例:自動化スクリプト作成・ツールの作成
- システムエンジニアリング
- プロダクションシステムの設定
- システムに関するドキュメント作成
- トイル
- オーバーヘッド
- サービス稼働に直結していない作業
- ソフトウェアエンジニアリング
- SREは四半期(または1年)を通して平均して見た時に最低50%をエンジニアリングの作業に割り当てないといけない
トイルは常に悪なのか?
- 必ずしも全員を不幸にするわけではない、量が少ない場合は特に
- 予測可能な繰り返しタスクは穏やかで、達成感を生んでくれる
- トイルは常に悪いものではなく、エンジニアリングを行うほぼ全ての職務にとって多少のトイルは避けられないことを認識しておく必要がある
- 少量で楽しめる程度であれば気にしなくても良いが、大量にある場合は有害となる
- キャリアの停滞
- つまらない仕事からキャリアは生まれない
- モラルの停滞
- 多すぎるトイルは燃え尽き、倦怠、不満を生む
- キャリアの停滞
- 更にトイルに時間を使いすぎるとSRE組織に以下のダメージを生む
- 組織の混乱
- トイルに集中しすぎるとSREという組織について混乱が生まれる
- 進歩速度の低下
- 消火活動ばかりしていると開発速度は下がる
- 習慣づけ
- トイルに取り組むのに必死すぎると、開発側はもっと多くのトイルを回したくなり、開発側の運用タスクもSREに回し始めるかもしれない
- 摩擦の発生
- 個人的にトイルに不満がなくとも、周りや将来のチームが好きではないかもしれない
- 信義違反
- 新しくSREチームに入った人が騙されたと思う
- 組織の混乱
まとめ
- 毎週少しずつトイルをなくしていけば、徐々にサービスをクリーンアップできる。
- 全体の労力を生産性のあることにシフトしていける
- イノベーションを増やし、トイルと減らそう
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
- 作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/08/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る