> [!abstract] > Google における自動化の進化を、5 段階の階層モデルと 3 つの主要事例を通じて論じる。自動化は一貫性・迅速な修復・時間節約をもたらす一方、誤りも増幅する。手作業の単純な置き換えではなく、明確な API を備えた耐障害システムの構築こそが本質的な教訓である。 ## 書誌情報 - タイトル: The Evolution of Automation at Google(Chapter 7) - 著者: [[Niall Murphy]]、John Looney、Michael Kacirek - 書籍: [[SRE Book]](Site Reliability Engineering: How Google Runs Production Systems, O'Reilly, 2016) - URL: https://sre.google/sre-book/automation-at-google/ ## 自動化の 4 つの価値 1. **一貫性(consistency)**: 手作業では避けられないばらつきを排除し、手順の均質な実行を保証する 2. **プラットフォーム化(platform)**: 自動化を共有基盤として構築することで、組織全体に恩恵が及ぶ。個人スクリプトの集合体では実現しない 3. **迅速な修復と行動(faster repair/action)**: 平均修復時間(MTTR)を短縮する。人間が介在する修復より桁違いに速い 4. **時間の節約(time saving)**: 最も直感的だが、実は最も重要度が低い価値である。他の 3 つが先に来る ## 自動化の 5 段階階層 | 段階 | 内容 | |---|---| | 1. 手動 | すべてを人間が実行する | | 2. 外部管理の自動化 | 汎用的な外部ツールでタスクを自動化する | | 3. 外部管理のシステム固有自動化 | 特定システム向けの外部ツールを作成する | | 4. 内部管理のシステム固有自動化 | システム自体が自らの管理ロジックを内包する | | 5. 完全自律 | 人間の介入なしにシステムが自律的に運用される | 段階が上がるほどシステムの信頼性と効率が向上する。最も価値ある移行は段階 3 から 4 への移行であり、自動化がシステムの外部ではなく内部に組み込まれる点が質的に異なる。 ## 事例 1: MySQL の Borg 移行(Decider) Google の MySQL インフラを Borg(クラスタ管理システム)上に移行する際、Decider と呼ばれる自動化フレームワークを構築した。フェイルオーバ、レプリカ管理、バックアップ、スキーマ変更などを自動化し、管理オーバーヘッドを **95% 削減**した。この成功は段階 4(内部管理のシステム固有自動化)への移行の典型例である。 ## 事例 2: クラスタターンアップ 新しいクラスタの立ち上げ(ターンアップ)プロセスは、初期には手作業の手順書で運用されていた。その後、スクリプト化→ Prodtest(検証自動化フレームワーク)→ SOA(サービス指向アーキテクチャ)へと進化した。最終形態では、ターンアップ自体がサービスとして定義され、宣言的に実行可能となった。 ## 事例 3: Borg クラスタ管理 データセンタをマネージドプールとして扱い、個別マシンの管理からクラスタ全体の自律管理に移行した。Borg が自律的にワークロードのスケジューリング、ヘルスチェック、障害復旧を行うことで、段階 5(完全自律)に近い運用を実現した。 ## 事例 4: Diskerase の障害(自動化の増幅リスク) 自動化されたディスク消去プロセス(Diskerase)が、意図しないディスクを対象に実行された事例である。自動化は正しく動作していたが、入力データの誤りが増幅され、大規模な被害を招いた。この事例は、自動化が**誤りも増幅する**という本質的なリスクを示している。 ## 核心的教訓 手作業プロセスをそのまま自動化するのではなく、**明確な API を持つ耐障害システムを構築する**ことが本質である。自動化はシステム設計の一部として組み込まれるべきであり、運用手順の後付けであってはならない。 ## 関連 - [[@2016__OReilly__SRE Book - Chapter 5 Eliminating Toil]]: トイル削減と自動化の関係 - [[自動化のアイロニー]]: Bainbridge(1983)による自動化の逆説的課題との接続 - [[@1983__Automatica__Ironies of Automation]]: 自動化が人間のスキル劣化を招く古典的議論 - [[@2007__LISA__On Designing and Deploying Internet-Scale Services]]: Hamilton による自動管理の原則 ## 出典 - Niall Murphy, John Looney, Michael Kacirek, "The Evolution of Automation at Google," in *Site Reliability Engineering*, O'Reilly, 2016