# ウェブオペレーション ―サイト運用管理の実践テクニック ## 概要 成長するウェブサイトの設計・構築・保守という営みを、独立した工学の専門分野として名指しし、その内実を第一線の実務家自身の言葉で記録した書籍である。編者の John Allspaw と Jesse Robbins は、ウェブアプリケーションの運用が「システム管理やソフトウェア開発の分野に固有の難しさ」を持つと述べ、その難しさに向き合ってきた実務家 17 人(日本語版では 18 人)にアドバイスと物語の提供を求めた。各章は独立したエッセイであり、章ごとに執筆者・立場・主張が異なる。編者自身が「著者によって言っていることが矛盾しているところもある」ことを織り込んでおり、単一の教義ではなく経験則の集積として読まれることを意図している。 Google の SRE 本(2016)より 6 年早く、DevOps という語が広まりはじめた時期(devopsdays 開催は 2009 年)に刊行されており、後に SRE / DevOps として体系化される主題 — メトリクス収集、監視設計、継続的デプロイ、構成管理、開発と運用の協働、ふりかえり、キャパシティ計画 — が、まだ体系化される前の生の実務知として並んでいる点に資料的な価値がある。 ## 書誌情報 - 書名: ウェブオペレーション ―サイト運用管理の実践テクニック - 原書: *Web Operations: Keeping the Data On Time*, O'Reilly Media, 2010, ISBN 978-1-449-37744-1 - 編者: John Allspaw(ジョン・オルスポー)、Jesse Robbins(ジェシー・ロビンス) - 訳者: 角 征典(かど まさのり) - 出版社: 株式会社オライリー・ジャパン(発売元: 株式会社オーム社) - 発行: 2011 年 5 月 16 日 初版第 1 刷 - ISBN: 978-4-87311-493-4 - 構成: 全 18 章(原書 17 章 + 日本語版のみに追加された 18 章) - 対象読者: システム管理者・データベースエンジニア・ネットワークエンジニアといったウェブアプリケーションの運用に携わるエンジニア ## 構成と主要テーマ 本書に部(Part)の区分はなく、全 18 章がそれぞれ独立したエッセイとして並ぶ。以下は主題で束ねたもので、書籍上の順序は章番号のとおりである。 ### 職能としてのウェブオペレーション 分野そのものと、その担い手がどう育つのかを扱う。本書全体の入口にあたる。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 1 ウェブオペレーション:キャリア]] — 学校教育も資格制度もないこの職能は、「理論と実践の衝突」を理解して大惨事を未然に防ぐ方法論を、知識・ツール・経験・規律という 4 分野の非公式な徒弟制を通じてしか体得できないと説く。 ### インフラの構築とデプロイ インフラをどう作り、どう変更を届けるか。後に Infrastructure as Code・継続的デプロイとして体系化される主題群。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 2 Picnik におけるクラウドコンピューティングの利用とその教訓]] — 2007 年の S3 試用から EC2 のオートスケーリングまで段階的にクラウドを取り入れ、密結合な部分はオンプレミスに残し疎結合なレンダーサーバだけをクラウド化したハイブリッド構成の記録。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 4 継続的デプロイ]] — バッチサイズを小さくする 4 つの利点から継続的デプロイを理論化し、IMVU のクラスタ免疫システムを実例に、デプロイとリリースの分離とフィーチャーフラグによってミッションクリティカルな用途にも適用できると論じる。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 5 コードとしてのインフラ]] — SOA 由来の 3 原則と Cfengine 由来の 4 原則を統合した 10 原則を軸に、構成管理を「方針の設定・実施・監査・検証」という 4 段階サイクルとして体系化する。 ### 計測と監視 何を測り、どう見張るか。サーバ側・監視システム側・ユーザ側という 3 つの視点が別々の章で提示される。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 3 インフラとアプリケーションのメトリクス]] — メトリクス収集と監視(アラート)の分離、RRD による時間分解能の設計、3 層メトリクス、ログのメトリクス活用、変更管理との接続、そして Ganglia 自身の設計思想までを実例で解説する。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 6 監視]] — 監視は技術ではなくビジネスとエンドユーザを支えるための「旅」だとして、可用性の数式化・依存関係の直列/並列/結合の分類・対応可能なアラートの設計を段階的に積み上げる。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 11 訪問者の気持ち:ユーザ対面メトリクス]] — インフラの健康状態とユーザ体験は別物だという前提に立ち、4 種類のエンドユーザメトリクスと、統合監視 / RUM・Apdex・解析モデルという技法群を提示する。 ### 障害と、その後始末 障害そのものの性質、ユーザへの伝え方、事後のふりかえり、そして事前の備え。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 7 いかにして複雑なシステムは失敗するか]] — Cook の 1998 年の論説の 18 命題を再録したうえで、原論説にない書き下ろし §7.2 でその抽象命題をウェブ運用実務の具体的な言葉に翻訳し直す。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 8 コミュニティ管理とウェブオペレーション]] — 編者による対談。障害が起きたときユーザコミュニティへどう向き合うかという、技術ではなく人的側面の実務を描く。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 13 障害を活用する:ふりかえりの技芸と科学]] — 「誰のせいなんだ」という最悪のふりかえりの実体験から出発し、体系的なふりかえりの手順と、原因別分類による長期傾向分析を確立するまでを語る。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 17 夜中に聞こえる奇妙な物音(と、ぐっすり眠る方法)]] — 事業継続計画を「稀な大災害への保険」ではなく「日々の小さなミスへの備え」と再定義し、RTO/RPO・劣化障害・フェイルオーバーの定期テストを 7 年の経験から論じる。 ### 規模と負荷への対応 トラフィック・データ・ストレージが増えたときに何が起きるか。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 9 予期しないトラフィック急増への対応]] — 大手ポータル経由の突発的な流入で起きたキャッシュスタンピードを、応急処置からアーキテクチャ刷新・CDN 導入・本番負荷テストまでで乗り越えた実体験。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 12 ウェブにおけるリレーショナルデータベースの戦略と戦術]] — ウェブデータベースの要件から典型的な成長経路、クラスタ製品への過剰な期待への戒め、堅ろうな構成と危険な構成の対比、日々の運用戦術までを論じる。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 14 ストレージ]] — データ資産の棚卸し・データ保護・キャパシティ計画・サイジング審査・サプライヤ運用を、自身の失敗事例とともに語る。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 15 非リレーショナルデータベース]] — 執筆時点の NoSQL 勢力図を 5 分類で整理し、各製品を実際の企業導入事例とともに詳述する。 ### 開発と運用の関係 本書における DevOps 的主張の中核。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 10 開発と運用の協力と連携]] — 開発と運用を分断する伝統的な組織構造を批判し、小さく頻繁なデプロイ・インフラの共有・信頼の構築・開発者のオンコール化・非難を伴わないふりかえりを実例とともに描く。 → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 16 アジャイルインフラストラクチャ]] — アジャイルの哲学を運用へ適用できるのか(あるいはできないのか)を方法論のレベルで論じ、「混乱の壁」を越える鍵は技術ではなく信頼の構築だと結論する。 ### 日本語版のための書き下ろし → [[@2011__OReillyJapan__ウェブオペレーション - Chapter 18 日本の料理のインフラ]] — 原書にない日本語版オリジナル。クックパッドの実装を通じて、経験則としてのレスポンスタイム閾値・キャパシティの定量管理・三層冗長化・設定ファイルの版管理・情報共有の工夫を一体で運用する具体像を描く。 ## 影響と位置づけ 本書は、後に SRE / DevOps として体系化される主題が、まだ名前も定説も持たなかった時期の実務知を保存している。編者の一人 John Allspaw が本書刊行の翌年(2012)に Etsy で「非難なきポストモーテム(blameless postmortem)」を提唱することを踏まえると、10 章の非難回避論はその 2 年前に書籍として世に出ていたことになる。6 章の著者 Patrick Debois と 16 章の著者 Andrew Clay Shafer は、2008 年の Agile 2008 における "Agile Infrastructure" の議論から devops 運動が生まれた経緯の当事者でもある。 同時に、本書は単一の教義を提示しない。13 章が「ふりかえりには根本原因の特定が必須」と説く一方、7 章は Cook の命題を引いて「単一の根本原因は存在しない」と述べる。訳者はこの食い違いを織り込んだうえで「こうした経験則の違いも含めて『ウェブオペレーションのだいご味』と思うことにしよう」と書いている。(Source: 『ウェブオペレーション ―サイト運用管理の実践テクニック』訳者まえがき) ## 関連 - 書籍原本: `.raw/books/web-operations-ja/` - 7 章の元になった論説の独立した source: [[@1998__CtL__How Complex Systems Fail]] ## 備考(原本の誤植) 原本 9 章の章扉のバイラインが、8 章と同じ「ヘザー・チャンプ、ジョン・オルスポー」と印刷されている。巻末の寄稿者紹介は 9 章の執筆者を「ブライアン・ムーン(Brian Moon)」と明記しており、本文の内容(dealnews.com の実務エッセイ)もこれと整合するため、wiki 側は Brian Moon を執筆者として記録している。 ## 出典 - John Allspaw・Jesse Robbins 編, 角 征典 訳, 『ウェブオペレーション ―サイト運用管理の実践テクニック』, オライリー・ジャパン, 2011.