巨大なデータベースが開発の足かせに──マイクロサービスを選んだ理由
──続いて、現在奥野さんが携わっている「dodaマイクロサービス化プロジェクト」について伺います。プロジェクトが始まった背景を教えてください。
「doda」システムの最大の課題は、データベースが巨大で、かつ「doda」周辺のシステムもすべて同じ共有データベースを参照していることでした。そのため、他システムに影響が出る可能性があり、データベースを安易に変更することができませんでした。
その影響範囲を調査すること自体に時間がかかり、開発速度も下がっていました。こうした問題を解消するために、各アプリケーション専用のデータベースを切り出してマイクロサービス化し、アプリケーション単体でリリースできるようにしたのです。
先ほどお話ししたリビルドプロジェクトにて、まずは「doda」のフロントエンドについて密結合を解消し、その後マイクロサービス化プロジェクトで共有データベースの密結合の解消を目指すという流れです。
──マイクロサービスを選んだ理由についても教えてください。
最近では「モノリスに戻した」という事例も増えていますが、それは規模の小さなアプリケーションのケースだと思います。比較的規模の小さなアプリケーションをマイクロサービス化してしまうと、管理コストが上がってしまう。ですが、「doda」システムぐらいの規模であれば、マイクロサービス化して、各アプリケーションの機能をスリム化した方が保守性は高く、生産性も向上すると考えています。
マイクロサービス化はAI活用を推進するうえでもメリット
──近年、システム開発にAIを活用するケースが増えています。現在のプロジェクトではどのようにAIを活用されていますか。
社内で「Claude Code」が使えるようになっているため、仕様の調査やテスト、実装などのフェーズで活用しています。中でも実装面ではClaude Codeを使って進めていることが多いですね。
社内では1日に使用できるトークン量が決まっているので、使用量には気を付けています。マイクロサービス化プロジェクトではそれほど意識はしていませんが、マイクロサービス化されていない部分はコード量が多く、そのままClaude Codeを使うとあっという間に制限に達してしまうことがあります。制限内でうまく活用できるよう、社内で試行錯誤しています。
具体的な案としては、AIが迷わないよう、Claude.md(注:プロジェクトルートに配置するマークダウンファイル)に情報を与えて道しるべを作る。もちろん生成AIを安全に活用できるよう、OSSのガードレールフレームワークも導入しています。
AI活用を進めるためにも、細かくリリースできるマイクロサービス化は有効だと思います。AIを活用することで、仕様を決めるディレクターが「こんなことをしたい」と言った瞬間に、動くものを提示できるぐらいのスピード感が可能になるかもしれません。このようにリリース速度が上がれば上がるほど、より良い機能やUXをユーザーに早く提供することができるようになる。AI活用の一番の価値はそこにあると思います。

