レガシーシステムの技術負債を解消へ
だが、長い歴史を持つシステムであることから、技術負債に悩まされている。現在はこのレガシーシステムを改修しながら、技術負債の解消に注力している状況だ。
「個人的には、レガシー刷新も面白いと思っています。新しく作り直すのに求められることが、サービス立ち上げとはちょっと違うからです」(巣籠氏)
レガシー刷新の代表的なアプローチには、従来からの代表的なストラングラーパターンなどがある。これは現在のレガシーシステムから切り出せる部分を徐々に新システムに移行していく手法だ。
大きなシステムがあったときに、どこから切り出せるか、切り出した後の設計をどうするかなどをシステム全体のアーキテクチャを考えて決定する必要がある。これもアーキテクティングである。

しかし、「ちょっと古い」J2EEベースのアプリケーションなどは、巨大すぎて一気にすべてを移行することはできない。そこで、段階的に新しいサービスに移行していくレガシー刷新が研究開発されている。
どう新しいサービスに移行していくのか?
ここからは、マルイユナイトでトライした事例が紹介された。まず考えたことは、現在のアーキテクチャの問題を把握することだ。それまでのシステムは一応リポジトリでは複数に分かれているが、動いているのが一つのアプリケーションサーバーになっていた。そこで、マイクロサービス化かモジュラーモノリス化が必須だった。

続いてのアプローチは、レイヤー間の依存関係を把握し、分離のしやすさや影響の大きさを鑑みてどこのドメインから着手するかを判断したことだ。

次のアプローチでは、業種独自の制約を把握するという課題があった。クレジットカードの会員情報を扱う場合、そのシステムはPCI DSS(Payment Card Industry Data Security Standard)というセキュリティ基準に準拠をしなければいけないので、その対応が必要だった。

ちなみに、こうした大規模システムのコードは行数が大きくなるため、生成AIに与えようとしてもコンテキスト長が溢れてしまう課題もある。ただ、これに関しても技術の幅を活かして、生成AIフレンドリーにリアーキテクチャしていけば(要はコンテキスト長が触れない範囲で)うまくシステム分割できる。その範囲で生成AIバフを得ていけば開発効率も大きく上がるだろうと見込んで、現在進行形で取り組んでいる。
最後に巣籠氏は、「生成AIというキーワードはここ2~3年で登場したものですし、Dockerコンテナも15年前はありませんでした。その時代において最適な対応・ツールがあるので、一度アーキテクチャをしたらそれでおしまいということはありません。継続的にアップデートしていかないといけません」と、改めて技術の幅を広げることの重要性を語り、セッションを締めた。

株式会社マルイユナイトでは、一緒に働くエンジニアの積極的な採用活動を行っています!
マルイユナイトは2024年9月に始動した、丸井グループのテックカンパニーです。
「好き」という感情とデジタルの力で、新しい顧客体験を共創しています。
本記事でご興味を持たれた方、よろしければカジュアルにお話ししませんか。
こちらからお気軽にエントリーください。