スポンサーリンク

Site Reliability Engineering サイトリライアビリティエンジニアリング(O’Reilly) Betsy Beyer

Book Summary
スポンサーリンク
本書の目次
レビュー

SREとはGoogleによって提唱された言葉でSite Reliability Engineering=サイト信頼性エンジニアリングという言葉のことです。この役割の意味は「サイトの信頼性向上のために、自動化、障害対応、パフォーマンス管理、可用性担保などを通じて収益・ブランドを支える役割」ということです。つまり、ただシステムの安定稼働に専念するだけでなく、ビジネスへの寄与が求められています。近年、この役割を持ったSREチームを設立する動きが日本でも広がっています。 サイボウズやメルカリと行った大手ネットベンチャー企業は早くもSREチームを発足し、自社サービスのさらなる発展を目指しています。

現在は、インフラにおける日々の運用業務は、クラウド事業者に任せられるようになりました。またインフラを使うために必要な設定は、クラウドであればツールやAPIを介して使えるようになり、アプリケーション開発者にもできる時代です。このような仕組みが「Infrastructure as Code」です。こんな時代に運用技術者に求められる役割も大きく変わろうとしています。例えば、これまで求められてきた業務は、次のような内容でした。
  ・ ITの実務上の利用方法について問い合わせを受けて対応する窓口業務
  ・ 定められたオペレーションを繰り返し実施する定常業務
  ・ ITに関するトラブルに対応する障害対応業務
  ・ インフラに関する管理業務(構成管理やキャパシティー管理など)

このような業務は積極的にクラウドサービスや自動化ツールに置き換え、どんどん変わるビジネス要件に柔軟・迅速に対応できるインフラ環境を作ることへと、業務の重点を移していくことが求められています。
  ・ 変更への即応性や信頼性の高いシステム基盤を設計
  ・ 運用管理の自動化/自律化の仕組みを設計・構築
  ・ 開発者が利用しやすい標準化されたポリシーやルールの整備 など
このような役割を担う技術者が「SRE(Site Reliability Engineer)」と呼ばれ、開発者とサービスレベルの目標値を共有し、協力しながら開発やテスト、本番稼働に必要なインフラ環境をすぐに使える組織横断的な仕組みを作ることに取り組みます。

GoogleのSREチームの主要メンバーによって書かれた本書は、ソフトウェアのライフサイクル全体にコミットすることで世界最大規模のソフトウェアシステムがどのように構築、導入、監視、維持されているのかを解説します。はじめにリスク管理やサービスレベル目標、リリースエンジニアリングなどSREの行動の基礎となる原則について解説し、次にインシデント管理や障害の根本原因分析、SRE内でのソフトウェア開発など大規模分散コンピューティングシステムを構築し運用するSREの実践について詳述します。さらにSREのトレーニングやコミュニケーションなどの管理について紹介します。

本書の要点

章ごとにポイント解説

ポイント解説
はじめに

SRE(Site Reliability Engineer)は、システムのスケーラビリティ、信頼性、効率性を向上させるための設計・運用を見つけること

[3つのポイント]

 ・信頼性こそがあらゆるプロダクトの基本的な機能
 ・SREは、元々の意味はgoogle.comのWEBサイトを動作させ続けること
 ・ソフトウェアは誕生後に多くのコストと時間を費やす

[サマリ]
直訳すると、Site(場所,現場) Reliability(信頼性) Engineering(工学)となります。もともとはgoogle.comの検索サイトをいかに動作させ続けられるかというところから生まれた用語となります。SREの役割として従来の運用とは全く異質と感じるかたもいるだろうが、現在ビジネスとシステムが強く結びついてきている環境かで、どのようにSREという言葉が生まれ、そして広まりつつあるのかが説明されています。

第1部
イントロ

SRE(Site Reliability Engineer)は、システムのスケーラビリティ、信頼性、効率性を向上させるための設計・運用を見つけること

[3つのポイント]

 ・戦争には多大な費用が必要
 ・戦争は少しでも早く終わらせろ
 ・戦争の開始から終わりまで事前に作成を立てろ

[サマリ]戦争準備計画について記しています。戦争を長期化させない。戦争が長期化しても国の利益にはならないといっています。

第2部
原則
[3つのポイント]
 ・戦争は避ける努力をせよ
 ・外交を重要視せよ
 ・外交を優位に進めるためには情報が重要

[サマリ]武力ではなく「はかりごと」によって、敵を屈服させることの重要性を説いています。政治的な駆け引きや外交における攻勢、情報操作など、自国を有利な立場に導くやり方について述べている。

第3部
実践
[3つのポイント]
 ・勝てる時だけ戦え
 ・理想的な戦いは地味なものである
 ・勝つための準備は事前に完了させろ

[サマリ]攻撃・守備、それぞれの態勢についてです。「形」とは字の示すように目に見える形である。形を整えるということは言い換えると、必ず勝てるような態勢を作り出し、敵の敗勢に乗ずると言っています。

第4部
管理
 [3つのポイント]
 ・強さは一定でなく、状況によって変動する
 ・味方が強く、敵が弱い時に戦え
 ・戦いがはじまれば奇策も重要

[サマリ]戦う前に整えるべき態勢を指し示しています。第四軍形篇の「形」は態勢などの静的な状態を指すのに対して、「勢」はその動きの結果もたらす効果という動的なものを指しています。総じて戦いの上手な者は、変幻自在な運用から生まれる「勢」をもって戦いに当たるといっています。

第5部
まとめ
[3つのポイント]
 ・敵は分散させ、味方は集中させる
 ・戦術の極意は「無形」
 ・敵ははっきり(虚)、こちらは無形(実)

[サマリ]「虚」とはすきのある状態を指し、「実」は充実した状態を指す。これまでにも述べられてきたように、実を以て虚を討つことが基本であるが、ここではその手法について詳しく語られています。

本書の目次

〇はじめに

〇 第1部 イントロダクション
・1章 イントロダクション
・2章 SREの観点から見たGoogleのプロダクション環境

〇 第2部 原則
・3章 リスクの受容
・4章 サービスレベル目標
・5章 トイルの撲滅
・6章 分散システムのモニタリング
・7章 Googleにおける自動化の進化
・8章 リリースエンジニアリング
・9章 単純さ

〇 第3部 実践
・10章 時系列データからの実践的なアラート
・11章 オンコール対応
・12章 効果的なトラブルシューティング
・13章 緊急対応
・14章 インシデント管理
・15章 ポストモーテムの文化:失敗からの学び
・16章 サービス障害の追跡
・17章 信頼性のためのテスト
・18章 SREにおけるソフトウェアエンジニアリング
・19章 フロントエンドにおけるロードバランシング
・20章 データセンターでのロードバランシング
・21章 過負荷への対応
・22章 カスケード障害への対応
・23章 クリティカルな状態の管理 :信頼性のための分散合意
・24章 cronによる分散定期スケジューリング
・25章 データ処理のパイプライン
・26章 データの完全性:What You Read Is What You Wrote
・27章 大規模なプロダクトのローンチにおける信頼性

〇 第4部 管理
・28章 SREの成長を加速する方法:新人からオンコール担当、そしてその先へ
・29章 割り込みへの対処
・30章 SREの投入による運用過負荷からのリカバリ
・31章 SREにおけるコミュニケーションとコラボレーション
・32章 進化する SREのエンゲージメントモデル

〇 第5部 まとめ
・33章 他の業界からの教訓
・34章 まとめ

著者・出版

著者: Betsy Beyer

サイトリライアビリティエンジニアリング(SRE)とは、Googleで培われたシステム管理とサービス運用の方法論です。GoogleのSREチームの主要メンバーである Betsy Beyer を中心に書かれた本書は、ソフトウェアのライフサイクル全体にコミットすることで世界最大規模のソフトウェアシステムがどのように構築、導入、監視、維持されているのかを解説します。

はじめにリスク管理やサービスレベル目標、リリースエンジニアリングなどSREの行動の基礎となる原則について解説し、次にインシデント管理や障害の根本原因分析、SRE内でのソフトウェア開発など大規模分散コンピューティングシステムを構築し運用するSREの実践について詳述します。さらにSREのトレーニングやコミュニケーションなどの管理について紹介します。

コメント

タイトルとURLをコピーしました