ニュース
ひとつのマイクロサービスを変更してもシステム全体の品質を安定化――、富士通研究所が新技術を開発
2019年9月30日 14:04
株式会社富士通研究所は27日、個別に開発・運用が可能な複数のマイクロサービスで構成されるシステムにおいて、応答時間・可用性・コストといったサービス要件にあわせ、マイクロサービスの設定パラメータを適切に自動調整する技術を開発したと発表した。
個別に開発・運用可能な複数の小さなサービス(マイクロサービス)をつなぎ合わせ、ひとつのシステムとして構成するソフトウェア開発手法「マイクロサービスアーキテクチャ」が登場しているが、この手法では、構成上、個々のマイクロサービスを簡単に変更できるため、ひんぱんに新機能の追加などが求められるECサイトや旅行サイトなどのWebサービスにおいて注目されているという。
しかし、ひとつのマイクロサービスだけに新機能を追加するなどの変更を行った場合でも、全体のシステムに遅延などの影響を与えることがあるため、サービス品質を保つためには、その都度、システム全体の検証が必要になっていた。
例えばECサイトにおいて、スマートフォンを用いた電子マネー決済機能を決済サービスに追加した場合、実際には決済サービスを呼び出すためのフロントサービスや、フロントサービスにひも付くほかのサービスなどにも、遅延や受付率低下といった影響が及んでしまうとのこと。
これに対して、今回開発された、システム全体が適切に稼働するようなパラメータを自動で調整する技術では、マイクロサービス変更時においても、サービス品質を手軽に確保可能になるという。
具体的には、利用者のサービス利用要求から応答までの間にシステム内部で行われるマイクロサービス間の通信を、順番待ちの状況やその緩和策を、数理モデルを用いて解析する待ち行列理論に基づいてモデル化。それを活用して、あるマイクロサービスを変更した際に起こりうる、システム全体の動作や通信量・所要時間を仮想的に推定するシミュレーション技術を開発した。これにより、システム全体の品質と個々のマイクロサービスの品質を定量化できるという。
また、生物の進化過程を模擬した解の探索手法「遺伝的アルゴリズム」と品質シミュレーション技術を組み合わせ、サービスの品質要件を制約条件に、個々のマイクロサービスに与えるCPU・メモリ割当量やリトライ回数といった設定パラメータの最適な組み合わせを探索する技術も開発した。
これにより、サービス品質と個々のマイクロサービスの品質を両立する設定パラメータを迅速に導出でき、例えば、遅延が起こった場合に、利用者を不満に思わせない通信タイムアウトの時間設定や、通信を停滞させないために行う、優先度が低いサービスの切り離し時における動作決定などを、自動で調整できるとしている。
なお、マイクロサービス実行基盤のKubernetesとIstioで構築した社内のストリーミングサービスにおいて、ある取り決めた品質に向けてパラメータ調整を実施したところ、人手ではパラメータ調整に3日間を要したのに対し、これらの技術を活用した場合は1時間で行えたとのこと。
富士通研究所では、新技術のさらなる高速化をすすめ、2019年9月からの社内試行の結果をふまえて、2020年度の実用化を目指す計画だ。