SlideShare a Scribd company logo
1 of 16
Download to read offline
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 1/16
Postmortem: All Satellite Machines Sent to Diskerase 2014-August-11
Owner: Postmortem: maxone@, logantwo@
Datacenter Automation: sydneythree@
Network: dylanfour@
Server Management: finfive@
Shared with: all_engineering_employees@google.com
Status: Final
Incident date: Mon, August 11, 2014, 17:10 to 17:50 PST8PDT
Published: Fri, August 15, 2014
フロントエンドのクエリーが破棄された
⼀部広告が処理されなかった
約2⽇にわたって、通常サテライトで処理されるサービス遅延が発⽣した
ポストモーテム⽂化(失敗から学ぶ)の後半 p.203〜
よいポストモーテムについて
Executive Summary
Impact:
Root cause:
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 2/16
ターンダウン⾃動化のバグ起因で、(本来)1ラック分のサテライトマシンのところ、 すべてのサテライトマシンがディスク消去扱いとな
った。
これにより、すべてのサテライトマシンがdecomのワークフローに⼊り、 ディスクが⼀掃された。
グローバル規模でサテライトのフロント停⽌が発⽣した
主要な障害は8/11(⽉)17:10〜17:50の間発⽣しており、
その復旧作業と継続的なダメージは8/13(⽔)の7:46までに完了した
フロントエンドとりわけサテライト上にあるもの
サテライトで処理されるグローバルのリクエストのおよそ60%
フロントエンドのクエリーが40分間破棄された
期間中QPSの平均値を上回った
通常サテライトで処理される処理が2⽇間にわたって応答遅延となった
正確な値は計上不能
Problem Summary
Duration of problem:
Product(s) affected:
% of product affected:
User impact:
Revenue impact:
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 3/16
外形監視
全世界でサテライトで"satellite a12bcd34 failing too many HTTP requests"と記録された
フロントエンドのトラフィックをすべてcoreクラスタに移すことで、
応答遅延という犠牲はありつつも、障害⾃体は急速に緩和された
フロントエンドのトラフィックとGoogleのサービス⾃動化の下位レイヤーの話に習熟していない場合は、
先に進む前に⽤語集を読んでください。
フロントエンドのクエリーがxx分間破棄された。
その期間中グローバルでのトラフィックのxx%のQPSが、平常値を上待った。
が、監視システムはより⼤きな痕跡を⽰唆していた。
つまり、(実際には)まだ機能していたサテライトも、ダウンしていると判断して 監視⾃体を停⽌してしまったので信頼できない
付録では、上記の数値の⾒積もり⽅法についても説明している
2⽇間近く、通常サテライトから提供されるすべてのサービスの応答時間が増加しました。
Detection:
Resolution:
Background (optional)
Impact
User impact
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 4/16
・コアクラスター付近の国でRTT(ラウンドトリップ時間)が瞬間的に跳ね上がった ・サテライトにより依存している地域、たとえば、
オーストラリア、ニュージーランド、インドといった国々ではより数字があがった
⼀部の広告はクエリが失われたため配信されず、
正確な収益への影響は現時点では不明。
・Display and video:
データは⽇々の変動による⾮常に広いエラーバーを持っているが、
収益の損失のxx%からxx%の間と⾒積もる
・Search
17:00から18:00までのあいだ、xx%からxx%の間と⾒積もる
※エラーバーは⼤きい
トラフィック対応のチームは、サテライトの再構築するために 全⼒で48時間を費やした。
NST had a higher-than-normal interrupt/pager load because they needed to traffic-engineer overloaded peering links.
※ノンストレステスト
GFEのキャッシュヒット率が低下したことで、⼀部のサービスで フロントエンドの応答遅延が発⽣した
※GFE=GoogleFrontEnd(Apache?)
たとえば、[cache-dependent service]を⾒れば、 GFEのキャッシュヒット率がxx%からxx%まで低下していることがわかる。
Revenue impact
Team impact
Incident document
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 5/16
※リンクは編集済
A longstanding input validation bug in the Traffic Admin server was triggered by the manual reexecution of a workflow to decommission
the a12bcd34 satellite.
トラフィック管理サーバーに⻑く潜在したバリデーションのバグは、 サテライト"a12bcd34"を廃⽌するためのワークフローの⼿動再実
⾏によって発覚した。
このバグにより、デコムアクションに対する(対象機器が絞られているという)制約が取り除かれ、 すべてのサテライトマシンが廃⽌さ
れた。
その後、このアクションを⽌めることができる前に
⾃動的にデコムワークフローが実⾏され、
⼤部分のサテライトマシンのハードディスクが⼀掃された
トラフィック管理サーバは「ReleaseSatelliteMachines」RPCを提供している
このハンドラは、3つのMDB API呼び出しを使⽤してサテライト廃⽌を開始します。
1.ノードに結び付いたラック名称を参照する
2.ラック名称に結びついた(複数の)マシン名称を参照する
3.ディスク消去するように再割り当てする(これによって、間接的に廃⽌ワークフローが開始される)
この⼿順は、MDB APIの既知の動作と安全性チェックの⽋如が組み合わさっており、 冪等ではない。
サテライトノードが以前にdecomに正常に送信された場合、 上記のステップ2は空のリストを返し、これがステップ3で マシンホスト
名に制約がないこととして解釈される
この危険な仕様⾃体はしばらく前からあったが、 危険な操作を呼び出すワークフローによって隠されてた。 つまり、RPCを呼び出す
ワークフローステップは「1回実⾏」とマークされ、 ワークフローエンジンは成功したRPCを再実⾏することがなかった。
Root Causes and Trigger
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 6/16
ただし、「1回実⾏」というセマンティクスは、 ワークフローの複数のインスタンスに適⽤されない。
Cluster Turnupチームがa12bcd34のワークフローを⼿動で再実⾏したとき、 このアクションによってこのバグに陥った
タイムラインへのリンクは出版のため、削除されたが、 実際のポストモーテムでは必ず含まれる。
(サテライトからコアへの)エッジの避難
コアのGFEはこうったい⾃体を想定して明⽰的に容量計画をされている ※peering linksは除く
このエッジの避難のおかけで、トラフィックチームは すみやかに障害の緩和にさせることができた
壊滅的なサテライト障害の⾃動緩和
障害が発⽣したサテライトからのトラフィックを⾃動的にコアクラスタに引き戻し、 異常なchurnが検出されると、そのサテライトは
⾃動的に切り離される ※churn=クリーム・ミルクをかき回してバターを造る機械
サテライトのdecom/ディスク消去のプロセスは有効、かつ迅速に動いた。 albeit as a confused deputy?
この障害により、OMGを介した迅速なIMAGの対応が開始され、 このツールは継続的なインシデント追跡に役⽴ちました。 チーム間の
反応は素晴らしく、OMGはさらに全員がお互いに話をし続けるのを助けた。
Timeline/Recovery Efforts
Lessons Learned
Things that went well
Things that went poorly
Outage
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 7/16
トラフィック管理サーバーは、MDBに送信したコマンドに対する適切な健全性チェックを⽋いた
すべてのコマンドは、冪等であるか、または繰り返しの呼び出しに対して
少なくともフェイルセーフである必要がある。
MDBは、所有権変更要求で⽋落しているホスト名の制約にたいしてエラーを返さなかった
デコムワークフローでは、他のデータソースとリクエストを照合しない。 (例:計画的なラックの分解)
その結果、(多くの)地理的に多様なマシンをゴミ箱に捨てる要求に異議がでなかった。
デコムワークフローはレート制限がなかった。⼀度、デコムのフローに⼊ると、 ディスク消去とその他のデコムプロセスが最⾼速
で進む
サテライトとの通信が停⽌したときに出⼒トラフィックが別の場所に移動し、
代わりにコアからクエリが送信されたため、
Googleと世界の間の⼀部のピアリングリンクが過負荷になった。
これにより、サテライトが復旧するまでピアを選択するための短時間の輻輳が発⽣し、
それに合わせてNSTによる緩和作業が⾏われた。
サテライトマシンの再インストールは遅くて信頼できなかった。
再インストールではTFTPを使⽤してデータを送信するが、
遅延の⼤きいサテライトに送信するときにはうまく機能しない。
Autoreplacerインフラストラクチャは、 停⽌時にGFEの[編集済みの値]の同時設定を処理できなかった。
⾃動セットアップの速度を合わせるには、 ⼿動設定を並⾏して実⾏する多くのSREの労⼒が必要だった。
以下の要素が⾃動化の初期の遅れの原因となった。
⾮常に厳密なSSHタイムアウトにより、⾮常に遠⽅の衛星での信頼性の⾼い⾃動再配置操作が妨げらた
マシンの(現在の)バージョンによらず、(時間のかかる)カーネルアップグレードプロセスが実⾏された
Recovery
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 8/16
⾃動再配置の同時実⾏回帰?により、ワーカーマシンごとに3つ以上のマシンセットアップタスクを実⾏できなかった
⾃動再配置の動作についての混乱は時間と労⼒を浪費した
監視構成のデルタ安全チェック(25%の変更)は、 23%のターゲットが削除されたときにはトリガーされなかったが、 同じコンテン
ツ(残りの29%)が再読み込みされたときにトリガーされた。
これにより、衛星の監視を再び有効にするのに30分の遅れが⽣じた
インストーラは⼈員が限られていて、変更を加えることが難しく、時間がかかった
スーパーユーザーの権限を使⽤してマシンをdiskeraseから元の状態に戻すと、
多くのゾンビ状態が残り、クリーンアップの痛み(⼯数)が継続的に⽣じた
・コアクラスタ内のGFEは、サテライトのGFEとはまったく異なる⽅法で管理されていて、
デコムの⼤暴れにも影響を受けなかった
・同様に、YouTubeのCDNは別個のインフラストラクチャとして運営されていて、
チューブビデオの配信は影響を受けなかった。
もし、YouTubeのCDNサービスが落ちていたら、機能停⽌ははるかに深刻で⻑期化していたはず。
この障害の広範囲にわたる性質のために、 アクションアイテムを5つのテーマに分ける
1. Prevention/risk education
2. Emergency response
3. Monitoring/alerting
4. Satellite/edge provisioning
5. Cleanup/miscellaneous
Where we got lucky
Action Items
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 9/16
Action item Type Priority Owner
Tracking
bug
Audit all systems capable of turning live servers into paperweights (i.e.,
not just repairs and diskerase workflow).
investigate P1 sydneythree@ BUG1234
File bugs to track implementation of bad input rejection to all systems
identified in BUG1234.
prevent P1 sydneythree@ BUG1236
Disallow any single operation from affecting servers spanning
namespace/class boundaries.
mitigate P1 maxone@ BUG6789
Traffic admin server needs a safety check to not operate on more than
[value redacted] number of nodes.
mitigate P1 dylanfour@ BUG1237
Traffic admin server should ask to approve destructive work. prevent P0 logantwo@ BUG1238
MDB should reject operations that do not provide values for an
expected-present constraint.
prevent P0 louseven@ BUG1239
Action item Type Priority Owner
Tracking
bug
Ensure that serving from core does not overload egress network links. repair P2 rileysix@ BUG1240
Table 10-1. Prevention/risk education
Table 10-2. Emergency response
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 10/16
Action item Type Priority Owner
Tracking
bug
Ensure decom workflow problems are noted under [the link to our emergency
stop doc has been redacted] and [the link to our escalations contact page has
been redacted].
mitigate P2 logantwo@ BUG1241
Add a big-red-buttona disable approach to decom workflows. mitigate P0 maxone@ BUG1242
Action item Type Priority Owner
Tracking
bug
Monitoring target safety checks should not allow you to push a change that
cannot be rolled back.
mitigate P2 dylanfour@ BUG1243
Add an alert when more than [value redacted] % of our machines have been
taken away from us. Machines were taken from satellites at 16:38 while the
world started paging only at around 17:10.
detect P1 rileysix@ BUG1244
Action item Type Priority Owner Tracking bug
Use iPXE to use HTTPS to make reinstalls more reliable/faster. mitigat P2 dylanfour@ BUG1245
Table 10-3. Monitoring/alerting
Table 10-4. Satellite/edge provisioning
Table 10-5. Cleanup/miscellaneous
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 11/16
Action item Type Priority Owner
Tracking
bug
Action item Type Priority Owner
Tracking
bug
Review MDB-related code in our tools and bring the admin server backup to
unwedge turnups/turndowns.
repair P2 rileysix@ BUG1246
Schedule DiRT tests:
- Bring back satellite after diskerase.
- Do the same for YouTube CDN.
mitigate P2 louseven@ BUG1247
Admin server
フロントエンドのインフラの特権操作を⾃動化するためのRPCサーバー。
⾃動化サーバーは、PCRおよびクラスターのターンアップ/ターンダウンの実装に最も明確に関与している。
Autoreplacer
認証されていないサーバーをマシン間で移動するシステム。
これは、サービスがマシンの障害に直⾯しても実⾏され続けるようにしたり、
フォークリフトやコロの再構成をサポートするためにも使⽤されている。
Borg
タスクとマシンリソースを⼤規模に管理するように設計されたクラスタ管理システム。
Borgは、Borgセル内のすべてのマシンを所有し、利⽤可能なリソースを持つマシンにタスクを割り当てる
Decom
Glossary
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 12/16
decommissioning(廃⽌措置)の略
機器の廃⽌は、多くの運⽤チームに関連するプロセス
Diskerase
データセンターを離れる前に、本番ハードドライブを安全に消去するプロセス(および関連するハードウェア/ソフトウェア)
Diskeraseは、decomワークフローの⼀部分。
GFE (Google Front End)
外の世界が(ほぼ)すべてのGoogleサービスに接続するサーバー。
IMAG (Incident Management at Google)
システムの停⽌から⾃然災害まで、あらゆる種類のインシデントを処理するための標準的で⼀貫した⽅法を確⽴し、効果的な対応を体
系化するプログラム。
MDB (Machine Database)
Googleのマシンの在庫の状態に関するさまざまな情報を保存するシステム
Satellites
Googleのネットワークの端からのビデオ以外のフロントエンドトラフィックのみを処理する⼩型で安価なマシンラック。
サテライト内に利⽤可能な伝統的な⽣産クラスター基盤はほとんどない。
サテライトは、YouTubeのビデオコンテンツを配信するCDNとは異なり、YouTubeは今回のインシデントから影響を受けない。
Why is ReleaseSatelliteMachines not idempotent?
What happened after the Admin Server assigned all satellites to the diskerase-team?
What was the true QPS loss during the outage?
Appendix
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 13/16
IRC logs ※いずもリンク先は編集済
※省略
このポストモーテムはよい書き⽅の例⽰となっている
ポストモーテムはよく整理されており、重要な⽤語を⼗分に詳しく説明している たとえば、、、
Glossary
よく書かれた⽤語集は、ポストモーテムを幅広い読者にとって分かりやすく理解しやすいものにしている
Action items
この事案は多くのアクションアイテムを含む、⼤きなインシデントだった
アクションアイテムをテーマ別にグループ化すれば、 所有者と優先順位を簡単に割り当てることができる
ポストモーテムでは、キャッシュヒット率、トラフィックレベル、影響の期間など、
インシデントに関する有⽤なデータが提⽰され、データの関連セクションには、 元の情報源へのリンクが表⽰されている。
このデータの透過性が、あいまいさを取り除き、読者にコンテキストを提供している
Graphs
なぜ、このポストモーテムはより良いのか?
Clarity
Quantifiable metrics
Concrete action items
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 14/16
アクションアイテムをもたないポストモーテムは無意味である
アクションアイテムには、いくつか注⽬すべき特徴がある
Ownership
すべてのアクションアイテムには、担当者と管理表番号(バグNo)の両⽅がある
Prioritization
すべてのアクションアイテムに優先順位が割り当てられている
Measurability
アクションアイテムには検証可能な終了状態がある
(たとえば、当社のマシンのX%以上が当社から奪われたときにアラートを追加するなど)
Preventative action
Prevent/Mitigateのアクションアイテムは再発を回避するのに役⽴つ
たとえば、名前空間とクラスの境界にまたがるサーバーへの単⼀の操作の影響を禁⽌するなど。
著者らは、望ましくない故障モードを許容するシステム設計のギャップに注⽬した。
たとえば
Things that went poorlyは、個⼈やチームに事件の責任を負わせていない。
Root cause and triggerでは、「誰が」事件を引き起こしたのではなく、 「何が」うまくいかなかったかに焦点を当てている
Action itemsは、⼈を改善するのではなく、システムを改善することを⽬的としている
ポストモーテムは、システム障害の近くの領域だけを調査するにとどまらず、
複数のチームにわたる影響とシステムの⽋陥を調査している
Blamelessness
Depth
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 15/16
Impact
このセクションではさまざまな観点から詳細を説明し、それがバランスのとれた客観的な内容にしている、
Root cause and trigger
このセクションではインシデントについて深く掘り下げ、根本的な原因とトリガーに到達している
Data-driven conclusions
提⽰されたすべての結論は、事実とデータに基づいていて、 結論に⾄るために使⽤されたデータはすべて⽂書からリンクされてい
る
Additional resources
さらに有⽤な情報をグラフの形で提⽰し、 グラフのおかげでシステムに慣れていない読者も⽂脈を得やすい。
事後、1週間も経たないうちに、ポストモーテムは記載され、回覧された。 情報が寄稿者のなかで新鮮なので、迅速なポストモーテム
は(それだけで)より正確になる傾向がある
障害の影響を受けた⼈々は、あなたが物事を管理しているという 説明とデモを期待しており、時間が⽴つほど、 彼らは想像の産物でよ
り多くのギャップを埋めてしまう。
えてして、あなたにとってプラスには働くことはない。
このインシデントは世界規模のものであり、複数のシステムに影響を及ぼした。 その結果、ポストモーテムでは⼤量のデータが記録さ
れ、その後解析された。
Lengthy data sources, such as chat transcripts and system logs, were abstracted, with the unedited versions linked from the main
document. チャット記録やシステムログなどのデータソースの⻑さそのものが、 ドキュメントをぼんやりとさせた。
全体的に⾒れば、ポストモーテムは冗⻑性と読みやすさのバランスが取れたものになっている
Promptness
Conciseness
2019/2/5 ch10_2
file:///C:/Users/works/Downloads/ch10_2.md.html 16/16
項⽬ before after remeark
⽂脈 説明不⾜ Glossary/Graphなどで補⾜あり チーム外の⼈間にも⽰唆を与えることができる
責任 ⼈が主語 物事が主語
責任回避的な⽂化を助⻑しかねない
⼈ではなくシステムを改善したい
表現 主観的な表現が多い 数字を⽤いて客観的
責任回避的な⽂化を助⻑しかねない
⼈ではなくシステムを改善したい
主管 不明瞭 明瞭
主管を明確にすることで、説明、
遂⾏の責任所在が明らかになる
アクション
表現が曖昧
優先順位が等しい
担当不在
達成基準が明瞭
優先順序が明確
担当者が明確
アクションがなければそもそもポストモーテムが無意味
スピード感 遅い(4ヶ⽉後) 速い(1週間以内) 記憶が鮮明なうちに記載すること⾃体がメリット
(個⼈的な補⾜)

More Related Content

Featured

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Featured (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Ch10 2

  • 1. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 1/16 Postmortem: All Satellite Machines Sent to Diskerase 2014-August-11 Owner: Postmortem: maxone@, logantwo@ Datacenter Automation: sydneythree@ Network: dylanfour@ Server Management: finfive@ Shared with: all_engineering_employees@google.com Status: Final Incident date: Mon, August 11, 2014, 17:10 to 17:50 PST8PDT Published: Fri, August 15, 2014 フロントエンドのクエリーが破棄された ⼀部広告が処理されなかった 約2⽇にわたって、通常サテライトで処理されるサービス遅延が発⽣した ポストモーテム⽂化(失敗から学ぶ)の後半 p.203〜 よいポストモーテムについて Executive Summary Impact: Root cause:
  • 2. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 2/16 ターンダウン⾃動化のバグ起因で、(本来)1ラック分のサテライトマシンのところ、 すべてのサテライトマシンがディスク消去扱いとな った。 これにより、すべてのサテライトマシンがdecomのワークフローに⼊り、 ディスクが⼀掃された。 グローバル規模でサテライトのフロント停⽌が発⽣した 主要な障害は8/11(⽉)17:10〜17:50の間発⽣しており、 その復旧作業と継続的なダメージは8/13(⽔)の7:46までに完了した フロントエンドとりわけサテライト上にあるもの サテライトで処理されるグローバルのリクエストのおよそ60% フロントエンドのクエリーが40分間破棄された 期間中QPSの平均値を上回った 通常サテライトで処理される処理が2⽇間にわたって応答遅延となった 正確な値は計上不能 Problem Summary Duration of problem: Product(s) affected: % of product affected: User impact: Revenue impact:
  • 3. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 3/16 外形監視 全世界でサテライトで"satellite a12bcd34 failing too many HTTP requests"と記録された フロントエンドのトラフィックをすべてcoreクラスタに移すことで、 応答遅延という犠牲はありつつも、障害⾃体は急速に緩和された フロントエンドのトラフィックとGoogleのサービス⾃動化の下位レイヤーの話に習熟していない場合は、 先に進む前に⽤語集を読んでください。 フロントエンドのクエリーがxx分間破棄された。 その期間中グローバルでのトラフィックのxx%のQPSが、平常値を上待った。 が、監視システムはより⼤きな痕跡を⽰唆していた。 つまり、(実際には)まだ機能していたサテライトも、ダウンしていると判断して 監視⾃体を停⽌してしまったので信頼できない 付録では、上記の数値の⾒積もり⽅法についても説明している 2⽇間近く、通常サテライトから提供されるすべてのサービスの応答時間が増加しました。 Detection: Resolution: Background (optional) Impact User impact
  • 4. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 4/16 ・コアクラスター付近の国でRTT(ラウンドトリップ時間)が瞬間的に跳ね上がった ・サテライトにより依存している地域、たとえば、 オーストラリア、ニュージーランド、インドといった国々ではより数字があがった ⼀部の広告はクエリが失われたため配信されず、 正確な収益への影響は現時点では不明。 ・Display and video: データは⽇々の変動による⾮常に広いエラーバーを持っているが、 収益の損失のxx%からxx%の間と⾒積もる ・Search 17:00から18:00までのあいだ、xx%からxx%の間と⾒積もる ※エラーバーは⼤きい トラフィック対応のチームは、サテライトの再構築するために 全⼒で48時間を費やした。 NST had a higher-than-normal interrupt/pager load because they needed to traffic-engineer overloaded peering links. ※ノンストレステスト GFEのキャッシュヒット率が低下したことで、⼀部のサービスで フロントエンドの応答遅延が発⽣した ※GFE=GoogleFrontEnd(Apache?) たとえば、[cache-dependent service]を⾒れば、 GFEのキャッシュヒット率がxx%からxx%まで低下していることがわかる。 Revenue impact Team impact Incident document
  • 5. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 5/16 ※リンクは編集済 A longstanding input validation bug in the Traffic Admin server was triggered by the manual reexecution of a workflow to decommission the a12bcd34 satellite. トラフィック管理サーバーに⻑く潜在したバリデーションのバグは、 サテライト"a12bcd34"を廃⽌するためのワークフローの⼿動再実 ⾏によって発覚した。 このバグにより、デコムアクションに対する(対象機器が絞られているという)制約が取り除かれ、 すべてのサテライトマシンが廃⽌さ れた。 その後、このアクションを⽌めることができる前に ⾃動的にデコムワークフローが実⾏され、 ⼤部分のサテライトマシンのハードディスクが⼀掃された トラフィック管理サーバは「ReleaseSatelliteMachines」RPCを提供している このハンドラは、3つのMDB API呼び出しを使⽤してサテライト廃⽌を開始します。 1.ノードに結び付いたラック名称を参照する 2.ラック名称に結びついた(複数の)マシン名称を参照する 3.ディスク消去するように再割り当てする(これによって、間接的に廃⽌ワークフローが開始される) この⼿順は、MDB APIの既知の動作と安全性チェックの⽋如が組み合わさっており、 冪等ではない。 サテライトノードが以前にdecomに正常に送信された場合、 上記のステップ2は空のリストを返し、これがステップ3で マシンホスト 名に制約がないこととして解釈される この危険な仕様⾃体はしばらく前からあったが、 危険な操作を呼び出すワークフローによって隠されてた。 つまり、RPCを呼び出す ワークフローステップは「1回実⾏」とマークされ、 ワークフローエンジンは成功したRPCを再実⾏することがなかった。 Root Causes and Trigger
  • 6. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 6/16 ただし、「1回実⾏」というセマンティクスは、 ワークフローの複数のインスタンスに適⽤されない。 Cluster Turnupチームがa12bcd34のワークフローを⼿動で再実⾏したとき、 このアクションによってこのバグに陥った タイムラインへのリンクは出版のため、削除されたが、 実際のポストモーテムでは必ず含まれる。 (サテライトからコアへの)エッジの避難 コアのGFEはこうったい⾃体を想定して明⽰的に容量計画をされている ※peering linksは除く このエッジの避難のおかけで、トラフィックチームは すみやかに障害の緩和にさせることができた 壊滅的なサテライト障害の⾃動緩和 障害が発⽣したサテライトからのトラフィックを⾃動的にコアクラスタに引き戻し、 異常なchurnが検出されると、そのサテライトは ⾃動的に切り離される ※churn=クリーム・ミルクをかき回してバターを造る機械 サテライトのdecom/ディスク消去のプロセスは有効、かつ迅速に動いた。 albeit as a confused deputy? この障害により、OMGを介した迅速なIMAGの対応が開始され、 このツールは継続的なインシデント追跡に役⽴ちました。 チーム間の 反応は素晴らしく、OMGはさらに全員がお互いに話をし続けるのを助けた。 Timeline/Recovery Efforts Lessons Learned Things that went well Things that went poorly Outage
  • 7. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 7/16 トラフィック管理サーバーは、MDBに送信したコマンドに対する適切な健全性チェックを⽋いた すべてのコマンドは、冪等であるか、または繰り返しの呼び出しに対して 少なくともフェイルセーフである必要がある。 MDBは、所有権変更要求で⽋落しているホスト名の制約にたいしてエラーを返さなかった デコムワークフローでは、他のデータソースとリクエストを照合しない。 (例:計画的なラックの分解) その結果、(多くの)地理的に多様なマシンをゴミ箱に捨てる要求に異議がでなかった。 デコムワークフローはレート制限がなかった。⼀度、デコムのフローに⼊ると、 ディスク消去とその他のデコムプロセスが最⾼速 で進む サテライトとの通信が停⽌したときに出⼒トラフィックが別の場所に移動し、 代わりにコアからクエリが送信されたため、 Googleと世界の間の⼀部のピアリングリンクが過負荷になった。 これにより、サテライトが復旧するまでピアを選択するための短時間の輻輳が発⽣し、 それに合わせてNSTによる緩和作業が⾏われた。 サテライトマシンの再インストールは遅くて信頼できなかった。 再インストールではTFTPを使⽤してデータを送信するが、 遅延の⼤きいサテライトに送信するときにはうまく機能しない。 Autoreplacerインフラストラクチャは、 停⽌時にGFEの[編集済みの値]の同時設定を処理できなかった。 ⾃動セットアップの速度を合わせるには、 ⼿動設定を並⾏して実⾏する多くのSREの労⼒が必要だった。 以下の要素が⾃動化の初期の遅れの原因となった。 ⾮常に厳密なSSHタイムアウトにより、⾮常に遠⽅の衛星での信頼性の⾼い⾃動再配置操作が妨げらた マシンの(現在の)バージョンによらず、(時間のかかる)カーネルアップグレードプロセスが実⾏された Recovery
  • 8. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 8/16 ⾃動再配置の同時実⾏回帰?により、ワーカーマシンごとに3つ以上のマシンセットアップタスクを実⾏できなかった ⾃動再配置の動作についての混乱は時間と労⼒を浪費した 監視構成のデルタ安全チェック(25%の変更)は、 23%のターゲットが削除されたときにはトリガーされなかったが、 同じコンテン ツ(残りの29%)が再読み込みされたときにトリガーされた。 これにより、衛星の監視を再び有効にするのに30分の遅れが⽣じた インストーラは⼈員が限られていて、変更を加えることが難しく、時間がかかった スーパーユーザーの権限を使⽤してマシンをdiskeraseから元の状態に戻すと、 多くのゾンビ状態が残り、クリーンアップの痛み(⼯数)が継続的に⽣じた ・コアクラスタ内のGFEは、サテライトのGFEとはまったく異なる⽅法で管理されていて、 デコムの⼤暴れにも影響を受けなかった ・同様に、YouTubeのCDNは別個のインフラストラクチャとして運営されていて、 チューブビデオの配信は影響を受けなかった。 もし、YouTubeのCDNサービスが落ちていたら、機能停⽌ははるかに深刻で⻑期化していたはず。 この障害の広範囲にわたる性質のために、 アクションアイテムを5つのテーマに分ける 1. Prevention/risk education 2. Emergency response 3. Monitoring/alerting 4. Satellite/edge provisioning 5. Cleanup/miscellaneous Where we got lucky Action Items
  • 9. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 9/16 Action item Type Priority Owner Tracking bug Audit all systems capable of turning live servers into paperweights (i.e., not just repairs and diskerase workflow). investigate P1 sydneythree@ BUG1234 File bugs to track implementation of bad input rejection to all systems identified in BUG1234. prevent P1 sydneythree@ BUG1236 Disallow any single operation from affecting servers spanning namespace/class boundaries. mitigate P1 maxone@ BUG6789 Traffic admin server needs a safety check to not operate on more than [value redacted] number of nodes. mitigate P1 dylanfour@ BUG1237 Traffic admin server should ask to approve destructive work. prevent P0 logantwo@ BUG1238 MDB should reject operations that do not provide values for an expected-present constraint. prevent P0 louseven@ BUG1239 Action item Type Priority Owner Tracking bug Ensure that serving from core does not overload egress network links. repair P2 rileysix@ BUG1240 Table 10-1. Prevention/risk education Table 10-2. Emergency response
  • 10. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 10/16 Action item Type Priority Owner Tracking bug Ensure decom workflow problems are noted under [the link to our emergency stop doc has been redacted] and [the link to our escalations contact page has been redacted]. mitigate P2 logantwo@ BUG1241 Add a big-red-buttona disable approach to decom workflows. mitigate P0 maxone@ BUG1242 Action item Type Priority Owner Tracking bug Monitoring target safety checks should not allow you to push a change that cannot be rolled back. mitigate P2 dylanfour@ BUG1243 Add an alert when more than [value redacted] % of our machines have been taken away from us. Machines were taken from satellites at 16:38 while the world started paging only at around 17:10. detect P1 rileysix@ BUG1244 Action item Type Priority Owner Tracking bug Use iPXE to use HTTPS to make reinstalls more reliable/faster. mitigat P2 dylanfour@ BUG1245 Table 10-3. Monitoring/alerting Table 10-4. Satellite/edge provisioning Table 10-5. Cleanup/miscellaneous
  • 11. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 11/16 Action item Type Priority Owner Tracking bug Action item Type Priority Owner Tracking bug Review MDB-related code in our tools and bring the admin server backup to unwedge turnups/turndowns. repair P2 rileysix@ BUG1246 Schedule DiRT tests: - Bring back satellite after diskerase. - Do the same for YouTube CDN. mitigate P2 louseven@ BUG1247 Admin server フロントエンドのインフラの特権操作を⾃動化するためのRPCサーバー。 ⾃動化サーバーは、PCRおよびクラスターのターンアップ/ターンダウンの実装に最も明確に関与している。 Autoreplacer 認証されていないサーバーをマシン間で移動するシステム。 これは、サービスがマシンの障害に直⾯しても実⾏され続けるようにしたり、 フォークリフトやコロの再構成をサポートするためにも使⽤されている。 Borg タスクとマシンリソースを⼤規模に管理するように設計されたクラスタ管理システム。 Borgは、Borgセル内のすべてのマシンを所有し、利⽤可能なリソースを持つマシンにタスクを割り当てる Decom Glossary
  • 12. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 12/16 decommissioning(廃⽌措置)の略 機器の廃⽌は、多くの運⽤チームに関連するプロセス Diskerase データセンターを離れる前に、本番ハードドライブを安全に消去するプロセス(および関連するハードウェア/ソフトウェア) Diskeraseは、decomワークフローの⼀部分。 GFE (Google Front End) 外の世界が(ほぼ)すべてのGoogleサービスに接続するサーバー。 IMAG (Incident Management at Google) システムの停⽌から⾃然災害まで、あらゆる種類のインシデントを処理するための標準的で⼀貫した⽅法を確⽴し、効果的な対応を体 系化するプログラム。 MDB (Machine Database) Googleのマシンの在庫の状態に関するさまざまな情報を保存するシステム Satellites Googleのネットワークの端からのビデオ以外のフロントエンドトラフィックのみを処理する⼩型で安価なマシンラック。 サテライト内に利⽤可能な伝統的な⽣産クラスター基盤はほとんどない。 サテライトは、YouTubeのビデオコンテンツを配信するCDNとは異なり、YouTubeは今回のインシデントから影響を受けない。 Why is ReleaseSatelliteMachines not idempotent? What happened after the Admin Server assigned all satellites to the diskerase-team? What was the true QPS loss during the outage? Appendix
  • 13. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 13/16 IRC logs ※いずもリンク先は編集済 ※省略 このポストモーテムはよい書き⽅の例⽰となっている ポストモーテムはよく整理されており、重要な⽤語を⼗分に詳しく説明している たとえば、、、 Glossary よく書かれた⽤語集は、ポストモーテムを幅広い読者にとって分かりやすく理解しやすいものにしている Action items この事案は多くのアクションアイテムを含む、⼤きなインシデントだった アクションアイテムをテーマ別にグループ化すれば、 所有者と優先順位を簡単に割り当てることができる ポストモーテムでは、キャッシュヒット率、トラフィックレベル、影響の期間など、 インシデントに関する有⽤なデータが提⽰され、データの関連セクションには、 元の情報源へのリンクが表⽰されている。 このデータの透過性が、あいまいさを取り除き、読者にコンテキストを提供している Graphs なぜ、このポストモーテムはより良いのか? Clarity Quantifiable metrics Concrete action items
  • 14. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 14/16 アクションアイテムをもたないポストモーテムは無意味である アクションアイテムには、いくつか注⽬すべき特徴がある Ownership すべてのアクションアイテムには、担当者と管理表番号(バグNo)の両⽅がある Prioritization すべてのアクションアイテムに優先順位が割り当てられている Measurability アクションアイテムには検証可能な終了状態がある (たとえば、当社のマシンのX%以上が当社から奪われたときにアラートを追加するなど) Preventative action Prevent/Mitigateのアクションアイテムは再発を回避するのに役⽴つ たとえば、名前空間とクラスの境界にまたがるサーバーへの単⼀の操作の影響を禁⽌するなど。 著者らは、望ましくない故障モードを許容するシステム設計のギャップに注⽬した。 たとえば Things that went poorlyは、個⼈やチームに事件の責任を負わせていない。 Root cause and triggerでは、「誰が」事件を引き起こしたのではなく、 「何が」うまくいかなかったかに焦点を当てている Action itemsは、⼈を改善するのではなく、システムを改善することを⽬的としている ポストモーテムは、システム障害の近くの領域だけを調査するにとどまらず、 複数のチームにわたる影響とシステムの⽋陥を調査している Blamelessness Depth
  • 15. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 15/16 Impact このセクションではさまざまな観点から詳細を説明し、それがバランスのとれた客観的な内容にしている、 Root cause and trigger このセクションではインシデントについて深く掘り下げ、根本的な原因とトリガーに到達している Data-driven conclusions 提⽰されたすべての結論は、事実とデータに基づいていて、 結論に⾄るために使⽤されたデータはすべて⽂書からリンクされてい る Additional resources さらに有⽤な情報をグラフの形で提⽰し、 グラフのおかげでシステムに慣れていない読者も⽂脈を得やすい。 事後、1週間も経たないうちに、ポストモーテムは記載され、回覧された。 情報が寄稿者のなかで新鮮なので、迅速なポストモーテム は(それだけで)より正確になる傾向がある 障害の影響を受けた⼈々は、あなたが物事を管理しているという 説明とデモを期待しており、時間が⽴つほど、 彼らは想像の産物でよ り多くのギャップを埋めてしまう。 えてして、あなたにとってプラスには働くことはない。 このインシデントは世界規模のものであり、複数のシステムに影響を及ぼした。 その結果、ポストモーテムでは⼤量のデータが記録さ れ、その後解析された。 Lengthy data sources, such as chat transcripts and system logs, were abstracted, with the unedited versions linked from the main document. チャット記録やシステムログなどのデータソースの⻑さそのものが、 ドキュメントをぼんやりとさせた。 全体的に⾒れば、ポストモーテムは冗⻑性と読みやすさのバランスが取れたものになっている Promptness Conciseness
  • 16. 2019/2/5 ch10_2 file:///C:/Users/works/Downloads/ch10_2.md.html 16/16 項⽬ before after remeark ⽂脈 説明不⾜ Glossary/Graphなどで補⾜あり チーム外の⼈間にも⽰唆を与えることができる 責任 ⼈が主語 物事が主語 責任回避的な⽂化を助⻑しかねない ⼈ではなくシステムを改善したい 表現 主観的な表現が多い 数字を⽤いて客観的 責任回避的な⽂化を助⻑しかねない ⼈ではなくシステムを改善したい 主管 不明瞭 明瞭 主管を明確にすることで、説明、 遂⾏の責任所在が明らかになる アクション 表現が曖昧 優先順位が等しい 担当不在 達成基準が明瞭 優先順序が明確 担当者が明確 アクションがなければそもそもポストモーテムが無意味 スピード感 遅い(4ヶ⽉後) 速い(1週間以内) 記憶が鮮明なうちに記載すること⾃体がメリット (個⼈的な補⾜)