Javaで業務システムを作る
長期運用する業務処理を、明確な層と監視可能な実行基盤に分けます。
代表的な構成
唯一の正解ではなく、理解しやすい出発点です。
- 01
JVM上で動く静的型付きの汎用プログラミング言語。
- 02
Springアプリを設定少なく起動するJavaフレームワーク。
- 03
Javaのオブジェクトとリレーショナル DBを対応付ける成熟したORM。
- 04
標準SQLと拡張性に強いオープンソースリレーショナル DB。
- 05
アプリと依存環境をコンテナ画像へまとめるプラットフォーム。
- 06
コンテナ化したサービスを複数マシンで運用するオーケストレーター。
- 07
トレース、メトリクス、ログをベンダー中立に計測する標準とツール群。
なぜこの構成?
- Spring BootはWeb、認証、データ接続の広い選択肢を一貫して扱える。
- Hibernateで業務オブジェクトと関係データベースの対応を管理できる。
- OpenTelemetryを組み込むと、複数サービスをまたぐ処理を追跡できる。
向かない場面
- 少人数で試作する段階では、層や運用基盤の設計負担が大きくなりやすい。
- Kubernetesは複数サービスの運用に有効だが、専任知識と監視が必要になる。
別ルートもある
- Microsoft製品との統合を優先するなら、ASP.NET Coreを選ぶ。
- 小さな独立APIなら、GoやTypeScriptで構成を簡素化する。