JP2023551029A - プロアクティブ異常検出 - Google Patents

プロアクティブ異常検出 Download PDF

Info

Publication number
JP2023551029A
JP2023551029A JP2023532550A JP2023532550A JP2023551029A JP 2023551029 A JP2023551029 A JP 2023551029A JP 2023532550 A JP2023532550 A JP 2023532550A JP 2023532550 A JP2023532550 A JP 2023532550A JP 2023551029 A JP2023551029 A JP 2023551029A
Authority
JP
Japan
Prior art keywords
computer
request
program instructions
neural network
microservice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023532550A
Other languages
English (en)
Inventor
カン、ヒ
クエ、シンユ
デン、ユ
グヴェン、カヤ、シネム
ダモラ、ブルース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023551029A publication Critical patent/JP2023551029A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

コンピュータ実装方法、コンピュータプログラム製品、およびコンピュータシステムが提供される。例えば、本発明の実施形態は、要求を受信することに応答して、マイクロサービスアプリケーションの正常動作のための一連の要求のトレースデータおよび仕様を収集することができる。本発明の実施形態は、収集されたトレースデータおよび仕様から、要求文脈的特徴を生成することができる。本発明の実施形態は、生成された文脈的特徴に基づいて、ニューラルネットワークモデルを訓練することと、訓練されたニューラルネットワークモデルを使用して、マイクロサービスアプリケーションの異常動作を予測することができる。

Description

本発明は、一般的にはプロアクティブ異常検出に関し、特に要求文脈的データおよびニューラルネットワークを用いたマイクロサービスアプリケーションのためのプロアクティブ異常検出に関するものである。
マイクロサービスアーキテクチャは、アプリケーションを疎結合のサービスの集合体として配置するものである。マイクロサービスは、モノリシックなアプリケーション(例えば、ウェブコントローラーまたはbackend-for-frontend)内の層ではない。このように、マイクロサービスアーキテクチャは、継続的な配信ソフトウェア開発プロセスに適している。アプリケーションのごく一部に変更を加えても、1または少数のサービスだけを再構築および再展開する必要があるだけである。
一般的に、マイクロサービスアーキテクチャは、クラウドネイティブアプリケーション、サーバーレスコンピューティング、および軽量コンテナ展開を用いたアプリケーションに採用することができる。モノリシックなアプローチでは、3つの機能(フレームワーク、データベース、メッセージブローカーなど)をサポートするアプリケーションは、これらの機能のうちの1つだけがリソースに制約があったとしても、全体をスケールインさせる必要がある。マイクロサービスでは、リソースに制約のある機能をサポートするマイクロサービスのみをスケールアウトする必要があるため、リソースとコストの最適化の利点を提供する。
機械学習(ML)とは、明示的な指示を使用しない代わりにパターンや推論に依存して特定のタスクを実行するためにコンピュータシステムが使用するアルゴリズムや統計モデルに関する科学的研究である。機械学習は、人工知能のサブセットと考えられている。機械学習アルゴリズムは、訓練データと呼ばれるサンプルデータに基づいて数学的モデルを構築し、タスクを実行するように明示的にプログラムされていなくても予測または意思決定を行う。機械学習アルゴリズムは、電子メールのフィルタリングやコンピュータビジョンなど、タスクを効果的に実行するための従来のアルゴリズムを開発することが困難または不可能な、さまざまなアプリケーションで使用されている。
機械学習において、ハイパーパラメータとは、モデルの外部にあり、その値をデータから推定することができない設定のことである。ハイパーパラメータは、モデルパラメータの推定を支援するプロセスで使用される。ハイパーパラメータは、学習(例えば、訓練)プロセスが始まる前に設定され、対照的に、他のパラメータの値は、訓練によって導かれる。モデル訓練のアルゴリズムによって、必要とされるハイパーパラメータは異なるが、最小二乗回帰のようないくつかの単純なアルゴリズムでは、ハイパーパラメータを必要としない場合もある。ハイパーパラメータのセットが与えられると、訓練アルゴリズムがデータからパラメータ値を学習する。例えば、最小絶対収縮選択演算子(LASSO)は、最小二乗回帰に正則化のハイパーパラメータを追加するアルゴリズムで、訓練アルゴリズムでパラメータを推定する前に設定する必要がある。類似の機械学習モデルは、異なるデータパターンを一般化するために、異なるハイパーパラメータ(例えば、異なる制約、重み、または学習率)を必要とすることがある。
深層学習は、複雑な構造などを持つ、あるいはそうでなければ、しばしば複数の非線形変換で構成されるモデルアーキテクチャを使用することによって、データ内のハイレベルの抽象化をモデル化するアルゴリズムのセットに基づく機械学習の一分野である。深層学習は、データの表現を学習することに基づく、より広範な機械学習手法のファミリーの一部である。観測(例えば画像)は、ピクセルごとの強度値のベクトルなどの多くの方法で、またはエッジのセット、特定の形状の領域などのより抽象的な方法で表現することができる。いくつかの表現では、例からタスク(例えば、顔認識または表情認識)を学習することが容易になる。深層学習アルゴリズムでは、特徴抽出と変換のために、非線形処理ユニットの多くの層からなるカスケードを使用することが多い。連続する各層は、前の層からの出力を入力として使用する。アルゴリズムは教師あり、教師なしの場合があり、アプリケーションはパターン分析(教師なし)および分類(教師あり)を含む。深層学習モデルは、生体システムにおける情報処理や分散通信ノードに着想を得た人工ニューラルネットワーク(ANN)を含む。ANNは、生物学的な脳とは様々な違いがある。
ニューラルネットワーク(NN)は、生物学的なニューラルネットワークから着想を得たコンピューティングシステムである。NNは単なるアルゴリズムではなく、多くの異なる機械学習アルゴリズムが連携して複雑なデータ入力を処理するためのフレームワークである。このようなシステムは、一般に、タスク固有のルールをプログラムされることなく、例を考慮することによってタスクを実行するよう「学習」する。例えば、画像認識において、NNは、他の画像に含まれる猫を識別するために、「猫」または「猫ではない」と正しくラベル付けされた画像例を分析し、その結果を用いることにより、猫を含む画像を識別することを学習する。NNは、例えば、猫には毛・しっぽ・ひげ・とがった耳がある、など、猫に関する予備知識を一切持たずに学習する。その代わりに、NNは学習教材から識別特性を自動的に生成する。NNは、人工ニューロンと呼ばれる接続されたユニットまたはノードの集合体に基づいており、生物学的な脳のニューロンを緩やかにモデル化する。それぞれの接続は、生物学的な脳のシナプスのように、ある人工ニューロンから別の人工ニューロンへ信号を伝達することができる。信号を受信した人工ニューロンは、その信号を処理し、さらに別の人工ニューロンに信号を伝達することができる。
一般的なNNの実装では、人工ニューロン間の接続における信号は実数であり、各人工ニューロンの出力は、その入力の合計の何らかの非線形関数によって計算される。人工ニューロン間の接続は「エッジ」と呼ばれる。人工ニューロンおよびエッジは、通常、学習が進むにつれて調整される重みを有する。重みは、接続部の信号の強さを増加または減少させる。人工ニューロンは、集約された信号がその閾値を超えた場合にのみ信号が送信されるような閾値を持つ場合もある。一般的に、人工ニューロンは層に集約される。異なる層は、その入力に対して異なる種類の変換を実行することができる。信号は、最初の層(入力層)から最後の層(出力層)へ、場合によっては層を複数回横断した後に送られる。
本発明の一態様によれば、コンピュータ実装方法が提供される。本方法は、要求を受信することに応答して、マイクロサービスアプリケーションの正常動作のための一連の要求のトレースデータおよび仕様を収集することと、収集されたトレースデータおよび仕様から、要求文脈的特徴を生成することと、生成された文脈的特徴に基づいて、ニューラルネットワークモデルを訓練することと、訓練されたニューラルネットワークモデルを使用して、マイクロサービスアプリケーションの異常動作を予測することと、を含む。
以下、本発明の好ましい実施形態について、以下の図面を参照しながら、例示的にのみ説明する。
本発明の一実施形態に係るコンピューティング環境のブロック図を示す。 本発明の一実施形態に係るマイクロサービスの異常検出器のブロック図の一例を示す図である。 本発明の一実施形態に係るニューラルネットワークモデルを設計するためのブロック図の一例を示す図である。 本発明の一実施形態に係る個々の要求に対する要求内要因を捕捉するニューラルネットワークモデルの例示的なブロック図である。 本発明の一実施形態に係る異常動作の予測のための動作ステップを示す図である。 本発明の一実施形態に係る図例である。 (A)および(B)は、本発明の一実施形態に係る例示的なデータ収集コードを示す。 本発明の一実施形態に係るシステムの一例のブロック図である。
疎結合コンポーネントがより優れたスケーラビリティ、柔軟性、保守性、および開発者の生産性の加速を提供するため、マイクロサービスアーキテクチャは、ハイブリッドクラウド環境に展開されるアプリケーションにしばしば使用されるという本発明の実施形態がある。このようなアプリケーションは、多くのサービスで構成され、これらのサービスは、順に複数のインスタンスに複製され、異なる地理的位置で実行される。時間の経過とともに、異常による性能低下が発生する可能性がある。このように、本発明の実施形態は、マイクロサービスアプリケーションの異常を検出することが、ダウンタイムおよび生産性の損失を軽減するのに役立つ可能性がある特定の行動を取ることを可能にする重要なタスクであることをさらに認識する。現在のシステムは、観測可能性が限られているため、マイクロサービスアプリケーションを監視し、パフォーマンスを最適化することに苦労している。さらに、本発明の実施形態は、異常検出への典型的なアプローチは、現在、より多くの誤検出をもたらし得るサービス間の空間的および時間的依存性を考慮する能力を欠いていることを認識する。したがって、本発明の実施形態は、現在の異常検出システムを改善するためのソリューションを提供し、複雑なマイクロサービスアプリケーションを管理する技術サービスサポート担当者に効率的なツールを提供する。例えば、本発明の実施形態は、ニューラルネットワークを使用して、文脈的データに基づいて異常を検出する。この態様では、本明細書でより詳細に後述するように、本発明の実施形態は、ニューラルネットワークのアプローチを使用して、要求文脈的データで利用可能な依存関係を共同で考慮するアプリケーションにおけるパフォーマンス異常(例えば、サービス品質保証(SLA)違反)を予測する。本発明の実施形態は、その後、通知を生成し、その後、ユーザが意識する前に、検出された異常を修正することができる。
図1は、本発明の一実施形態に係る一般にコンピューティング環境100と指定されるコンピューティング環境を示す機能ブロック図である。図1は、1つの実装の例示を提供するに過ぎず、異なる実施形態が実施され得る環境に関するいかなる制限も意味しない。当業者であれば、特許請求の範囲に記載された本発明の範囲から逸脱することなく、図示された環境に対する多くの修正を行うことができる。
コンピューティング環境100は、ネットワーク106を介してすべて相互接続されたクライアントコンピューティングデバイス102およびサーバコンピュータ108を含む。クライアントコンピューティングデバイス102およびサーバコンピュータ108は、スタンドアロンコンピュータデバイス、管理サーバ、ウェブサーバ、モバイルコンピューティングデバイス、またはデータを受信、送信、および処理できる任意の他の電子デバイスまたはコンピューティングシステムであり得る。他の実施形態では、クライアントコンピューティングデバイス102およびサーバコンピュータ108は、クラウドコンピューティング環境など、サーバシステムとして複数のコンピュータを利用するサーバコンピューティングシステムを表すことができる。別の実施形態では、クライアントコンピューティングデバイス102およびサーバコンピュータ108は、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、スマートフォン、またはコンピューティング環境100内の種々のコンポーネントおよび他のコンピューティングデバイス(図示せず)と通信できる任意のプログラム可能電子デバイスであり得る。別の実施形態では、クライアントコンピューティングデバイス102およびサーバコンピュータ108はそれぞれ、コンピューティング環境100内でアクセスされるとシームレスリソースの単一のプールとして機能するクラスタ化されたコンピュータおよびコンポーネント(例えば、データベースサーバコンピュータ、アプリケーションサーバコンピュータなど)を利用するコンピューティングシステムを表す。いくつかの実施形態では、クライアントコンピューティングデバイス102およびサーバコンピュータ108は、単一のデバイスである。クライアントコンピューティングデバイス102およびサーバコンピュータ108は、図6に関してさらに詳細に描かれ説明されるように、機械可読プログラム命令を実行することができる内部および外部のハードウェアコンポーネントを含むことがある。
本実施形態では、クライアントコンピューティングデバイス102は、ユーザに関連するユーザデバイスであり、アプリケーション104を含む。アプリケーション104は、異常検出器110にアクセスするため(例えば、TCP/IPを使用して)、またはサービス要求およびデータベース情報を受信するためにサーバコンピュータ108と通信する。アプリケーション104は、図2~5に関してより詳細に議論されるように、受信した要求に関連する文脈的特徴を識別し、ニューラルネットワークモデルを生成または訓練し、生成されたニューラルネットワークモデルを使用して、マイクロサービスアプリケーション内で処理される将来の要求を予測するために、異常検出器110とさらに通信し得る。
ネットワーク106は、例えば、電気通信ネットワーク、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、またはこれら3つの組み合わせであることができ、有線、無線、または光ファイバー接続を含むことができる。ネットワーク106は、音声、データ、およびビデオ情報を含むマルチメディア信号を含む、データ、音声、もしくはビデオ信号、またはその組み合わせを受信および送信することが可能な1または複数の有線もしくは無線またはその両方のネットワークを含むことができる。一般に、ネットワーク106は、クライアントコンピューティングデバイス102およびサーバコンピュータ108、およびコンピューティング環境100内の他のコンピューティングデバイス(図示せず)間の通信をサポートする接続およびプロトコルの任意の組み合わせであり得る。
サーバコンピュータ108は、異常検出器110およびデータベース112をホストするデジタルデバイスである。本実施形態では、サーバコンピュータ108は、クラウドアーキテクチャ(例えば、パブリック、ハイブリッド、またはプライベート)に常駐することができる。本実施形態では、異常検出器110はサーバコンピュータ108に常駐する。他の実施形態では、異常検出器110は、クライアントコンピュータデバイス102にローカルに記憶されたプログラム(図示せず)のインスタンスを有することができる。他の実施形態では、異常検出器110は、多言語ニューラルネットワークインテント分類器を訓練するスタンドアロンプログラムまたはシステムであることができる。さらに他の実施形態では、異常検出器110は、任意の数またはコンピューティングデバイスに記憶することができる。
異常検出器110は、ニューラルネットワークアプローチを使用して要求文脈的データの依存関係を考慮することによって、マイクロサービスアプリケーションのためのプロアクティブ異常検出を可能にする。異常検出器110によって提供されるソリューションは、マイクロサービスアプリケーションのデプロイメント(例えば、プライベートクラウド、パブリッククラウド、またはハイブリッド)に依存せず、様々なコンテナオーケストレーター(例えば、Kubenetes、OpenShift等)をサポートする。異常検出器110は、アプリケーションとシステムの両方の動作に基づくハイブリッドデータ収集のためのメカニズムを提供する。本実施形態では、異常検出器110は、図2に関してより詳細に説明される1または複数のコンポーネントを含むことができる。
例えば、異常検出器110は、N個のマイクロサービスを含むアプリケーションのエンドユーザ要求を受信することができる。各マイクロサービスインスタンスにおいて、(異常検出器110に関連する)それぞれの収集エージェントが、それぞれのインスタンスのトレースデータおよび仕様を抽出する。そして、異常検出器110のコレクタエージェントは、受信した情報(それぞれのトレースデータおよび仕様)をコンパイルし、受信した情報を正規化する。そこから、コレクタエージェントは、データを永続化のためのキューにプッシュすることができる。特徴抽出モジュール(図2に示し、説明する)は、生データを要求文脈的特徴に変換する。次に、異常検出器110は、フォーマットされた文脈的特徴を使用して、ニューラルネットワークモデルを構築し、その後、構築されたモデルを使用して予測を生成することができる。異常検出器110は、その後、プロアクティブな警告を生成することができる。
本実施形態では、異常検出器110は、異常動作を予測するための要求を受信することに応答して、それぞれのマイクロサービスから追加の情報を要求することができる。追加情報は、文脈的特徴、すなわち、要求のエンドツーエンドの詳細を表す階層的データ構造を含むことができる。文脈的特徴は、1または複数の因果関係のあるサービスおよびコールパスを含むことができる。文脈的特徴は、さらに、各サービスインスタンスにおける実行文脈(例えば、CPU、アクセラレータ、メモリ利用率、ポッドの領域、ネットワークトラフィック、I/O要求など)を含むことができる。
例えば、追加情報の要求(例えば、要求仕様)、マイクロサービスパス、および関数パスである。追加情報の例としては、ユーザに関連するユーザ名(匿名化ID)、企業名(匿名化ID)、レイテンシ(例えば、500ms)、地域(例えば、欧州)、ブラウザタイプ、デバイスタイプ、オペレーティングシステム、時間(例えば、2020年2月28日金曜日、午後2:55:02 GMT-05:00)を挙げることができる。
マイクロサービスのパスの例には、マイクロサービスAからマイクロサービスBへのパスを含むことができる。例えば、マイクロサービスAに関連するクラスタID、地域(us)、インスタンスID、期間(100ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、およびマイクロサービスBのそれぞれのクラスタID、地域(us)、インスタンスID、期間(400ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)である。
コールパス(すなわち、関数パス)の例では、1または複数の関数を含むことができる。例えば、関数1から3まで:関数1は、期間(40ms)、リソース利用率(20%、100MB)を含み、関数2は、期間(60ms)、リソース利用率(20%、100MB)を含み、期間(400ms)、リソース利用率(20%、100MB)を含む関数1に戻る。
本実施形態では、異常検出器110は、文脈的特徴を要求するためにハイブリッドデータ収集を提供し、すなわち、文脈的特徴の要求は、異なるソースに送信され得るか、または収集され得る。本実施形態では、異常検出器110は、各マイクロサービスインスタンス内にサイドカーとして展開される収集エージェント(図2に示し、説明する)を含み(例えば、単一のKubernetes Podの2つのコンテナ)、2つの異なるソース:Jaegerなどのマイクロサービスからのトレースデータ、およびOpenTelemetry)およびマイクロサービスのランタイムの特性(例えば、CPU、メモリ利用率、ネットワーク、他のコロケーションサイドカー、Zabbix-Agent(例えば、CPU、Disk、メモリなど)、IstioのEnvoy(例えばネットワーク)、など)から引き出すことができる。
これらのソースから、異常検出器110は、カテゴリカルデータおよび数値データを収集することができる。本実施形態において、カテゴリカルデータは、要求ヘッダまたはデプロイメントホスト上の環境変数のいずれかから抽出される要求およびマイクロサービスインスタンスを指す。本実施形態において、数値データは、OpenTelemetryまたはJaegerなどの分散トレースライブラリから、各マイクロサービスに費やされた時間やその重要な機能を報告するデータを指す。このように、異常検出器110は、適切な権限でそれぞれのシステム利用情報を報告、記録、および取得する数値データ報告を活用することができる。したがって、異なるソースから文脈的特徴を収集することによって、異常検出器110は、層をまたいで要求を処理する総合的な見方を可能にすることができる。
次に、異常検出器110は、収集された文脈的特徴(すなわち、追加情報)を使用して、前述の要求文脈的特徴を入力として階層的に扱い、それぞれのマイクロサービスアプリケーション内で処理される将来の要求を予測できるニューラルネットワークモデルを構築および訓練できる。
このようにして、異常検出器110は(構築されたニューラルネットワークモデルを使用して)要求間要因および要求内要因を捕捉し、捕捉した要因を使用して将来の要求を予測することができる。本実施形態において、要求間要因は、要求仕様における特性間のつながりを記述する(例えば、特定の地域からのユーザIDのログイン要求は、同じ地域のユーザIDからの製品カタログページへのget_requestに続く可能性が高い)。本実施形態では、要求内要因として、個々の要求の要因を考慮し、因果関係のあるマイクロサービスパスと関数パスのデータから、処理パス中のどのサービスが将来の要求にとって最も重要な役割を果たすかを理解する。これら2つの要素を考慮することで、構築されたニューラルネットワークモデルは、それぞれのマイクロサービスと最後のステップの間の相関関係を捕捉することができる。例えば、マイクロサービスからの履歴要求は、2つのパスを取ることができる。第1のパスは、40ms、15ms、300msのそれぞれのレイテンシを持つマイクロサービスA、B、Cを利用することができる。第2のパスは、200ms、40ms、1.2sのレイテンシを持つマイクロサービスA、B、Dを利用することができる。構築されたニューラルネットワークは、マイクロサービスAでのレイテンシが高い場合にマイクロサービスDを利用して、マイクロサービスA、B、およびDを使用する経路を予測することができる。例えば、マイクロサービスAのレイテンシは300ms、マイクロサービスBのレイテンシは50msであり得る。この例では、異常検出器110は、次の要求が100msのレイテンシを有するCではなく、2sのレイテンシを有するマイクロサービスDで処理されるべきであることを(構築されたニューラルネットワークを用いて)予測することができ、時間2.35sで、異常検出器110は警告を送信することができる(例えば、2.35s=300ms(A)+50ms(B)+2s(D))。トレースパス(A→B→D)は、ニューラルネットワークモデルの予測結果であり、Aの継続時間と前回の選択時間との相関を捕捉する。これは、構築され、後に図3および図4に関して示され、説明されるニューラルネットワークモデルを通じて(予測に対して)要求される。具体的には、LSTMモデルは、マイクロサービス間の順序関係を学習し、次に使用されるのがどれであるかを予測するために訓練されることになる。
本実施形態では、異常検出器110は、コントローラ(図2に示し、説明する)を利用して、予測のシーケンスを解釈し、異常が発生するかどうかを決定することができる。本実施形態では、コントローラは、キーパフォーマンスメトリクス(例えば、レイテンシ、スループット、失敗したRPCコールなど)を重み付けする。本実施形態では、キーパフォーマンスメトリクスは、マイクロサービスアプリケーションの所有者によって決定または定義されることができる。コントローラは、統計的尺度(例えば、偏差、パーセンタイル)を計算し、プロアクティブな警告を発するかどうかを決定する。例えば、コントローラは、次の式に従って偏差を計算することができる:偏差=|xi-平均(X)|。本実施形態では、偏差が大きいほど、特定の異常を示すデータセットがより不安定になる。本実施形態において、パーセンタイルは、スコアの特定の割合がその数値を下回るように定義される。例えば、数値の順序リストの50パーセンタイルは、その中央値である。
本実施形態では、異常検出器110は、予測された異常動作に応答して、プロアクティブな警告を生成することができる。生成されたプロアクティブな警告は、異常が予測された理由もしくはフラグを立てられた理由またはその両方を含むことができる。本実施形態では、プロアクティブな警告は、異常検出器110のコンポーネント(例えば、図2に示され説明されているコントローラ)によって生成することができる。本実施形態では、コントローラは、適切なビジュアライゼーション、プロアクティブな警告の生成、根本原因レポートの生成、リソース管理機能の提供、およびシステムシミュレーションを行うことができる。
例えば、異常検出器110は、エンドユーザ要求を処理するそれぞれのコンポーネントのビジュアライゼーションを生成することができる。要求は、以下のコンポーネントを含む以下のクラウドインフラストラクチャに送信される:フロントエンドサービス、ルータサービス、ディスパッチャサービス、アダプタサービス、オンプレミスインフラストラクチャ(例えば、レガシーコード)、消費者、バックエンドサービス、および2つの異なる場所(例えば、米国および欧州)にあるデータベースを含むサービスとしてのプライベートクラウドソフトウェア(SaaS)。この例では、異常検出器110は、要求のそれぞれのコンポーネントおよび関数パスのビジュアライゼーションを生成するとともに、検出された根本原因がサービス(例えば、ディスパッチャ)のうちの1つであり得ることを視覚的に示すために1または複数のグラフィックアイコンを生成することができる。このように、異常検出器110は、異常な要求のエンドツーエンドの実行フローのビジュアライゼーションを生成し、ディスパッチャサーバを根本原因として強調することができる。
本実施形態では、根本原因レポートには、予測された異常なサービスおよび考えられる理由、およびその理由を含む生成されるプロアクティブな警告が含まれる。上記の例を続けると、根本原因レポートは、ディスパッチャにおける異常動作の説明を含むことができ、サービス品質保証に違反する長いレイテンシがエンドユーザに影響を与えるというプロアクティブな警告を生成することができる。
本実施形態では、異常検出器110は、システム管理者に警告し、適切な行動をとるリソース管理機能を提供することができる。例えば、予測された異常の理由が、CPU、低メモリ、低速ネットワークレイテンシなどの不十分なコンピューティングリソースに起因する場合、システム管理者は、アプリケーションクライアントに影響を与える前に、より多くのリソースをプロビジョニングすることができる。
本実施形態では、異常検出器110は、システムシミュレーションも提供することができる。例えば、予測結果は、CPU、メモリ、ディスク、およびネットワーク使用量を含む各マイクロサービスにおけるエンドツーエンドの実行フローの詳細を含む。このようなきめ細かい特徴的なトレースは、基礎となるハードウェアシステム上で要求されるアプリケーションの洞察を提供し、これをシステムシミュレータのドライバとして使用して、潜在的なクラウドシステム設計を評価し、課題およびトレードオフ(例えば、ローカル対リモート、ルーティングフロー/トラフィックコントロール、頑丈なコア対非力なコア、レイテンシ要件、オフロードの利点、等)を学習することができる。このプロセスは、クラウドシステム設計者が、ストレージ、ネットワーク、CPU、メモリ、アクセラレータなど、さまざまなアプリケーションから構成されるさまざまなハードウェアコンポーネント間の相互作用を理解するために役立つ。また、さまざまなハードウェア構成による潜在的な利点と劣化を分析し、将来のクラウドシステムの設計決定を導くのに役立つ。
エンドツーエンドの例では、異常検出器110によって扱われるシステムは、処理のための要求を受け取ることができる。要求は、以下のコンポーネントを含む以下のクラウドインフラストラクチャに送信され得る:フロントエンドサービス、ルータサービス、ディスパッチャサービス、アダプタサービス、オンプレミスインフラストラクチャ(例えば、レガシーコード)、消費者、バックエンドサービス、および2つの異なる場所(例えば、米国および欧州)にあるデータベースを含むサービスとしてのプライベートクラウドソフトウェア(SaaS)。
第1のシナリオでは、要求は、フロントエンドサービスによって処理され、ルータに送られ、消費者に戻るアダプタに送信され、最後にバックエンドコンポーネントに送信されることができる。このシナリオでは、異常検出器110は、ディスパッチャおよびバックエンドサービスのいずれかが、エンドユーザに影響を与える長いレイテンシを経験し、SLAに違反することを予測することに応答して、プロアクティブな警告を生成することができる。異常検出器110を使用することによって、ディスパッチャおよびバックエンドサービスにおける異常動作が検出され、遅延を引き起こしているサービスインスタンスとして適切に帰着することができる。これに対し、予測モデルを用いた現在のシステムでは、同時要求から収集されたログが混在するため、精度の低い結果(例えば、低精度)が得られる。本発明の実施形態(例えば、異常検出器110)は、要求文脈データが、ログを個々の要求に分離するトレースを含む点で現在のアプローチと異なる。例えば、ルータサービスが10個の要求を同時に処理している場合、そのうちの4個はディスパッチャにルーティングされ、他のものはバックエンドにルーティングされるだろう。現在のアプローチでは、同時処理のためにインターリーブされた混合ログデータしか見ることができないかもしれない。したがって、1または複数の要求が失敗した場合、どの要求が失敗したかを特定することは困難である。対照的に、異常検出器110は、トレースデータ(すなわち、要求文脈的データ)を提供し、我々は、どの要求がどのサービスで失敗したかを特定することができる。
上記のコンポーネントを利用した第2のシナリオでは、異常検出器110は、バックエンドサービスがユーザ情報を記憶するデータベースから遅い応答を経験していることを予測し、ユーザの特定のセットに対する応答の遅延をユーザに伝えるプロアクティブな警告を生成することができる。対照的に、現在のシステムは、集約されたメトリクス上の統計に対する問題を検出することが困難である。いくつかのシナリオでは、集約されたメトリクスが監視コンポーネントを誤解させる可能性がある。例えば、平均レイテンシが特定の閾値を下回っても、必ずしもシステムが健全であるとは限らない。この例では、トラフィックの90%が欧州(EU)DBに、10%が米国(US)DBにルーティングされているとする。EUDBが正常でUSDBのサービスに異常がある場合、要求の90%は正常なレイテンシを持つため、平均レイテンシはやはり正常に見えるだろう。その代わりに、我々のモデル(例えば、異常検出器110)は、USDBへの実行パス上の異常を特定できるように、個々のトレースのレイテンシを考慮する。
上記のコンポーネントを利用した第3のシナリオでは、異常検出器110は、ディスパッチャサービスによって開始されたジョブがレガシーコードでの性能低下により完了できないことを予測し、消費者から結果を受信するバックエンドにおける遅延の警告を生成できる。これに対して、現在のシステムは、生産者と消費者のログのメトリクスを使用して非同期関係をモデル化することが困難である。現在のシステムでは、機械学習モデルの訓練にログデータを使用している。前述したように、個人から収集されたログデータは、因果関係を導き出すことが困難なようにインターリーブされる。その代わり、要求文脈的はトレースの上に構築されるので、異常検出器110はこの問題を回避することができる。
異常検出器110は、さらに、予測の結果を活用して、根本原因分析、リソース管理、およびシステムシミュレーションを実行することができる。例えば、予測の結果は、システムシミュレータを駆動して、様々なハードウェア構成からの潜在的な利点と劣化を理解するため、また、将来のクラウドシステムの設計決定を導くために使用することができる。
データベース112は、受信した情報を記憶し、異常検出器110に許可されたアクセスを与える1または複数のデータベースまたは一般に利用可能なデータベースを代表とすることができる。一般に、データベース112は、当技術分野で知られている任意の不揮発性記憶媒体を用いて実装することができる。例えば、データベース112は、テープライブラリ、光学ライブラリ、1または複数の独立したハードディスクドライブ、または独立したディスクの冗長配列(RAID)内の複数のハードディスクドライブを使用して実装することができる。本実施形態では、データベース112は、サーバコンピュータ108上に記憶される。
図2は、本発明の一実施形態に係るマイクロサービスの異常検出器のブロック図200の一例を示す図である。
この例示的な図は、異常検出器110の1または複数のコンポーネントを示す。いくつかの実施形態では、異常検出器110は、それぞれのマイクロサービスおよび収集エージェントを有する1または複数のホストを含むことができるが、異常検出器110は、クラウドアーキテクチャにわたってマイクロサービスおよび収集エージェントにアクセスできることを理解されたい。
この例では、異常検出器は、ホスト202A、ホスト202B~202Nを含むことができる。各ホストは、それぞれのマイクロサービスおよび収集エージェント、(例えば、それぞれのマイクロサービス204A~Nおよび収集エージェント206A~N)を有することができる。
この例では、異常検出器110は、収集エージェント206Aを介してエンドユーザ要求マイクロサービス204Aを受信することができる。この例では、収集エージェント206は、エンドユーザからの要求を受信することができ、1または複数の他のコンポーネント(例えば、他のコロケーションサイドカー、Zabbix-Agent(例えば、CPU、Disk、メモリ等)、IstioのEnvoy(例えば、ネットワーク)等)からの要求も受信することができる。
収集エージェント206Aは、収集要求を行い、それぞれのインスタンスのトレースデータおよび仕様を抽出する責任を負う。本実施形態では、それぞれの収集エージェントは、異常検出器110のコレクタモジュール(例えば、コレクタモジュール206)とインタフェースすることができる。コレクタモジュール206は、受信した情報(それぞれのトレースデータおよび仕様)をコンパイルする責任を負う。コレクタモジュール206は、次に、正規化モジュール210を使用してデータを正規化することができ、すなわち、正規化モジュール210は、データを一貫したフォーマット、(例えば、JSONまたは共通のデータ構造)へ正規化する。コレクタモジュール206は、その後、コンパイルされた情報を永続化のためのキューにプッシュすることができる。
次に、特徴抽出モジュール213は、キュー内のデータにアクセスし、コンパイルされたデータから文脈的特徴を抽出することができる。言い換えれば、特徴抽出モジュール210は、生データを要求文脈的特徴に変換する。例えば、要求文脈的特徴(すなわち、要求仕様)は、以下を含むことができる:ユーザ名(匿名化ID)、企業名(匿名化ID)、レイテンシ(500ms)、地域(欧州)、ブラウザ(Firefox)、デバイス(iOS)、オペレーティングシステム、時間(例えば、2020年2月28日金曜日、午後2:55:02 GMT-05:00)、それぞれのマイクロサービスパス(例えば、マイクロサービスAからマイクロサービスBへのパス。例えば、マイクロサービスAに関連するクラスタID、地域(us)、インスタンスID、期間(100ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、マイクロサービスBのそれぞれのクラスタID、地域(us)、インスタンスID、期間(400ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、および関数パス(例えば、関数1から3まで:関数1は、期間(40ms)、リソース利用率(20%、100MB)を含み、関数2は、期間(60ms)、リソース利用率(20%、100MB)を含み、期間(400ms)、リソース利用率(20%、100MB)を含む関数1に戻る。)である。
異常検出器110は、次に、ニューラルネットワークモジュール214(図3および図4に示し、説明する)を使用してニューラルネットワークモデルを構築するために、フォーマットされた文脈的特徴を使用することができる。コントローラモジュール216は、その後、構築されたニューラルネットワークモデルを使用して予測を生成することができ、適切なビジュアライゼーション、プロアクティブな警告、根本原因レポートの生成、リソース管理能力の提供、およびシステムシミュレーションを行うことができる。
図3は、本発明の一実施形態に係るニューラルネットワークモデルを設計するためのブロック図300の一例を示す図である。
具体的には、ブロック図300は、ニューラルネットワークの設計を描いている(いくつかのの隠れ層は省略されている)。入力は、一連の要求の要求仕様である。要求内埋め込み層への入力Siは、図4に示され説明されたマイクロサービスパスニューラルネットワークモデルの出力である。
この例では、異常検出器110は、入力302A、302B、から302N(r1仕様)を受信する。例えば、要求入力、すなわち追加情報は、指定された時間(例えば、時間ウィンドウ、T)の間に収集された文脈的階層構造トレースデータを含むことができる。この要求入力は、要求仕様、マイクロサービスパス、および関数パスを含むことができる。要求仕様の付加情報の例としては、ユーザに関連するユーザ名(匿名化ID)、企業名(匿名化ID)、レイテンシ(例えば、500ms)、地域(例えば、欧州)、ブラウザタイプ、デバイスタイプ、オペレーティングシステム、時間(例えば、2020年2月28日金曜日、午後2:55:02 GMT-05:00)を挙げることができる。
マイクロサービスのパスの例には、マイクロサービスAからマイクロサービスBへのパスを含むことができる。例えば、マイクロサービスAに関連するクラスタID、地域(us)、インスタンスID、期間(100ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、およびマイクロサービスBのそれぞれのクラスタID、地域(us)、インスタンスID、期間(400ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)である。
コールパス(すなわち、関数パス)の例では、1または複数の関数を含むことができる。例えば、関数1から3まで:関数1は、期間(40ms)、リソース利用率(20%、100MB)を含み、関数2は、期間(60ms)、リソース利用率(20%、100MB)を含み、期間(400ms)、リソース利用率(20%、100MB)を含む関数1に戻る。
次に、受信した入力は、ブロック320において、要求仕様の埋め込み処理(例えば、R1およびA1、それぞれ304A~Nおよび306A~N)を行う。本実施形態において、「R1」は、要求仕様における文字列部分、(例えば、ユーザ名、ブラウザタイプなど)の埋め込み結果であり、「A1」は、要求仕様に関連する数値部分を指す。本実施形態では、異常検出器110は、埋め込み結果を要求仕様の数値部分(例えば、レイテンシ、A1~ANと呼ばれる)と連結させる。
異常検出器は、次に、埋め込まれた要求仕様を、それぞれ308A~Nおよび310A~Nと呼ばれるコンポーネントB1およびS1と組み合わせることができる。本実施形態において、B1~BNは、要求仕様を埋め込んだ出力である。本実施形態において、S1は、図4で説明したモデルの出力である。本実施形態において、S1は、単一の要求のエンドツーエンドの実行フローのモデル化された出力を表す。
ブロック330で要求内埋め込みのための処理が継続される。要求内要因は、B1、S1およびC1を含む。本実施形態では、B1、S1およびC1は、単一の要求仕様に関連する。同様に、B2、S2およびC1は、別の要求仕様に関連する。C1は、B1とS1の組み合わせをベクトルに変換するための埋め込み層(312A~Nと呼ばれる)である。
処理は、ブロック340および350(例えば、LTSM340および密度350)を含む要求間因子を追加するために継続される。ブロック340において、文脈的特徴は、深層学習の分野で使用される長短期(LSTM)アーキテクチャを介して供給され、D1が追加され、それぞれ314A~Nと呼ばれる。本実施形態では、D1は、LSTMモデルの単一のユニットである。C1、C2、...CNは、個々の要求のモデル化された出力であることを想起されたい。異常検出器110は、LSTMモデルを用いて、要求間の要求内関係を学習する。本実施形態では、D1~DnはLSTMモデルのユニットである。最後に、密度350において、316A~Nと呼ばれるE1が追加される。本実施形態では、E1~ENは密結合ネットワークのユニットであり、それらの内部相関を見つけるために、入力の次元を下げるものである。結果の出力はY、Y~Yであり、それぞれ318A~Nとして参照される。
図4は、本発明の一実施形態に係る個々の要求に対する要求内要因を捕捉するニューラルネットワークモデルの例示的なブロック図400である。
入力(例えば、F1,1、F1,2、F2,1およびFB1、それぞれ402A、402B、402C、402Nと呼ばれる)は、一連の要求の要求仕様における関数の記述である。異常検出器110は、受信した入力を受けて、要求仕様の埋め込みを行う(例えば、ブロック420)。本実施形態では、G1,1、G1,2、G2,1およびGB,1は404A、404B、404C~404Nとして参照され、H1,1、H1,2、H2,1、HB,1はそれぞれ406A、406B、406C、406Nとして参照される。G1,1、G1,2は、関数F1,1における文字列部分の埋め込み層である。同様に、G2,1は、関数F2,1における文字列部分の埋め込みユニットである。H1,1は、G1,1とF1,1の数値部分の連結を表す。まとめて404A~Nと406A~Nは、図3で説明した304A~N、306A~Nと同様の方法で機能する。
本実施形態では、ブロック430において、埋め込まれた要求仕様が長短期記憶(LSTM)、人工リカレントニューラルネットワーク(RNN)を介して供給され、それぞれのK1,1、K1,2、K2,1およびKB,1(すなわち、LTSMモデルのユニットがそれぞれ408A、408B、408Cおよび408Nとして参照される)が追加される。
処理はマイクロサービス埋め込みのためのブロック440に続き、M、MおよびMとO、OおよびOがそれぞれ追加される。M、MおよびMはブロック410A、410B、410Nとして参照され、Bマイクロサービスを表すLTSMモデルの出力(例えば、ブロック430)であり、O、OおよびOはそれぞれブロック412A、412B、412Nとして参照され、Bマイクロサービスの仕様の埋め込みを参照する。
処理はブロック450に続き、ブロック440の結果が別のLTS層を介して供給され、P、PおよびPがそれぞれ追加される。P、PおよびPは、それぞれブロック414A、414B、414Nとして参照される。本実施形態では、P、PおよびPはブロック450のLTSMモデルのユニットである。
ブロック450の結果出力は、ブロック460を介して供給される。ブロック460は、前の層の特徴のすべての組み合わせから学習特徴を提供する密度層であり、416A、416Bおよび416Nとして参照されるQ1、Q2およびQBをそれぞれ追加する。
本実施形態では、Z、ZおよびZ(それぞれ418、418および418として参照される)は、ブロック図400のワークフローの結果出力である。まとめて418、418および418は、単一の要求のエンドツーエンド実行フローのモデル化された出力を表す。418および418はS1として参照され、図3に説明されたモデルに組み込まれて描かれる。
図5は、本発明の一実施形態に係るエンドツーエンドスピーチ、多言語インテント分類器を訓練するための動作ステップを示すフローチャート500である。
ステップ502において、異常検出器110は、情報を受信する。本実施形態において、受信した情報は、N個のマイクロサービスを含むアプリケーションに対するエンドユーザ要求を含むことができる。例えば、エンドユーザ要求は、フロントエンドサービスに対するユーザの要求によってトリガされる要求である。例えば、ユーザがウェブページにアクセスし、ログインボタンを押すと、ログイン要求がアプリケーションに生成される。
本実施形態では、異常検出器110は、クライアントコンピューティングデバイス102から要求を受信する。他の実施形態では、異常検出器110は、コンピューティング環境100の1または複数の他のコンポーネントから情報を受信することができる。
ステップ504において、異常検出器110は、受信した情報から文脈的情報を生成する。本実施形態において、異常検出器110は、追加情報を要求し、受信した要求のエンドツーエンドの詳細を表す階層的データ構造を作成することによって、受信した要求から文脈的情報を生成する。
具体的には、異常検出器110は、ユーザに関連するユーザ名(匿名化ID)、企業名(匿名化ID)、レイテンシ(例えば、500ms)、地域(例えば、欧州)、ブラウザタイプ、デバイスタイプ、オペレーティングシステム、時間(例えば、2020年2月28日金曜日、午後2:55:02 GMT-05:00)、マイクロサービスパス、および関数パスを含み得る追加情報(例えば、要求仕様)を要求することができる。
文脈的特徴の要求は、差分ソースに送信されるか、またはそうでなければ差分ソースから収集され得る。本実施形態では、異常検出器110は、サイドカーとして各マイクロサービスインスタンス内に展開される収集エージェント(図2に示し、議論される)を含み(例えば、単一のKubernetes Podの2つのコンテナ)であり、2つの異なるソース:Jaegerなどのマイクロサービスからのトレースデータ、およびOpenTelemetry)およびマイクロサービスのランタイムの特性(例えば、CPU、メモリ利用率、ネットワーク、他のコロケーションサイドカー、Zabbix-Agent(例えば、CPU、Disk、メモリなど)、IstioのEnvoy(例えばネットワーク)など)から引き出すことができる。
これらのソースから、異常検出器110は、カテゴリカルデータおよび数値データを収集することができる。本実施形態において、カテゴリカルデータは、要求ヘッダまたはデプロイメントホスト上の環境変数のいずれかから抽出される要求およびマイクロサービスインスタンスを指す。本実施形態において、数値データは、OpenTelemetryまたはJaegerなどの分散トレースライブラリから、各マイクロサービスに費やされた時間やその重要な機能を報告するデータを指す。このように、異常検出器110は、適切な権限でそれぞれのシステム利用情報を報告、記録、および取得する数値データ報告を活用することができる。したがって、異なるソースから文脈的特徴を収集することによって、異常検出器110は、層をまたいで要求を処理する総合的な見方を可能にすることができる。
ステップ506において、異常検出器110は、生成された文脈的情報に基づいてニューラルネットワークを訓練する。本実施形態において、異常検出器110は、要求間要因および要求内要因を含む生成された文脈的情報に基づいてニューラルネットワークを訓練する。上述のように、要求間要因は、要求仕様における特性間のつながりを記述する(例えば、特定の地域からのユーザIDのログイン要求は、同じ地域のユーザIDからの製品カタログページへのget_requestに続く可能性が高い)。対して、要求内要因は、個々の要求の要因を考慮し、因果関係のあるマイクロサービスパスと関数パスのデータから、処理パス中のどのサービスが将来の要求にとって最も重要な役割を果たすかを理解する。これら2つの要素を考慮することで、構築されたニューラルネットワークモデルは、それぞれのマイクロサービスと最後のステップの間の相関関係を捕捉することができる。このようにして、訓練されたニューラルネットワークは、次の一連の要求とその文脈的要求がどのようなものかを予測することができる。そして、その予測に基づいて、コントローラモジュールは異常があるかどうかを判断する。
ステップ508において、異常検出器110は、訓練されたニューラルネットワークモデルを使用して異常動作を予測する。例えば、異常検出器110は、SLA違反(例えば、次の10分間に、テールレイテンシが増加する)、影響を受けるであろうユーザ(例えば、Uの南部地域のユーザのサブセット)、および要求のサブセットの影響(例えば、分析結果の取得が失敗する)などの異常を予測することができる。
ステップ510において、異常検出器110は、予測された異常動作に基づき、適切な行動をとる。本実施形態では、適切な行動は、プロアクティブな警告の生成、根本原因レポートの生成、リソース管理能力の提供、およびシステムシミュレーションであり得る。例えば、異常検出器110は、その後、予測に基づいてプロアクティブな警告を送信するか否かを決定することができる。本実施形態において、異常検出器110は、異常を予測することに応答して、自動的にプロアクティブな警告を生成することができる。別の実施形態では、異常検出器は、予測された異常に対する加重スコアを生成することができ、予測された異常が異常動作に対する閾値を満たすかまたは超えることに応答して、プロアクティブな警告を生成することができる。
例えば、プロアクティブな警告には、以下のような予測を含めることができる:SLA違反(例えば、次の10分間に、テールレイテンシが増加する)、影響を受けるであろうユーザ(例えば、Uの南部地域のユーザのサブセット)、および要求のサブセットの影響(例えば、分析結果の取得が失敗する)。
根本原因レポートの例には、失敗したマイクロサービスインスタンスの特定と、失敗の理由を含むことができる。例えば、データベース接続が遅い、コンピューティングリソースが不足している、などである。
いくつかの実施形態では、リソース管理は、推奨される修正を含むことができる。例えば、異常検出器110は、より大容量を有するノードでマイクロサービスインスタンスをプロビジョニングすることを推奨すること、バックエンドとデータベースとの間のネットワーク帯域幅を増加させること、より強力なCPUを有するノードを追加すること等が可能である。
図6は、本発明の一実施形態に係る例示的な図600を示す。
例えば、図6は、エンコーダおよびデコーダ部分、それらの入力および出力を有するシーケンストゥシークエンス(seq2seq)モデルの概要を示す(上述した方法論を表す)。エンコーダ(例えば、ブロック602)およびデコーダ(例えば、ブロック604)部分は両方とも、RNNベースであり、複数の時間ステップに対応する出力シーケンスを消費して返すことが可能である。モデルは、前のN個の値から入力を取得し、それは次のN個の予測を返す。Nはハイパーパラメータであり、この図では経験的に10分として設定されている。図の中央には、階層型RNNベースの異常検出ニューラルネットワークがあり、3つの主要なコンポーネント(要求内要因、要求間要因、および埋め込み)を含む。
具体的には、図6の図は、エンコーダ-デコーダアーキテクチャ(通称seq2seqモデル)である。本実施形態において、X、X、X、・・・、Xnは、一連の要求の要求文脈的データであるモデルへの入力を表す。本実施形態において、Y、Y、Y、・・・Yは、モデルの出力であり、モデルの予測値である。モデルの内部アーキテクチャは、図3および図4を通して詳細に説明され、以前に議論された。
図7(A)および図7(B)は、本発明の一実施形態に係る例示的なデータ収集コードを示す図である。
具体的には、図7(A)は、それぞれのマイクロサービスにおける例示的なアプリケーションコードである例示的なデータ収集コード700を描写している。
図7(B)に関して、図7(B)は、例示的なデータ収集コード750を描写している。具体的には、例示的なデータ収集コード750は、収集エージェントのコードを表す。
図8は、本発明の一実施形態に係る図1のコンピューティング環境100内のコンピューティングシステムのコンポーネントのブロック図である。図8は、1つの実装の例示を提供するのみであり、異なる実施形態が実装され得る環境に関していかなる制限も意味しないことを理解されたい。描かれた環境に対する多くの修正を行うことができる。
本明細書に記載されたプログラムは、本発明の特定の実施形態においてそれらが実装されるアプリケーションに基づいて識別される。しかしながら、本明細書における任意の特定のプログラム命名法は、単に便宜上使用されており、したがって、本発明は、かかる命名法によって識別される、もしくは暗示される、またはその両方である任意の特定のアプリケーションにおける使用のみに限定されるべきではないことを理解されたい。
コンピュータシステム800は、キャッシュ816、メモリ806、永続ストレージ808、通信ユニット812、および入力/出力(I/O)インタフェース814間の通信を提供する、通信ファブリック802を含む。通信ファブリック802は、プロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺デバイス、およびシステム内の他の任意のハードウェアコンポーネント間でデータもしくは制御情報またはその両方を渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック802は、1または複数のバスまたはクロスバースイッチを用いて実装することができる。
メモリ806および永続ストレージ808は、コンピュータ可読記憶媒体である。本実施形態では、メモリ806はランダムアクセスメモリ(RAM)を含む。概して、メモリ806は、任意の適切な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ816は高速メモリ(fast memory)であり、最近アクセスされたデータ、および最近アクセスされたデータに近いデータをメモリ806から保持することによって、プロセッサ804の性能を向上させる。
異常検出器110(図示せず)は、キャッシュ816を介してそれぞれのコンピュータプロセッサ804の1または複数による実行のために、永続ストレージ808およびメモリ806に格納され得る。一実施形態では、永続ストレージ808は、磁気ハードディスクドライブを含む。代替的に、または磁気ハードディスクドライブに加えて、永続ストレージ808は、ソリッドステートハードディスクドライブ、半導体記憶装置、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、フラッシュメモリ、またはプログラム命令またはデジタル情報を記憶することができる任意の他のコンピュータ可読可能記憶媒体を含むことができる。
永続ストレージ808が使用する媒体は、取り外し可能であってもよい。例えば、永続ストレージ808には、取り外し可能なハードドライブを用いてもよい。他の例としては、光ディスク、磁気ディスク、サムドライブ、およびスマートカードが挙げられ、これらは、永続ストレージ808の一部でもある別のコンピュータ可読記憶媒体に転送するためにドライブに挿入される。
これらの例において、通信ユニット812は、他のデータ処理システムまたは装置との通信を可能にする。これらの例において、通信ユニット812は、1つ以上のネットワークインタフェースカードを含む。通信ユニット812は、物理通信リンクおよび無線通信リンクのいずれかまたは両方を用いて通信を可能にしてもよい。異常検出器110は、通信ユニット812を介して永続ストレージ808にダウンロードしてもよい。
I/Oインタフェース814は、クライアントコンピューティングデバイスもしくはサーバコンピュータまたはその両方に接続され得る他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインタフェース814は、キーボード、キーパッド、タッチスクリーン、もしくは他の適切な入力装置またはこれらの組み合わせなどの外部装置820との接続を可能にする。また、外部装置820は、例えば、サムドライブ、ポータブル光ディスク、ポータブル磁気ディスク、およびメモリカードなどのポータブル・コンピュータ可読記憶媒体を含むこともできる。本発明の実施形態を実施するために用いられるソフトウェアおよびデータ(例えば、異常検出器110)は、かかるポータブル・コンピュータ可読記憶媒体に記憶することができ、I/Oインタフェース814を介して永続ストレージ808にロードすることができる。I/Oインタフェース814は、ディスプレイ822にも接続する。
ディスプレイ822は、ユーザにデータを表示する機構を実現するものであり、例えば、コンピュータモニタとすることができる。
本発明は、システム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するために汎用コンピュータ、専用コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。本発明の範囲から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
(さらなるコメントもしくは実施形態またはその両方)
本発明のいくつかの実施形態は、現在の最新技術に関して、以下の事実、潜在的な問題、もしくは潜在的な改善領域またはその組み合わせを認識する。マイクロサービスアーキテクチャは、疎結合コンポーネントがより優れたスケーラビリティ、柔軟性、開発者の生産性の加速などを提供するため、ハイブリッドクラウド環境に展開されるアプリケーションにとって魅力的である。SLA違反による深刻な財務・ビジネス上の損失を回避するために、マイクロサービスアプリケーションの管理における最も重要なタスクの1つは、DevOps/SREがタイムリーに根本的な問題を解決するためにさらなる行動を起こすことができるように、特定の時間ステップで効果的かつ効率的に異常を検出し診断することである。しかし、検出された異常に対してプロアクティブな警告を発するための既存のアプローチは、マイクロサービスアプリケーションにはまだ有効ではない。なぜなら、それらは、切り離されたサービスやエンドユーザの要求から得られる多変量の時系列データに埋もれた空間および時間の依存関係を考慮していないからである。
本発明のいくつかの実施形態は、以下の特徴、特性もしくは利点またはその組み合わせのうちの1つ、または複数を含むことができる。テールレイテンシの問題は、モデルで学習され、潜在的な異常が発生する前に予測するのに役立つ。
本発明の実施形態は、マイクロサービスアプリケーションの異常を予測し、根本的なケースを特定する。異常予測の既存の研究の中で、本発明の実施形態は、要求パターンとそのパス(すなわち、要求が通過するサービス)を予測するためのデュアルタスクを実施する最初のものである。本発明の実施形態は、アプリケーションのデプロイメントからデータを収集するための収集エージェントを設計する。このシステムは、プライベート、パブリックおよびハイブリッドという異なる環境でのマイクロサービスアプリケーションのデプロイメントをサポートする。
本発明の実施形態では、要求の3つのレベルの情報(要求仕様、マイクロサービスパス、関数パス)を含むデータ構造である要求文脈的特徴の概念を定義する。この提案された特徴は、受信要求の性能と処理パスに影響を与える2つの履歴データである、要求間要因と要求内要因を統合する。
本発明の実施形態では、要求文脈的特徴の訓練データを統合するために、階層型ニューラルネットワークモデルを設計する。このモデルは、異種データの埋め込みと注意メカニズムを持つseq2seqアーキテクチャに基づいており、結果の解釈可能性を一定レベルまで高めることができる。
アプリケーション固有のシステムトレース情報のユニークな利点は2つある。タイムスタンプされたシステム利用情報を活用して、システムリソース要件を理解・予測し、QoS要件を満たすためにリソースを再割り当てするようシステム管理者をさらに導く。また、アプリケーションから得られる詳細できめ細かいシステム特性は、システムシミュレーションを通じて様々なハードウェアの影響やトレードオフを理解し、その教訓を将来のクラウドシステム設計のインプットとして活用することができる。
本発明の実施形態は、深層学習を用いて要求文脈的データで利用可能な前述の依存関係を水平および垂直方向に分析することにより、マイクロサービスアプリケーションのプロアクティブな警告および異常診断を強化する。提案されたアプローチは、次の2つの具体的な質問に対処する:(1)現在の瞬間から経過した特定の時間ステップでパフォーマンス異常(例えば、SLA違反、テールレイテンシの増加)が発生するか?、および(2)(1)が真である場合、異常を引き起こす可能性が最も高いマイクロサービスは何であるのか?。1つ目の質問は異常の予測に関するもので、2番目の質問は予測された異常の根本原因に関するものである。
プロアクティブな警告と異常診断の問題は、一連のマイクロサービスが将来の要求をどのように協調的に処理するかの事前予測タスクと見なすことができる。我々が提案する技術は、履歴要求の詳細な特性を統合するニューラルネットワークアプローチであり、その仕様とパスに沿った各マイクロサービスインスタンスのトレース情報の両方を含む。このニューラルネットワークモデルは、異常(テールレイテンシ、SLA違反など)が発生するかどうか、またその根本的な原因は何かを予測することができる。このソリューションは、マイクロサービスアプリケーション(プライベートクラウド、パブリッククラウド、またはハイブリッド)のデプロイメントから独立しており、Kubernetes、OpenShiftなどのさまざまなコンテナオーケストレーターをサポートする。
(キーアイデア)
キーアイディア1:要求文脈的特徴という概念を導入する。これは、因果関係のあるサービスやコールパス、各マイクロサービスでの実行コンテキスト(CPU、アクセラレータ、メモリ使用率、ポッドの領域、ネットワークトラック、IO要求など)を含む要求のエンドツーエンドの詳細を表す階層的データ構造である。要求文脈的特徴は、要求仕様、マイクロサービスパス、関数パスの3つのカテゴリの情報で構成される(詳細はセクション6.2参照)。各カテゴリには、スカラー、ベクトル、カテゴリカルなど、異種形式のデータが含まれる。これらの収集された特徴点は、ニューラルネットワークの訓練データとして提供される。
キーアイディア2:要求文脈的特徴のデータを異なるソースから収集する方法を開発する(セクション6.1)。要求とマイクロサービスのインスタンスを記述するカテゴリカルデータは、要求ヘッダまたはデプロイメントホストの環境変数のいずれかから抽出される。各マイクロサービスに費やされた時間とその重要な機能を報告する数値データは、Open TelemetryやJaegerなどの分散トレーシングライブラリから、リソース使用量を報告するデータは、適切な権限でシステム使用状況の情報を取得することで記録される。その結果、要求の文脈的特徴は、層をまたいで要求の処理を全体的に把握することができるようになる。
キーアイディア3:前述の要求文脈的特徴を入力として階層的に扱うことで、マイクロサービスアプリケーション内で将来の要求がどのように処理されるかを予測するニューラルネットワークモデルを構築する。我々は、要求処理予測は長距離依存の逐次問題であると考える。つまり、近い将来の要求処理は、要求間要因と要求内要因の2つの群の要因に依存する。要求間要因とは、httpメソッド、ユーザ名、地域などの要求仕様に含まれる特性間のつながりを表す。例えば、ある地域からのユーザIDによるログイン要求は、同じ地域および同じユーザIDからの商品カタログページへの取得要求に続く可能性が高い。要求内要因は、個々の要求の要因を考慮したものである。要求を処理する際、アプリケーションのマイクロサービスは、互いにRPCコールを送信することで連携している。さらに、各マイクロサービスには多くのレプリカが存在することが多いため、すべてのインスタンスがコールパスに現れるとは限らない。効果的なモデルは、因果関係のあるマイクロサービスパスと関数パスのデータから、処理パス中のどのサービスが将来の要求に対して最も重要な役割を果たすかを理解することができるはずである。上記の全ての要因は、提案モデルによって訓練処理中に捕捉される。
キーアイディア4:監視中、モデルは予測された要求の表現を一度に1タイムステップずつ生成し、複雑な要求間および要求内の依存関係を捕捉する。キーパフォーマンス指標(例えば、レイテンシ)を調べ、統計的指標(例えば、偏差値、パーセンタイル)を計算し、警告を発するかどうかを決定する、という一連の事前予測を解釈するコントローラが作成される。コントローラが警告を発することを決定すると、根本原因分析モジュールは、現在のトレンドに補足された一連の表現を解釈し、根本原因(例えば、ある地域の特定のマイクロサービスインスタンスのメモリ不足、特定のマイクロサービスインスタンスとバックエンドストレージ間の遅い接続)を特定する。
(動機となる例)
この予測問題の動機となる例として、4つのサービスからなるマイクロサービスアプリケーションについて説明する。各要求はAとB、そしてCかDのいずれかで処理されなければならない。この特定のシナリオでは、2つの履歴要求がある。サービスパスはA→B→CとA→B→Dである。次の要求とそのパスを予測するために、これらの要求の順序(つまり、要求間要因)だけを考慮すると、結果はA→B→Cとなる。要求間要因から学習したモデルは、要求の順序を予測処理における重要な特徴として考慮する。負荷分散の効果で履歴データにおいてCとDが交互に現れることを考えると、この結果は妥当であり、予測された総遅延は<1秒である。一方、我々が提案したモデルは、サービスパスに沿ったレイテンシに対する注意をより多く維持するため、インテリジェントに機能する。これは、サービスインスタンスAでの処理時間の増加や、Aとラストホップの選択との間の相関に起因している可能性がある。したがって、Aでのレイテンシが高い場合、サービスDが選択される可能性が高いので、正しい次の要求とそのパスA→B→Dをうまく予測することができる。予測された要求のレイテンシの合計は2.3秒で、閾値(1.5秒)より大きいので、SREにプロアクティブな警告が送信されることになる。正しい予測を行うためには、個々の要求における要求間要因と要求内要因を共同で考慮する必要がある。これらの要因は、トレースデータ、リソース利用率、仕様などの要求パスの詳細情報から発見することができる。
(説明)
本セクションでは、マイクロサービスアプリケーションのプロアクティブな警告と異常診断の問題に対処するために提案した方法論と技術的な詳細を紹介する。第1段階では、正常な動作と異常動作の両方について、一連の要求のトレースデータと仕様を収集し、特徴抽出のために準備する。この第2段階では、収集したデータから要求文脈的特徴を組み立て、ニューラルネットワークモデルを生成する。第3段階では、事前に訓練させたモデルを用いて異常を予測し、根本原因のリストを提示する役割を果たす。
図2に示すように、提案システムのハイレベルなアーキテクチャは、独自に設計した収集エージェントを有するN個のマイクロサービスからなるアプリケーション、およびモデル作成と予測パイプラインで構成される。このセクションの残りでは、エンドツーエンドを詳細に説明する。
(データ収集)
まず(フローチャート500のステップ502~504に記載されているように)収集エージェントは、同じ場所に配置されたマイクロサービスからトレースデータを収集する。マイクロサービスとコレクトエージェントのペアは、単一のKubernetesポッドの別々のコンテナで実行される。マイクロサービスはアプリケーションコードを実行して要求を処理し、ダウンストリームサービスに渡す。さらに、収集エージェントは、ZabbixエージェントやIstioのEnvoyプロキシなどのサイドカーから重要なシステム情報を集約することができる。
マイクロサービス内で動作するアプリケーションコードは、JaegerやOpen Telemetryのような分散トレーシングライブラリを使用して、ビジネスロジックにとって重要な機能に費やされた時間を記録し、トレースデータをUDPパケットで収集エージェントに送信する。なお、提案する方法では、フロントエンドサービスにおいて、ユーザ要求の仕様を1回だけ取り込む必要がある(例えば、先に説明した図7(A)を参照)。マイクロサービス内のトレース情報に加えて、収集エージェントは、マイクロサービスインスタンスの静的構成だけでなく、マイクロサービスからトレースを受信する際の動的リソース使用率も取得する必要がある(例えば、既に説明した図7(B)を参照)。このようなデータは、前述したようにサイドカーから取得することができる。収集エージェントは、これらのデータをバッチに配置し、集中型コレクタに配信する。
コレクタはステートレスサーバとして実装されているため、多数のレプリカに拡張することができる。コレクタは、トレースデータや要求の仕様を受信し、ある共通の表現に正規化し、キューにプッシュする。キューの一例として、Kafkaがある。Kafkaは、リアルタイムのデータフィードを扱うための高スループット、低レイテンシのプラットフォームを提供するオープンソースソフトウェアである(最大で毎秒100万件の書き込みができる)。
異常検出器は、キューから、Flinkフレームワークの上でストリーミングベースのジョブとして開発された特徴抽出モジュールにプルすることができる。特徴抽出のジョブは、収集されたデータを要求文脈的特徴の形に変換することである。
(特徴の詳細)
収集された特徴は、要求仕様、マイクロサービスパス、関数パスの3つのカテゴリに要約される。要求仕様は静的で、要求の自己記述情報を含み、最も重要なのはアプリケーションを構成する一連のマイクロサービス間のエンドツーエンドのレイテンシである。マイクロサービスパスの特徴とファンクションパスの特徴は、要求の処理パスを記述するために、因果関係のあるデータとして収集される。図6は、タイムウィンドウ内の各ステップで収集される階層的なデータ構造を示している。
(ニューラルネットワークモデル)
ニューラルネットワークモデルの設計は、seq2seqアーキテクチャに根ざしている。図6で説明したように、ニューラルネットワークモデルには、エンコーダおよびデコーダ部分、それらの入力と出力が含まれる。エンコーダとデコーダの部分は両方ともRNNベースであり、複数の時間ステップに対応する出力シーケンスを消費して返すことが可能である。モデルは、前のN個の値から入力を取得し、それは次のN個の予測を返す。Nはハイパーパラメータであり、この図では経験的に10分として設定されている。図の中央には、階層型RNNベースの異常検出ニューラルネットワークがあり、3つの主要なコンポーネント(要求内要因、要求間要因、および埋め込み)を含む。本セクションの残りでは、ニューラルネットワークの詳細について説明する。
前述したように図3はニューラルネットワークの設計を示すものである。要求内要因については、一連のマイクロサービスパスの特徴と対応する要求仕様を組み合わせている。マイクロサービスパスの特徴は、図4に詳述されており、これもRNNベースのネットワークである。要求間要因については、要求間パターンを訓練するために、一連の要求の要求内要因を別のRNN層(例えば、LSTM)に供給した。ネットワーク全体を通して、異なる埋め込み層(例えば、word2vec、ELMO)を適用して、異種データをN次元ベクトル(例えば、N=300)に変換する。階層型要求予測ニューラルネットワークは、要求間パターンおよび要求内パターンが将来の要求の処理に及ぼす影響を学習する能力を有する。先に強調したように、本発明の実施形態は、将来の要求の仕様、およびアプリケーションのマイクロサービスインスタンスを通るそのパスを予測することを目的とする。
(監視および洞察)
我々のプロアクティブ異常検出問題には、2つの主要なタスクが含まれる:詳細なサービスパスによる将来の要求の予測と、予測に基づくSLA違反の予期(図5のステップ508)。1つ目は、予測モジュールによって実行される(例えば、図5のステップ510)。監視段階では、システムは実行中のアプリケーションから要求文脈的データを継続的に収集し、それらを予測モジュールに取り込む。これらのデータは、ストレージからフェッチされたニューラルネットワークモデルに供給される。予測モジュールの出力は、次のWt秒以内に発生する、実行内容が予測された要求のシーケンスである。例えば、自動リソース分割ソフトウェアが行動を起こす機会を持つように、経験則からWtを500msに設定する。
プロアクティブな警告を決定する第2のタスクのために、予測モジュールからの出力を解釈するコントローラを統合する。図2および図5のステップ510に示すように、コントローラは複数の機能を備えている。プロアクティブな警告に関しては、予測されたレイテンシのテールを計算する。その結果が特定の閾値より大きい場合、プロアクティブな警告が発せられる。予測結果の詳細は、根本原因分析、リソース管理、システムシミュレーションなどの高度なミッションのためにさらに活用される。
システムシミュレーション:図3の出力には、Zabbixエージェントからオンザフライのアプリケーションの詳細なシステム(CPU、メモリ、ディスク、およびネットワーク使用量など)のトレース情報が含まれている。図1で説明したように、システムシミュレーションでは、このようなきめ細かい特徴的なトレースは、基礎となるハードウェアシステム上で要求されるアプリケーションの洞察を提供し、これをシステムシミュレータのドライバとして使用して、潜在的なクラウドシステム設計を評価し、課題およびトレードオフを学習することができる。このプロセスは、クラウドシステム設計者が、ストレージ、ネットワーク、CPU、メモリ、アクセラレータなど、さまざまなアプリケーションから構成されるさまざまなハードウェアコンポーネント間の相互作用を理解するために役立つ。また、さまざまなハードウェア構成による潜在的な利点と劣化を分析し、将来のクラウドシステムの設計決定を導くのに役立つ。
(定義)
本発明:「本発明」という用語で説明される主題が、出願時の特許請求の範囲、または特許審査後に最終的に発行される可能性のある特許請求の範囲によってカバーされることを絶対的に示すものとして解釈されるべきではない。「本発明」という用語は、読者が本明細書におけるどの開示が潜在的に新しいと考えられるか一般感をつかむのに役立つために使用されているが、この「本発明」の用語の使用で示された理解は、暫定かつ仮のものであり、特許審査の過程で関連情報の開発および特許請求の範囲の修正により変化し得るということを示している。
実施形態:上記の「本発明」の定義を参照のこと。「実施形態」という用語にも同様の注意事項が適用される。
および/または(and/or):包含的論理和;例えば、A、B「および/または」Cは、AまたはBまたはCの少なくとも1つが真であり適用可能であることを意味する。
含む(inducing/include/includes):特に明示しない限り、「含むが、必ずしも限定はされない」ことを意味する。
ユーザ/加入者:以下を含むが、必ずしもこれらに限定されるものではない:(i)一人の人間、(ii)ユーザまたは加入者として行動するのに十分な知能を有する人工知能エンティティ、もしくは、(iii)関連するユーザまたは加入者の群、またはその組み合わせ。
モジュール/サブモジュール:ある種の機能を果たすために動作的に機能するハードウェア、ファームウェア、もしくはソフトウェア、またはその組み合わせの任意のセットであり、モジュールが、(i)単一のローカルな近接した場所にあるか、(ii)広範囲に分散しているか、(iii)大きなソフトウェアコード内の単一の近接した場所にあるか、(iv)単一のソフトウェアコード内にあるか、(v)単一のストレージデバイス、メモリまたは媒体内にあるか、(vi)機械的につながっているか、(vii)電気的につながっているか、(viii)データ通信でつながっているか、を問わず、あらゆるものがある。
コンピュータ:デスクトップコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、フィールドプログラマブルゲートアレイ(FPGA)ベースのデバイス、スマートフォン、パーソナルデジタルアシスタント(PDA)、ボディマウント型または挿入型コンピュータ、組み込みデバイススタイルのコンピュータ、特定用途向け集積回路(ASIC)ベースのデバイスなど(ただし、これらに限らない)を含む、重要なデータ処理もしくは機械可読命令読み取り機能またはその両方を持つあらゆるデバイス。
収集エージェント206Aは、収集要求を行い、それぞれのインスタンスのトレースデータおよび仕様を抽出する責任を負う。本実施形態では、それぞれの収集エージェントは、異常検出器110のコレクタモジュール(例えば、コレクタモジュール20)とインタフェースすることができる。コレクタモジュール20は、受信した情報(それぞれのトレースデータおよび仕様)をコンパイルする責任を負う。コレクタモジュール20は、次に、正規化モジュール210を使用してデータを正規化することができ、すなわち、正規化モジュール210は、データを一貫したフォーマット、(例えば、JSONまたは共通のデータ構造)へ正規化する。コレクタモジュール20は、その後、コンパイルされた情報を永続化のためのキューにプッシュすることができる。
次に、特徴抽出モジュール21は、キュー内のデータにアクセスし、コンパイルされたデータから文脈的特徴を抽出することができる。言い換えれば、特徴抽出モジュール21は、生データを要求文脈的特徴に変換する。例えば、要求文脈的特徴(すなわち、要求仕様)は、以下を含むことができる:ユーザ名(匿名化ID)、企業名(匿名化ID)、レイテンシ(500ms)、地域(欧州)、ブラウザ(Firefox)、デバイス(iOS)、オペレーティングシステム、時間(例えば、2020年2月28日金曜日、午後2:55:02 GMT-05:00)、それぞれのマイクロサービスパス(例えば、マイクロサービスAからマイクロサービスBへのパス。例えば、マイクロサービスAに関連するクラスタID、地域(us)、インスタンスID、期間(100ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、マイクロサービスBのそれぞれのクラスタID、地域(us)、インスタンスID、期間(400ms)、OS仕様(CPU、メモリ、ディスク、ネットワーク)、および関数パス(例えば、関数1から3まで:関数1は、期間(40ms)、リソース利用率(20%、100MB)を含み、関数2は、期間(60ms)、リソース利用率(20%、100MB)を含み、期間(400ms)、リソース利用率(20%、100MB)を含む関数1に戻る。)である。
処理は、ブロック340および350(例えば、LSTM340および密度350)を含む要求間因子を追加するために継続される。ブロック340において、文脈的特徴は、深層学習の分野で使用される長短期(LSTM)アーキテクチャを介して供給され、D1が追加され、それぞれ314A~Nと呼ばれる。本実施形態では、D1は、LSTMモデルの単一のユニットである。C1、C2、...CNは、個々の要求のモデル化された出力であることを想起されたい。異常検出器110は、LSTMモデルを用いて、要求間の要求内関係を学習する。本実施形態では、D1~DnはLSTMモデルのユニットである。最後に、密度350において、316A~Nと呼ばれるE1が追加される。本実施形態では、E1~ENは密結合ネットワークのユニットであり、それらの内部相関を見つけるために、入力の次元を下げるものである。結果の出力はY、Y~Yであり、それぞれ318A~Nとして参照される。
本実施形態では、ブロック430において、埋め込まれた要求仕様が長短期記憶(LSTM)、人工リカレントニューラルネットワーク(RNN)を介して供給され、それぞれのK1,1、K1,2、K2,1およびKB,1(すなわち、LSTMモデルのユニットがそれぞれ408A、408B、408Cおよび408Nとして参照される)が追加される。
処理はマイクロサービス埋め込みのためのブロック440に続き、M、MおよびMとO、OおよびOがそれぞれ追加される。M、MおよびMはブロック410A、410B、410Nとして参照され、Bマイクロサービスを表すLSTMモデルの出力(例えば、ブロック430)であり、O、OおよびOはそれぞれブロック412A、412B、412Nとして参照され、Bマイクロサービスの仕様の埋め込みを参照する。
処理はブロック450に続き、ブロック440の結果が別のLTS層を介して供給され、P、PおよびPがそれぞれ追加される。P、PおよびPは、それぞれブロック414A、414B、414Nとして参照される。本実施形態では、P、PおよびPはブロック450のLSTMモデルのユニットである。

Claims (20)

  1. 要求を受信することに応答して、マイクロサービスアプリケーションの正常動作のための一連の要求のトレースデータおよび仕様を収集することと、
    前記収集されたトレースデータおよび仕様から、要求文脈的特徴を生成することと、
    前記生成された文脈的特徴に基づいて、ニューラルネットワークモデルを訓練することと、
    前記訓練されたニューラルネットワークモデルを使用して、前記マイクロサービスアプリケーションの異常動作を予測することと、
    を含む、コンピュータ実装方法。
  2. 前記予測された異常動作に関連するビジュアライゼーションを生成すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  3. 前記予測された異常動作の根本原因レポートを生成すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  4. 前記予測された異常動作に対するシステムシミュレーションを提供すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  5. 前記トレースデータは、ログを個々の要求に分離する階層的なデータ構造を提供する、請求項1に記載のコンピュータ実装方法。
  6. 前記ニューラルネットワークモデルはリカレントニューラルネットワークである、請求項1に記載のコンピュータ実装方法。
  7. 前記要求文脈的特徴は、
    要求の仕様、マイクロサービスパスおよび関数パス、の要求の3つのレベルの情報を含むデータ構造を含む、請求項1に記載のコンピュータ実装方法。
  8. 前記収集されたトレースデータおよび仕様から要求文脈的特徴を生成することは、
    前記要求に関連する要求間要因および要求内要因を統合することを含む、請求項1に記載のコンピュータ実装方法。
  9. 1または複数のコンピュータ可読記憶媒体と、前記1または複数のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含み、前記プログラム命令は、
    要求を受信することに応答して、マイクロサービスアプリケーションの正常動作のための一連の要求のトレースデータおよび仕様を収集するプログラム命令と、
    前記収集されたトレースデータおよび仕様から、要求文脈的特徴を生成するプログラム命令と、
    前記生成された文脈的特徴に基づいて、ニューラルネットワークモデルを訓練するプログラム命令と、
    前記訓練されたニューラルネットワークモデルを使用して、前記マイクロサービスアプリケーションの異常動作を予測するプログラム命令と、
    を含む、コンピュータプログラム製品。
  10. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作に関連するビジュアライゼーションを生成するプログラム命令
    をさらに含む、請求項9に記載のコンピュータプログラム製品。
  11. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作の根本原因レポートを生成するプログラム命令
    をさらに含む、請求項9に記載のコンピュータプログラム製品。
  12. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作に対するシステムシミュレーションを提供するプログラム命令
    をさらに含む、請求項9に記載のコンピュータプログラム製品。
  13. 前記トレースデータは、ログを個々の要求に分離する階層的なデータ構造を提供する、請求項9に記載のコンピュータプログラム製品。
  14. 前記ニューラルネットワークモデルはリカレントニューラルネットワークである、請求項9に記載のコンピュータプログラム製品。
  15. 前記要求文脈的特徴は、
    要求の仕様、マイクロサービスパスおよび関数パス、の要求の3つのレベルの情報を含むデータ構造を含む、請求項9に記載のコンピュータプログラム製品。
  16. 前記収集されたトレースデータおよび仕様から要求文脈的特徴を生成する前記プログラム命令は、
    前記要求に関連する要求間要因および要求内要因を統合するプログラム命令を含む、請求項9に記載のコンピュータプログラム製品。
  17. 1または複数のコンピュータプロセッサと、
    1または複数のコンピュータ可読記憶媒体と、
    前記1または複数のコンピュータプロセッサの少なくとも1つによって実行するための前記1または複数のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を含み、前記プログラム命令は、
    要求を受信することに応答して、マイクロサービスアプリケーションの正常動作のための一連の要求のトレースデータおよび仕様を収集するプログラム命令と、
    前記収集されたトレースデータおよび仕様から、要求文脈的特徴を生成するプログラム命令と、
    前記生成された文脈的特徴に基づいて、ニューラルネットワークモデルを訓練するプログラム命令と、
    前記訓練されたニューラルネットワークモデルを使用して、前記マイクロサービスアプリケーションの異常動作を予測するプログラム命令と、
    を含む、コンピュータシステム。
  18. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作に関連するビジュアライゼーションを生成するプログラム命令
    をさらに含む、請求項17に記載のコンピュータシステム。
  19. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作の根本原因レポートを生成するプログラム命令
    をさらに含む、請求項17に記載のコンピュータシステム。
  20. 前記1または複数のコンピュータ可読記憶媒体に記憶された前記プログラム命令は、
    前記予測された異常動作に対するシステムシミュレーションを提供するプログラム命令
    をさらに含む、請求項17に記載のコンピュータシステム。
JP2023532550A 2020-11-30 2021-10-21 プロアクティブ異常検出 Pending JP2023551029A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/106,298 2020-11-30
US17/106,298 US20220172037A1 (en) 2020-11-30 2020-11-30 Proactive anomaly detection
PCT/CN2021/125261 WO2022111154A1 (en) 2020-11-30 2021-10-21 Proactive anomaly detection

Publications (1)

Publication Number Publication Date
JP2023551029A true JP2023551029A (ja) 2023-12-06

Family

ID=81751547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023532550A Pending JP2023551029A (ja) 2020-11-30 2021-10-21 プロアクティブ異常検出

Country Status (6)

Country Link
US (1) US20220172037A1 (ja)
JP (1) JP2023551029A (ja)
CN (1) CN116569179A (ja)
DE (1) DE112021006232T5 (ja)
GB (1) GB2617003A (ja)
WO (1) WO2022111154A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031527B2 (ja) * 2018-08-07 2022-03-08 日本電信電話株式会社 操作列生成装置、操作列生成方法及びプログラム
CN115729668A (zh) * 2021-08-30 2023-03-03 富联精密电子(天津)有限公司 虚拟机运行监控方法、监控系统及监控设备
TWI774582B (zh) * 2021-10-13 2022-08-11 財團法人工業技術研究院 惡意超文本傳輸協定請求的偵測裝置和偵測方法
US20230300156A1 (en) * 2022-01-31 2023-09-21 Microsoft Technology Licensing, Llc Multi-variate anomalous access detection
US20230377004A1 (en) * 2022-05-23 2023-11-23 Verizon Patent And Licensing Inc. Systems and methods for request validation
US20230385143A1 (en) * 2022-05-31 2023-11-30 Dell Products L.P. Microservices anomaly detection
WO2023247996A1 (en) * 2022-06-23 2023-12-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to mitigate fault in a distributed system
US11743281B1 (en) * 2023-04-25 2023-08-29 Citibank, N.A. Microservices anomaly detection

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218498B2 (en) * 2018-09-05 2022-01-04 Oracle International Corporation Context-aware feature embedding and anomaly detection of sequential log data using deep recurrent neural networks
CN109067619B (zh) * 2018-09-25 2020-06-09 海南民航凯亚有限公司 一种微服务治理的弹性容量调度方法及处理终端
CN110362494B (zh) * 2019-07-18 2021-06-15 腾讯科技(深圳)有限公司 微服务状态信息展示的方法、模型训练方法以及相关装置
CN111913789A (zh) * 2020-06-29 2020-11-10 浪潮通用软件有限公司 一种支持微服务架构的程序跟踪方法及设备、介质

Also Published As

Publication number Publication date
CN116569179A (zh) 2023-08-08
GB202309408D0 (en) 2023-08-09
US20220172037A1 (en) 2022-06-02
GB2617003A (en) 2023-09-27
DE112021006232T5 (de) 2023-10-05
WO2022111154A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
EP3355547B1 (en) Method and system for learning representations of network flow traffic
JP2023551029A (ja) プロアクティブ異常検出
US11150974B2 (en) Anomaly detection using circumstance-specific detectors
Habeeb et al. Real-time big data processing for anomaly detection: A survey
US20240129331A1 (en) Threat Disposition Analysis and Modeling Using Supervised Machine Learning
L’heureux et al. Machine learning with big data: Challenges and approaches
Afuwape et al. Performance evaluation of secured network traffic classification using a machine learning approach
Dou et al. Pc 2 a: predicting collective contextual anomalies via lstm with deep generative model
KR102359090B1 (ko) 실시간 기업정보시스템 이상행위 탐지 서비스를 제공하는 방법과 시스템
US20230133541A1 (en) Alert correlating using sequence model with topology reinforcement systems and methods
You et al. sBiLSAN: Stacked bidirectional self-attention lstm network for anomaly detection and diagnosis from system logs
Hariprasad et al. Detection of DDoS Attack in IoT Networks Using Sample Selected RNN-ELM.
Shi et al. Machine learning-based time-series data analysis in edge-cloud-assisted oil industrial IoT system
Gaykar et al. Faulty Node Detection in HDFS Using Machine Learning Techniques.
Streiffer et al. Learning to simplify distributed systems management
Papageorgiou et al. A situation detection mechanism for pervasive computing infrastructures
Abdullah et al. Data Analytics and Its Applications in Cyber-Physical Systems
Shafiq et al. Reducing problem space using Bayesian classification on semantic logs for enhanced application monitoring and management
Khan Toward an Automated Real-Time Anomaly Detection Engine in Microservice Architectures
Eissa et al. A robust supervised machine learning based approach for offline-online traffic classification of software-defined networking
Deeban et al. Deep Learning Based Network Traffic Analysis Using Modified Hybrid Methodology Comparing with SVM to Improve Accuracy
Zhao et al. Integrating Human Reasoning and Machine Learning to Classify Cyber Attacks
CN117763618A (zh) 一种基于可视化的安全数据库管理系统
Cabri Quantum inspired approach for early classification of time series.
MATEUS END-TO-END PERFORMANCE ANALYSIS OF A RESOURCE ALLOCATION SERVICE

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230621

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240319