ログイン機能とコア機能のService化も同時に実施

このように、PMFを迎えつつあるタイミングで Monolith > Apps への方針転換を行いましたが、同時に行ってよかったことをご紹介します。

それはログイン機能とコア機能のService化です。

今日のITサービスのほとんどではログイン機能をもっていると思いますが、アプリケーションを分割するにあたってログイン機能のApps化も同時に行いました。このアプリケーションはitandi-accountsと呼ばれており、現在では我々のサービスすべてにログイン機能を提供しています。

もう1つはコア機能、我々でいうと物件データベースのService化です。

SaaSにおいては、どのアプリケーションでも扱うコアデータに当たるものがあるはずです。我々でいうと、それは物件データであり、例えば薬剤師向けのサービスなら薬データになるでしょう。

Apps化に伴い上記の2つだけはService化を行ったことで、その後に増えていったアプリケーションは、そのアプリケーションの責務にフォーカスできるようになりました。

Apps化のメリットと課題

最後に我々が感じているApps化のメリットと課題をまとめます。

メリットは、1つのアプリケーションが小さくなるため影響範囲が分かりやすいことです。

チームを小さく保つことができるため、アプリケーションごとでの意思決定がしやすくなります。これはスピード感をもってプロダクト開発をする必要があるスタートアップ企業等には大きなアドバンテージとなるでしょう。

逆に課題としてまず挙げたいのは、分割の領域設定の難易度が高いことです。

我々はApps化に成功しましたが、間違った単位でアプリケーションを分割してしまうと、「アプリケーションとしては分かれているが実際に相互に密に依存してしまう」という状態になり、スピード感をもった開発を実現するという本来の目的が達せられなくなる可能性があります。

また、アプリケーションが増えるごとにインフラ環境をそれぞれ構築する必要があるため、それらの管理コストが高まることも課題です。

単純にサーバーの費用も嵩みますが、ライブラリやフレームワークを最新に保つ作業もアプリケーションごとに行う必要があり管理が煩雑になってしまいます。

今後の展望

現在イタンジでは、10近いサービスをApps化し運営してます。しかし、この方法がベストだとは思っていません。

前述の管理コストについての課題を改善するため、今後はモジュラーモノリスへの移行も検討したり、アプリケーションが増えるに従い、今までは見えてなかったコア機能が発生し、新たな共通サービスを開発する必要が出てきたりなど探求の未知は続きます。

SaaS企業様がアプリケーション分割について検討される際、当社のケーススタディが1つの参考になれば幸いです。

<著者プロフィール>

永嶋章弘
イタンジ株式会社
執行役員

筑波大学大学院システム情報工学研究科修了。新卒でニフティに入社、SNSマーケティングツールの開発を担当。その後、創業期のイタンジに入社しさまざまな新規事業を立ち上げる。事業の区切りを迎えメルカリに転職し、アメリカ版アプリのヘルプセンターリニューアル、カスタマーサポートツール開発、メルカリNOW立ち上げなどに従事。2018年、イタンジの執行役員に就任。