PR

システムを構成する機能を切り分けた「マイクロサービス」の活用が進んでいる。アプリがスパゲティ状態に陥る事態を避けて、開発や運用を容易にする。眼鏡販売大手のジンズはウエアラブル機器のIoT基盤に採用した。

 「アプリケーションやデータの種類を柔軟に変えられるようになった」。眼鏡販売大手のジンズの菰田泰生MEME事業部技術顧問はマイクロサービスを導入した効果を満足そうに語る。マイクロサービスはアプリを独立性の高い複数のサービスの集まりとして作り上げる設計手法だ。

図 マイクロサービスの利点
図 マイクロサービスの利点
アプリを独立した機能の単位に分割
[画像のクリックで拡大表示]

ジンズはIoT基盤に採用

 ジンズは眼鏡型ウエアラブル機器「JINS MEME」のIoT(インターネット・オブ・シングズ)基盤にマイクロサービスを採用している。同基盤により、機器に取り付けた眼電位センサーなどから1日に平均500万~900万件のログデータを収集。データを分析し、装着者の集中度合いや体の軸のぶれなどを可視化している。

 ユーザーの集中度を可視化する機能は2種類のマイクロサービスが支えている。1つは数時間~数週間のログを基に、まばたきの強さなどの傾向値を利用者ごとに算出する機能だ。「長い期間のデータから各個人の傾向値を算出している」(菰田技術顧問)。もう1つは眼鏡から得られたデータを基にした特徴データに対し、「覚醒状態にある」といった意味付けデータを作って記録する機能である。

 同社はマイクロサービスを生かし、本番環境に影響を与えずに機能を加えた。眼鏡から得られたデータから首の角度などを実験的に判別する機能が一例だ。首の角度から肩こりの度合いを把握するといった狙いがある。「サービスの内容は改善し続ける必要がある。不要になればすぐ廃止でき、後から変更もしやすいシステム構造が向く」(菰田技術顧問)。このほか、IoT基盤を使ってアプリを開発する協力会社向けにログデータを公開するマイクロサービスなどを追加した。

「DevOpsの導入が先」

 ジンズの例からも分かるように、システムを構成する機能を単一のプロセスとして実行するモノリシック(1枚岩)な設計手法に比べて、機能の改善や追加がしやすい点がマイクロサービスの特徴だ。

 従来のシステムは機能同士が密接に連携していることが多く、機能を変更する際に影響範囲の確認やテストに手間がかかる。これに対し、マイクロサービスは機能同士が緩やかに結びついており、ある機能を変更しても他の機能に影響を与えずに済む。これを疎結合と呼ぶ。ジンズのIoT基盤のように、継続的に機能を改善していくやり方が容易になるわけだ。

 米ガートナーでアナリストを務めるマッシモ・ペッツィーニ氏は「マイクロサービスは機能を頻繁に変えるSoE(システム・オブ・エンゲージメント)のシステムで効果を発揮する」と語る。