Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7809028B2 - コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係) - Google Patents
[go: Go Back, main page]

JP7809028B2 - コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係) - Google Patents

コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係)

Info

Publication number
JP7809028B2
JP7809028B2 JP2022123687A JP2022123687A JP7809028B2 JP 7809028 B2 JP7809028 B2 JP 7809028B2 JP 2022123687 A JP2022123687 A JP 2022123687A JP 2022123687 A JP2022123687 A JP 2022123687A JP 7809028 B2 JP7809028 B2 JP 7809028B2
Authority
JP
Japan
Prior art keywords
error
application
log data
microservice
causal
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.)
Active
Application number
JP2022123687A
Other languages
English (en)
Other versions
JP2023022831A (ja
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 JP2023022831A publication Critical patent/JP2023022831A/ja
Application granted granted Critical
Publication of JP7809028B2 publication Critical patent/JP7809028B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本実施形態は、因果介入を活用して、能動的因果学習を介してアプリケーションマイクロサービス間の因果グラフを推測するとともに、学習された因果グラフを活用して、障害位置特定を実行するシステム、コンピュータプログラム製品、及びコンピュータ実装方法に関する。
当該技術分野において、モノリシックアプリケーションは、他のアプリケーションから独立した自己完結型アプリケーションであると理解されている。マイクロサービス又はマイクロサービスアーキテクチャは、典型的には、アプリケーションが機能定義に基づいてモジュラーコンポーネント又はサービスのスイートとして構築されるコンピュータ環境を指し、各々が、自身のプロセス内で実行され、軽量メカニズムを介して通信する。特定のマイクロサービスアーキテクチャにおいて、データは、サービスの外部で記憶され、したがって、サービスはステートレスであり、これらのサービス又はコンポーネントは一般に、「アトミックサービス」と称される。各アトミックサービスは、モジュラーサービスを独立して実行する軽量コンポーネントであり、各アトミックサービスは、特定のタスクをサポートし、アプリケーションプログラミングインターフェース(API)等の定義されたインターフェースを使用して、他のサービスと通信する。マイクロサービスアーキテクチャは、ハイブリッドネットワークにおけるスケーラビリティをサポートするとともに可能にする。
概して、マイクロサービスはアーキテクチャ上の手法であり、多くの場合クラウドネイティブであり、この手法において、単一のアプリケーションは、マイクロサービスと称される、疎結合され、独立して展開可能な、複数のより小さいコンポーネント又はサービスから構成される。マイクロサービスは、典型的には(必ずしもではないが)、データベース及びデータモデルを含めてそれら自体のスタックを有し、REST(representational state transfer)アプリケーションプログラムインターフェース(API)の組み合わせを介して互いに通信し、ビジネスエンティティによって編成される。産業マイクロサービスアプリケーションは、数百又はそれより多くのマイクロサービスを有し、それらのうちの一部は、依存関係を有する。アプリケーションマイクロサービスの量が拡張するにつれて、マイクロサービスの間の依存関係の複雑性が増長する。アプリケーションのマイクロサービスのトポロジは、固定であり得るが、多くの場合未知である。
多くの場合未知のマイクロサービストポロジと併せたときのマイクロサービス依存関係の複雑性により、障害位置特定の複雑性及び非効率性が招かれる。これは、アプリケーションマイクロサービスの障害位置特定を実行することができるシステム、コンピュータプログラム製品、及びコンピュータ実装方法を開発するための重大な進歩である。特定の例示的な実施形態では、システム、コンピュータプログラム製品、及びコンピュータ実装方法は、プロダクション環境における最小の観測データを用いて動作可能である。
多くのクラウドアプリケーションは、1つ又は複数のアプリケーションマイクロサービスにおける障害を位置特定することを困難にする限られた観測可能性に煩わされる。
実施形態は、アプリケーションマイクロサービス間の因果関係を学習し、障害位置特定のために学習された因果関係を動的に活用するシステム、コンピュータプログラム製品、及び方法を含む。この発明の概要は、発明を実施するための形態において以下で更に説明される代表的な概念の選択を簡略化された形態で導入するために提供されている。この発明の概要は、特許請求される主題の重要な特徴又は不可欠な特徴を識別するように意図されておらず、特許請求される主題の範囲を限定するいずれの方法においても使用されることも意図されていない。
一態様では、コンピュータシステムには、メモリに動作可能に結合されたプロセッサと、プロセッサ及びメモリと通信する人工知能(AI)プラットフォームとが設けられる。AIプラットフォームは、AIプラットフォームに動作可能に結合されている、ステージングマネージャと、プロダクションマネージャと、ディレクタとを備える。ステージングマネージャは、2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習するように構成されている。1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータが収集され、学習された因果グラフは、収集された第1のマイクロサービスエラーログデータに基づいて生成される。学習された因果グラフは、選択的エラーインジェクションによって影響を受けたアプリケーションマイクロサービスの依存性を表す。ステージングマネージャに動作可能に結合されたプロダクションマネージャは、アプリケーションエラーの源を動的に位置特定するように構成されている。アプリケーションエラーに対応する第2のマイクロサービスエラーログデータが収集され、学習された因果グラフと収集された第2のマイクロサービスエラーログデータとに基づいて祖先行列が構築される。祖先行列は、エラーの源を識別するために活用される。プロダクションマネージャに動作可能に結合されたディレクタは、識別されたエラー源に関連付けられたマイクロサービスを識別するように構成されている。
別の態様では、2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習するコンピュータ実装方法が提供される。1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータが収集され、学習された因果グラフは、収集された第1のマイクロサービスエラーログデータに基づいて生成される。学習された因果グラフは、選択的エラーインジェクションによって影響を受けたアプリケーションマイクロサービスの依存性を表す。アプリケーションエラーの源が動的に位置特定され、この源は、アプリケーションエラーに対応する第2のマイクロサービスエラーログデータの収集と、学習された因果グラフと収集された第2のマイクロサービスエラーログデータとに基づいて祖先行列を構築することとにおいて現れる。祖先行列は、エラーの源と、識別されたエラー源に関連付けられたマイクロサービスとを識別するために活用される。
更に別の態様では、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラムコードが具現化されたコンピュータ可読記憶媒体を備える。プログラムコードは、プロセッサによって、2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習するために実行可能である。1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータを収集し、収集された第1のマイクロサービスエラーログデータに基づいて学習された因果グラフを生成するプログラムコードが提供される。学習された因果グラフは、選択的エラーインジェクションによって影響を受けたアプリケーションマイクロサービスの依存性を表す。アプリケーションエラーの源を動的に位置特定するプログラムコードが更に提供される。アプリケーションエラーに対応する第2のマイクロサービスエラーログデータが収集され、学習された因果グラフと収集された第2のマイクロサービスエラーログデータとに基づいて、祖先行列が構築される。祖先行列は、エラーの源と、識別されたエラー源に関連付けられたマイクロサービスとを識別するために活用される。
更なる態様では、人工知能モデルをトレーニングするコンピュータ実装方法が提供される。1つ又は複数の選択的にインジェクトされたマイクロサービス障害に対応する第1のエラーログデータが収集され、因果グラフが、一実施形態では第1のエラーログデータと称される、収集されたエラーログデータに基づいて学習される。因果グラフは、影響を受けたアプリケーションマイクロサービスの依存性を表す。アプリケーション障害が動的に位置特定され、この位置特定することは、アプリケーション障害の検出に対応する第2のエラーログデータを収集することを含む。第2のエラーログデータ及び学習された因果グラフは、アプリケーション障害の源を識別するために活用される。
また更なる態様では、コンピュータシステムには、メモリに動作可能に結合されたプロセッサと、プロセッサ及びメモリと通信する人工知能(AI)プラットフォームとが設けられる。AIプラットフォームは、ステージングマネージャを備える。プロダクションマネージャが提供され、AIプラットフォームに動作可能に結合される。ステージングマネージャは、AIモデルをトレーニングするように構成されている。1つ又は複数の選択的にインジェクトされたマイクロサービス障害に対応する第1のエラーログデータが収集され、因果グラフが、収集された第1のエラーログデータに基づいて学習される。因果グラフは、影響を受けたアプリケーションマイクロサービスの依存性を表す。ステージングマネージャに動作可能に結合されたプロダクションマネージャは、アプリケーション障害を動的に位置特定するように構成されている。アプリケーション障害の検出に対応する第2のエラーログデータが収集される。第2のエラーログデータ及び学習された因果グラフは、アプリケーション障害の源を識別するために活用される。
これらの及び他の特徴及び利点は、添付の図面と併せて読まれると、例示的な実施形態の以下の詳細な説明から明らかになり、例示的な実施形態は、追加の態様の様々なシステム、サブシステム、デバイス、装置、モデル、プロセス、及び方法を説明及び例示する。
本明細書において参照される図面は、本明細書の一部を形成し、参照によって本明細書において組み込まれる。図面において示される特徴は、別段明示的に示されない限り、全ての実施形態ではなく、幾つかの実施形態のみの例示として意図される。
ステージング環境における能動学習(active learning)をサポートするとともに可能にして因果グラフを学習し、学習された因果グラフをプロダクション環境において活用して検出されたアプリケーション障害を位置特定するコンピュータシステムの概略図である。
図1において図示及び説明されたようなAIプラットフォームツールと、それらの関連付けられたアプリケーションプログラムインターフェース(API)とを示すブロック図である。
マイクロサービス間の因果関係を学習するフローチャートである。
例示の介入パターンを示すブロック図である。
例示の介入行列を示すブロック図である。
プロダクション環境における障害位置特定のために、図3の出力から推移簡約因果グラフを使用するフローチャートである。
図1~図6に関して上記で説明されたシステム及びプロセスを実装するための、クラウドベースサポートシステムのコンピュータシステム/サーバの一例を示すブロック図である。
クラウドコンピュータ環境を示すブロック図である。
クラウドコンピューティング環境によって提供される関数抽象化モデル層のセットを示すブロック図である。
本明細書の図面において概して説明及び例示されるような例示的な実施形態のコンポーネントは、多種多様な異なる構成において配置及び設計され得ることが容易に理解されよう。それゆえ、この説明及び添付の図面において提示されているような、本明細書において説明されるシステム、コンピュータプログラム製品、及び方法、並びに他の態様の実施形態の以下の詳細な説明は、実施形態の範囲を特許請求されているものとして限定することを意図しているわけではなく、選択された実施形態を代表しているにすぎない。
本明細書全体を通した「選択された実施形態(a select embodiment)」、「1つの実施形態」、又は「一実施形態」に対する言及は、その実施形態に関連して説明される特定の特徴、構造、又は特性が、少なくとも1つの実施形態に含められることを意味する。それゆえ、本明細書全体を通した様々な箇所における「選択された実施形態」「1つの実施形態では」又は「一実施形態では」という語句の出現は、必ずしも同じ実施形態に言及しているわけではない。様々な実施形態は互いに組み合わされてよく、実施形態は互いを修正するために使用されてよいことが理解されるべきである。
例示的な実施形態は、図面を参照することによって最も良好に理解され、同様の部分は、全体を通して同様の符号によって指定される。以下の説明は、単に例示として意図されており、本明細書において、特許請求されるような実施形態と一致するデバイス、システム及びプロセスの特定の選択される実施形態を単に示している。
クラウドコンピュータは、リモートデータセンタにおいてホストされるとともにクラウドサービスプロバイダによって管理される、アプリケーション、サーバ(物理サーバ及び仮想サーバを含む)、データストレージ、開発ツール、及びネットワーク能力等のコンピューティングリソースへの、インターネットを介したオンデマンドアクセスである。クラウドベースソフトウェア又はクラウドアプリケーションとしても知られるソフトウェアアズアサービス(SaaS)は、クラウドにおいてホストされ、ウェブブラウザ、クライアントマシン、又はアプリケーションプログラムインターフェース(API)を介してアクセス可能であるアプリケーションソフトウェアの一例である。クラウドコンピューティングの詳細は、図8において図示及び説明される。マイクロサービス又はマイクロサービスアーキテクチャは、クラウドネイティブのアーキテクチャ上の手法であり、この手法において、単一のアプリケーションは、多くの疎結合され、独立して展開可能なコンポーネント又はサービスから構成される。しかしながら、多くのクラウドアプリケーションは、1つ又は複数のアプリケーションマイクロサービスにおける障害を位置特定することを困難にする限られた観測可能性に煩わされる。
本明細書において図示及び説明されるように、アプリケーション展開前の品質を評価するソフトウェア試験のために一般的に使用される、本明細書においてステージング環境とも称される展開前環境において1つ又は複数のクラウドアプリケーションに介入的因果学習が適用される。ステージング環境は、プロダクション中のエラーを軽減するために試験及び評価の場を提供し、したがって、本明細書において、展開前環境と称される。ステージング環境は、アプリケーションマイクロサービスに関連付けられた因果モデルを学習する場として機能する。プロダクション環境は、アプリケーションがその意図された目的で動作する設定を記述する。より具体的には、プロダクション環境は、アプリケーション実行が行われるリアルタイム設定である。以下で図示及び説明されるように、プロダクション環境は、エラーログデータをモニタリングし、ステージング環境からの学習された因果モデルを活用して、最小の観測データを用いてアプリケーション障害を正確かつ効率的に位置特定する。
因果モデルは、グラフ、例えば、原因と結果との関係(cause and effect relationship)をマッピングするノード及びエッジからなる因果グラフとして記述することができる。因果グラフは、2つのノード間のエッジが因果関係をエンコードする有向非巡回グラフ(DAG)である。有向グラフでは、エッジが矢印のみであり、非巡回は、フィードバックループがないグラフである。したがって、DAGは、エッジについて矢印のみを有し、かつフィードバックループがないグラフであり、すなわち、ノードは、それ自体の祖先でもそれ自体の子孫でもない。例えば、Xは、Yの直接原因(direct cause)、例えば、X→Yであり、Xを特定の値を取るように強制することによりYの実現がもたらされるようになっている。因果図において、エッジ上の矢印は、子ノードに対する親ノードの直接効果(direct effect)を表す。親を有しないノードは、根又はソースノードと称される。子を有しないノードは、終端と称される。パス又はチェーンは、隣接したエッジのシーケンスである。因果図において、有向パスは、始点ノードから終点ノードへ、例えば親ノードから終端ノードへの因果経路、及び一実施形態では根ノードと終端ノードとの間の1つ又は複数の中間ノードを表す。したがって、DAGは、全ての依存性のソースが因果的リンクによって説明されるという点で、完全な因果構造を表す。
本明細書において図示及び説明されるように、障害インジェクションを利用してマイクロサービス間の因果関係を学習し、アプリケーションエラーログデータとともにリアルタイムにおいて学習された因果関係を活用して、1つ又は複数のアプリケーションマイクロサービスを対象としたものとしてアプリケーションエラー源を識別及び位置特定するコンピュータシステム、方法、及びコンピュータプログラム製品が提供される。多くのクラウドアプリケーションは、複数のマイクロサービスを利用する。産業マイクロサービスアプリケーションは、数百又はそれより多くのマイクロサービスと、それらの間の複雑な依存関係を有する。アプリケーションマイクロサービスのトポロジは、固定であるが、多くの場合未知である。これらのアプリケーションは、対応するマイクロサービス又は複数のマイクロサービスにおける障害の位置特定を困難にする限られた観測可能性を有する。本明細書において図示及び説明されるシステム、方法、及びコンピュータプログラム製品は、エラーログデータの形式の観測データを使用して、マイクロサービスの間の隠された因果グラフ又は真の因果エッジのサブセットを識別する。因果モデルは、個々のシステム又は母集団内の因果関係を表す数学的モデルである。本明細書において図示及び説明されるように、展開前障害インジェクションを使用して介入的因果学習を介して正確な因果グラフを学習し、学習グラフを使用して有効かつ正確な障害位置特定を実行するコンピュータシステム、コンピュータプログラム製品、及びコンピュータ実装方法が提供される。
図1を参照すると、プラットフォームコンピューティングシステム(100)の概略図が示されている。例示的な実施形態では、システム(100)は、人工知能(AI)プラットフォーム(150)を含むか又は組み込む。示されているように、ネットワーク接続(105)を介して複数のコンピューティングデバイス(180)、(182)、(184)、(186)、(188)、及び(190)と通信するサーバ(110)が提供される。サーバ(110)は、バス(114)を介してメモリ(116)と通信する処理ユニット(本明細書においてプロセッサとも称される)(112)を有して構成される。サーバ(110)は、コンピューティングデバイス(180)、(182)、(184)、(186)、(188)、及び(190)のうちの1つ又は複数からネットワーク(105)を介した、自然言語処理(NLP)及び機械学習(ML)を含む認知コンピューティングのためのAIプラットフォーム(150)を有するものとして示されている。より具体的には、コンピューティングデバイス(180)、(182)、(184)、(186)、(188)、及び(190)は、1つ又は複数の有線データ通信リンク若しくは無線データ通信リンク又はその両方を介して互いに、及び他のデバイス又はコンポーネントと通信し、ここで、各通信リンクは、ワイヤ、ルータ、スイッチ、送信機、受信機等のうちの1つ又は複数を含んでよい。このネットワーク化された構成では、サーバ(110)及びネットワーク接続(105)により、通信の検出、認識、及び解決が可能になる。サーバ(110)の他の実施形態は、本明細書において示されるもの以外のコンポーネント、システム、サブシステム若しくはデバイス、又はその組み合わせとともに使用されてよい。
AIプラットフォーム(150)は、本明細書において、ステージング環境における能動学習をサポートして因果グラフを学習し、学習された因果グラフをプロダクション環境において活用して検出されたアプリケーション障害を位置特定するツールを有して構成されているものとして示されている。当該技術分野において、能動学習は、機械学習の一形式であることが理解される。ツールは、ステージングマネージャ(152)、プロダクションマネージャ(154)、及びディレクタ(156)を含むが、これらに限定されるものではない。図1はAIプラットフォーム(150)の一部としてツール(152)、(154)、及び(156)の各々を示しているが、一実施形態では、ツール(152)、(154)、及び(156)の任意の1つ又は組み合わせは、必ずしもAIプラットフォーム(150)又は動作するAIの一部ではないことが理解されるべきである。例示的な実施形態では、ステージングマネージャ(152)は、AIプラットフォーム(150)の一部であり、プロダクションマネージャ(154)若しくはディレクタ(156)又はその両方は、各々非AIであり、すなわち、プロダクションマネージャ(154)若しくはディレクタ(156)又はその両方は、プロセッサ(112)及びAIプラットフォーム(150)に動作可能に結合され、プロダクションマネージャ(154)若しくはディレクタ(156)又はその両方の機能は、人工知能の使用を伴わずに実行される。
人工知能(AI)は、人間に関連するものとしてのコンピュータ及びコンピュータ挙動を対象としたコンピュータサイエンスの分野に関する。AIとは、機械が情報に基づいて判断を行うことが可能である場合の知能を指し、所与のトピックにおける成功の機会を最大化する。より具体的には、AIは、データセットから学習して問題を解決し、関連する推奨を提供することが可能である。例えば、AIコンピュータシステムの分野において、自然言語システム(IBM Watson(登録商標)人工知能コンピュータシステム又は他の自然言語質問回答システム等)は、システムが獲得した知識に基づいて自然言語を処理する。自然言語を処理するために、システムは、データベース又は知識コーパスから導出されたデータを用いてトレーニングされてよい。
AIのサブセットである機械学習(ML)は、データから学習し、このデータに基づいて予測を作成するアルゴリズムを利用する。AIとは、機械が情報に基づいて判断を行うことが可能である場合の知能を指し、所与のトピックにおける成功の機会を最大化する。より具体的には、AIは、データセットから学習して問題を解決し、関連する推奨を提供することが可能である。認知コンピューティングは、コンピュータサイエンス及び認知科学の混合である。認知コンピューティングは、最小限のデータ、視覚認識、及び自然言語処理を使用して、問題を解決するとともに人間のプロセスを最適化する、自己学習アルゴリズムを利用する。
AI及び関連付けられる推論の中核には、類似度の概念が存在する。自然言語及びオブジェクトを理解するプロセスは、関係の観点からの推論を必要とするが、これは困難であり得る。静的構造及び動的構造を含む構造が、所与の確定的な入力に対する決定された出力又はアクションを規定する。より具体的には、決定された出力又はアクションは、構造内の明示的な又は固有の関係に基づいている。それらの構造を構築するために十分なデータセットに依存する。
本明細書において、1つ又は複数のソースから入力(102)を受信するように構成されているAIプラットフォーム(150)が示されている。例えば、AIプラットフォーム(150)は、複数のコンピューティングデバイス(180)、(182)、(184)、(186)、(188)、及び(190)のうちの1つ又は複数からネットワーク(105)を介して入力(例えば、マイクロサービスベースアプリケーション)を受信してよい。さらに、本明細書において示されるように、AIプラットフォーム(150)は、知識ベース(160)に動作可能に結合される。図1では1つの知識ベース(160)が示されているが、AIプラットフォーム(150)と通信する2つ又はそれより多くの知識ベースをサポートするためにシステム(100)の変形が利用されてよいことが理解されるべきである。
例示的な実施形態によれば、AIプラットフォーム(150)は、アプリケーションマイクロサービスの因果関係を学習するように構成されている。ステージングマネージャ(152)は、本明細書において、AIプラットフォーム(150)内に埋め込まれたものとして示されている。ステージングマネージャ(152)は、1つ又は複数のエラーをアプリケーションマイクロサービスに選択的にインジェクトし、対応するアプリケーションログデータを収集し、エラーログデータをフィルタ又はフィルタリングプロセスに受けさせてインジェクトされた1つ又は複数のエラーに対応するログデータを識別し、エラーログデータを活用して因果グラフを生成するように構成されており、因果グラフは、対応する知識ベース(160)に記憶される。例示的な実施形態では、因果グラフは、本明細書においてトレーニングされたAIモデルとも称されるAIモデルである。知識ベース(160)に記憶されることになる因果グラフを作成するプロセスは、図3において図示及び説明される。因果学習の初期態様は、アプリケーションマイクロサービスへのエラーインジェクションを対象とする。エラーは、ステージングマネージャ(152)によってアプリケーションマイクロサービスにインジェクトされる。エラーは、個々に、例えば一度に1つのマイクロサービスに、又はマイクロサービスのセットに、例えば一度に2つ又はそれより多くのマイクロサービスにインジェクトされ得る。一実施形態では、エラーは、ランダムにインジェクトされ得る。同様に、一実施形態では、エラーインジェクションは、或るパターンに従い得る。エラーインジェクションは、アプリケーションマイクロサービスの機能に関連付けられた問題を作成することを対象とする。例えば、エラーインジェクションは、特定のマイクロサービスをブロックする、マイクロサービスの運用性を低速化させる、又は別様にマイクロサービスをアプリケーションにとって利用不能にする形式であり得る。
エラーログは、動作中にアプリケーション、オペレーティングシステム、又はサーバが遭遇するエラーのレコードである。例えば、エラーログにおける幾つかの一般的なエントリとしては、テーブル破損又は構成破損が挙げられる。エラーログは、豊富な量の情報を捕捉し得、これは、一実施形態では関連データ又は無関連データを含み得る。ステージングマネージャ(152)は、ログデータを前処理に受けさせてインジェクトされたエラーに対応するか又はこれに関連付けられたエラーログを識別することによってこの態様に対処する。例示的な実施形態では、ステージングマネージャ(152)は、ログデータをフィルタリングして、インジェクトされたエラーに関連付けられた特定のメッセージテキストを抽出する。フィルタの一例は、限定されないが、エラーログにおける1つ若しくは複数のキーワード又はキーワードの組み合わせの形式であり得る。フィルタの適用により、本明細書においてエラーログデータとも称される関連ログデータに対する焦点が提供される。ステージングマネージャ(152)は、本明細書において因果学習とも称される、アプリケーションマイクロサービス間の因果関係を学習するための前処理の後に残るエラーログを収集、又は別様に識別又は取得する。因果学習の詳細は、図3~図5において詳細に図示及び説明される。因果学習は、インジェクトされた障害を受けたマイクロサービスと、各関連したマイクロサービスとの間の対応関係を有効に計算して、いずれのマイクロサービスが障害インジェクションによって影響を受ける又は受けたのかを把握する。より具体的には、因果学習は、マイクロサービス間の方向性接続を識別する。例示的な実施形態では、因果学習は、DAGにおいて表されたマイクロサービスのセットの形式の出力を作成し、当該表されたマイクロサービスのセットは、1つ又は複数のエラーを発した、又は別様に捕捉若しくは文書化したログデータに関連する。したがって、ステージングマネージャは、エラーログデータからアプリケーションマイクロサービスの因果グラフを生成する。
ステージングマネージャ(152)は、マイクロサービスのセットの出力を利用して、対応する因果グラフ、例えば、DAGを生成又は別様に構築する。より具体的には、2つのマイクロサービス間の有向エッジが、マイクロサービスのセットから選択的に除去される。例示的な実施形態では、選択的除去により、推移簡約(transitive reduction)を通じた1つ又は複数のエッジの選択がフィルタリング除去される。選択的除去の詳細は、図3において図示及び説明される。DAGは、マイクロサービスのセット内に残っているマイクロサービスのセットから生成され、又は一実施形態では再生成される。したがって、マイクロサービスの因果グラフは、影響を受けたマイクロサービスの簡約されたセットから生成され、この簡約されたセットは、一実施形態ではアプリケーションマイクロサービスのサブセットである。
本明細書において示されているように、知識ベース(160)は、生成された因果グラフを受信及び記憶するように構成されたライブラリ(162)を有するものとして示されている。1つのみのライブラリが示されているが、一実施形態では、知識ベース(160)は、1つ又は複数の追加ライブラリを含んでよい。例示として、ライブラリ(162)は、複数のアプリケーションを有するものとして示されており、各アプリケーションは、第1のエラーログ及び対応する因果グラフを有する。例示として本明細書において示されているように、ライブラリ(162)は、アプリケーション(164)、アプリケーション(164)、及びアプリケーション(164)を含む3つのアプリケーションを有するものとして示されている。3つのみのアプリケーションが示されているが、この数量は、例示の目的のものであり、限定とみなされるべきではない。各アプリケーションは、本明細書においてログ(166)、ログ(166)、及びログ(166)として示されている対応する第1のエラーログと、本明細書においてグラフ(168)、グラフ(168)、及びグラフ(168)として示されている対応する因果グラフとを有する。
ユーザフローは、タスクを完了するためにアプリケーション上でプロトタイプユーザが取るパスと称される。ユーザフローは、ユーザに、自身のエントリポイントから、段階のセットを通して成功的な成果、そして製品の購入等の最終アクションを取らせる。交絡(Confounding)は、データ生成モデルの観点で定義される因果の概念である。交絡因子(confounder)は、従属変数及び独立変数の両方に影響を与える変数である。本明細書において図示及び説明されるように、ステージングマネージャ(152)は、エラーログデータから因果グラフを推測することによって、ユーザフローに起因する未観測の交絡に対処する。
図1ではAIプラットフォーム(150)の一部として示されているが代替の例示的な実施形態ではAIベース又はAIプラットフォーム(150)の一部ではないステージングマネージャ(152)は、アプリケーションマイクロサービス間の因果グラフを生成するように構成されている。因果効果(causal effect)は、起こった又は起こりつつある何かに基づいて、何かが発生した又は発生しつつあることを意味する。マイクロサービスに関して、第1のマイクロサービスA上のエラーは、第2のマイクロサービスBにおけるエラーを引き起こし得る。これは、AからBへの有向エッジ、例えば、
において表すことができる。しかしながら、マイクロサービスBがマイクロサービスA上のエラーからエラーを受信又は経験しない場合、AからBへの有向エッジは存在しない。
ステージングマネージャ(152)及びその選択的エラーインジェクションに関連付けられたエラーログからの因果グラフ生成の機能は、オフラインで機能する。一実施形態では、アプリケーションに関連付けられ、ステージングマネージャ(152)によって生成されるエラーログデータは、本明細書において第1のエラーログデータと称される。プロダクションマネージャ(154)は、オンライン処理をサポートするために、より具体的には、エラー源を位置特定するために提供される。一実施形態では、プロダクションマネージャ(154)は、AIプラットフォーム(150)に動作可能に結合される。同様に、一実施形態では、プロダクションマネージャ(154)、及びその機能は、動的コンポーネントとしてリアルタイムで行われる。ステージングマネージャ(152)の機能に関連付けられたステージング環境と同様に、アプリケーション処理及び実行に関連付けられたエラーログデータは、プロダクションマネージャ(154)によって収集される。一実施形態では、プロダクションマネージャ(154)に関連付けられたエラーログデータは、本明細書において第2のエラーログデータと称される。例示として本明細書において示されているように、第2のエラーログデータは、知識ベース(160)に記憶され、本明細書において(170)、(170)、及び(170)として示されており、各第2のエラーログデータは、対応するアプリケーション(164)、(164)、及び(164)の処理に関連付けられる。第1のエラーログデータと第2のエラーログデータとの間の相違点は、エラーログデータが生成される方法において存在する。ステージングマネージャ(152)は、オフラインで動作し、1つ又は複数のエラーをアプリケーションマイクロサービスに意図的にインジェクトし、第1のエラーログデータは、エラーインジェクションの影響のドキュメンテーションを提供する。その一方、プロダクションマネージャ(154)は、オンラインで動作し、生成される第2のエラーログデータは、アプリケーション処理エラーの影響のドキュメンテーションを提供する。したがって、ステージングマネージャ(152)は、マイクロサービス障害を人工的に作成し、プロダクションマネージャ(154)は、アプリケーション処理及び実行中に検出されたアプリケーションエラーに応答する。
プロダクションマネージャ(154)によって収集されるエラーログデータは、リアルタイムで行われる。プロダクションマネージャ(154)は、収集された第2のエラーログデータを活用して、障害の主体であるマイクロサービスと他のアプリケーションマイクロサービスとの間の対応関係を計算し、第1のエラーログデータに関連付けられるとともに知識ベース(160)に記憶された対応する因果グラフを活用して、祖先行列を生成する。アプリケーション(164)に関して、計算された対応関係は、本明細書において(172)として示されている。祖先行列を生成するプロセスの詳細は、図3において図示及び説明される。例示として、対応する因果グラフ(168)を使用するアプリケーション0(164)の評価は、祖先行列(174)を生成する。祖先行列(174)及び計算された対応関係(172)を使用して、プロダクションマネージャ(154)は、配列間の類似度を評価するメトリック関数を利用して、祖先行列、例えば(174)を、プロダクションマネージャ(154)によって計算された対応関係、例えば(172)に対して比較する。一実施形態では、メトリック関数は、ハミング距離又はコサイン類似度である。障害位置特定の詳細は、図6において図示及び説明される。例示的な実施形態では、メトリック関数は、障害の推定ロケーションをもたらし、可能な障害ロケーションの上位kリストを生成し、ここで、kは、構成可能な値である。したがって、プロダクションマネージャ(154)は、学習された因果グラフに対して障害位置特定を適用し、閾値距離を利用して障害ロケーションを推定又は別様に識別する。
ディレクタ(156)は、本明細書において、プロダクションマネージャ(154)に動作可能に結合されるものとして示されている。ディレクタ(156)は、評価に基づいて、検出されたエラーの源として、障害を有する1つ又は複数のマイクロサービスを識別又は推奨する。例示的な実施形態では、ディレクタ(156)は、障害を有する1つ又は複数のマイクロサービスを、修復のために内容領域専門家(SME:subject matter expert)に通信する。
本明細書において示されているように、ステージングマネージャ(152)は、因果関係を学習し、本明細書において因果グラフと称される、学習された因果関係の表現を、知識ベース(160)に記憶する。知識ベース(160)と通信するプロダクションマネージャ(154)は、学習された因果グラフ及び第2のログデータを使用して、所与のアプリケーション障害についての可能な障害ロケーションの上位kリストを決定する。一実施形態では、ディレクタ(156)は、可能なアプリケーション障害ロケーション、例えばマイクロサービスを、知識ベース(160)に記憶する。例示として本明細書において示されているように、アプリケーション(164)は、可能な障害ロケーション(1760,0)、(1760,1)、...、(1760,k)を有するものとして示されている。本明細書において示されている障害ロケーションは、アプリケーション(164)を対象とする。示されていないが、一実施形態では、アプリケーション(164)若しくはアプリケーション(164)又はその両方は、可能な障害ロケーションのリスト又はグループを有してよい。他方、ディレクタ(156)は、知識ベース(160)に可能な障害ロケーションの上位kリストを更に装入しないように構成されてよい。
幾つかの例示的な実施形態では、サーバ(110)は、Armonk,New York所在のInternational Business Machines Corporationから入手可能であるIBM Watson(登録商標)システムであってよく、これは、以降で説明される例示的な実施形態のメカニズムで拡張される。ツールと総称される、ステージングマネージャ(152)、プロダクションマネージャ(154)、及びディレクタ(156)は、サーバ(110)のAIプラットフォーム(150)において具現化されるか又はこれの中に統合されるものとして示されている。一実施形態では、ステージングマネージャ(152)は、AIプラットフォーム(150)において具現化され、プロダクションマネージャ(154)及びディレクタ(156)は、AIプラットフォーム(150)に動作可能に結合される。別の実施形態では、ツールは、ネットワーク(105)を介してサーバ(110)に接続される別個のコンピューティングシステム(例えば、サーバ190)において実装されてよい。具現化される場所を問わず、ツールは、アプリケーションマイクロサービスの因果対の識別をサポートし、識別された因果対を活用して障害を動的に位置特定するように機能する。
AIプラットフォーム(150)を利用することができる情報ハンドリングシステムのタイプは、ハンドヘルドコンピュータ/携帯電話(180)等の小型ハンドヘルドデバイスから、メインフレームコンピュータ(182)等の大型メインフレームシステムに及ぶ。ハンドヘルドコンピュータ(180)の例としては、携帯情報端末(PDA)、パーソナルエンターテインメントデバイス、例えば、MP4プレーヤ、ポータブルテレビジョン及びコンパクトディスクプレーヤが挙げられる。情報ハンドリングシステムの他の例としては、ペン又はタブレットコンピュータ(184)、ラップトップ又はノートブックコンピュータ(186)、パーソナルコンピュータシステム(188)及びサーバ(190)が挙げられる。示されているように、様々な情報ハンドリングシステムを、コンピュータネットワーク(105)を使用してともにネットワーク化することができる。様々な情報ハンドリングシステムを相互接続するために使用することができるコンピュータネットワーク(105)のタイプとしては、ローカルエリアネットワーク(LAN)、無線ローカルエリアネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、他の無線ネットワーク、及び、情報ハンドリングシステムを相互接続するために使用することができる他の任意のネットワークトポロジが挙げられる。情報ハンドリングシステムの多くは、ハードドライブ若しくは不揮発性メモリ又はその両方等の不揮発性データストアを含む。情報ハンドリングシステムの幾つかは、別個の不揮発性データストアを使用してよい(例えば、サーバ(190)は、不揮発性データストア(190)を利用し、メインフレームコンピュータ(182)は、不揮発性データストア(182a)を利用する)。不揮発性データストア(182)は、様々な情報ハンドリングシステムの外部であるコンポーネントとすることもできるし、情報ハンドリングシステムのうちの1つの内部とすることもできる。
AIプラットフォーム(150)をサポートするために利用される情報ハンドリングシステムは、多くの形態を取ってよく、そのうちの幾つかが図1において示されている。例えば、情報ハンドリングシステムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、又は他のフォームファクタコンピュータ若しくはデータ処理システムの形態を取ってよい。加えて、情報ハンドリングシステムは、携帯情報端末(PDA)、ゲーミングデバイス、ATMマシン、ポータブル電話デバイス、通信デバイス、又は、プロセッサとメモリとを含む他のデバイス等の他のフォームファクタを取ってよい。加えて、情報ハンドリングシステムは、ノースブリッジ/サウスブリッジコントローラアーキテクチャを具現化してよいが、他のアーキテクチャが利用されてもよいことが理解されるであろう。
アプリケーションプログラムインターフェース(API)は、当該技術分野において、2つ又はそれより多くのアプリケーション間のソフトウェア仲介として理解される。図1において図示及び説明される(AI)プラットフォーム(150)に関して、ツール(152)、(154)、及び(156)のうちの1つ又は複数並びにそれらの関連付けられた機能をサポートするために1つ又は複数のAPIが利用されてよい。図2を参照すると、ツール(152)、(154)、及び(156)並びにそれらの関連付けられたAPIを示すブロック図(200)が提供される。示されているように、複数のツールが(AI)プラットフォーム(205)内に埋め込まれており、ツールは、API(212)に関連付けられたステージングマネージャ(252)、API(222)に関連付けられたプロダクションマネージャ(254)、及びAPI(232)に関連付けられたディレクタ(256)を含む。APIの各々は、1つ又は複数の言語及びインターフェース仕様において実装されてよい。
示されているように、API(212)は、エラーをアプリケーションマイクロサービスに選択的にインジェクトし、本明細書において第1のエラーログデータとも称される対応するエラーログを処理して、因果グラフを生成又は別様に学習するというオフラインタスクをサポートするように構成されている。API(222)は、アプリケーションエラーに対応する、本明細書において第2のエラーログデータとも称される全てのマイクロサービスエラーログデータを収集し、学習された因果グラフに基づいて祖先行列を構築するというオンラインタスクのための機能的サポートを提供する。API(232)は、障害位置特定のための機能的サポートを提供し、これは、一実施形態では、配列間の類似度を評価し、関連付けられた祖先行列とともに評価を活用して、検出されたエラーの源である又は源であり得るマイクロサービスのサブセット、例えば上位k個からなるサブセットを識別するためのメトリック関数の適用を含む。示されているように、API(212)、(222)、及び(232)の各々は、APIオーケストレータ(260)に動作可能に結合され、APIオーケストレータ(260)は、別様に編成層として知られており、当該技術分野では、別個のAPIとともにトランスペアレントにスレッド化する抽象化層として機能するものと理解されている。一実施形態では、別個のAPIの機能は、結合されるか又は組み合わされてよい。別の実施形態では、別個のAPIの機能は、追加APIに更に分割されてよい。したがって、本明細書において示されるAPIの構成は、限定とみなされるべきではない。したがって、本明細書において示されているように、ツールの機能は、それらのそれぞれのAPIによって具現化又はサポートされてよい。
図3を参照すると、マイクロサービス間の因果関係を学習するプロセスを示すフローチャート(300)が提供される。因果関係を学習することの初期態様は、選択的かつ制御された障害インジェクションを通してアプリケーションマイクロサービスを識別することを含む。本明細書において示されているように、変数STotalは、アプリケーションマイクロサービスの量を表す(302)。表されたマイクロサービスの各々について、例えば、S=1~STotalについて、エラーが選択的にインジェクトされ、対応するログデータが収集される(304)。一実施形態では、エラーをインジェクトすることは、マイクロサービスをブロックすること、除去すること、又は遅延させることであり得る。段階(304)における選択的エラーインジェクションは、マイクロサービスに個々に又は組み合わせて適用され得、例えば、2つ又はそれより多くのマイクロサービスが障害インジェクションの主体であり得る。当該技術分野において、マイクロサービスに適用され得る様々な障害又はエラーが存在することが理解される。一実施形態では、段階(304)におけるエラーインジェクションの形式又はタイプは、1つ又は複数のマイクロサービスへの適用のためにランダムに選択される。同様に、例示的な実施形態では、段階(304)における障害インジェクションは、エラーインジェクションのパターンによって制御又はサポートされる。したがって、アプリケーションマイクロサービス間の因果関係を学習することの初期態様は、1つ又は複数のマイクロサービスを対象とする選択的エラーインジェクションを対象とする。
誤差伝搬とは、所与の計算ステージにおいて、エラーの一部が直前のステージにおけるエラーから生じる態様を指す用語である。マイクロサービスアーキテクチャにおいて、より具体的には、マイクロサービス間の依存関係において、1つのマイクロサービスにおいて導入されたエラーは、1つ又は複数の関連マイクロサービスに不確実性を拡張し得る。エラーがインジェクトされ、対応するアプリケーションログデータが収集される。当該技術分野において、ログデータは、自動的に生成されるとともにタイムスタンプ付与されるイベントのドキュメンテーションであることが理解される。アプリケーション及びその埋め込まれたマイクロサービスに関して、より具体的にはマイクロサービスエラーインジェクションに関して、ログデータは、エラーインジェクションを直接受けていない他のアプリケーションマイクロサービスに対するインジェクトされたエラーの直接又は間接効果を識別する。一実施形態では、ログデータは、障害がインジェクトされたマイクロサービスによって影響を受けた1つ又は複数のマイクロサービス、及び一実施形態ではインジェクトされた障害によって影響を受けていない1つ又は複数のマイクロサービスを含む、1つ又は複数のマイクロサービスの機能に関連付けられたメッセージを記録するログファイルである。例示的な実施形態では、ログファイルは、インジェクトされた障害に関連付けられたエラートレーシングのために利用される。したがって、エラーインジェクションは、アプリケーションマイクロサービスアーキテクチャにおける問題を人工的に作成し、ログファイルは、1つ又は複数のマイクロサービス考慮事項のログデータを、インジェクトされたエラーに関連するものとして文書化する。
当該技術分野において、ログファイルは、テキストを含む複数のメッセージ及び対応するタイムスタンプから構成されることが理解される。メッセージ又はメッセージコンテンツの一部は、インジェクトされたエラーに関して無関連又は異質の情報を含み得る。例えば、ログデータは、特定のマイクロサービスが、障害が異なるアプリケーションマイクロサービスにインジェクトされたことに応答して要求を処理することが可能ではない場合があるというメッセージ、例えば、エラーメッセージを含み得る。ログファイルに対処するため、また、一実施形態では豊富な量のログデータに対処するために、段階(304)において収集されるログファイル及び対応するログデータは、インジェクトされたエラーに無関連であるログデータをフィルタリング除去、例えば除去する(306)ための処理又は前処理を受ける。一実施形態では、1つ又は複数の定義されたキーワードが、関連した又は有用なログデータを抽出するフィルタとしてログファイルに適用され、このフィルタは、一実施形態では全てのエラーログを返す。例示的な実施形態では、元のログデータのサブセットがフィルタリング段階後に残り、ログデータのサブセットに関連したマイクロサービスは、因果学習の主体である。段階(306)に続いて、介入パターンを通した因果学習が利用されて、前処理で残存したログデータに対する主体であるマイクロサービス間の方向性接続が識別される(308)。因果学習の詳細は、図4及び図5において図示及び説明される。一実施形態では、因果学習は、因果的推論を利用する機械学習の一形式である。段階(308)において、因果学習は、介入パターン及び対応する介入行列に基づくマイクロサービス同士の間の相関スコアと、推移簡約を使用する学習された因果グラフの表現とを学習することを含む。段階(308)における相関スコア評価は、障害s'の主体であるマイクロサービスと、ログデータのサブセットから識別されたマイクロサービスとの間の対応関係の強度を識別する。図4において図示及び説明されるように、相関スコアは、構成可能閾値に対して評価される。段階(308)からの評価は、相関スコア評価を超えたエッジのセットから構成されるDAGの形式の出力を生成し、各エッジは、障害の主体であるマイクロサービス及び影響を受けたマイクロサービスを表す(310)。例示的な実施形態では、本明細書において示されているように、段階(310)において生成されたグラフは、1つ又は複数のエッジを選択的に除去し、因果グラフを生成する推移簡約を受ける(312)。推移簡約は、グラフの幾つかの重要な特性及び構造を維持する有向グラフに対するエッジ除去演算である。推移簡約は、学習された因果グラフの重要な構造的特性を維持し、障害を有するサービスを位置特定するために学習された因果グラフの系統(ancestry)を構築するのに使用される。推移簡約の詳細は、以下で詳細に図示及び説明される。したがって、障害インジェクションに関連付けられたログデータがソースとして活用されて、因果グラフが生成される。
図4を参照すると、例示の介入パターンを示すブロック図(400)が提供される。ベクトルv(s')は、マイクロサービスs'の介入パターンベクトルであり、ここで、s'は、インジェクトされた障害の主体であるマイクロサービスである。一実施形態では、例示として本明細書において説明されるように、障害インジェクションの態様は、マイクロサービスがその意図された機能を実行することをブロックする形式であり得る。ベクトルv(s')は、時間ビンtにおいて、アプリケーションにおける他のマイクロサービスがブロックされたマイクロサービスs'によってどのように影響を受けるかを表す。この例において示されているように、ベクトル内のエントリは、0及び1のビット形式である。一実施形態では、ベクトル内の0のエントリは、マイクロサービスがブロックされたマイクロサービスによって影響を受けていないことを示し、ベクトル内の1のエントリは、マイクロサービスが影響を受けている、例えば、エラーを経験していることを示す。同様に、一実施形態では、ベクトルエントリの表現は反転されてよく、したがって、エントリ表現は、限定とみなされるべきではない。本明細書において示されているベクトルは、時間ビンtにわたる、障害がインジェクトされたマイクロサービスs'を対象とし、障害インジェクションに対するアプリケーションマイクロサービスの反応を文書化する。複数のベクトルが利用されて、対応する介入行列Cが生成される。例示の介入行列が、図5において図示及び説明される。例示的な実施形態では、マイクロサービスs'と他の全てのマイクロサービスとの間の相関の強度は、以下のように評価される:
ここで、corr(s',s)は、マイクロサービスs'及びマイクロサービスsの相関スコアであり、v(s')は、マイクロサービスs'の介入パターンベクトルであり、v(s')は、ベクトルv(s')の転置であり、C[:,s]は、介入行列C内のマイクロサービスsの列である。したがって、処理されたエラーログ及び発せられた1つ又は複数のエラーの主体である、障害がインジェクトされたマイクロサービスs'に関連したマイクロサービスのセットSは、対応関係評価に基づいて評価され、選択的に装入されるとともに、生成された因果グラフが形成される。
図5を参照すると、例示の介入行列(510)を示すブロック図(500)が提供される。示されているように、介入行列C(s')は、障害がインジェクトされたマイクロサービスs'を対象とする。この例において示されているように、5つのマイクロサービスが存在する。マイクロサービスs'のうちの1つは、エラー又は障害をインジェクトされ、残りの4つのマイクロサービスs、s、s、及びsは、インジェクトされたエラーによって影響を受けているか又は影響を受けていないかのいずれかである。例示として本明細書において示されているように、期間t=1において、マイクロサービスsは、(520)において2つのエラーを有するものとして示されており、マイクロサービスsは、(522)において1つのエラーを有するものとして示されており、マイクロサービスs及びsの各々は、それぞれ(524)及び(526)においてエラーなしとして示されている。介入行列Cは、本明細書において時間ビンTとも称される、複数の期間(530)を含むものとして示されている。したがって、C(s')は、複数の介入パターンベクトルから形成された介入行列であり、この介入行列は、障害インジェクションマイクロサービスs'によって影響を受けた全てのマイクロサービスの反応を示す。
マイクロサービスを表す個々のノードとノード間の祖先関係を表す方向性エッジとを有するDAGの場合、段階(310)における因果学習は、障害インジェクション(312)を有するDAG内のノードについて祖先エッジ(ancestral edge)を推定することを含む。図1において図示及び説明されたように、相関評価は、プロダクション環境において行われ、プロダクションマネージャ(154)によって管理される。以下の擬似コードは、マイクロサービスの依存性に関連付けられた祖先エッジの相関の推定を実証する:
ここで、Cは、図5において示されているように、マイクロサービスs'にインジェクトされた障害によって影響を受けた他のマイクロサービス、例えば、s、s、s、及びsを示す介入行列であり、Eは、アプリケーション処理中にエラーを発したマイクロサービス間の有向エッジのタプルのセットである。介入行列は、介入パターンベクトルv(s')を編集したものである。本明細書において示されているように、マイクロサービスs'とマイクロサービスsとの間の相関スコアが学習され、相関スコアτについての閾値に対して評価され、この閾値は、一実施形態では、調節可能閾値である。例えば、相関スコアcorr(s',s)>τの場合、これは、マイクロサービスs'とマイクロサービスsとは強い相関を有するというインジケーションである。推移簡約は、グラフの幾つかの重要な特性及び構造を維持する有向グラフに対するエッジ除去演算である。段階(312)における祖先エッジ推定からの出力は、因果グラフである。本明細書において示されているような1つ又は複数の選択マイクロサービスに対するエラーインジェクションのプロセスは、展開前障害インジェクションステージと称される。一実施形態では、本明細書において示されているような学習された因果グラフにおける因果エッジのセットは、理論上、高い確率の因果関係を有する真の因果エッジのセット又はサブセットのみを含むことが保証される。したがって、因果グラフは、1つ又は複数の障害インジェクションの使用を通して収集されるログデータ情報に基づいて生成される。
様々な障害インジェクションからの推定された祖先エッジは、系統を維持する真の因果エッジのサブセットのみが簡潔な表現の中にあることを確実にするために、推移簡約(314)を実行することによって組み合わされて、その表現にされる。有向グラフGの推移簡約は、同数の頂点及び可能な限り最も少ない数のエッジを有する別の有向グラフG'であり、全ての頂点対について、G内の頂点間のパスは、そのようなパスがG'内に存在する場合かつその場合に限り、存在するようになっている。以下の擬似コードは、因果グラフEに適用されるような推移簡約を実証する:
ここで、Gは、有向エッジEのセットから(a,b)が除去されたマイクロサービスの再生成された因果グラフを表す。一実施形態では、本明細書において図示及び説明される段階は、オフラインで実行されてよい。したがって、推移簡約は、障害がインジェクトされたマイクロサービスs'に関連したマイクロサービスのサブセットの依存性を表す学習された因果グラフの簡潔な表現を識別するのに使用される。
図6を参照すると、プロダクション環境における障害位置特定のために、図3の出力から推移簡約因果グラフを使用することを示すフローチャート(600)が提供される。例示的な実施形態では、本明細書において説明される障害位置特定は、リアルタイムで実行される。未知の介入されたマイクロサービスのエラーが検出され(602)、本明細書において第2のログデータとも称される、検出されたエラーに対応する全てのログデータが収集される(604)。例示的な実施形態では、第2のログデータの収集は、リアルタイムで行われる。第2のエラーログの収集に続いて、ステージング環境からの学習された推移簡約因果グラフGが活用されて、障害が位置特定される(606)。以下の擬似コードは、障害を有するマイクロサービスの局所性を推定すること(608)を実証する:
ここで、Gは、学習された因果グラフGの推移簡約である。擬似コードにおいて示されている相関評価は、同一関数、例えば、1{・}を使用する。例示として、corr=[0.8 0.1 0.1 0.9 0.1 0.2...]∈ZN×1及びτ=0.3である場合、1{0.8>.3}=1及び1{0.1<.3}=0である。この例に基づいて、1{corr}=[1 0 0 1 0 0...]∈ZN×1である。距離評価Dist(s)は、行間の距離を測定するために相関行列Aを活用する。一実施形態では、相関行列Aの行は各々、ビットの形式のエントリを有し、1は、学習された因果グラフにおいて祖先を有するマイクロサービスを表し、0は、その逆、例えば学習された因果グラフにおいて祖先を有しないマイクロサービスを表す。距離評価は、2つの対応するデータが異なるポイントの数を表す。一実施形態では、距離評価は、ハミング距離又はコサイン類似度の形式において利用され得る。例示的な実施形態では、メトリック関数は、障害の推定ロケーションをもたらし、可能な障害ロケーションの上位kリストを生成し、ここで、kは、構成可能な値である。したがって、本明細書において示されているように、相関行列Aは、学習された因果グラフGに基づいて構築され、障害のロケーションは、距離評価を使用して推定される。
図3及び図6において図示及び説明されるプロセスは、障害が、単一のマイクロサービスに、それぞれ計画されて又は計画されずに、のいずれかでインジェクトされるシナリオを示している。一実施形態では、これらのプロセスは、障害を、マイクロサービスの対又はサブセットにインジェクトすることに拡張されてよい。同様に、一実施形態では、図6において図示及び説明されるプロセスは、推移簡約グラフではなく完全因果グラフに拡張されてよい。本明細書において示されているように、障害位置特定は、祖先行列Aを、学習された因果グラフGに基づいて構築することと、距離評価を使用して障害のロケーションを推定することとを含む。例示的な実施形態では、複数の推定障害ロケーション、例えば、上位k個が障害位置特定プロセスから生成されてよい。したがって、ログデータは、展開前障害インジェクションシステムを使用して、因果グラフGを学習するためのソースとして累積及び処理され、これは、その後、リアルタイムで使用されて、障害位置特定が動的にかつ有効に実行される。
本明細書において説明されるシステム、方法、及びコンピュータプログラム製品の特定の例示的な実施形態によって、実質的に又は完全に監視されていない自動化方式で原因-結果対の高品質集合が生成される。例示的な実施形態は、因果知識グラフとしての表現を更に処理するための原因-結果対の使用、及び判断サポート又は予測解析の使用を更に伴う。
因果対を識別及び検証する態様は、それぞれ、図1及び図2において示されるツール及びAPI、並びに図3及び図6において図示されるプロセスとともに図示及び説明される。機能ツール(152)、(154)、及び(156)並びにそれらの関連付けられた機能の態様が、単一のロケーションにおけるコンピュータシステム/サーバにおいて具現化されてよく、又は一実施形態では、コンピューティングリソースを共有するクラウドベースシステムにおいて構成されてよい。図7を参照すると、図3及び図6に関して上記で説明されたプロセスを実装するために、クラウドベースサポートシステムと通信する、以降ホスト(702)と称されるコンピュータシステム/サーバ(702)の例を示すブロック図(700)が提供される。ホスト(702)は、多数の他の汎用又は専用コンピューティングシステム環境又は構成を用いて動作可能である。ホスト(702)との使用に適し得る周知のコンピューティングシステム、環境若しくは構成、又はその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイス又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、並びに、上記のシステム、デバイス、及びそれらの均等物のうちの任意のものを含むファイルシステム(例えば、分散記憶環境及び分散クラウドコンピューティング環境)が挙げられるが、これらに限定されるものではない。
ホスト(702)は、コンピュータシステムによって実行される、プログラムモジュール等のコンピュータシステム実行可能命令の一般的文脈において説明されてよい。概して、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、及びデータ構造等を含んでよい。ホスト(702)は、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境(710)において実施されてよい。分散クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカルコンピュータシステム記憶媒体及びリモートコンピュータシステム記憶媒体の両方にプログラムモジュールが位置してよい。
図7において示されているように、ホスト(702)は、汎用コンピューティングデバイスの形式において示されている。ホスト(702)のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット(704)、例えば、ハードウェアプロセッサ、システムメモリ(706)、及びシステムメモリ(706)を含む様々なシステムコンポーネントを処理ユニット(704)に結合するバス(708)を含んでよいが、これらに限定されるものではない。バス(708)は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び多様なバスアーキテクチャのうちの任意のものを使用するプロセッサ又はローカルバスを含む、幾つかのタイプのバス構造のうちの任意のものの1つ又は複数を表す。限定ではなく例示として、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。ホスト(702)は、典型的には、多様なコンピュータシステム可読媒体を含む。そのような媒体は、ホスト(702)によってアクセス可能である任意の利用可能な媒体であってよく、揮発性及び不揮発性媒体、並びに、取り外し可能媒体及び取り外し不能媒体の両方を含む。
システムメモリ(706)は、ランダムアクセスメモリ(RAM)(730)若しくはキャッシュメモリ(732)又はその両方等の揮発性メモリの形式のコンピュータシステム可読媒体を含むことができる。単なる例示として、記憶システム(734)は、取り外し不能な不揮発性磁気媒体(示されておらず、典型的には「ハードドライブ」と呼ばれる)からの読み出し及びそこへの書き込みを行うために提供することができる。示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピーディスク」)からの読み出し及びそこへの書き込みを行うための磁気ディスクドライブ、及び、CD-ROM、DVD-ROM又は他の光学媒体等の取り外し可能な不揮発性光ディスクからの読み出し又はそこへの書き込みを行うための光学ディスクドライブを提供することができる。そのような事例では、各々を1つ又は複数のデータ媒体インターフェースによってバス(708)に接続することができる。
プログラムモジュール(742)のセット(少なくとも1つ)を有するプログラム/ユーティリティ(740)は、限定ではなく例示として、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータと同様に、システムメモリ(706)に記憶されてよい。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はそれらの何らかの組み合わせが、ネットワーク化環境の実装を含んでよい。プログラムモジュール(742)は、概して、因果グラフ生成のための選択的障害インジェクションを通して能動学習をサポートするとともに可能にし、動的障害位置特定のために能動学習の出力を活用する実施形態の機能若しくは方法論又はその両方を実行する。例えば、プログラムモジュール(742)のセットは、図1において説明されるようにツール(152)、(154)、及び(156)を含んでよい。
ホスト(702)は、キーボード、ポインティングデバイス等のような1つ若しくは複数の外部デバイス(714)、ディスプレイ(724)、ユーザがホスト(702)とインタラクトすることを可能にする1つ若しくは複数のデバイス、若しくはホスト(702)が1つ若しくは複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)、又はその組み合わせと通信してもよい。そのような通信は、入力/出力(I/O)インターフェース(722)を介して行うことができる。なおもさらに、ホスト(702)は、ネットワークアダプタ(720)を介してローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、若しくはパブリックネットワーク(例えば、インターネット)、又はその組み合わせ等の1つ又は複数のネットワークと通信することができる。図示されているように、ネットワークアダプタ(720)は、バス(708)を介してホスト(702)の他のコンポーネントと通信する。一実施形態では、分散ファイルシステム(図示せず)の複数のノードは、I/Oインターフェース(722)を介して、又は、ネットワークアダプタ(720)を介してホスト(702)と通信する。示されていないが、他のハードウェア若しくはソフトウェアコンポーネント又はその両方がホスト(702)と併せて使用することができることが理解されるべきである。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブ記憶システム等が挙げられるが、これらに限定されるものではない。
この文書において、「コンピュータプログラム媒体」、「コンピュータ使用可能媒体」、及び「コンピュータ可読媒体」という用語は、概してRAM(730)、キャッシュ(732)、及び記憶システム(734)、例えば、取り外し可能記憶ドライブ、及びハードディスクドライブにインストールされるハードディスクを含む、システムメモリ(706)等の媒体を指すために使用される。
コンピュータプログラム(コンピュータ制御ロジックとも呼ばれる)は、システムメモリ(706)に記憶される。コンピュータプログラムは、ネットワークアダプタ(720)等の通信インターフェースを介して受信されてもよい。そのようなコンピュータプログラムは、実行されると、コンピュータシステムが本明細書において論述されるような本実施形態の特徴を実行することを可能にする。特に、コンピュータプログラムは、実行されると、処理ユニット(704)がコンピュータシステムの特徴を実行することを可能にする。したがって、そのようなコンピュータプログラムは、コンピュータシステムのコントローラを表す。
一実施形態では、ホスト(702)は、クラウドコンピューティング環境のノードである。当該技術分野において既知であるように、クラウドコンピューティングは、最小の管理労力又はサービスプロバイダとのインタラクションで迅速にプロビジョニング及びリリースすることができる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、及びサービス)の共有プールへの簡便なオンデマンドネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。そのような特性の例は、以下のとおりである。
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:この能力は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促す標準メカニズムを通してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者に役立つようプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当て及び再割り当てされる。消費者は概して提供されたリソースの正確なロケーションに対して制御又は知識を有していないが、上位層の抽象化(例えば、国、州、又はデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
迅速な弾力性:この能力は、迅速かつ弾力的に、幾つかの事例では自動的にプロビジョニングして、早急にスケールアウトし、かつ迅速にリリースして早急にスケールインすることができる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時点において任意の量で購入することができる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅及びアクティブユーザアカウント)に適切な或る層の抽象化における計測能力を活用することによって、自動的にリソース使用を制御及び最適化する。リソース使用量をモニタリング、制御及び報告することができ、それにより、利用されるサービスのプロバイダ及び消費者の両方に透明性が提供される。
サービスモデルは、以下のとおりである。
ソフトウェアアズアサービス(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインターフェースを通して様々なクライアントデバイスからアクセス可能である。消費者は、考えられる例外としての限定されたユーザ固有のアプリケーション構成設定を除き、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション能力を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
プラットフォームアズアサービス(PaaS):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者が作成又は取得したアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成を制御する。
インフラストラクチャアズアサービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここで消費者は、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを展開及び実行することが可能である。消費者は、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御するとともに、場合によっては選択されたネットワーク化コンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
展開モデルは、以下のとおりである。
プライベートクラウド:このクラウドインフラストラクチャは、或る組織のためにのみ動作する。プライベートクラウドは、その組織又はサードパーティによって管理され得、オンプレミス又はオフプレミスで存在し得る。
コミュニティクラウド:このクラウドインフラストラクチャは、幾つかの組織によって共有され、共有される考慮事項(例えば、ミッション、セキュリティ要件、ポリシ及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、それらの組織又はサードパーティによって管理され得、オンプレミス又はオフプレミスで存在し得る。
パブリッククラウド:このクラウドインフラストラクチャは、一般大衆又は大規模な業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、2つ又はそれより多くのクラウドは、独自のエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術又は独自技術によってともに結合される。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性及びセマンティック相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
ここで図8を参照すると、例示的なクラウドコンピューティングネットワーク(800)が示されている。クラウドコンピューティングネットワーク(800)は、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る1つ又は複数のクラウドコンピューティングノード(810)を有するクラウドコンピューティング環境(850)を含む。これらのローカルコンピューティングデバイスの例としては、携帯情報端末(PDA)若しくは携帯電話(854A)、デスクトップコンピュータ(854B)、ラップトップコンピュータ(854C)、若しくは自動車コンピュータシステム(854N)、又はその組み合わせが挙げられるが、これらに限定されるものではない。クラウドコンピューティングノード(810)内の個々のノードは、互いに更に通信してよい。ノードは、本明細書の上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド若しくはハイブリッドクラウド、又はそれらの組み合わせ等の、1つ又は複数のネットワーク内で物理的に又は仮想的にグループ化され得る(図示せず)。これにより、クラウドコンピューティング環境(800)は、インフラストラクチャ、プラットフォーム、若しくはソフトウェア、又はその組み合わせを、クラウド消費者がそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。図8において示されているコンピューティングデバイス(854A~N)のタイプは、単に例示を意図し、クラウドコンピューティング環境(850)は、任意のタイプのネットワーク、若しくはネットワークアドレス指定可能接続、又はその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることが理解される。
ここで図9を参照すると、図8のクラウドコンピューティングネットワークによって提供される機能抽象化層(900)のセットが示されている。図9において示されているコンポーネント、層、及び機能は、単に例示を意図するものであり、実施形態がそれらに限定されないことが事前に理解されるべきである。図示されているように、次の層及び対応する機能、すなわち、ハードウェア及びソフトウェア層(910)、仮想化層(920)、管理層(930)、及びワークロード層(940)が提供される。
ハードウェア及びソフトウェア層(910)は、ハードウェアコンポーネント及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例としては、メインフレーム、1つの例ではIBM(登録商標)zSeries(登録商標)システム、RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ、1つの例ではIBM pSeries(登録商標)システム、IBM xSeries(登録商標)システム、IBM BladeCenter(登録商標)システム、記憶デバイス並びにネットワーク及びネットワーキングコンポーネントが挙げられる。ソフトウェアコンポーネントの例としては、ネットワークアプリケーションサーバソフトウェア、1つの例ではIBM WebSphere(登録商標)アプリケーションサーバソフトウェア、及びデータベースソフトウェア、1つの例ではIBM DB2(登録商標)データベースソフトウェアが挙げられる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多くの法域で登録されている、International Business Machines Corporationの商標である)。
仮想化層(920)は、仮想サーバ、仮想ストレージ、仮想プライベートネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティングシステム、並びに仮想クライアントである、仮想エンティティの例が提供され得る抽象化層を提供する。
1つの例では、管理層(930)は、次の機能、すなわち、リソースプロビジョニング、計測及び価格設定、ユーザポータル、サービス層管理、及びSLA計画及び履行を提供してよい。リソースプロビジョニングは、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、及び、これらのリソースの消費に対する課金又は請求書を提供する。1つの例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウド消費者及びタスクに対する識別情報検証、並びに、データ及び他のリソースに対する保護を提供する。ユーザポータルは、消費者及びシステムアドミニストレータに対してクラウドコンピューティング環境へのアクセスを提供する。サービス層管理は、要求されるサービス層が満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービス層合意(SLA)計画及び履行は、将来の要件がSLAに従って予期されるクラウドコンピューティングリソースの事前の取り決め及び調達を提供する。
ワークロード層(940)は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例としては、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想クラスルーム教育配信、データ解析処理、トランザクション処理、並びに因果知識識別及び抽出が挙げられるが、これらに限定されるものではない。
本実施形態の特定の実施形態が図示及び説明されているが、実施形態及びそのより広範な態様から逸脱することなく本明細書における教示に基づいて変更及び修正が行われ得ることは、当業者にとって明らかであろう。したがって、添付の特許請求の範囲は、実施形態の真の趣旨及び範囲内にあるような全てのそのような変更及び修正をそれらの範囲内に包含するものとする。さらに、実施形態は、添付の特許請求の範囲のみによって定義されることが理解されるべきである。特定の数の導入された請求項要素が意図されている場合、そのような意図は、特許請求の範囲に明示的に記載されており、そのような記載がない場合は、そのような限定が存在しないことが当業者によって理解されるであろう。非限定的な例として、理解を補助するために、以下の添付の特許請求の範囲は、請求項要素を導入するための「少なくとも1つ」及び「1つ又は複数」という導入句の使用を含む。しかしながら、そのような言い回しの使用は、「1つ又は複数」又は「少なくとも1つ」という導入句と「a」又は「an」等の不定冠詞とが同じ請求項に含まれる場合であっても、「a」又は「an」という不定冠詞による請求項要素の導入が、そのような導入された請求項要素を含む任意の特定の請求項を、そのような要素を1つのみ含む実施形態に限定することを暗示していると解釈されるべきではなく、請求項における定冠詞の使用についても同じことが当てはまる。本明細書において使用される場合、「及び/又は」という用語は、いずれか又は両方(参照される用語又は表現の任意の組み合わせ、又は、全て)を意味し、例えば、「A、B及び/又はC」は、A単独、B単独、C単独、A及びB、A及びC、B及びC、並びに、A、B及びCを包含する。
本実施形態は、システム、方法若しくはコンピュータプログラム製品、又はその組み合わせであってよい。加えて、本実施形態の選択される態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又は、本明細書において全て「回路」、「モジュール」又は「システム」と概して称され得るソフトウェアの態様若しくはハードウェアの態様又はその両方を組み合わせた実施形態の形態を取ってよい。さらに、本実施形態の態様は、プロセッサに本実施形態の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数の媒体)において具現化されたコンピュータプログラム製品の形態を取ってよい。このように具現化されて、開示されたシステム、方法若しくはコンピュータプログラム製品、又はその組み合わせは、因果対を識別及び検証する改善を提供するように動作する。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は前述したものの任意の適した組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、次のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ダイナミック若しくはスタティックランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、磁気記憶デバイス、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、機械的にエンコードされたデバイス、例えば、パンチカード又は命令を記録した溝内の隆起構造、及び前述したものの任意の適した組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号等の一時的な信号それ自体とは解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、或いは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくは無線ネットワーク又はその組み合わせを介して、外部コンピュータ又は外部記憶デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ、又はその組み合わせを含んでよい。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本実施形態の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、1つ若しくは複数のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができ、1つ若しくは複数のプログラミング言語は、Java(登録商標)、Smalltalk(登録商標)、C++等のようなオブジェクト指向プログラミング言語と、「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語とを含む。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行されてもよいし、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行されてもよいし、リモートコンピュータ若しくはサーバ若しくはサーバクラスタ上で完全に実行されてもよい。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、その接続が、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。幾つかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本実施形態の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズすることができる。
本実施形態の態様は、本明細書において、実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図若しくはブロック図、又はその両方を参照して説明されている。フローチャート図若しくはブロック図、又はその両方の各ブロック、並びに、フローチャート図若しくはブロック図、又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されよう。
これらのコンピュータ可読プログラム命令を汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供して機械を生成することができ、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作を実装する手段を作成するようになる。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶することができ、当該命令は、コンピュータ、プログラマブルデータ処理装置若しくは他のデバイス、又はその組み合わせに対し、特定の方式で機能するよう命令することができ、それにより、命令を記憶したコンピュータ可読記憶媒体は、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むようになる。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成することができ、それにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート若しくはブロック図、又はその両方の単数又は複数のブロックで指定された機能/動作を実装するようになる。
図面におけるフローチャート及びブロック図は、本実施形態の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表すことができる。幾つかの代替的な実装では、ブロックに記載される機能が、図面に記載される順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行することもできるし、ブロックは、関与する機能に依存して逆の順序で実行される場合もあり得る。図面において表されていない追加のブロックが、例えば、1つ又は複数の示されているブロックの前、後、又はそれと同時に含まれてよい。ブロック図若しくはフローチャート図、又はその両方の各ブロック、並びにブロック図若しくはフローチャート図、又はその両方におけるブロックの組み合わせは、指定された機能若しくは動作を実行するか、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムによって実装することができることにも留意されたい。
本明細書において例示の目的で特定の実施形態が説明されたが、これらの実施形態の趣旨及び範囲から逸脱することなく様々な修正が行われ得ること理解されよう。特に、因果対を識別及び検証することは、異なるコンピューティングプラットフォームによって、又は、複数のデバイスにわたって実行されてよい。さらに、データストレージ若しくはコーパス又はその両方は、局在化されてもよいし、リモートであってもよいし、複数のシステムにわたって広がっていてもよい。したがって、実施形態の保護の範囲は、以下の特許請求の範囲及びそれらの均等物によってのみ限定される。

Claims (25)

  1. メモリに動作可能に結合されたコンピュータプロセッサと、
    前記コンピュータプロセッサ及び前記メモリと通信する人工知能(AI)プラットフォームであって、前記AIプラットフォームは、
    2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習するように構成されたステージングマネージャであって、前記学習することは、
    1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータを収集することと、
    前記収集された第1のマイクロサービスエラーログデータに基づいて学習された因果グラフを生成することであって、前記学習された因果グラフは、選択的エラーインジェクションによって影響を受けたアプリケーションマイクロサービスの依存性を表す、生成することと
    を含む、ステージングマネージャと、
    前記ステージングマネージャに動作可能に結合されたプロダクションマネージャであって、前記プロダクションマネージャは、アプリケーションエラーの源を動的に位置特定するように構成されており、前記位置特定することは、
    前記アプリケーションエラーに対応する第2のマイクロサービスエラーログデータを収集することと、
    前記学習された因果グラフと前記収集された第2のマイクロサービスエラーログデータとに基づいて祖先行列を構築することと、
    前記エラーの前記源を識別すべく、前記祖先行列を活用することと
    を含む、プロダクションマネージャと、
    前記プロダクションマネージャに動作可能に結合されたディレクタであって、前記識別されたエラー源に関連付けられたマイクロサービスを識別するように構成されている、ディレクタと
    を有する、AIプラットフォームと
    を備える、コンピュータシステム。
  2. 2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を前記学習することは、前記ステージングマネージャが、前記収集された第1のマイクロサービスエラーログデータをフィルタリングして、第1のエラーログデータのサブセットを選択的に除去することを更に含む、請求項1に記載のコンピュータシステム。
  3. アプリケーションマイクロサービス間の因果関係を前記学習すること及び因果グラフを前記生成することは、オフラインで行われる、請求項1に記載のコンピュータシステム。
  4. 障害位置特定は、リアルタイムにおいてオンラインで行なわれる、請求項1に記載のコンピュータシステム。
  5. 前記学習された因果グラフに推移簡約を適用するように構成された前記ステージングマネージャを更に備える、請求項1に記載のコンピュータシステム。
  6. 前記祖先行列を前記活用することは、前記プロダクションマネージャが、前記エラーの複数の潜在的源を識別することを含み、前記コンピュータシステムは、前記エラー源を推定する距離メトリックを適用するように構成された前記プロダクションマネージャを更に備え、前記距離メトリックは、ハミング距離又はコサイン類似度を含む、請求項1から5のいずれか一項に記載のコンピュータシステム。
  7. コンピュータにより実行される方法であって、
    2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習する段階であって、
    1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータを収集する段階と、
    前記収集された第1のマイクロサービスエラーログデータに基づいて学習された因果グラフを生成する段階であって、前記学習された因果グラフは、選択的エラーインジェクションによって影響を受けたマイクロサービスの依存性を表す、生成する段階と
    を有する、学習する段階と、
    アプリケーションエラーの源を動的に位置特定する段階であって、
    前記アプリケーションエラーに対応する第2のマイクロサービスエラーログデータを収集する段階と、
    前記学習された因果グラフと前記収集された第2のマイクロサービスエラーログデータとに基づいて祖先行列を構築する段階と、
    前記エラーの前記源を識別すべく、前記祖先行列を活用する段階と
    を有する、位置特定する段階と、
    前記識別されたエラー源に関連付けられたマイクロサービスを識別する段階と
    を備える、法。
  8. 2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習する段階は、前記収集された第1のマイクロサービスログデータをフィルタリングして、第1のエラーログデータのサブセットを選択的に除去する段階を更に有する、請求項7に記載の法。
  9. 2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習する段階及び因果グラフを生成する段階は、オフラインで行われる、請求項7に記載の法。
  10. 障害位置特定は、リアルタイムにおいてオンラインで行なわれる、請求項7に記載の法。
  11. 前記学習された因果グラフに推移簡約を適用する段階を更に備える、請求項7に記載の法。
  12. 前記祖先行列を活用する段階は、前記エラーの複数の潜在的源を識別する段階を含み、前記法は、前記エラー源を推定する距離メトリックを適用する段階を更に備え、前記距離メトリックは、ハミング距離又はコサイン類似度を含む、請求項7から11のいずれか一項に記載の法。
  13. プロセッサに、
    2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を学習する手順であって、
    1つ又は複数の選択的にインジェクトされたエラーに対応する第1のマイクロサービスエラーログデータを収集する手順と、
    前記収集された第1のマイクロサービスエラーログデータに基づいて学習された因果グラフを生成する手順であって、前記学習された因果グラフは、選択的エラーインジェクションによって影響を受けたマイクロサービスの依存性を表す、生成する手順と
    を有する、学習する手順と、
    アプリケーションエラーの源を動的に位置特定する手順であって、
    前記アプリケーションエラーに対応する第2のマイクロサービスエラーログデータを収集する手順と、
    前記学習された因果グラフと前記収集された第2のマイクロサービスエラーログデータとに基づいて祖先行列を構築する手順と、
    前記エラーの前記源を識別すべく、前記祖先行列を活用する手順と
    を有する、位置特定する手順と、
    前記識別されたエラー源に関連付けられたマイクロサービスを識別する手順と
    を実行させる、プログラム。
  14. 2つ又はそれより多くのアプリケーションマイクロサービス間の因果関係を前記学習する手順は、前記収集された第1のマイクロサービスログデータをフィルタリングして、第1のエラーログデータのサブセットを選択的に除去する手順を更に有する、請求項13に記載のプログラム。
  15. アプリケーションマイクロサービス間の因果関係を前記学習する手順及び前記因果グラフを前記生成する手順は、オフラインで行われる、請求項13に記載のプログラム。
  16. 障害位置特定は、リアルタイムにおいてオンラインで行なわれる、請求項13に記載のプログラム。
  17. 前記プロセッサに、前記学習された因果グラフに推移簡約を適用する手順を更に実行させる、請求項13に記載のプログラム。
  18. 前記祖先行列を前記活用する手順は、前記エラーの複数の潜在的源を識別する手順を有し、前記プロセッサに、前記エラー源を推定する距離メトリックを適用する手順を更に実行させ、前記距離メトリックは、ハミング距離又はコサイン類似度を含む、請求項13から17のいずれか一項に記載のプログラム。
  19. コンピュータにより実行される方法であって、
    人工知能(AI)モデルをトレーニングする段階であって、
    1つ又は複数の選択的にインジェクトされたマイクロサービス障害に対応する第1のエラーログデータを収集する段階と、
    前記収集された第1のエラーログデータに基づいて因果グラフを学習する段階であって、前記因果グラフは、影響を受けたアプリケーションマイクロサービスの依存性を表す、学習する段階と
    を有する、トレーニングする段階と、
    アプリケーション障害を動的に位置特定する段階であって、
    前記アプリケーション障害の検出に対応する第2のエラーログデータを収集する段階と、
    前記アプリケーション障害の源を識別すべく、前記第2のエラーログデータと前記学習された因果グラフとを活用する段階と
    を有する、位置特定する段階と
    を備える、法。
  20. 前記AIモデルをトレーニングする段階は、オフラインで行われ、前記アプリケーション障害を位置特定する段階は、リアルタイムで行われる、請求項19に記載の法。
  21. 前記アプリケーション障害を動的に位置特定する段階は、1つ又は複数の可能なアプリケーション障害の前記源を推定する距離ベース閾値処理を適用する段階を更に有する、請求項19に記載の法。
  22. 前記AIモデルを前記トレーニングする段階は、障害インジェクションを制御する段階と、前記障害インジェクションの受信に応じてマイクロサービスについての祖先エッジを推定する段階とを更に有する、請求項19から21のいずれか一項に記載の法。
  23. 前記AIモデルをトレーニングする段階は、前記学習された因果グラフに推移簡約を適用する段階を更に有し、前記推移簡約は、2つ又はそれより多くの制御された障害インジェクションから推定された祖先エッジを組み合わせる、請求項22に記載の法。
  24. メモリに動作可能に結合されたコンピュータプロセッサと、
    前記コンピュータプロセッサ及び前記メモリと通信する人工知能(AI)プラットフォームであって、前記AIプラットフォームは、
    AIモデルをトレーニングするように構成されたステージングマネージャであって、前記トレーニングすることは、
    1つ又は複数の選択的にインジェクトされたマイクロサービス障害に対応する第1のエラーログデータを収集することと、
    前記収集された第1のエラーログデータに基づいて因果グラフを学習することであって、前記因果グラフは、影響を受けたアプリケーションマイクロサービスの依存性を表す、学習することと
    を含む、ステージングマネージャと、
    前記ステージングマネージャに動作可能に結合されたプロダクションマネージャであって、前記プロダクションマネージャは、アプリケーション障害を動的に位置特定するように構成されており、前記位置特定することは、
    前記アプリケーション障害の検出に対応する第2のエラーログデータを収集することと、
    前記アプリケーション障害の源を識別すべく、前記第2のエラーログデータと前記学習された因果グラフとを活用することと
    を含む、プロダクションマネージャと
    を有する、AIプラットフォームと
    を備える、コンピュータ実装システム。
  25. 1つ又は複数の可能なアプリケーション障害の前記源を推定する距離ベース閾値処理を適用するように構成された前記プロダクションマネージャを更に備える、請求項24に記載のコンピュータ実装システム。
JP2022123687A 2021-08-03 2022-08-03 コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係) Active JP7809028B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/393,130 2021-08-03
US17/393,130 US20230040564A1 (en) 2021-08-03 2021-08-03 Learning Causal Relationships

Publications (2)

Publication Number Publication Date
JP2023022831A JP2023022831A (ja) 2023-02-15
JP7809028B2 true JP7809028B2 (ja) 2026-01-30

Family

ID=85152490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022123687A Active JP7809028B2 (ja) 2021-08-03 2022-08-03 コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係)

Country Status (3)

Country Link
US (1) US20230040564A1 (ja)
JP (1) JP7809028B2 (ja)
CN (1) CN115705255A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PH12023550839A1 (en) * 2020-09-30 2024-03-11 Arris Entpr Llc Infrastructure monitoring system
US12236265B2 (en) * 2021-12-29 2025-02-25 Dell Products L.P. Error avoidance load balancing across distributed clustered containerized environments
US12204398B2 (en) * 2022-08-15 2025-01-21 Nec Corporation Incremental causal discovery and root cause localization for online system fault diagnosis
US12608261B2 (en) 2023-03-29 2026-04-21 International Business Machines Corporation Estimating propagation time for an injected fault
WO2024202898A1 (ja) * 2023-03-29 2024-10-03 日本電気株式会社 クラウドサービス支援装置、クラウドサービス支援方法およびプログラム記憶媒体
CN116307274B (zh) * 2023-05-18 2023-08-18 北京航空航天大学 一种考虑因果干预的城市区域能耗预测方法
US20250004929A1 (en) * 2023-06-27 2025-01-02 International Business Machines Corporation Fault set selection
US20250370904A1 (en) * 2024-05-29 2025-12-04 Paypal, Inc. Multidimensional error causal analysis for error intercorrelations that impact application availability
CN118378708B (zh) * 2024-06-26 2024-09-17 合肥工业大学 蕴含潜在变量的数据集中因果结构学习方法
CN120180073B (zh) * 2025-02-11 2025-11-18 华南理工大学 一种任务场景的时空数据预测方法、系统、设备及介质
CN121388187B (zh) * 2025-10-30 2026-03-24 上海速邦信息科技有限公司 基于生成式ai的知识库自动生成方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116545A (ja) 2017-01-19 2018-07-26 オムロン株式会社 予測モデル作成装置、生産設備監視システム、及び生産設備監視方法
JP2019101712A (ja) 2017-12-01 2019-06-24 日本電信電話株式会社 異常推定装置、異常推定方法及びプログラム
JP2020052714A (ja) 2018-09-27 2020-04-02 株式会社日立製作所 監視システム及び監視方法
JP2021108212A (ja) 2019-06-18 2021-07-29 ヤフー株式会社 取得装置、取得方法、および取得プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
US10521324B2 (en) * 2017-02-17 2019-12-31 Ca, Inc. Programmatically classifying alarms from distributed applications
US11615271B2 (en) * 2019-06-03 2023-03-28 Cerebri AI Inc. Machine learning pipeline optimization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018116545A (ja) 2017-01-19 2018-07-26 オムロン株式会社 予測モデル作成装置、生産設備監視システム、及び生産設備監視方法
JP2019101712A (ja) 2017-12-01 2019-06-24 日本電信電話株式会社 異常推定装置、異常推定方法及びプログラム
JP2020052714A (ja) 2018-09-27 2020-04-02 株式会社日立製作所 監視システム及び監視方法
JP2021108212A (ja) 2019-06-18 2021-07-29 ヤフー株式会社 取得装置、取得方法、および取得プログラム

Also Published As

Publication number Publication date
CN115705255A (zh) 2023-02-17
US20230040564A1 (en) 2023-02-09
JP2023022831A (ja) 2023-02-15

Similar Documents

Publication Publication Date Title
JP7809028B2 (ja) コンピュータシステム、コンピュータ実装方法、プログラム、及びコンピュータ実装システム(学習因果関係)
JP7805074B2 (ja) 仮想対話システムの性能評価及び強化
CN114667507B (zh) 使用基于应用的剖析的机器学习工作负载的弹性执行
US11972382B2 (en) Root cause identification and analysis
US11741296B2 (en) Automatically modifying responses from generative models using artificial intelligence techniques
KR20230002702A (ko) 파이프라인 아티팩트들 선정의 동적 자동화
US20220300822A1 (en) Forgetting data samples from pretrained neural network models
US11436129B2 (en) System, method and recording medium for generating mobile test sequences
JP6689955B2 (ja) 破損ネットワーク接続の機械学習に基づく識別
US12260262B2 (en) Dynamic data driven orchestration of workloads
US20230281518A1 (en) Data subset selection for federated learning
JP2023002475A (ja) コンピュータシステム、コンピュータプログラムおよびコンピュータで実装される方法(因果関係知識の識別および抽出)
JP2023522601A (ja) グラフ分割を用いたファセットの動的生成
CN116848580A (zh) 用于针对多方对话的话语解析的结构自感知模型
JP7684763B2 (ja) マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するためのコンピュータシステム、コンピュータプログラムおよび方法(マイクロサービス識別を向上させるためにリファクタリングを識別および優先順位付するための方法およびシステム)
US11763082B2 (en) Accelerating inference of transformer-based models
US11360877B2 (en) Forming microservices from monolithic applications
US20220253522A1 (en) Continues integration and continues deployment pipeline security
US11373407B2 (en) Attention generation
US20220075936A1 (en) Mining multi-party collaboration platforms to create triaging trees and playbooks
CN115280343A (zh) 故障事件管理中的事件相关性
US20210056457A1 (en) Hyper-parameter management
US12517887B2 (en) Prioritized data cleaning
US20220405631A1 (en) Data quality assessment for unsupervised machine learning
US11335076B1 (en) Virtual reality-based device configuration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260120

R150 Certificate of patent or registration of utility model

Ref document number: 7809028

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150