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

🐱 うさねこ教室

Python は書けるけど JVM と可観測性はよくわからない。
そんな人が本番で観測できる API を作れるようになるまでの教室です。

この教室について

この教室は、Python での Web 開発経験はあるが、JVM の世界や可観測性はほぼ未経験という人のために書かれています。 if 文や for 文、型ヒント、FastAPI や Flask の基本は知っている前提で、それ以外はゼロから説明します。

ゴールは、OpenTelemetry と OSS の監視スタックで可観測な Web API を構築し、JVM エコシステム(Spring Boot / Micrometer / Gradle)の設計思想も理解して、現場で技術選定に参加できるようになることです。 そのために、JVM の基礎、OpenAPI による API 設計、メトリクス・ログ・トレースの 3 本柱、そして性能とスケールの理論を順番に学びます。

学習に必要なもの

最初に必要なのは、Python 3.12 以上、パッケージマネージャーの uv、Docker Desktop、そして VS Code です。 Part 1 では JDK 21 と Gradle も使います。 インストール手順は Part 0 の環境構築 で説明します。

コード例は Python 3.12 / FastAPI 0.115 / JDK 21 / Spring Boot 3.3 で動作を確認しています。 可観測性の演習では、Prometheus・Grafana・Jaeger・Loki を Docker Compose で起動します。

すべての演習を行う場合、全体の所要時間は 30〜50 時間が目安です。 読む速さや、発展課題に取り組む時間によって前後します。

進め方

  • 各章は上から順に読む前提で書かれています。迷ったら Part 0 から始めてください。
  • コマンドやコードは、読むだけでなく実際に手を動かして確かめることを強くおすすめします。
  • Python との対比を各所に置いています。既知の概念と対応づけながら読んでください。
  • 前に出てきた用語を忘れたら、用語集から説明している章へ戻れます。

Part ごとの到達点

所要時間は、本文を読み、演習を行う場合の目安です。

Part所要時間終了時にできること必要な環境
Part 0 準備30〜60 分学習のゴールを確認し、Python と Java のコードを手元で実行できるPython 3.12+、uv、JDK 21、VS Code
Part 1 JVM の基礎4〜6 時間JVM の実行モデル・型システム・ビルドツール・並行処理を Python と対比して説明できるPart 0 + Gradle
Part 2 Web API の設計3〜5 時間OpenAPI 仕様を書き、FastAPI でエンドポイントを実装できるPart 0 + Docker Desktop
Part 3 可観測性の基礎3〜5 時間Metrics・Logging・Tracing の違いを説明し、OSS ツールで可視化できるPart 2 と同じ
Part 4 OpenTelemetry4〜6 時間アプリケーションを計装し、Collector 経由でバックエンドへデータを送れるPart 3 と同じ
Part 5 パフォーマンスの理論2〜3 時間レイテンシ分布・USE メソッド・アムダールの法則で性能を見積もれる追加の環境は不要
Part 6 データシステム3〜5 時間レプリケーションやパーティショニングの代償を比較できる追加の環境は不要
Part 7 運用と監視3〜4 時間アラート設計・インシデント管理・SRE の原則を適用できる追加の環境は不要
Part 8 スケールとインフラ3〜5 時間仮想化・コンテナ・キャパシティプランニングの手法を使い分けられるDocker Desktop
付録HTTP 仕様の詳細や用語を参照できる

カリキュラム

  1. Part 0 準備 この教室のゴールを確認し、Python の学習環境を手元に整えます。 全 2 章
  2. Part 1 JVM の基礎 Python 経験を活かしながら、JVM の実行モデルと設計思想を学びます。 全 6 章
  3. Part 2 Web API の設計 OpenAPI 仕様を軸に、型安全で自己文書化される API を設計し、FastAPI で実装します。 全 6 章
  4. Part 3 可観測性の基礎 Metrics、Logging、Tracing の 3 本柱を OSS スタックで学びます。 全 5 章
  5. Part 4 OpenTelemetry アプリケーションの計装から Collector 経由でバックエンドに送るまでを、手を動かして学びます。 全 6 章
  6. Part 5 パフォーマンスの理論 レイテンシ、使用率、サービス需要から、ボトルネックの場所を見積もる力を身につけます。 全 6 章
  7. Part 6 データシステム データの保存・複製・分散の基本原理を、トレードオフとともに学びます。 全 6 章
  8. Part 7 運用と監視 アラート設計からインシデント対応まで、サービスを安定して動かし続けるための考え方を学びます。 全 5 章
  9. Part 8 スケールとインフラ 仮想化、コンテナ、クラウドの基礎と、スケールするための設計判断を学びます。 全 5 章
  10. 付録 全 2 章