English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ゲスト
1 / ?

ロングテールを読む

レイテンシは数字ではなく曲線上に存在する

平均レイテンシはユーザーが経験する内容を隠している。実際のサービスは分布を生成する:リクエストがどのくらい時間がかかったかを示す曲線。

その曲線上の3つのポイントがほとんどの運用上の意味を持つ:

- p50(中央値):分布の中央。リクエストの半分はより速く完了し、半分はより遅く完了する。典型的なユーザー体験を説明する。

- p99:99パーセンタイル。リクエストの1%だけがこれより長くかかった。一般的なユーザーの最悪の体験を説明する。

- p99.9:リクエストの0.1%だけがより長くかかった。サービスを頻繁に利用するパワーユーザーの最悪の体験を説明する。

幾何学的洞察:レイテンシ分布はほぼ常に長い右側のテールを持つ。曲線は中央値の周りのピークまで急速に上昇し、その後ゆっくりと右に落ちていき、平均から遠く離れたところに小さなバンプがあることが多い。そのバンプは最も遅いユーザー:つまり、怒りの苦情を書く人々を表している。

なぜ平均値は誤解を招くのか:p99が5,000 msで中央値が50 msのサービスは、典型的な体験とテール体験の間に100倍のギャップがある。算術平均は100 msに落ち着くかもしれず、大惨事を完全に隠している。算術平均は2次元の形の単一の点投影:形のほぼすべての情報が消える。

パーセンタイル乗算問題:10個のバックエンドサービスに接触するリクエストは、各サービスのp99が100 msである場合、およそ600 msのp99を持つ(100 msではない)。遅いテールは乗算される。これがSRE本が警告する理由である:『最も遅いN者に注意せよ』。Nが成長するにつれ、テール レイテンシは急速に低下する。

レイテンシ分布:ロングテール、p50、p99、p99.9がマーク

テール レイテンシの数学

サービスAはリクエスト フローを持ち、5つのバックエンド サービスに並列でファンアウトし、すべてのレスポンスを待つ。各バックエンドのp99レイテンシは100 msである。

ファンアウト構造を考慮して、サービスAのp99レイテンシを推定せよ。その答えが100 msと異なる理由を説明せよ。レイテンシ分布のどの幾何学的パターンがこの乗算を引き起こしており、テール増幅を軽減する1つの具体的なアーキテクチャ変更は何か?

予算消費の傾斜

予算を時間上にプロット

2D軸(x軸に時間、y軸に残りの予算)にプロットされたエラー予算は、サービスの健全性を一目で明らかにする。消費曲線の形は、10のダッシュボードが個別に伝える情報と同じ情報を持つ。

3つの参考形:

- 健全な線形消費:予算が経過時間に比例して直線で落ちる。28日間のウィンドウの14日目に、半分の予算が残っている必要がある。これはSLOターゲットが可視化される。

- 高速バーン:急勾配の下方への傾斜。積極的な信頼性の問題を示す。勾配が十分に急である場合、予算はウィンドウがリセットされる前に枯渇し、エラー予算ポリシーがトリガーされる。

- 回復した曲線:平坦または上昇するセグメント。サービスはそのSLOより優れたパフォーマンスを発揮している。残りの予算は時間とともに成長し、リスクのあるローンチの余地を開く。

バーンレートは消費線の傾斜であり、正規化される:バーンレート1は予算を時間が経過するのと同じ速度で消費することを意味する(SLOと完全に調整)。バーンレート10は許可されたものより10倍速く消費することを意味する:月間予算全体はこのレートで2.8日で枯渇する。

マルチウィンドウ マルチバーンレート アラート:GoogleのSRE Workbookは『過去1時間のバーンレートが14.4より上、AND過去5分のバーンレートが14.4より上』のような組み合わせ条件にアラート することを推奨している。幾何学:持続した急な勾配、単なる一時的なスパイクではない。この形は一時的なブリップをフィルタリングしながら、実際の消費脅威をキャッチする。

エラー予算消費:線形、高速バーン、回復した形

バーンレートを読む

チームのSLOは28日間で99.9%である。14日目に、エラー予算の60%をすでに使用している。過去24時間の現在のバーンレートは8である。

バーンレートが継続する場合の、ウィンドウの終了時の予測状態(予算が枯渇、または余剰)を計算せよ。次に、消費グラフの幾何学的な形が何を示しており、エラー予算ポリシーが今週何をすべきか、おそらく言っているかを説明せよ。

有向グラフとしてのサービス

DAGとしての本番環境

最新のサービスは依存グラフとして実行される。各サービスはノード。サービスAがサービスBを呼ぶたびに、Aからそれへの有向辺。全体の図は有向グラフ(時々DAG、時々非同期再試行を介したサイクル付き)を形成する。

重大な幾何学的特性:

- 出度数:ノードが依存するサービスの数。出度数が高いほど、上流の障害モード が多い。12個のバックエンドに依存するサービスは、その12個のうち任意の1つが失敗した場合に失敗する。

- 入度数(ファンイン):このノードに依存するサービスの数。入度数が高いほど、単一の障害がより広く段階を踏む。30個の依存サービスを持つデータベースは最大のブラスト範囲を持つ。

- 媒介中心性:最短経路がノードを通る数。高い媒介中心性のノードはボトルネック。認証サービスとコアAPIは通常高いスコア。

- 強連結成分:サイクルを形成するサービスのグループ。AがBを呼び、BがAを呼ぶ場合、サイクルがある。サイクルは障害復旧を複雑にする:いずれかのサービスを開始すると、他方がすでに機能している必要がある。

ブラスト範囲は信頼性投資を推進する幾何学的概念。障害のブラスト範囲は、それが影響を与える依存サービスの部分グラフ。信頼性エンジニアリングは最大のブラスト範囲を持つノードに大きく投資する。全体的なシステム信頼性を改善する最安の方法は、しばしば最高の媒介中心性ノードで冗長性または優雅な低下を追加することである。

高い媒介中心性ノードがハイライトされたサービス依存グラフ

ブラスト範囲推論

消費者向けサービスは以下に依存する:AuthService、UserDB、ProductCatalog、PaymentGateway、RecommendationEngine、EmailService、AnalyticsService。AuthServiceには47の他のサービスが依存している。EmailServiceには3の他のサービスが依存している。RecommendationEngineには2の他のサービスが依存している。

これら3つのサービスをブラスト範囲で最高から最低にランク付けせよ。次に、最高ブラスト範囲ノードで最初に行う2つの具体的な信頼性投資を説明し、なぜその同じ投資がより低いブラスト範囲ノードでより総合的な信頼性向上をもたらすのかを説明せよ。

ダッシュボードの情報幾何学

ピクセルは実不動産

ダッシュボードは有限面積の2次元表面。1つの信号に割り当てられたすべてのピクセルは、別の信号に割り当てられないピクセル。ダッシュボード デザインは幾何学問題:最も意思決定に関連した情報を最小の視覚的面積内に配置しながら、認識を支援する空間的関係を保持する。

読む パターン:西洋の読者はF字形をスキャンする(左上が最初、次に横切り、その後下)。最も重要な信号は左上に属する。右下は最も注意を受け取らない。

ゲシュタルト グループ化:同じサービスからの信号は同じ視覚的グループに属する。レイテンシ、トラフィック、エラー、及び1つのサービスの飽和度は2x2グリッドに属し、画面全体に散在していない。視覚的な近接性は論理的な関係をエンコード。

色エンコーディング:エラーは赤、飽和度は黄、健全な範囲は緑。色の選択は慣例、ランダムではない。それらを反転させると、事故中のすべての瞬間で認知的負荷がかかる。

Y軸スケーリング:0-100%にスケーリングされたグラフは、トラフィックが倍増している場合でも穏やかに見える。最近の値に自動スケーリングされたグラフは、通常の変動中に警告する。両方の選択肢は適切な用途があり、選択は幾何学的で、化粧ではない。

情報密度:信号が少なすぎると、チームは何が間違っているかについて盲目のままである。あまりにも多いと、雑音で信号を埋める。Edward Tufteのデータインク比率が適用:情報を伝え、装飾インクの比率を最大化する。Sparklineスタイルの極小主義は、急いで複雑なウィジェットを打つ。

ダッシュボード レイアウト:F字形読み、ゲシュタルト グループ化、色エンコーディング

最初の瞥見のためにデザイン

チームは、4つのバックエンド依存性にわたって8つの重大なSLIを持つサービスの単一の主要ダッシュボードをデザイン。ダッシュボードは、午前3時のオンコール エンジニアの最初の質問に5秒以内に答える必要がある:『何か燃えているか、そしている場合、どこで?』

選択する幾何学的レイアウトについて説明せよ。最も重要な信号は画面上のどこに表示されるか?SLIを依存性によってどのようにグループ化するか?色とスケール慣例を何に適用し、エンジニアがテキストを読まずに『何か燃えているか』という質問に答えることができることを確認する具体的な要素は何か?

SREの幾何学:まとめ

本番環境を実行する形

SRE実践の下で実行される4つの幾何学的構造を通して歩んだ:

- レイテンシ分布をロングテール曲線として、平均値より多くの真実を持つパーセンタイル点

- エラー予算円錐を消費の傾斜として、残りの数字より サービスの健全性をより良く明らかにする

- サービス依存グラフをブラスト範囲と中心性として信頼性投資を指示する

- ダッシュボード レイアウトを2次元の実不動産として、ピクセル割り当ては運用上の結果を持つ幾何学問題


幾何学的思考は、SREを一般的なオペレーション作業から分離するもの。オペレーション エンジニアは数字を読む。SREは形を読む。形は、単一の数字は伝えられない情報をエンコード:バーンレートの傾斜、テールの太さ、ノードの中心性、ダッシュボード パネルの全体像。


SRE自体のコンパニオン レッスンは実践をカバーした。このレッスンはそれらの下の幾何学をカバーした。一緒に現代的な信頼性エンジニアリングの視覚的および概念的な足場を形成。