富士通研究所は、応答時間・可用性・コストのサービス要件に合わせて、マイクロサービスの設定パラメーターを適切に自動調整する技術を開発したと発表した。
同社は今回、マイクロサービス実行基盤のKubernetesとIstioで構築した同社内のストリーミングサービスにおいて同技術を活用し、ある取り決めた品質に向けてパラメーター調整を実施したところ、人手ではパラメーター調整に3日間を要したのに対し、同技術を活用した場合に1時間に短縮されることを確認した。
マイクロサービスアーキテクチャーは、個別に開発・運用可能な複数の小さなサービス(マイクロサービス)をつなぎ合わせることで、1つのシステムとして構成するソフトウェア開発手法。個々のマイクロサービスを簡単に変更することができるため、頻繁に新機能の追加などが求められるECサイトや旅行サイトなどのウェブサービスにおいて注目されている。
一方、1つのマイクロサービスに新機能を追加するなどの変更を行った場合、全体のシステムに遅延などの影響を与えることがあるため、サービス品質を保つためにはその度にシステム全体の検証が必要だった。
今回開発した技術は、システム全体が適切に稼働するようなパラメーターを自動で調整することにより、マイクロサービス変更時においてもサービス品質を手軽に確保することを可能にする。
マイクロサービス変更時の影響イメージ
設定パラメーターの自動調整技術
開発した技術は、品質シミュレーション技術と最適パラメーターを探索する自動調整技術で構成される。
品質シミュレーション技術は、マイクロサービス間の通信を、順番待ちの状況やその緩和策を数理モデルを用いて解析する「待ち行列理論」に基づいてモデル化することで実現した。あるマイクロサービスを変更した際に起こり得るシステム全体の動作や通信量、所要時間を仮想的に推定するシミュレーション技術により、システム全体の品質と個々のマイクロサービスの品質を定量化できる。
自動調整技術は、遺伝的アルゴリズムと品質シミュレーション技術を組み合わせ、サービスの品質要件を制約条件に、個々のマイクロサービスに与えるCPU・メモリ割当量やリトライ回数といった設定パラメーターの最適な組み合わせを探索するもの。これにより、例えば遅延が起こった場合に、利用者を不満に思わせない通信のタイムアウトの時間設定や、通信を停滞させないための優先度が低いサービスの切り離し時の動作決定などを自動で調整できる。
富士通研究所では、2020年度の実用化を目指す。