JSUG勉強会2023その2 クレディセゾンでのSpring・AWS活用事例に行ってきた #jsug

JSUG勉強会2023その2 クレディセゾンでのSpring・AWS活用事例 に参加しました。オンライン参加。簡単に所感をまとめます。

jsug.doorkeeper.jp

所感

こういう移行プロジェクトっていろんな前提や制約があってなかなか思ったようには進まないもので、トレードオフだったり現場のアイデアが詰まってるはず。今回そういう話が聴けてよかったです。昔、Seasar2 から Spring に移行したときのことを思い出した。

単純なインフラ/フレームワークの移行だけじゃなくて、メトリクス取れるようにしたりサーキットブレーカー導入したりしててすごい。

移行と関係ないけど、サービス間の接続に Git のコミットハッシュ使うのよさそう。あと、Karate は初めて聞いた。

以下、メモから抜粋。

Springを武器に闘うレガシーアーキテクチャ 〜オンプレ/EJB2からのEKS/Spring Bootへの移行奮闘記〜

  • オープンGW
  • AWS, EKS, Aurora PostgreSQL
  • G.M.ワインバーグ
  • コアとなる業務ロジックは変更しない
  • 開発/運用しやすくしてから改善する
  • フレームワーク
  • Spring 管理下にする
    • Spring の機能が利用できるように
  • テスト
    • 対象を絞る
    • E2Eによる外部仕様の原新比較
      • 既存システムの通信ログからテスト作成
      • Karate
        • 自由度が少ないので記述がブレにくい
  • 保守/運用
  • EKS
    • プラットフォーム
    • k8s はシンプルな設計に保つ
    • k8s で足りない部分は Spring の機能を活用する
    • デプロイ容易性
    • IaC
      • CDK (Java)
        • 環境ごとに yaml に外部定義
        • Java で読み込んで CDK で構築
      • eksctl + config ファイル
    • blue/green
  • クライアントサイドロードバランシング
  • オブザーバビリティ
    • fluent-bit
    • firehose > S3
    • メトリクス
      • Prometheus > cloudwatch agent > cloudwatch logs
  • 無停止ローリングアップデート
    • Liveness Probe, Readiness Probe
    • CommandLineRunner ウォームアップ
      • ピーク時にロールアウトリスタートしても性能問題ないように
      • ロードされてないクラスをロードしたり (servlet リクエストしたり)
      • キャッシュ生成
  • Git のコミットハッシュを利用してイメージタグを付与
  • AWS VPC Lattice
  • ドキュメントを絞る
  • バージョンアップ
    • 自動テストがあると安心