第1回で紹介したように、FiNCアプリは多岐にわたる機能をサービスとして分離しています。
アプリケーションを細かなサービスに分け、マイクロサービス化することによって、インフラのコストは基本的に増大します。サービスが増えることで稼働するサーバーが増え、サービス間の通信も発生するからです。併せて、サービス運用のコストも増える傾向にあります。
それでもFiNCにとっては、マイクロサービスの採用が不可欠でした。その利点は、大きく二つあります。
急激に事業を多角化、迅速な改良が可能に
最初に挙げられるのは、急激な事業の多角化に対応できることです。マイクロサービスはアプリケーションのアーキテクチャーを指す言葉でありながら、結局は組織のアーキテクチャーを表す言葉でもあります。
複数の事業部に関わるサービスを一つの一体化した(モノリシックな)アプリケーションとして運用すると、コミュニケーション、リリースサイクル、影響範囲といった面で運用が困難になってきます。
FiNCでは、それぞれがガバナンス権を持った独立した事業部が集まり、一つのFiNCという組織を構成しています。こうした組織のアーキテクチャーが、マイクロサービスアーキテクチャと相性が良かったといえます。
例えばFiNCには、「ライフサイエンス」という事業部があります。ライフサイエンス事業部は、アプリを通じて日々の利用状況や生体情報をライフログとして蓄積/分析し、科学的見地に基づいたソリューションや事業を行います(図1)。事業部内は分析を中心に行うチームと事業開発を行うチームに別れており、それぞれが別々のアプリケーションを開発運用しています。