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