2025-11-28
AI エージェントで Java 8 アプリを Java 21 へアップグレード

手作業での Java アップグレードに時間を費やすのはもう終わりにしましょう。このエピソードでは、レガシーな Java 8 の Spring アプリを Java 21 へ移行する実際のエンドツーエンドのモダナイゼーションを追い、AI エージェントがチームが先送りし続けてきた作業を静かに、かつ記録付きで実行する様子を紹介します。対象は、AWS 上で動く Java 8 時代の Spring MVC アプリです。依存関係が固定され、未パッチの CVE が残り、アイドル状態のコンピューティングリソースが無駄になり、「自分の環境では動く」という属人的な知識に頼っている状態でした。これを、Azure 上で動く、より高速で低コスト、かつ監査可能な Java 21 ランタイムへ移行します。Copilot 型のモダナイゼーションエージェントが単調な作業を担当し、スタック全体の棚卸し、実際の到達可能性に基づく CVE の優先順位付け、OpenRewrite レシピの自動適用、BOM の整合、不正なリフレクティブアクセスの修正を行い、すべての変更を Git で追跡可能な状態に保ちます。さらに、AWS から Azure への移行では、Azure App Service と Azure Spring Apps の選択、Azure SQL Database への移行、本番環境対応の Dockerfile の生成、そして Azure の監視とセキュリティ機能との連携についても解説します。