クラウド環境の普及やコンテナ技術の発展により、マイクロサービスの導入を検討する企業が増えている。マイクロサービスは米アマゾン・ドット・コム(Amazon.com)や米ネットフリックス(Netflix)が構築するような巨大なシステムを多数の小規模チームで開発・運用するために考案された設計・開発手法である。サービスを細かい機能単位に分割し、それらを連携してシステムを実装する。

 マイクロサービスはデジタルトランスフォーメーション(DX)を実現するシステム開発に有効だ。DXの実現にはビジネス環境の変化に追従できるシステムが欠かせない。日本IBM グローバル・ビジネス・サービス事業部CTO IBMオープン・クラウド・センター長 ディスティングイッシュド・エンジニアの二上哲也執行役員は「変更頻度が高く、バージョンアップを繰り返すサービスの開発手法としてマイクロサービスが注目されている」と説明する。

 マイクロサービスのようにサービスを細かく分割して実装すれば、個々のサービスを変更・修正したときの影響範囲を小さく抑えられる。これにより企業のビジネスに変化が生じてもシステムの変更・修正を最小限にとどめ、安全にサービスを改善できるわけだ。

従来システムとマイクロサービスの違い
(出所:日本IBMの資料を基に編集部で作成)
[画像のクリックで拡大表示]

 ただしマイクロサービスでは、従来の一枚岩のようなシステムとは異なる考慮点がある。それが「冪(べき)等性」と「結果整合性」によるデータの整合性の確保である。

 マイクロサービスを実現する際の課題はいくつかある。その1つにデータ処理が挙げられる。「理想系は1つのサービスで1つのテーブルを保持するような形」(アクアシステムズの川上明久執行役員技術部長)という。一般にマイクロサービスアーキテクチャーではサービスごとにデータを保持し、他のサービスとは主にAPI(アプリケーション・プログラミング・インターフェース)を使ってデータをやり取りする。

 そこで重要になるのがデータの整合性を保つ仕組みである。マイクロサービスのような分散システムはアプリケーション全体から見たデータの整合を取ることが困難だからだ。例えば勘定系のようにデータの処理順序や整合性が重要なシステムにマイクロサービスの適用は難しい。整合を取れなければ別個にデータを処理してしまい計算結果に不整合が生じることもある。

 富士通 サービステクノロジー本部アプリ技術コンサルティング統括部の阿部聡マネージャーは「完全に分けて考えるのが現実解」と説明する。システムを複数に分割した際、データの整合性を保つのは難しい。厳密な処理が求められる基幹系システムはそのまま保持し、変更頻度の高いUI処理や残高の照会処理といったところからマイクロサービスを適用していくわけだ。

 基幹系システムにはAPIを用意し、外部のマイクロサービスからの呼び出せるようにする。徐々にマイクロサービス化を進める手法だ。「基幹系システムは手を付けず、今後の伸びが期待できる情報系システムからマイクロサービス化に取り組む企業は多い」(富士通の阿部マネージャー)という。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。