LESSON 15分

ストーリー

高橋アーキテクト
Internal Server Error

1時間格闘した末、原因は外部決済サービスのレスポンス遅延だった。しかしそれを突き止めるまでに、何十個ものサーバーのログを手動で確認しなければならなかった。

翌週、高橋アーキテクト があなたに声をかけた。

高橋アーキテクト
金曜の障害対応、大変だったね。もし”オブザーバビリティ”が整備されていたら、5分で原因にたどり着けたはずだ。システムの脈拍を見守る方法を学ぼう

こうして、あなたのオブザーバビリティへの旅が始まります。


現代のシステムはなぜ見えにくいのか

マイクロサービス、コンテナ、サーバーレスなど、現代のシステムは分散化・動的化が進んでいます。

graph LR
    subgraph "従来のモノリス"
        C1["Client"] --> WS["Web Server"] --> DB1[("DB")]
    end

    subgraph "現代の分散システム"
        C2["Client"] --> GW["API Gateway"]
        GW --> Auth["Auth Service"]
        Auth --> User["User Service"] --> DB2[("DB")]
        GW --> Order["Order Service"] --> Pay["Payment API"]
        GW --> Notif["Notification Service"] --> Email["Email/SMS"]
    end
時代アーキテクチャ障害特定の難易度
2000年代モノリス + 物理サーバー低い
2010年代SOA + 仮想マシン中程度
2020年代マイクロサービス + コンテナ高い

オブザーバビリティとは何か

オブザーバビリティ(Observability)は、制御工学に由来する概念です。

「システムの外部出力から、内部状態を推測できる度合い」

つまり、ログ、メトリクス、トレースなどの「出力」を見ることで、システム内部で何が起きているかを理解できる能力のことです。

// オブザーバビリティが低いコード
async function processOrder(orderId: string) {
  const order = await getOrder(orderId);
  const result = await chargePayment(order);
  await sendNotification(order);
  return result;
}

// オブザーバビリティが高いコード
async function processOrder(orderId: string) {
  const span = tracer.startSpan('processOrder', { attributes: { orderId } });
  logger.info('Processing order started', { orderId });

  const order = await getOrder(orderId);
  metrics.orderProcessingCount.add(1, { status: 'started' });

  const result = await chargePayment(order);
  logger.info('Payment charged', { orderId, amount: order.total });

  await sendNotification(order);
  span.end();
  metrics.orderProcessingCount.add(1, { status: 'completed' });

  return result;
}

オブザーバビリティがもたらす価値

観点オブザーバビリティなしオブザーバビリティあり
障害検知ユーザーからの報告で気づくアラートで即座に検知
原因特定数時間のログ調査数分でトレースを追跡
影響範囲推測に頼るダッシュボードで可視化
パフォーマンスユーザーが遅いと感じてから対応SLO違反で事前に対応
改善勘と経験データに基づく判断

まとめ

ポイント内容
背景分散システムの複雑化で「見えない」問題が増加
定義外部出力から内部状態を推測できる度合い
価値障害の早期検知・原因特定・データ駆動の改善
目標システムの脈拍を常に把握できる状態にする

チェックリスト

  • 現代の分散システムが抱える可視化の課題を理解した
  • オブザーバビリティの定義を説明できる
  • オブザーバビリティがもたらす具体的な価値を把握した

次のステップへ

次は「モニタリング vs オブザーバビリティ」を学びます。従来のモニタリングとオブザーバビリティの違いを明確にしましょう。


推定読了時間: 15分