ゴールと学ぶこと
この教室が目指す到達点と、学習の全体像を説明します。
🐱 この章の目次
この教室のゴールは、可観測な 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 スケールとインフラ:仮想化、コンテナ、キャパシティプランニングを整理します。