全1441文字
PR

アプリケーションの迅速な改善を可能にする「マイクロサービスアーキテクチャー」。国内でも金融機関や伝統企業が導入するなど、本格的な普及期に入りつつある。ただし既存システムへの適用では、アプリケーションを独立性の高いサービスに切り分けるといった難題が立ちはだかる。どうすればうまくいくのか。最新の事例から成功の秘訣を探る。

 ディー・エヌ・エー(DeNA)は過去に実施したマイクロサービスのプロジェクトでいくつかの課題に突き当たった。それを改善しながら、さらなるマイクロサービス活用につなげている。

 同社と第一生命ホールディングスは、ヘルスケア領域を中心とした社会課題の解決を目指して業務提携。女性向けコミュニティーサービス「ハレトケ」やダイエット支援アプリ「カラダモ」をリリースしてきた。どちらもマイクロサービスで開発したものだ。

 DeNAの関連会社DeSCヘルスケアが中心となり開発を進めた。うまくアプリをリリースできた背景には、過去の同様プロジェクトで浮かんだ2つの課題と解決策がある。課題の1つはリポジトリー管理であり、もう1つは開発体制だ。

 従来のプロジェクトもヘルスケア領域のアプリをつくるものだった。認証や記事、ポイントといった単位でマイクロサービスに基づく開発を推進。データベースもサービスごとに独立させ、疎結合を追求した。

 問題になったのは、開発したサービスを管理するリポジトリーの方式である。単一のリポジトリーで管理する「Monorepo」と、サービスごとにリポジトリーを用意する「Polyrepo」があり、後者を選んだ。「初めてマイクロサービスに挑戦するなかで、Go言語にあまり詳しくない開発者の開発スピードを上げる必要があった。開発の自由度が高く、スピードを上げやすいPolyrepoは当時としてはやむを得ない選択だった」(DeSCヘルスケアの製品開発部に所属する王岳宏氏)。

図 DeNAにおけるマイクロサービス活用の課題と解決策
図 DeNAにおけるマイクロサービス活用の課題と解決策
リポジトリー管理と開発体制を改善
[画像のクリックで拡大表示]