筆者は、ヘルスケアアプリ「FiNC」の開発/運用に携わるエンジニアです。FiNCアプリは、2014年3月にモバイル向けWebアプリケーションとしてリリースしました。当初は利用者が食事を投稿し、内容に対して専門家が指導をするサービスを提供していました。その後各種検査との連携、ライフログの蓄積や分析、SNS、法人向けサービス、EC(電子商取引)、メディア、チャット、人工知能(AI)と、次々とサービスを拡充してきました(図1)。

図1●スマートフォン向けヘルスケアアプリ「FiNC」
図1●スマートフォン向けヘルスケアアプリ「FiNC」
(出所:FiNC)
[画像のクリックで拡大表示]

 いずれも、FiNCから利用できます。しかし裏側では、これらの機能を別々のサービスとして設計/開発しています。複数のサービスをつなぎ合わせて1つのアプリケーションとして提供する、「マイクロサービスアーキテクチャー」と呼ばれる設計手法を採用しているのです。

 FiNCはこれまで、急激にサービスを拡充してきました。さらに、個々のサービスを頻繁に改良し続けています。毎日、何らかの改良が加わっているといっても過言ではないほどです。“毎日アップデート”が必要なモバイルアプリを開発する上で、マイクロサービスアーキテクチャーは不可欠でした。

 本連載では、マイクロサービスアーキテクチャーを核に、FiNCのシステム設計方針や技術的な特徴を5回にわたって解説します。

 第1回でマイクロサービスアーキテクチャーの基本的な考え方を解説し、第2回でなぜそれをFiNCが採用したのか、どのように利用しているのかを説明します。第3回からは、「Docker」や「React.js」など、マイクロサービスアーキテクチャーを支える各種技術を取り上げます。