✒️

オブザーバビリティ論考

に公開

1. システムと障害について

1.1 システムは、相互作用するコンポーネントの総体である。
1.2 システムは常に変化する。変化しないシステムは、もはや有用ではない。
1.3 変化は、未知の状態を生み出す可能性を常に内包する。故に、障害は必ず起きる。
1.4 障害は、システムの最も脆弱な瞬間に、最も望まれない形で現れる。
1.5 障害の原因は、個々のコンポーネントの正しさの総和の外側にある。それはコンポーネント間の「関係性」と、責任範囲の「境界線」に潜んでいる。
1.6 障害の発生は、二つの状態を露わにする。全ての者がその渦中に巻き込まれるか、全ての者がその場に存在しないか、そのどちらかである。

2. 複雑さと理解の限界

2.1 システムの複雑さは、我々の理解の限界を超える。
2.2 マイクロサービスアーキテクチャは、サービス間の相互作用の全体像を、モノリシックなシステムのスパゲッティコードは、コードベースの内部構造を、やがて一人の人間の理解の限界の外側へと押しやる。
2.3 観測できるものについてのみ、我々は語ることができる。観測できないものについては、「何かがおかしい」としか言えない。
2.4 我々が「直した」と信じるものは、観測された事象に対する仮説に過ぎない。故に、障害は直そうとしても直らないことがある。
2.5 そして、障害は誰もがその存在を忘れた頃に、少しだけ形を変えて再び現れる。

3. モニタリングの黄昏とSLOという対話

3.1 モニタリングは、我々が「既知の未知」を測るための物差しである。
3.2 我々はシステムを理解しようと、アラート定義を増やす。しかし、それは無限に増殖し、目的を失い、コンテキストを欠いた空虚な通知を出し続ける。やがて我々はアラートに疲弊し、本当に重要な信号を見逃す。
3.3 このアラートの洪水の中で、我々は問わなければならない。「我々は何を守ろうとしているのか?」と。サーバーのCPU使用率か、それともユーザーの体験か。
3.4 SLOは、その問いに対する我々の宣言であり、ユーザーの幸福を記述するための共通言語である。
3.5 この言語を話すとき、我々は「信頼性は100%であるべきだ」という神話と対峙する。
3.6 しかし、100%の信頼性は、無限のコストと、変化の停止を要求する。それは完璧であると同時に、死んだシステムである。
3.7 故にSLOは、100%から差し引かれた残り、すなわち「エラーバジェット」を定義する。それは失敗が許される領域であり、我々がイノベーションを起こし、より速く学ぶための自由の領域である。

4. 予兆という幻影

4.1 我々は、システムの声なき声を聞き、障害の予兆を捉え、未来を制御することを夢見る。
4.2 しかし、システムが発する無数のノイズの中から、意味のある予兆(シグナル)だけを事前に選び出すことは、神の所業に近い。予兆と信じたものは、しばしば相関なき偶然である。
4.3 故に、我々は完璧な予知能力者になることを目指すより、優れた探偵になることを目指すべきである。起きてしまった謎を、誰よりも早く、深く解き明かすために。
4.4 探偵とは、問い続ける者の別名である。

5. オブザーバビリティ(可観測性)という光

5.1 オブザーバビリティとは、システムの外部への出力から、内部の状態をどれだけよく推測できるか、という能力である。
5.2 SLOが「何が問題か」を示したとき、オブザーバビリティは「なぜそれが起きているのか」を探求する旅に出るための地図とコンパスを提供する。
5.3 それは「未知の未知」の領域に足を踏み入れるための問いを立てる力だ。固定された問いへの答え(モニタリング)ではなく、状況に応じて新たな問いを生み出し、答えを探求するプロセスそのものである。
5.4 ログ(出来事)、メトリクス(傾向)、トレース(因果)は、世界を記述するための基本的な語彙である。それらを文脈の中で結びつけ、物語として読み解く能力がなければ、ただの文字の羅列に過ぎない。

6. 我々の実践について

6.1 オブザーバビリティはツールではない。文化であり、思考のフレームワークである。
6.2 OpenTelemetryは、オブザーバビリティの実現に向けた重要な第一歩である。それは、我々がシステムを語るための、標準化された語彙と文法を提供する。
6.3 特定のベンダーに依存したプロプライエタリなエージェントは、短期的には素早く進むことを可能にするかもしれない。しかし、遠くまで行くためには、コミュニティの知性が集積されたオープンソースの力が必要となる。
6.4 ソフトウェアをリリースして終わりではない。リリースは、対話の始まりである。オブザーバビリティは対話の中でこそ真価を発揮する。
6.5 AIは我々の認知能力を拡張し、探偵の仕事を助ける強力な助手となりうる。しかし、AI自身が新たな問いを生む。我々は、その助手の言葉を鵜呑みにするのではなく、常に自ら問い続けなければならない。
6.6 問い続けること。好奇心を失わないこと。観測すること。それが、複雑なシステムと共に生きる我々に与えられた唯一の道標である。

7. 観測しえぬもの

7.1 観測しえぬものについては、沈黙しなければならない。

Discussion