## Memo - Department of Computer Science, Stony Brook University, Doctor of Philosophy ## Abstract マイクロサービス・アーキテクチャは、遅延に敏感な大規模オンライン・アプリケーションを構築するために急速に普及している。このアーキテクチャは、アプリケーションをマイクロサービスと呼ばれるきめ細かく疎結合なサービスの集まりに分解することをサポートします。各マイクロサービスは通常、単一のビジネス機能を実装し、アプリケーション・プログラミング・インターフェース(API)を介してマイクロサービス間の通信を可能にします。このモジュラー・アーキテクチャーは、敏捷性、スケーラビリティ、故障分離のためのマイクロサービスの独立管理を可能にする。このモジュラー・アーキテクチャの利点を考えると、マイクロソフト、アマゾン、ネットフリックス、ツイッターなどでは、マイクロサービス・アーキテクチャがモノリシックまたは多層アーキテクチャを使用して実装された既存のデプロイメントを広く置き換えている。しかし、マイクロサービス・アーキテクチャのモジュール設計は、相互に影響し合うマイクロサービスの大きなグラフをもたらし、その影響は些細なものではありません。その結果、マイクロサービスアーキテクチャのパフォーマンス管理とデバッグは困難な問題となる。本論文では、マイクロサービス・アーキテクチャにおけるパフォーマンス管理の問題に対処するために、最適化理論と機械学習に基づいて構築された技術を開発する。具体的には、マイクロサービス・アーキテクチャで直面する2つの重要な問題、すなわちコンフィギュレーション・チューニングとボトルネック検出の解決に焦点を当てる。 アプリケーションのコンフィギュレーションチューニングはパフォーマンスと利用率を向上させるために不可欠であるが、マイクロサービスアーキテクチャは相互に依存するパラメータを持つ非常に大きなコンフィギュレーション探索空間をもたらす。我々は、相互依存に対処するためにパラメータを共同で最適化し、利用可能なシステム特性に基づいて実用的な次元削減戦略を開発し、探索空間のサイズを縮小する。3つの一般的なベンチマーク・アプリケーションを対象に、さまざまな最適化アルゴリズムと次元削減手法を導入前(オフライン)に評価した結果、テールレイテンシの短縮(最大46%)における構成チューニングの重要性が浮き彫りになった。最適化アルゴリズムと次元削減テクニックを適切に組み合わせることで、チューニングすべきパラメータの適切なサブセットを特定し、検索スペースを最大83%削減することで、大幅な待ち時間の改善を実現できます。 実際のアプリケーションの導入後のチューニングでは、ワークロードが複雑で時間的に変化するため、動的な再構成が必要になります。さらに、チューニングプロセスは、サービス品質とアプリケーションのアップタイムを維持するために、アプリケーションの中断を減らす必要があります。OPPerTuneは、さまざまな機械学習アルゴリズムを使用して、デプロイ後のチューニングに伴う課題を処理するフレームワークです。OPPerTuneの有効性を評価するため、企業クラスタにデプロイされたベンチマーク・アプリケーションを対象に、合成トレースと実運用トレースでOPPerTuneを評価し、(a)チューニングすべき構成を決定し、(b)構成をチューニングする範囲を自動的に管理します。実験結果によると、OPPerTuneはマイクロサービス・アプリケーションのエンドツーエンドのP95レイテンシを、デプロイ前に行われるエキスパートによる構成選択よりも50%以上削減しました。 構成チューニングにとどまらず、収益損失を回避するためには、パフォーマンス低下の原因(ボトルネック)を検出して緩和することが重要です。提案する研究の一環として、マイクロサービス・アプリケーションのボトルネックを検出し、緩和する技術を調査する。具体的には、ボトルネックを検出するために、マイクロサービスアプリケーションのデプロイメントに内在するグラフデータを利用するグラフ学習アルゴリズムを使用する予定です。構成チューニング(自動スケーリング、アプリケーション構成チューニングなど)を含む、さまざまな緩和戦略を模索する予定である。[[Graph Neural Network]]を使用した予備的な結果では、既存の研究で使用されている手法と比較して、ボトルネックの検出精度を最大15%、精度を最大14%向上できることがわかりました。 最適化と機械学習アルゴリズムをシステム特性と組み合わせることで、大規模なマイクロサービス・アプリケーションにおける構成チューニングとボトルネック検出・緩和の複雑さに効果的に対処できるというのが、私たちの論文です。