🐱 うさねこ教室 Python と可観測性の教室

ゴールと学ぶこと

この教室が目指す到達点と、学習の全体像を説明します。

🐱 この章の目次

この教室のゴールは、可観測な Web API を設計・実装し、OSS の監視スタックで本番運用できる状態にすることです。 加えて、JVM の設計思想を理解し、チームで Java / Kotlin と Python が混在する環境でも設計判断に参加できるようにします。

なぜ JVM を学ぶのか

Python で FastAPI や Flask を使った開発経験があれば、Web API の基本は身についています。 一方、本番環境では JVM 系のサービスが同居する現場が多く、Spring Boot や Micrometer の設計が共通の語彙になっています。

JVM を知ると、次のことが分かります。

  • 静的型付けが設計にどう効くか(Python の型ヒントとの違い)
  • GC とスレッドモデルがなぜ GIL のある Python と性能特性が異なるか
  • Gradle / Maven がなぜ pyproject.toml + uv より複雑に見えるか

JVM をゼロから書ける必要はありません。 設計の思想を理解し、Python 側の対応物と結びつけて会話できる状態がゴールです。

なぜ可観測性か

動いているサービスの内部状態を外から理解する力は、言語に依存しません。 OpenTelemetry はベンダー中立の CNCF 標準で、Python でも Java でも同じ概念で計装できます。

CloudWatch のようなベンダーロックインを避け、Prometheus・Grafana・Jaeger・Loki という OSS スタックで可観測性を確保する方法を学びます。

この教室の到達点

この教室を終えたときに、次のことができる状態を目指します。

  • OpenAPI 仕様を書き、FastAPI でエンドポイントを実装できる
  • OpenTelemetry でアプリケーションを計装し、メトリクス・ログ・トレースを Collector 経由でバックエンドへ送れる
  • Prometheus・Grafana・Jaeger・Loki の監視スタックを構築し、ダッシュボードとアラートを運用できる
  • JVM のコードを読み、Spring Boot アプリの構成を理解して、Python 側との設計比較ができる
  • パフォーマンスのボトルネックを理論と計測の両面から特定し、改善方針を立てられる

学習の道のり

  • Part 1 JVM の基礎:実行モデル、型システム、ビルドツール、並行処理を Python と対比して学びます。
  • Part 2 Web API の設計:OpenAPI で仕様を書き、FastAPI で実装します。
  • Part 3 可観測性の基礎:Metrics・Logging・Tracing の 3 本柱を OSS ツールで体験します。
  • Part 4 OpenTelemetry:計装、Collector、エクスポーターを実践します。
  • Part 5 パフォーマンスの理論:レイテンシ、USE メソッド、アムダールの法則で性能を見積もります。
  • Part 6 データシステム:レプリケーション、パーティショニング、一貫性の代償を比較します。
  • Part 7 運用と監視:アラート設計、インシデント管理、SRE の原則を学びます。
  • Part 8 スケールとインフラ:仮想化、コンテナ、キャパシティプランニングを整理します。