SREをはじめよう

―個人と組織による信頼性獲得への第一歩

[cover photo]
TOPICS
System/Network
発行年月日
PRINT LENGTH
320
ISBN
978-4-8144-0090-4
原書
Becoming SRE
FORMAT
Print PDF EPUB
Ebook
3,300円
Ebookを購入する
Print
3,300円

Webシステムの信頼性は、いまや企業と組織の信頼性にも大きな影響を及ぼしています。そのシステムの信頼性を確保するのがSRE、つまり「サイトリライアビリティエンジニア」と呼ばれる職種、あるいは「サイトリライアビリティエンジニアリング」という技能、活動です。
本書は、自身もSRE/DevOps/システム管理の分野で40年のキャリアを持つ筆者による、個人がSREになるための、また組織がSREを導入し、発展させるための指針を平易かつコンパクトにまとめた書籍です。
「SREとはどのようなものか」「SREになるには何をすればよいのか」「SREを導入するにはどのように始めればいいのか」「するべきこと、避けるべきこと」といった、SREにまつわるさまざまなトピックを幅広く解説します。
SREという技能/概念をゼロから学びたい人、SREを目指すエンジニア、またSREを組織に導入することを検討している、導入したけれど思ったより上手く行っていない組織や企業にとって、多くの発見のある書籍となるでしょう。

「訳者まえがき」より

本書は “Becoming SRE: First Steps Toward Reliability for You and Your Organization” (2024年、O'Reilly Media、ISBN9781492090557)の日本語訳です。

日本では、『SRE サイトリライアビリティエンジニアリング』(2017年、オライリー・ジャパン、ISBN9784873117911)(以下、SRE本)が出版された頃から、「サイトリライアビリティエンジニアリング」(以下、SRE)が広く知られるようになりました。それから7年が経過し、日本においても多くの企業がSREの実践に取り組むようになりました。しかしながら一部では、SREという名称だけが独り歩きし、その実態が本来意図するところとは違った取り組み方になってしまっている事例も見受けられます。

SRE自体は、Google社内で2000年後半より発展し、そこから先の書籍の出版まで、およそ10年の期間を経てから初めて一揃いのプラクティスが公開されました。一方で、DevOpsが同様の期間にコミュニティで広く議論が交わされ、主に開発プロセスに注目した形で多くの共通認識が持たれるように成りました。結果として、SRE本が登場して、突然多くのプラクティスが公開され、これまでDevOpsを実践してきた人々に驚きや歓迎とともに混乱ももたらしました。特に混乱や誤解をもたらす理由となったのは、SREとして紹介されたプラクティスがDevOpsの文脈でも紹介されてきたことがあったことです。これにより、中には「要するにDevOpsを新しい呼び方をしただけのものであろう」という認識をされる人もいました。さらに裾野が広がると、運用全般を指してSREと呼ぶような事例も多く見かけるようになりました。

SREという言葉が定義され、その言葉が定着してるいうことには意味があります。SRE本では、Googleが意図するものを自社での事例をもって紹介していました。しかしその内容が読者の環境と大きく違うことから、Googleのような企業でなければ実践できないものとして誤解されてしまうこともありました。これは日本に限った話ではありません。訳者がSREの国際カンファレンスやコミュニティに関わる中でも、似たような状況が至る所で起きているのを多く目にしました。そういった背景と、SREの実践の敷居を下げるための資料が少ないことから、原著者は本書を書き下ろしました。原著者が編集した『SREの探求』もそうですが、原著者の需要を捉える嗅覚と、その需要を満たすための実行力には感服するばかりです。

訳者として本書が、類推からの早合点ではなく、皆さんが本来の意味でSREを理解し、咀嚼することの助けになることを願っています。そして、皆さん自身、さらに所属するの組織へのSREの適用が、本書によって促されることを期待しています。

クエリは流れ、ページャーは沈黙を守らんことを。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

第1刷の正誤表(第2刷で修正予定)

2章 p.16 本文下から2行目

炎上して動かなくりました→炎上して動かなくなりました

※文章に脱字がありました

付録A p.263 A.17 下から4行目

SREを始めるの助け、→SREを始めるのを助ける、

※文章に脱字がありました

目次

Becoming SRE 推薦の言葉
訳者まえがき
序文

第Ⅰ部 SRE入門

1章 はじめに
    1.1 SREとは何か
        1.1.1 信頼性
        1.1.2 適切
        1.1.3 持続的
        1.1.4 (その他の言葉)
    1.2 起源の物語
    1.3 SREとDevOpsとの関係性
        1.3.1 パート1:class
        1.3.2 パート2:DevOpsにとってのデリバリーはSREにとっての信頼性である
        1.3.3 パート3:注目の方向がすべて
    1.4 SREの基礎へ向かって

2章 SREの心構え
    2.1 システムの視点を維持するためのズームアウト
    2.2 フィードバックループを作り、育てる
    2.3 顧客重視の姿勢を貫く
    2.4 (人や物との)関係性
        2.4.1 SREと(他の)人々との関係
        2.4.2 SREと失敗やエラーとの関係
    2.5 動き出すマインドセット

3章 SREの文化
    3.1 幸せな魚、もとい、人
    3.2 SREを支援する文化をどう作るか
        3.2.1 乗り物あるいはテコとしての文化
        3.2.2 SREに何を望むか?
        3.2.3 あなたが望み、必要とする文化を組み立てることについて考える
        3.2.4 まだ何から始めたらいいかわからない
        3.2.5 芽生えたばかりのSRE文化を育てる
        3.2.6 取り組み続けよう

4章 SREについて語る(SREの提唱)
    4.1 SREの経験が浅くても提唱が重要な理由
    4.2 提唱が重要な場面
    4.3 ストーリー(と聴衆)を明確にする
        4.3.1 ストーリーのアイデア
        4.3.2 他人のストーリー
        4.3.3 二次的ストーリー
        4.3.4 ストーリーが提示する課題
    4.4 最後のヒント

第Ⅱ部 個人がSREをはじめるには

5章 SREになるための準備
    5.1 コーディングの知識は必要か
    5.2 計算機科学の学位は必要か
    5.3 基礎
        5.3.1 単一/基本システム(およびその故障モード)
        5.3.2 分散システム(とその故障モード)
    5.4 統計とデータの可視化
    5.5 ストーリーテリング
        5.5.1 良い人であれ
    5.6 おまけ
        5.6.1 非抽象的な大規模システム設計(NALSD)
        5.6.2 レジリエンス工学
        5.6.3 カオスエンジニアリングと性能工学
        5.6.4 機械学習(ML)と人工知能(AI)
    5.7 その他に何が?

6章 …からSREになる
    6.1 あなたはすでにSREですか
    6.2 学生からSREになる
    6.3 開発者からSREになる
    6.4 システム管理者/IT部門からSREになる
    6.5 一般的なアドバイス
        6.5.1 技術職XからSREへ
        6.5.2 非技術職XからSREへ
        6.5.3 継続し続けるために進捗を記録する

7章 SREとして採用されるためのヒント
    7.1 求人情報を精査する
        7.1.1 SREの面接に備える
        7.1.2 SREの面接で何を聞くか
        7.1.3 勝利!

8章 SREのある一日
    8.1 SREの一日のモード
        8.1.1 インシデント/障害モード
        8.1.2 インシデント後の学習モード
        8.1.3 ビルダー/プロジェクト/学習モード
        8.1.4 アーキテクチャモード
        8.1.5 管理職モード
        8.1.6 計画モード
        8.1.7 コラボレーションモード
        8.1.8 回復とセルフケアモード
    8.2 バランス
    8.3 1日を良い日にする

9章 トイルとの関係を築く
    9.1 トイルをより正確に定義する
    9.2 誰のトイルについて話しているのか
    9.3 なぜSREはトイルを気にするのか
    9.4 トイルのダイナミクス:初期
    9.5 トイルへの対処
        9.5.1 中級から上級のトイルの削減
        9.5.2 あなたはどうするつもりですか

10章 失敗から学習する
    10.1 失敗について語る
    10.2 インシデント後のレビュー
        10.2.1 インシデント後のレビュー:基本
        10.2.2 インシデント後のレビュー:プロセス
        10.2.3 インシデント後のレビュー:よくある罠
    10.3 レジリエンス工学を通して失敗から学ぶ
    10.4 カオスエンジニアリングを通じて失敗から学ぶ
    10.5 失敗から学ぶ:次のステップ

第Ⅲ部 組織がSREをはじめるには

11章 成功のための組織的要因
    11.1 成功要因1:何を問題としているか
    11.2 成功要因2:そのために組織は何をするか
    11.3 成功要因3:組織には必要な忍耐力があるか
    11.4 成功要因4:共同作業できるか
    11.5 成功要因5:データに基づいて意思決定を行っているか
    11.6 成功要因6:組織は学び、学んだことに基づいて行動できるか
    11.7 成功要因7:違いを生み出せるか
    11.8 成功要因8:システム内の摩擦を見る(そして対処する)ことができるか
    11.9 注意書き
    11.10 組織の価値観がすべて

12章 SREはいかにして失敗するか
    12.1 失敗要因1:SRE創設のための肩書きフリップ
    12.2 失敗要因2:3次サポートのSRE化
    12.3 失敗要因3:オンコール、以上
    12.4 失敗要因4:誤った組織図
    12.5 失敗要因5:丸暗記によるSRE
    12.6 失敗要因6:ゲートキーパー(門番)
    12.7 失敗要因7:成功による死
    12.8 失敗要因8:小さな要因の集まり
    12.9 SREの失敗を「SRE」する方法

13章 ビジネス視点からのSRE
    13.1 SREについて伝える
        13.1.1 信頼性についてビジネスを語る
        13.1.2 SREを売る
        13.1.3 成功をビジネスに還元する
        13.1.4 SREグループの成功を他者に証明する
    13.2 SREの予算編成
        13.2.1 最初の予算要求
        13.2.2 資金調達について語る
        13.2.3 契約延長の会話
        13.2.4 資金調達モデル
    13.3 SREの調整
        13.3.1 関与のモデル
        13.3.2 なぜエンベデッドモデルではないのか?
        13.3.3 ページャーモンキーやトイルバケツの罠を避ける
    13.4 SREチーム
        13.4.1 人数の選択
        13.4.2 SREチームがトラブルに見舞われた場合、それをどう知るか
        13.4.3 チームの健康状態を示すアラートノイズ
        13.4.4 SREの昇進
        13.4.5 チームを解散する
    13.5 著者より:あなたの声を聞かせてください

14章 Dickersonの信頼性の階層構造(良い出発点)
    14.1 Dickersonの信頼性の階層構造
        14.1.1 階層1:監視/オブザーバビリティ
        14.1.2 階層2:インシデントレスポンス
        14.1.3 階層3:インシデント後のレビュー
        14.1.4 階層4:テスト/リリース(デプロイ)
        14.1.5 階層5:プロビジョニング/キャパシティプランニング
        14.1.6 階層6と階層7:開発プロセスと製品設計
    14.2 間違った方向転換
        14.2.1 こういうときに間違った方向転換をしたと気づく
    14.3 ポジティブな兆候

15章 SREを組織に組み込む
    15.1 事前個人練習と事前チーム練習
    15.2 統合モデル
        15.2.1 中央集権型/パートナー型モデル
        15.2.2 分散型/埋め込み型モデル
        15.2.3 ハイブリッド型モデル
        15.2.4 モデルの選び方
    15.3 適切なフィードバックループの構築と育成
        15.3.1 フィードバックループとデータ
        15.3.2 フィードバックループと反復
        15.3.3 フィードバックループと反復の計画
        15.3.4 フィードバックループを組織のどこにどのように組み込むか
    15.4 成功の兆し

16章 SRE組織の進化段階
    16.1 段階1:消防士
    16.2 段階2:ゲートキーパー
    16.3 段階3:提唱者(アドボケイト)
    16.4 段階4:パートナー
    16.5 段階5:エンジニア
    16.6 実装者への警告

17章 組織におけるSREの成長
    17.1 規模拡大のタイミングをどう知るのか
    17.2 0から1に拡大する
    17.3 1から6への拡大
    17.4 6から18に拡大
    17.5 18から48に拡大
    17.6 48から108(それ以上)への拡大
    17.7 SREのリーダーを育てる

18章 おわりに
    18.1 ここからどこへ

付録A 若きSREへの手紙(リルケさんすみません)
    A.1 John
    A.2 Fred
    A.3 Aju
    A.4 Daniel
    A.5 Joanna
    A.6 Fabrizio
    A.7 Graham
    A.8 Jamie
    A.9 Andrew
    A.10 Pedro
    A.11 Balasundaram
    A.12 Eduardo
    A.13 Ian
    A.14 Olivier
    A.15 Ralph
    A.16 David
    A.17 Alex
    A.18 Effie

付録B 元SREからのアドバイス
    B.1 Dina
    B.2 Sara
    B.3 Andrew
    B.4 Scott

付録C SRE関連資料
    C.1 核となる書籍
    C.2 特定分野におけるSRE関連書籍
    C.3 イベント
        C.3.1 SREcon
        C.3.2 ベンダー主催の単日SREイベント
        C.3.3 DevOpsイベントトラック/セッション
        C.3.4 SREに隣接する領域のニッチイベント
    C.4 SRE動画コンテンツ
    C.5 SRE特化型ポッドキャスト
    C.6 SRE特化型メールニュースレター
    C.7 オンラインフォーラム
    C.8 歴史的文書
    C.9 キュレーションリンク集
    C.10 日本向け情報

索引