JP2021196730A - 原因推論システム、原因推論装置および原因推論方法 - Google Patents

原因推論システム、原因推論装置および原因推論方法 Download PDF

Info

Publication number
JP2021196730A
JP2021196730A JP2020101390A JP2020101390A JP2021196730A JP 2021196730 A JP2021196730 A JP 2021196730A JP 2020101390 A JP2020101390 A JP 2020101390A JP 2020101390 A JP2020101390 A JP 2020101390A JP 2021196730 A JP2021196730 A JP 2021196730A
Authority
JP
Japan
Prior art keywords
inference
cause
failure
processing unit
information
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
JP2020101390A
Other languages
English (en)
Inventor
雅江 岡田
Masae Okada
佑樹 長沼
Yuki Naganuma
恵介 畑崎
Keisuke Hatasaki
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020101390A priority Critical patent/JP2021196730A/ja
Publication of JP2021196730A publication Critical patent/JP2021196730A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】コンテナアプリケーションおよびその実行基盤の構築失敗時に、アプリ実行基盤の構築先環境とエラー報告文書に記載されるエラー内容の両方を考慮して自動で高精度に原因を推論すること。【解決手段】コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、構築の成功時の実行基盤の情報を保存するデータベースと、構築の失敗時の実行基盤の情報を受け付けるとともに、失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、失敗時および成功時の実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、テキスト情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第2の推論処理部と、第1の推論処理部による推論結果と、第2の推論処理部による推論結果とを組み合わせ、実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、を備える。【選択図】 図1

Description

本発明は、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築が失敗した原因を推定する原因推論システム、原因推論装置および原因推論方法に関する。
近年、コンテナ型の仮想化技術やその実行基盤構築および管理(オーケストレーション)ツールを利用したアプリケーション開発と提供が盛んに行われている。アプリケーションの開発者がアプリケーションおよび実行基盤構築用のコードを提供することで、アプリケーション利用者による自環境へのアプリケーション実行基盤の構築とアプリケーション本体の構築が容易に可能となる。コンテナ型の仮想環境を提供するソフトウェアの一例としてはDocker(登録商標)が、その実行基盤構築及び管理ツールの一例としてはKubernetes(登録商標)が挙げられる。
Philip J. Guo, et al. " Not my bug!" and other reasons forsoftware bug report reassignments." Proceedings of the ACM 2011 conferenceon Computer supported cooperative work. pp. 395-404, 2011.
アプリケーションの利用者は、アプリケーションの開発者が提供しているアプリケーションのパッケージを用いてアプリケーション実行基盤およびアプリケーション本体の構築を行うことによって、アプリケーションを容易に利用することが可能である。しかし、開発者が想定した環境と利用者がアプリケーション実行基盤を構築しようとする環境が異なる場合、アプリケーション実行基盤の構築に失敗する場合がある。この場合、失敗の原因を明らかにし、開発者がアプリケーションのパッケージに含まれるソースコードを修正する、または利用者が実行基盤を構築しようとする環境を修正する必要がある。
非特許文献1では、ソフトウェア開発の現場において、新規エラーを報告する文書をテキスト解析し、過去の類似したエラーの対応者の情報と照らし合わせ、新規エラーの担当者を決定する技術が開示されている。非特許文献1により、コンテナ技術を活用したアプリケーションの実行基盤および本体の構築の失敗においても、エラー報告文書に含まれるエラーログなどのテキスト解析によって原因を推論可能となると見込める。
アプリケーション実行基盤の構築の失敗原因の特定には、構築先環境の情報を考慮することが重要である。しかし、非特許文献1で用いるエラーログ等のテキスト文書には、エラーの内容は記述されているが、アプリケーション実行基盤を構築しようとする環境に関する詳細な情報が含まれない。よって、環境を考慮した切り分けができず、原因推論精度が低下してしまうという課題が存在する。
本発明はこの課題を解決するものである。
上記課題を解決するために、代表的な本発明の原因推論システムの一つは、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の成功時の前記実行基盤の情報を保存するデータベースと、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理部と、前記第1の推論処理部による推論結果と、前記第2の推論処理部による推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、を備える。
また、代表的な本発明の原因推論装置の一つは、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、前記構築の成功時の前記実行基盤の情報を保存するデータベースを参照し、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理部と、前記第1の推論処理部による推論結果と、前記第2の推論処理部による推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、を備える。
また、代表的な本発明の原因推論方法の一つは、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付ける受付ステップと、前記構築の成功時の前記実行基盤の情報を参照し、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理ステップと、前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理ステップと、前記第1の推論処理ステップによる推論結果と、前記第2の推論処理ステップによる推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理ステップと、を含む。
本発明を用いることにより、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築に失敗した際に、アプリ実行基盤の構築先環境とエラー報告文書に記載されるエラー内容の両方を考慮して自動で高精度に原因を推論することが可能となる。
本実施例の概要を説明する図である。 本実施例におけるシステム構成の一例を示すブロック図である。 原因推論システムGUIの一例を示す図である。 原因推論システムへの入力の一例を示す図である。 各コンポーネントが動作する計算機の構成の一例を示すブロック図である。 端末のメモリまたは記憶装置、原因推論システムのメモリまたは記憶装置に格納されたプログラムや処理、データの一例を示すブロック図である。 原因推論システムのメモリまたは記憶装置が保持するテーブルの構成の一例を示す図である。 アプリケーション実行基盤の情報とエラー内容文章を使った原因推論システムの処理の一例を示す図である。 基盤特徴量作成処理部の処理の一例を示す図である。 基盤特徴量グループ化処理部の処理の一例を示す図である。 基盤特徴量推論処理部の処理の一例を示す図である。 エラー内容特徴量作成・推論処理部の処理の一例を示す図である。 基盤・エラー内容関連付処理部の処理の一例を示す図である。 組み合わせ決定処理部の処理の一例を示す図である。 推論結果組み合わせ処理部の処理の一例を示す図である。
以下図面を参照し、本発明の一実施の形態を詳述する。なお、以下の説明では、同種の要素を区別しないで説明する場合には、枝番を含む参照符号のうちの共通部分(枝番を除く部分)を使用し、同種の要素を区別して説明する場合は、枝番を含む参照符号を使用することがある。例えば、ユーザを特に区別しないで説明する場合には、「ユーザ200」と記載し、個々のユーザを区別して説明する場合には、「ユーザ200−1」、「ユーザ200−2」のように記載することがある。
<システムの説明>
図1を用いて本実施例の概要を説明する。
本実施例は、エラー原因の推論を行う原因推論システム100からなる。
原因推論システム100は、基盤特徴量作成処理部102、基盤特徴量グループ化処理部103、基盤特徴量推論処理部104、エラー内容特徴量作成・推論処理部105、基盤・エラー内容関連付処理部106、組み合わせ決定処理部107、推論結果組み合わせ処理部108、正常動作データベース120、過去事例蓄積データベース130を持つ。
本実施例は、アプリケーションの利用者であるユーザ200−2がコンテナ技術を用いたアプリケーションおよびその実行基盤の構築に失敗した際にその原因を明らかにするために入力した異常時の情報(実行基盤構築情報およびエラー内容を表すテキスト情報)に基づいた、原因推論システム100によるコンテナ技術を用いたアプリケーションおよびの実行基盤構築の失敗原因を推論する技術に関するものである。
コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因を推論する技術を構成する各処理部の概要を以下に示す。
基盤特徴量作成処理部102では、アプリケーションの利用者であるユーザ200−2が入力したコンテナ技術を用いたアプリケーションおよびその実行基盤の構築に失敗した際(異常時)の実行基盤構築情報と、アプリケーションの開発者であるユーザ200−1が過去事例蓄積データベース130に登録し蓄積された、入力と同じアプリケーション実行基盤構築の正常終了時の実行基盤構築情報を用いて、実行基盤に関する特徴量を作成する。これによって、異常時および正常時の実行基盤の構築情報の特徴を取得することが可能となる。
基盤特徴量グループ化処理部103では、基盤に関する特徴量のグループ化のルールを定義する基盤グループ化テーブル111に基づいて、実行基盤に関する特徴量を、特徴量の作成元である実行基盤構築の定義情報の関連性が強い特徴量同士でグループ化する。
基盤特徴量推論処理部104では、前述の基盤特徴量グループ化処理部103でグループ化された特徴量それぞれを用いて実行基盤構築の失敗原因に関する推論を行う。この結果、グループごとに推論結果が得られる。基盤特徴量グループ化処理部103において膨大な実行基盤構築の定義情報から作成される膨大な特徴量を分割してから基盤特徴量推論処理部104による推論を行うことで、特徴量の次元を下げることができ、精度の高い推論を行うことが可能となる。また、基盤特徴量グループ化処理部103での特徴量のグループ化では、特徴量の作成元である実行基盤構築の定義情報の関連性に基づいて特徴量をグループ化することから、統計処理による数値的なグループ化に比べて各グループに対して明確に基盤の情報を反映することが可能であり、このような特徴量を用いて基盤特徴量推論処理を行うことによって、得られる推論結果と実行基盤との結びつけを保つことが可能となる。さらに、実行基盤との関連性を保持した推論結果を用いて後述する推論結果組み合わせ処理部108による推論結果の組み合わせを行うことで、より精度の高い組み合わせ結果を得ることが可能となる。
エラー内容特徴量作成・推論処理部105では、ユーザ200が入力したコンテナ技術を用いたアプリケーションおよびその実行基盤の構築に失敗した際(異常時)のエラー内容テキスト情報に基づいてエラー内容に関する特徴量を作成し、実行基盤構築の失敗原因に関する推論を行う。
基盤・エラー内容関連付処理部106では、エラー内容と実行基盤との関連性を定義した基盤グループ・エラー内容対応テーブル112と、基盤に関する特徴量のグループ化のルールを定義する基盤グループ化テーブル111に基づいて、エラー内容に関する特徴量を実行基盤と関連付けた後、さらに基盤に関する特徴量のグループと関連付ける。
組み合わせ決定処理部107では、過去事例蓄積データベース130に蓄積された、過去の原因推論結果とその精度の情報から、推論したい実行環境構築の失敗状況と類似した過去の事例に基づいて、最も推論精度が高いと考えられる、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果の組み合わせを決定する。換言するならば、組み合わせ決定処理部107では、どのグループの特徴量による推論結果と組み合わせたときに、推論精度が高くなるかを決定する。
推論結果組み合わせ処理部108では、組み合わせ決定処理部107において決定した組み合わせに基づいて、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果を組み合わせ、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因について最終的な推論結果を導く。基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果を組み合わせることによって、それぞれの推論の弱点を補い、より精度の高い推論結果を得ることが可能となる。また、基盤・エラー内容関連付処理部106において、実行基盤構築情報とエラー内容という異なる二つの情報を持つ基盤に関する特徴量とエラー内容に関する特徴量の関連性を取得した上で組み合わせ決定処理部107による組み合わせの決定を行うことで、実行基盤の構築に注目して推論結果の組み合わせを決定することが可能であり、その組み合わせ決定結果に基づいて推論結果組み合わせ処理部108において最終的な原因推論結果を導くことで、さらに精度の高い推論結果を得ることが可能となる。なお、失敗原因に基づいてアプリケーションの開発者がアプリケーションのパッケージに含まれるソースコードを修正する場合と、アプリケーションの利用者が実行基盤を構築しようとする環境を修正する場合が想定されるが、推論結果組み合わせ処理部108が導く最終的な失敗原因の推論結果は、実行基盤構築の失敗原因箇所そのものであってもよいし、失敗箇所が発生する原因となったユーザ200(たとえばアプリケーション開発者または利用者)であってもよいし、その両方であってもよい。
推論結果は、原因推論システムGUI140を介してユーザ200に提示される。ユーザ200は実際の対応内容を過去事例蓄積データベース130に登録することで情報が更新され、次回以降の推論に活用されることで推論精度の向上が可能となる。
上記処理の詳細は後述する。
図2は、本実施例におけるシステム構成の一例を示すブロック図である。図2のシステムは、端末310と、原因推論システム100と、ネットワークスイッチ500と、アプリケーションの実行基盤410と、アプリケーション420から構成される。
ユーザ200は、アプリケーション実行基盤410およびアプリケーション420の情報を取得し、端末310で動作するクライアントプログラム711により、原因推論システム100にアクセスし、コンテナ技術を用いたアプリケーション420の実行基盤410構築の失敗時の情報の登録や、原因の推論結果の取得、実際の対応内容の登録ができる。
原因推論システム100は、原因推論システムGUI140と、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因推論機能、対応内容の登録機能を持つ。原因推論システムGUI140や機能の詳細は後述する。
なお、実行基盤410およびアプリケーション420はネットワークスイッチ500を介して原因推論システム100や端末310と通信できてもよい。その場合、実行基盤およびアプリケーションの情報はユーザ200や端末310のクライアントプログラム711を介さずに直接原因推論システム100に入力されてもよい。
<画面の説明>
図3は、原因推論システムGUI140の一例を示す図である。実行基盤構築失敗内容入力画面610をホーム画面として、ユーザ200の画面操作により、原因推論結果表示画面620や対応内容フィードバック画面630が開く。
実行基盤構築失敗内容入力画面610は、コンテナ技術を用いたアプリケーションおよびその実行基盤構築失敗時(異常時)の実行基盤構築情報とエラー内容のテキスト情報を入力する画面の一例である。ユーザ200は、前記実行基盤構築失敗内容入力画面610に表示されているアプリケーション名入力窓611に実行基盤構築に失敗したアプリケーション名を入力し、基盤構築情報入力窓612に実行基盤構築失敗時(異常時)の実行基盤構築情報をアップロードし、エラー内容情報入力窓613にエラー内容を示すテキスト情報をアップロードする。最後に推論開始ボタン614をクリックすると、アプリケーションおよびその実行基盤構築の失敗原因の推論が行われる。また、対応内容フィードバックボタン615をクリックすると、対応内容フィードバック画面630が表示される。
アプリケーション名入力窓611へのアプリケーション名の入力は、直接ユーザ200がアプリケーション名を入力する形式や、新たなウインドウやプルダウンなどでアプリケーション名の一覧が提示され、その中からアプリケーション名を選択することで入力を補助する形式、などの形式をとる。また、原因推論システム100が実行基盤構築失敗原因を推測する対象となるアプリケーションが1つだけであることが明らかである場合には、実行基盤構築失敗内容入力画面610はアプリケーション名を入力する機能を持たなくてもよい。基盤構築情報入力窓612への実行基盤構築失敗時(異常時)の実行基盤構築情報のアップロードおよびエラー内容情報入力窓613へのエラー内容を示すテキスト情報のアップロードは、当該情報を記載した単一または複数のファイルをアップロードする形式や、これらファイル(群)へのリンクを入力する形式、当該情報を入力窓に直接入力する形式、などの形式をとる。なお、実行基盤およびアプリケーションが原因推論システム100と通信可能な場合は実行基盤構築失敗内容入力画面610を介さずに直接原因推論システム100に入力されてもよい。
原因推論結果表示画面620は、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因の推論結果を表示する画面の一例である。原因推論結果表示画面620は、実行基盤構築失敗内容入力画面610の推論開始ボタン614をクリックしたことを契機に表示される。ユーザ200は、アプリケーション名621、リクエストの受付番号622、原因推論結果623とその確率624を参照可能である。
原因推論結果623は、実行基盤構築の失敗原因箇所そのものであってもよいし、失敗箇所が発生する原因となったユーザ200(例えばアプリケーション開発者または利用者)であってもよいし、その両方であってもよい。
対応内容フィードバック画面630は、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗に対して実際にどのような対応を行って問題を解決したかを登録する画面の一例である。対応内容フィードバック画面630は、実行基盤構築失敗内容入力画面610の対応内容フィードバックボタンをクリックしたことを契機に表示される。ユーザ200は受付番号入力窓631に、原因推論時に発行された受付番号622を入力し、呼び出しボタン632をクリックすることで原因推論結果を呼び出すことができる。ユーザ200は呼び出されたアプリケーション名633、受付番号634、原因推論結果635を参照し、原因推論結果635が本当に問題の原因であったかどうか、つまり推論結果の正誤を、実際の問題解決の対応内容に基づいて対応内容チェックボックス636にチェックを入れ、送信ボタン638をクリックすることで登録する。原因推論結果635に実際の問題解決の結果判明した本当の原因が含まれない場合には、対応内容入力窓637に入力する。
<入力の説明>
図4は、原因推論システム100への入力の一例を示す図である。以降、コンテナ技術によるアプリケーションおよびその実行基盤の構築ツールとして、Kubernetesを利用したアプリケーションを構築する場合を例に示す。
図4Aは、実行基盤構築情報の一例を示す図である。この実行基盤構築情報は、例えば、アプリケーションの開発者であるユーザ200−1が原因推論システム100の過去事例蓄積データベース130に登録する。または、アプリケーション利用者であるユーザ200−2が失敗原因推論のための情報として原因推論システム100に入力する。または実行基盤およびアプリケーションが原因推論システム100と通信可能な場合は実行基盤構築失敗内容入力画面610を介さずに直接原因推論システム100に入力される。
Kubernetesの利用を仮定する場合、実行基盤構築情報710はYAML(YAML Aren’t Markup Language)形式と呼ばれる構造化データの表現方法で記載され、項目(key)711とその値(Value)712の組み合わせで実行基盤の構築情報を表す。
実行基盤情報は、コンテナアプリケーションの実行基盤の状態を示していれば上記以外の形式で表現されていてもよい。
図4Bは、エラー内容を示すテキスト情報の一例を示す図である。エラー内容を示すテキスト情報は、例えば、アプリケーション利用者であるユーザ200−2が失敗原因推論のための情報として原因推論システム100に入力する。または実行基盤およびアプリケーションが原因推論システム100と通信可能な場合は実行基盤構築失敗内容入力画面610を介さずに直接原因推論システム100に入力される。
エラー内容テキスト情報720は、エラーが起きたことを知らせる文章721と、アプリケーション名722、エラー内容の概要723と、エラーログ724、などのテキスト文章から構成される。
エラーログ724は、アプリケーション420およびその実行基盤410およびこれら管理するシステムが出力するログデータであり、エラーのタイプ7241、エラーの発生個所7242、エラーメッセージ7243などから構成される。
エラー内容テキスト情報720は、上記のすべての情報が含まれている必要はなく、また、エラーについて説明する内容を示すテキスト文章であれば上記に含まれない情報が記載されていてもよい。エラーログ724は、上記のすべての情報が含まれている必要はなく、また、アプリケーションおよびその実行基盤を管理するシステムが出力するログデータであれば上記に含まれない情報が記載されていてもよい。また、エラーのタイプ7241、エラーの発生個所7242、エラーメッセージ7243などのログデータは、システムが出力した形式そのものであってもよいし、システムが出力したログを選択・分割してエラーについて説明するテキストの中に含む形で記載されていてもよい。
<計算機の説明>
図5は、図2に示す各コンポーネントが動作する計算機800の構成の一例を示すブロック図である。
計算機800は、プロセッサであるCPU(Central Processing Unit)810と、主記憶デバイスであるメモリ820と、不揮発性の二次記憶装置830と、入出力装置840と、ポート850を有する。これらの各構成要素は、バス860により相互に接続される。
CPU810は、メモリ820に記憶されているプログラムを実行することによって、各計算機の所定の機能を実現する。メモリ820は、CPU810よって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。プログラムは、二次記憶装置830からメモリ820にロードされる。
入出力装置840は、ディスプレイ、ポインタ又はキーボード等のデバイスの一つ又は複数のデバイスを含む。ユーザ200は、入出力装置840により、各計算機を操作することができる。
ポート850は、ネットワーク(例えば、図2のネットワークスイッチ500)に接続される。各計算機は、ポート850を介して、他の計算機800と通信することができる。
なお、各コンポーネントが動作する計算機800は、仮想マシンやコンテナ等の仮想環境であっても良い。
<メモリまたは記憶装置のデータ構成の説明>
図6は、開発端末のメモリまたは記憶装置910、原因推論システムのメモリまたは記憶装置920に格納されたプログラムや処理、データの一例を示すブロック図である。
開発端末のメモリまたは記憶装置910は、前述図3に示したGUIを表示するためのクライアントプログラム711を持つ。クライアントプログラム711の一例は、ウェブブラウザである。
原因推論システムのメモリまたは記憶装置920は、原因推論システムGUI表示処理部101、基盤特徴量作成処理部102、基盤特徴量グループ化処理部103、基盤特徴量推論処理部104、エラー内容特徴量作成・推論処理部105、基盤・エラー内容関連付処理部106、組み合わせ決定処理部107、推論結果組み合わせ処理部108、基盤グループ化テーブル111、基盤グループ・エラー内容対応テーブル112、正常動作データベース120、過去事例蓄積データベース130を持つ。
原因推論システムGUI表示処理部101はJavascriptのように開発端末のメモリまたは記憶装置上のクライアントプログラム711で動作しても良いし、専用アプリケーションなど、端末310上のクライアントプログラム711以外のクライアントGUIを用いて動作してもよい。
正常動作データベース120は正常時実行基盤構築情報テーブル121を持つ。その一例については後述する。
過去事例蓄積データベース130は組み合わせ相性テーブル131、過去事例テーブル132を持つ。正常動作データベース120および過去事例データベースは原因推論システムのメモリまたは記憶装置920上に存在していてもよいし、原因推論システムのメモリまたは記憶装置920とは別のネットワーク接続された独立の専用または共用の一つまたは複数のサーバのメモリまたは記憶装置上に存在してもよい。
上記の各プログラムおよびテーブル・リストの詳細は後述する。
上記の開発端末のメモリまたは記憶装置910、原因推論システムのメモリまたは記憶装置920はネットワーク接続されたデータベースや仮想サーバのようなものの上で動作しても良い。
<テーブルの説明>
図7は、原因推論システムのメモリまたは記憶装置920が保持するテーブルの構成の一例を示す図である。
基盤グループ化テーブル111は、基盤に関する特徴量のグループ化のルールを定義するテーブルである。
基盤グループ化テーブル111は、各グループに割り当てられた固有のグループID1111と、グループ名1112と、グループ化の条件1113を持つ。
グループ化の条件1113は、特徴量の作成元である実行基盤構築の定義情報の関連性が強い特徴量同士でグループ化するための条件である。その一例については後述する。
基盤グループ・エラー内容対応テーブル112は、エラー内容に関する特徴量を実行基盤に関する特徴量と関連付けるためのエラー内容と実行基盤との関連性を定義するテーブルである。
基盤グループ・エラー内容対応テーブル112は、各条件に割り当てられた固有の条件ID1121と、対応付けの条件1122と、対応させるグループID1123を持つ。
対応付けの条件1122は、実行基盤構築情報とエラー内容という異なる二つの情報を持つ基盤に関する特徴量とエラー内容に関する特徴量を関連付けするための条件である。その一例については後述する。
正常時実行基盤構築情報テーブル121は、アプリケーションおよびその実行基盤の構築が正常に行われた際の情報を管理するテーブルである。本テーブルの情報は、アプリケーションを開発したユーザ200−1が開発時に行ったテストの情報や、アプリケーションを利用したユーザ200−2が正常にアプリケーション実行基盤を構築できた際の情報によって蓄積・更新される。
正常時実行基盤構築情報テーブル121は、アプリケーション名1211と、各アプリケーションに割り当てられた固有のアプリケーションID1212と、正常時基盤構築情報1213を持つ。
正常時基盤構築情報1213は、正常動作データベース120が持つアプリケーションおよびその実行基盤の構築が正常に行われた際の実行基盤情報であり、実行基盤情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
組み合わせ相性テーブル131は、過去に行われたアプリケーション実行基盤構築失敗原因の推論結果に基づいて作成される、過去の原因推論結果とその精度に関するテーブルである。本テーブルの情報は、アプリケーションおよびその実行基盤構築に失敗し、原因推論システム100による失敗原因の推論結果に基づいて実行基盤構築の問題を解決したユーザ200がフィードバックした対応内容に基づいて蓄積・更新される。
組み合わせ相性テーブル131は、過去の失敗原因推論時の受付番号1311と、その際に実行環境構築に失敗したアプリケーションのアプリケーションID1312と、そのエラー内容に関するテキスト情報が基盤・エラー内容関連付処理部106によって関連付けられた基盤に関する特徴量のグループID1313と、ユーザ200による推論結果のフィードバック結果に基づいた基盤に関する特徴量の各グループとエラー内容に関する特徴量の組み合わせ相性1314を持つ。
組み合わせ相性1314には、エラー内容に関する特徴量を、基盤に関する特徴量の各グループと組み合わせた場合の相性が登録される。相性の例として、たとえば、推論結果の正誤や、推論時に計算される推論結果の精度の確率値やその両方が登録されることが考えられる。組み合わせ相性1314の登録は、例えば、相性の例として推論結果の正誤が登録される場合には、ユーザ200が対応内容フィードバック画面630を介して推論結果の正誤を登録した結果に基づいて入力され、相性の例として推論時に計算される推論結果の精度の確率値が登録される場合には、後述する基盤特徴量推論処理部104おけるステップによる推論処理の結果に基づいて入力されることが考えられる。
具体的には、図7の組み合わせ相性テーブル131では、case-001の事例は、エラー内容のテキストを分析した結果、gr-001(Application)に関連付けられている。そして、特徴量の推論結果との組み合わせ相性は、gr-001(Application)が正(80%)となり最も高い。すなわち、case-001の事例は、エラー内容のテキストからアプリケーションに関するエラーであることが示唆され、アプリケーションの特徴量の推論結果との組み合わせることが適切であることが示される。
一方、case-002の事例は、エラー内容のテキストを分析した結果、gr-003(Storage)に関連付けられているが、特徴量の推論結果との組み合わせ相性は、gr-002(Network)が正(75%)となり最も高い。すなわち、case-002の事例は、エラー内容のテキストからストレージに関するエラーであることが示唆されるが、ネットワークの特徴量の推論結果との組み合わせること推奨されることになる。
このように、本実施例に係るシステムでは、エラー内容に基づくグループ分けと、特徴量に基づくグループ分けとを個別に行い、過去の実績を参照して組み合わせを決定する。このため、アプリ実行基盤の構築先環境とエラー報告文書に記載されるエラー内容の両方を考慮して、自動で高精度な原因推論を行うことができる。
過去事例テーブル132は、過去に行われたアプリケーション実行基盤構築失敗原因の推論に用いられた各種情報および推論結果を管理するテーブルである。
過去事例テーブル132は、過去の失敗原因推論時の受付番号1321と、その際に実行環境構築に失敗したアプリケーションのアプリケーションID1322と、異常時の基盤構築情報1323と、異常時のエラー内容テキスト情報1324と、エラー内容テキスト情報から作成されたエラー内容に関する特徴量であるエラー内容特徴量1325と、正常時および異常時の基盤構築情報から作製された基盤に関する特徴量である基盤特徴量1326と、推論結果1327を持つ。
異常時の基盤構築情報1323は、アプリケーションおよびその実行基盤の構築に失敗した際(異常時)の実行基盤情報であり、実行基盤情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
エラー内容テキスト情報1324は、アプリケーションおよびその実行基盤の構築に失敗した際(異常時)のエラー内容を示したテキスト情報であり、当該情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
エラー内容特徴量1325は、エラー内容特徴量作成・推論処理部105においてアプリケーションおよびその実行基盤の構築に失敗した際(異常時)のエラー内容を示したテキスト情報から作成された特徴量であり、当該情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
基盤特徴量1326は、基盤特徴量作成処理部102において実行基盤構築情報から作成された実行基盤に関する特徴量または当該特徴量が基盤特徴量グループ化処理部103においてグループ化された後の特徴量またはその両方であり、当該情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
推論結果1327は、原因推論システムによって推論された結果に関する情報であり、当該情報の記述そのものであってもよいし、当該情報を記述したファイルの格納場所を示すポインタのようなものであってもよい。
<フローチャートの説明>
図8に、アプリケーション実行基盤の情報とエラー内容を表すテキスト文章を用いたアプリケーション実行基盤の構築失敗原因推論処理の一例を示す。以下の処理は、ユーザ200が端末310のクライアントプログラム711に表示された原因推論システムGUI140の実行基盤構築失敗内容入力画面610のアプリケーション名入力窓611、基盤構築情報入力窓612、エラー内容情報入力窓613にそれぞれアプリケーション名、基盤構築情報、エラー内容情報を入力し、推論開始ボタン614を押したこと、または実行基盤およびアプリケーションが原因推論システム100と通信可能な場合は実行基盤構築失敗内容入力画面610を介さずに直接原因推論システム100に入力されたこと、を契機に実行される。
まず、ステップ1000において、ユーザ200が入力したアプリケーション名、基盤構築情報、エラー内容情報を、原因推論システム100が受信する。
次に、ステップ1001において、原因推論システム100が基盤特徴量作成処理部102を呼び出し、前ステップ1000にて原因推論システム100が受信した実行基盤構築失敗時(異常時)の基盤構築情報と、正常動作データベース120に蓄積されている正常時の基盤構築情報に基づいて実行基盤に関す特徴量を作成する。処理の詳細については後述する。
次に、ステップ1002において、原因推論システム100が基盤特徴量グループ化処理部103を呼び出し、基盤グループ化テーブル111に基づいて、前ステップ1001で作成した実行基盤に関する特徴量をグループ化する。処理の詳細については後述する。
次に、ステップ1003において、原因推論システム100が基盤特徴量推論処理部104を呼び出し、前述の基盤特徴量グループ化処理部103でグループ化された特徴量それぞれを用いて実行基盤構築の失敗原因に関する推論を行う。処理の詳細については後述する。
次に、ステップ1004において、原因推論システム100がエラー内容特徴量作成・推論処理部105を呼び出し、前ステップ1000にて原因推論システムが受信した実行基盤構築失敗時(異常時)のエラー内容テキスト情報に基づいてエラー内容に関する特徴量を作成し、実行基盤構築の失敗原因に関する推論を行う。処理の詳細については後述する。
次に、ステップ1005において、原因推論システム100が基盤・エラー内容関連付処理部106を呼び出し、基盤グループ・エラー内容対応テーブル112と基盤グループ化テーブル111に基づいて、エラー内容に関する特徴量を実行基盤と関連付けた後、さらに基盤に関する特徴量のグループと関連付ける。処理の詳細については後述する。
次に、ステップ1006において、原因推論システム100が組み合わせ決定処理部107を呼び出し、過去事例蓄積データベース130に蓄積された過去の原因推論結果とその精度の情報に基づいて、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果の組み合わせを決定する。処理の詳細については後述する。
次に、ステップ1007において、原因推論システム100が推論結果組み合わせ処理部108を呼び出し、前ステップ1006において決定した組み合わせに基づいて、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果を組み合わせ、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因について最終的な推論結果を導く。
次に、ステップ1008において、原因推論システム100が推論結果を端末310のクライアントプログラム711に送信し、原因推論システムGUI140の原因推論結果表示画面620に推論結果を表示する。なお、検索結果はGUIに表示せず、ユーザ200は推論結果をデータとして受け取っても良い。
最後に、ステップ1009において、過去事例蓄積データベース130の過去事例テーブル132に、受付番号、アプリケーションID、ユーザ200が原因推論システムGUI140の実行基盤構築失敗内容入力画面610に入力した異常時基盤構築情報およびエラー内容テキスト情報、推論過程で作成したエラー内容特徴量および基盤特徴量、推論結果を保存する。
なお、過去事例蓄積データベース130の過去事例テーブル132への各種データの保存は、保存すべきデータが作成されたタイミング、例えば、ユーザ200の原因推論リクエストに対して受付番号を発行したとき、ユーザ200が原因推論システムGUI140の実行基盤構築失敗内容入力画面610に入力しアプリケーション名のアプリケーションIDを特定したとき、ユーザ200が原因推論システムGUI140の実行基盤構築失敗内容入力画面610に入力した異常時基盤構築情報およびエラー内容テキスト情報を受け付けたとき、エラー内容特徴量および基盤特徴量を作成したとき、推論結果を算出したとき、に別々に行ってもよい。
図9に、基盤特徴量作成処理部102が実行基盤構築情報から実行基盤に関する特徴量を作成する処理の一例を示す。以下の処理は、原因推論システム100によって基盤特徴量作成処理部102が呼び出されたことを契機に実行される。
まず、ステップ1021において、基盤特徴量作成処理部102が、正常動作データベース120の正常時実行基盤構築情報テーブル121のアプリケーション名1211を参照し、実行基盤構築に失敗したアプリケーションと同じアプリケーションのアプリケーションID1212と正常時基盤構築情報1213を取得する。
以降、コンテナ技術によるアプリケーションおよびその実行基盤の構築ツールとして、Kubernetesを利用したアプリケーションを構築する場合を例に、図4Aに示すような項目(key)711と値(Value)712による実行基盤構築情報710が入力されたと仮定して処理方法を述べる。
ステップ1022において基盤構築情報から項目(key)711をひとつ選択する。
次に、ステップ1023において選択した項目(key)711について正常時と異常時の値(Value)712を比較する。
次に、ステップ1024において前ステップの比較結果に基づいて選択した項目(key)711に対応する特徴量のベクトル値を設定する。例えば、正常時と異常時の値(Value)712が等しい場合にはその旨を表すベクトル値(例えば0)を設定し、正常時と異常時の値(Value)712が異なる場合にはその旨を表すベクトル値(例えば1)を設定することや、値(Value)712の大小によってベクトル値(例えば-0.5)を設定すること、正常時と異常時のどちらかにしか値が存在しない場合にはその旨を表すベクトル値(例えば-1)を設定するなどが考えられる。
次に、ステップ1025において選択した項目(key)711が最後の実行基盤の構築情報の項目(key)711であるかを確認し、最後の項目(key)711であればステップ1026へ進み、最後でなければステップ1022へ戻る。
最後に、ステップ1026において、作成した実行基盤に関する特徴量を原因推論システム100に返す。
なお、基盤に関する特徴量は、基盤構築情報から作成されるものであれば、基盤構築情報が項目(key)711と値(Value)712以外の形式で入力される場合は上記以外の方法で行われてもよいし、基盤構築情報が項目(key)711と値(Value)712以外の形式で入力される場合であっても、上記以外の方法で基盤に関する特徴量の作成を行ってもよい。
図10に、基盤特徴量グループ化処理部103が実行基盤に関する特徴量をグループ化する処理の一例を示す。以下の処理は、原因推論システム100によって基盤特徴量グループ化処理部103が呼び出されたことを契機に実行される。
まず、ステップ1031において、基盤に関する特徴量のベクトル値をひとつ選択する。
次に、ステップ1032において、基盤グループ化テーブル111のグループ化に関する条件1113を参照し、対応するグループに振り分ける。このグループ化に関する条件1113は、基盤に関する特徴量の作成元である実行基盤構築の定義情報の関連性が強い特徴量同士でグループ化するための条件である。例えば、Kubernetesを利用したアプリケーションの構築の場合には、YAML形式で記載された実行基盤の構築情報の項目(key)711に注目し、ネットワークに関する項目(key)711に関する特徴量のグループ、ストレージに関する項目(key)711に関する特徴量のグループ、のように、アプリケーションを構成するリソースごとのグループを設定し、各特徴量のベクトル値がどのリソースを定義する項目(key)711から作成されたかを判断基準とした条件を設定してグループ化することが考えられる。
次に、ステップ1033において、選択した基盤に関する特徴量のベクトル値が最後のベクトル値であるかを確認し、最後のベクトル値であればステップ1034へ進み、最後でなければステップ1031へ戻る。
最後に、ステップ1034において、グループ化した基盤に関する特徴量を原因推論システム100に返す。
図11に、基盤特徴量推論処理部104がグループ化された特徴量を用いて実行基盤構築の失敗原因に関する推論を行う処理の一例を示す。以下の処理は、原因推論システム100によって基盤特徴量推論処理部104が呼び出されたことを契機に実行される。
まず、ステップ1041において、グループ化した基盤に関する特徴量をひとつ選択する。
次に、ステップ1042において、過去事例蓄積データベース130の過去事例テーブル132から、前ステップで選択した基盤に関する特徴量のグループと同じグループの基盤特徴量1326をすべてまたは一部取得し、推論モデルの構築(学習)処理を行う。この際に用いる推論方法は決定木やSupport Vector Machineなどの機械学習方法を用いることが考えられる。
次に、ステップ1043において、前ステップにおいて構築(学習)した推論モデルを用いて、実行基盤構築の失敗原因を推論する。
次に、ステップ1044において、選択したグループが最後のグループであるかを確認し、最後のグループであればステップ1045へ進み、最後でなければステップ1041へ戻る。
最後に、ステップ1045において、推論結果を原因推論システム100に返す。
図12に、エラー内容特徴量作成・推論処理部105において、ユーザ200が入力したエラー内容テキスト情報に基づいてエラー内容に関する特徴量を作成し、実行基盤構築の失敗原因に関する推論を行う処理の一例を示す。以下の処理は、原因推論システム100によってエラー内容特徴量作成・推論処理部105が呼び出されたことを契機に実行される。
まず、ステップ1051において、ユーザ200が入力したエラー内容テキスト情報に基づいてエラー内容に関する特徴量を作成する。エラー内容に関する特徴量作成の方法として、たとえば、word2vec(MIKOLOV, Tomas, et al, “Efficient estimation of word representations in vector space”, arXiv preprint arXiv:1301.3781, 2013.)のような単語をベクトル化する手法を用いてエラー内容に関するテキスト情報に含まれる単語をベクトル化して利用する方法や、doc2vec(Le, Quoc, et al, "Distributed representations of sentences and documents." International conference on machine learning. 2014.)やtf-idf(term frequency-inverse document frequency)のような文書全体の特徴をベクトル化する手法を用いる方法が考えられる。また、エラー内容に関する特徴量作成には、ユーザ200が入力したエラー内容テキスト情報に加えて、過去事例蓄積データベース130の過去事例テーブル132から、すべてまたは一部のエラー内容テキスト情報1324を用いたり、事前にエラー内容テキストとして入力されうる情報(たとえば、kubernetesなどのツールが出力するエラーメッセージなど)をデータベース化した情報などを用いたり、その両方を用いてもよい。また、エラー内容テキスト情報として入力されたテキスト全体を用いて特徴量を作成してもよいし、一部だけを抽出して特徴量を作成してもよい。
次に、ステップ1052において、過去事例蓄積データベース130の過去事例テーブル132から、エラー内容特徴量1325をすべてまたは一部取得し、推論モデルの構築(学習)処理を行う。この際に用いる推論方法は決定木やSupport Vector Machineなどの機械学習方法を用いることが考えられる。また、本ステップ1052で用いる推論モデルの構築方法は、基盤特徴量推論処理部104のステップ1042で用いる方法と同一であってもよいし、異なってもよい。
次に、ステップ1053において、前ステップにおいて構築(学習)した推論モデルを用いて、実行基盤構築の失敗原因を推論する。
最後に、ステップ1054において、推論結果を原因推論システム100に返す。
なお、上記ステップ1051の特徴量作成処理と上記ステップ1052の推論モデル構築処理は、それぞれ独立した処理部として構成されていてもよい。
図13に、基盤・エラー内容関連付処理部106が基盤グループ・エラー内容対応テーブル112と基盤グループ化テーブル111に基づいて、エラー内容に関する特徴量を実行基盤と関連付けた後、さらに基盤に関する特徴量のグループと関連付ける処理の一例を示す。以下の処理は、原因推論システム100によってエラー内容特徴量作成・推論処理部105が呼び出されたことを契機に実行される。
まず、ステップ1061において、基盤グループ・エラー内容対応テーブル112の条件ID1121をひとつ選択する。
次に、ステップ1062において、選択した条件ID1121の条件1122が、ユーザ200が入力したエラー内容テキスト情報に合致するか確認する。条件が合致すればステップ1063へ進み、合致しなければステップ1061へ戻る。この基盤グループとエラー内容の対応付けに関する条件1122は、実行基盤構築情報とエラー内容という異なる二つの情報を持つ基盤に関する特徴量とエラー内容に関する特徴量を関連付けするための条件である。その例として、例えばエラーはアプリケーションを構成するリソース(ネットワークやストレージ)のどこで発生したかに基づいて条件を設定する方法や、エラーメッセージを出力したコンポーネントがアプリケーションを構成するリソースのうち何を管理するかに基づいて条件を設定する方法などが考えられる。
次に、ステップ1063において、基盤グループ・エラー内容対応テーブル112を参照し、条件に合致するグループID1123を取得し、基盤グループ化テーブル111のグループID1111と対応付けることで、エラー内容に関する特徴量のグループを決定する。
最後に、ステップ1064において、グループ決定結果を原因推論システム100に返す。
図14に、組み合わせ決定処理部107が、過去事例蓄積データベース130の組み合わせ相性テーブル131に基づいて、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果の組み合わせを決定する処理の一例を示す。以下の処理は、原因推論システム100によってエラー内容特徴量作成・推論処理部105が呼び出されたことを契機に実行される。
まず、ステップ1071において、過去事例蓄積データベース130の組み合わせ相性テーブル131から、過去事例の受付番号1311をひとつ選ぶ。
次に、ステップ1072において、選択した受付番号1311の過去事例のグループID1313が、基盤・エラー内容関連付処理部106で決定したエラー内容に関する特徴量のグループ1123と一致するか確認し、一致すればステップ1073へ進み、一致しなければステップ1074へ進む。
ステップ1073では、選択した受付番号の過去事例を組み合わせ相手グループ決定の参考事例としてマークする。
次に、ステップ1074において、選択した受付番号の過去事例が最後の過去事例であるかを確認し、最後であればステップ1075へ進み、最後でなければステップ1071へ戻る。
次に、ステップ1075において、参考候補の情報に基づいて組み合わせを決定する。組み合わせ決定方法の例として、例えば、組み合わせ相性テーブル131の組み合わせ相性1314に各グループと組み合わせた場合の推論結果の正誤が記載されている場合には正しい推論が最も多いグループとの組み合わせを組み合わせ相手とする方法や、組み合わせ相性テーブル131の組み合わせ相性1314に推論時に計算される推論結果に対する精度の確率値が記載されている場合にはその平均値が最も高いグループとの組み合わせを組み合わせ相手とする方法、各グループと組み合わせた場合の推論結果の正誤と推論結果に対する精度の確率値の両方を考慮して組み合わせ相手を決定する方法が挙げられる。
最後に、ステップ1076において組み合わせ相手を原因推論システム100に返す。
なお、決定する組み合わせ相手は1グループに限らず、複数であってもよい。また、組み合わせのバリエーションも1パターンに限らず、複数提案してもよいし、その中で推論精度が高いと考えられる順に順位付けされていてもよい。また、ステップ1073でマークした過去事例を組み合わせ相手グループ決定の参考事例を、組み合わせ相性テーブル131のアプリケーションID1312を参考に絞り込んでから組み合わせ相手を決定してもよい。
図15に、推論結果組み合わせ処理部108が、組み合わせ決定処理部107において決定した組み合わせに基づいて、基盤に関する特徴量による推論結果とエラー内容に関する特徴量による推論結果を組み合わせ、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因について最終的な推論結果を導く処理の一例を示す。以下の処理は、原因推論システム100によってエラー内容特徴量作成・推論処理部105が呼び出されたことを契機に実行される。
まず、ステップ1081において、組み合わせ決定処理部107において決定した組み合わせを一つ選択し、エラー内容に関する特徴量の推論結果と、組み合わせる基盤に関する特徴量の推論結果を取得する。
次に、ステップ1082において、エラー内容に関する特徴量の推論結果と、組み合わせる基盤に関する特徴量の推論結果とを組み合わせ、失敗原因についての最終的な推論結果を導く。組み合わせの例としては、たとえば、過去事例蓄積データベース130に蓄積された過去の推論精度や、推論時に推論結果に対する精度の確率値が計算される場合にはその確率値に基づいて推論結果に重みづけを行って最終的な推論結果を導く方法や、組み合わせる推論結果の中で最も多く原因であると推論された結果を採用する方法や、推論に用いるグループの特性に応じて、あらかじめ設定した条件により推論結果を決定する(たとえば、グループAの推論結果がaであり推論時に計算される精度の確率値がn以下である場合にはグループBの結果を採用する、組み合わせにグループCが含まれる場合には推論時に計算されるグループCとグループDの確率値を足し合わせてグループEと比較する、など)方法などが考えられる。
次に、ステップ1083において、選択した組み合わせが最後の組み合わせであるかを確認し、最後であればステップ1084へ進み、最後でなければステップ1081へ戻る。
最後に、ステップ1084において、最終的な推論結果を原因推論システム100に返す。
なお、失敗原因に基づいてアプリケーションの開発者がアプリケーションのパッケージに含まれるソースコードを修正する場合と、アプリケーションの利用者が実行基盤を構築しようとする環境を修正する場合が想定されるが、推論結果組み合わせ処理部108が導く最終的な失敗原因の推論結果は、実行基盤構築の失敗原因箇所そのものであってもよいし、失敗箇所が発生する原因となったユーザ200(たとえばアプリケーション開発者または利用者)であってもよいし、その両方であってもよい。
実施例1では、ユーザ200が原因推論システムGUI140の実行基盤構築失敗内容入力画面610に入力した、または実行基盤およびアプリケーションが原因推論システム100と通信可能な場合は実行基盤構築失敗内容入力画面610を介さずに直接原因推論システム100に入力された、基盤構築情報とエラー内容情報に基づいて、コンテナ技術を用いたアプリケーションおよびその実行基盤構築の失敗原因の推論を行う例を述べた。しかし、推論の過程においては、基盤特徴量推論処理部104における推論モデル構築(学習)処理ステップやエラー内容特徴量作成・推論処理部105における推論モデル構築(学習)処理ステップのように時間がかかる処理が存在する。また、各処理部における処理をひとつずつ順番に行っている。よって、原因推論結果のユーザ200への提示が遅くなってしまう。
これを改善するため、上述のような時間がかかる処理を事前に行ってその処理結果を原因推論システムのメモリまたは記憶装置に保持しておき、失敗原因の推論時に参照することで、ユーザ200による情報入力から原因推論結果の提示までにかかる時間を短縮できる。また、基盤構築情報とエラー内容情報の一方だけで行える処理を並列して行ってその処理結果を原因推論システムのメモリまたは記憶装置920に保持しておき、その処理結果を用いて両方の情報が必要な処理を行うことで、さらに時間を短縮できる。処理結果を保持する場所は原因推論システムのメモリまたは記憶装置920上だけでなく、別にネットワークアクセス可能なデータベースを設けてそこに保持しても良いし、端末のメモリまたは記憶装置910に保持しても良い。
本実施例では、実行環境構築失敗時(異常時)の基盤構築情報とエラー内容情報を用いない処理を事前に行うことができ、また、実行環境構築失敗時(異常時)の基盤構築情報とエラー内容情報の一方だけで行える処理は並列して実行可能である。
まず、事前の実施が適用できる処理について述べる。具体的には、基盤特徴量推論処理部104における推論モデル構築(学習)処理ステップ1042やエラー内容特徴量作成・推論処理部105における推論モデル構築(学習)処理ステップ1052、などの処理が事前に実施可能である。
例えば、基盤特徴量推論処理部104における推論モデル構築(学習)処理ステップ1042とエラー内容特徴量作成・推論処理部105における推論モデル構築(学習)処理ステップ1052は、図8に示すアプリケーション実行基盤の情報とエラー内容を表すテキスト文章を用いたアプリケーション実行基盤の構築失敗原因推論処理の一例において、結果を保存するステップ1009によって過去事例蓄積データベース130の過去事例テーブル132にエラー内容特徴量と基盤特徴量が保存されたことを契機に行うことができる。
または、エラー内容特徴量作成・推論処理部105の特徴量作成ステップ1051によりエラー内容に関する特徴量が作成された際に過去事例蓄積データベース130の過去事例テーブル132にエラー内容特徴量1325が登録される場合は、その際にエラー内容特徴量作成・推論処理部105における推論モデル構築(学習)処理ステップ1052を行ってもよいし、基盤特徴量グループ化処理部103により基盤に関する特徴量が作成された際に過去事例蓄積データベース130の過去事例テーブル132に基盤特徴量1326が登録される場合は、その際にエラー内容特徴量作成・推論処理部105における推論モデル構築(学習)処理ステップ1052を行ってもよい。ただし、その場合には、失敗原因の推論は原因を推論したい失敗に関する特徴量(直前に作成した新しい特徴量)を含まない過去の事例だけを使って構築(学習)されたモデルを使って推論を行うものとする。
以下では、並列化可能な処理について述べる。具体的には、図8に示すアプリケーション実行基盤の情報とエラー内容を表すテキスト文章を用いたアプリケーション実行基盤の構築失敗原因推論処理の一例のうち、基盤特徴量作成処理部102による基盤に関する特徴量の作成処理(ステップ1001)から基盤特徴量グループ化処理部103による基盤に関する特徴量のグループ化(ステップ1002)を経て基盤特徴量推論処理部104による基盤に関する特徴量を用いた推論処理(ステップ1003)を行うまでの一連の流れと、エラー内容特徴量作成・推論処理部105によるエラー内容に関する特徴量の作成と同特徴量を用いた推論処理(ステップ1004)と、基盤・エラー内容関連付処理部106による基盤グループとエラー内容の関連付け処理(ステップ1005)から組み合わせ決定処理部107による推論結果の組み合わせを決定する処理(ステップ1006)を行うまでの一連の流れ、の最大3つの処理フローを並列化できる。これら3つの処理フローは、すべてが独立して並列化されていてもよいし、このうち任意の2つの処理フローが1つのフローとして順番に行われてもよい。また、その場合の順番は問わないものとする。
また、上記の処理以外であっても、ユーザ200が原因推論システムGUI140の実行基盤構築失敗内容入力画面610に入力する実行環境構築失敗時(異常時)の基盤構築情報とエラー内容情報を用いなくても行える処理であれば、当該情報の入力を待たずに事前に処理を実行しておき、その結果を検索時に呼び出す形をとっても良いし、実行環境構築失敗時(異常時)の基盤構築情報とエラー内容情報の一方だけで行える処理は並列して行ってもよい。
上述してきたように、本実施の形態によれば、原因推論システムは、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の成功時の前記実行基盤の情報を保存するデータベースと、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理部と、前記第1の推論処理部による推論結果と、前記第2の推論処理部による推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、を備える。
かかる構成及び動作により、原因推論システムは、コンテナ技術を用いたアプリケーションおよびその実行基盤の構築に失敗した際に、アプリ実行基盤の構築先環境とエラー報告文書に記載されるエラー内容の両方を考慮して自動で原因を推論することが可能となる。また、エラー報告文書のみを用いて推論を行う場合に比べ、より精度の高い推論の実現することができる。
このため、本実施の形態によれば、コンテナアプリケーションのデプロイ(アプリケーション実行基盤の構築およびアプリケーションそのものの構築)時に発生する障害の対応を支援することができる。
また、本実施の形態に係る原因推論システムは、前記失敗時および前記成功時の実行基盤の情報の差分から基盤特徴量を作成する基盤特徴量作成処理部と、前記基盤特徴量を、関連するリソースの種類ごとにグループ化するグループ化処理部と、をさらに備え、前記第1の推論処理部は、前記グループ化された基盤特徴量を用い、前記リソースの種類ごとに前記失敗原因の推論を行う。
このため、膨大な実行基盤構築の定義情報から作成される膨大な特徴量を分割してから推論を行うことで、特徴量の次元を下げることができ、精度の高い推論を行うことが可能となる。また、実行基盤構築の定義情報の関連性に基づいて特徴量をグループ化することから、統計処理による数値的なグループ化に比べて各グループに対して明確に基盤の情報を反映することが可能であり、このような特徴量を用いて基盤特徴量推論処理を行うことによって、得られる推論結果と実行基盤との結びつけを保つことが可能となる。さらに、実行基盤との関連性を保持した推論結果を用いて推論結果の組み合わせを行うことで、より精度の高い組み合わせ結果を得ることが可能となる。
また、本実施の形態に係る原因推論システムは、前記テキスト情報を、前記リソースの種類に関連付ける関連付処理部と、前記テキスト情報に関連付けられたリソースの種類に基づいて推論結果の組み合わせを決定する組み合わせ決定処理部と、をさらに備える。また、過去の推論結果に関する情報を蓄積する過去事例蓄積部をさらに備え、前記組み合わせ決定処理部は、前記過去事例蓄積部を参照して、推論結果の組合せを決定する。
かかる構成及び動作により、過去の事例を利用して実行基盤に基づく推論結果と、エラーログに基づく推論結果とを適切に組み合わせることができる。
また、本実施の形態に係る原因推論システムは、前記組み合わせ処理部による最終的な結論を表示出力する表示出力部をさらに備える。また、前記組み合わせ処理部は、前記最終的な結論として複数の原因の候補を順位付けし、前記表示出力部は、順位付けされた複数の原因の候補を表示出力する。
かかる構成及び動作により、推論結果をユーザに提示し、コンテナアプリケーションのデプロイ時に発生する障害の対応を支援することができる。
また、本実施の形態によれば、前記組み合わせ処理部は、前記最終的な結論として、前記失敗が前記アプリケーションの開発者に起因するか、前記アプリケーションの利用者に起因するかを判別することができる。
このため、障害の対応を行うべき適切なユーザへの通知が可能である。
なお、本発明は上述の実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、かかる構成の削除に限らず、構成の置き換えや追加も可能である。
例えば、図1に示したデータベースを外部に設けた、原因推論装置として実施してもよい。
100……原因推論システム、102……基盤特徴量作成処理部、103……基盤特徴量グループ化処理部、104……基盤特徴量推論処理部、105……エラー内容特徴量作成・推論処理部、106……基盤・エラー内容関連付処理部、107……組み合わせ決定処理部、108……推論結果組み合わせ処理部、120……正常動作データベース、130……過去事例蓄積データベース130、140……原因推論システムGUI

Claims (9)

  1. コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の成功時の前記実行基盤の情報を保存するデータベースと、
    前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、
    前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、
    前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理部と、
    前記第1の推論処理部による推論結果と、前記第2の推論処理部による推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、
    を備えたことを特徴とする原因推論システム。
  2. 前記失敗時および前記成功時の実行基盤の情報から基盤特徴量を作成する基盤特徴量作成処理部と、
    前記基盤特徴量を、関連するリソースの種類ごとにグループ化するグループ化処理部と、をさらに備え、
    前記第1の推論処理部は、前記グループ化された基盤特徴量を用い、前記リソースの種類ごとに前記失敗原因の推論を行う
    ことを特徴とする請求項1に記載の原因推論システム。
  3. 前記テキスト情報を、前記リソースの種類に関連付ける関連付処理部と、
    前記テキスト情報に関連付けられたリソースの種類に基づいて推論結果の組み合わせを決定する組み合わせ決定処理部と、
    をさらに備えたことを特徴とする請求項2に記載の原因推論システム。
  4. 過去の推論結果に関する情報を蓄積する過去事例蓄積部をさらに備え、
    前記組み合わせ決定処理部は、前記過去事例蓄積部を参照して、推論結果の組合せを決定する
    ことを特徴とする請求項3に記載の原因推論システム。
  5. 前記組み合わせ処理部による最終的な結論を表示出力する表示出力部をさらに備えたことを特徴とする請求項1に記載の原因推論システム。
  6. 前記組み合わせ処理部は、前記最終的な結論として複数の原因の候補を順位付けし、
    前記表示出力部は、順位付けされた複数の原因の候補を表示出力する
    ことを特徴とする請求項5に記載の原因推論システム。
  7. 前記組み合わせ処理部は、前記最終的な結論として、前記失敗が前記アプリケーションの開発者に起因するか、前記アプリケーションの利用者に起因するかを判別することを特徴とする請求項1に記載の原因推論システム。
  8. コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付けるインタフェースと、
    前記構築の成功時の前記実行基盤の情報を保存するデータベースを参照し、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理部と、
    前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理部と、
    前記第1の推論処理部による推論結果と、前記第2の推論処理部による推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理部と、
    を備えたことを特徴とする原因推論装置。
  9. コンテナ技術を用いたアプリケーションおよびその実行基盤の構築について、前記構築の失敗時の実行基盤の情報を受け付けるとともに、前記失敗時のエラー内容を表すテキスト情報を受け付ける受付ステップと、
    前記構築の成功時の前記実行基盤の情報を参照し、前記失敗時および前記成功時の前記実行基盤の情報に基づいて作成した特徴量を使って、失敗原因の推論を行う第1の推論処理ステップと、
    前記テキスト情報に基づいて作成した特徴量を使って、前記失敗原因の推論を行う第2の推論処理ステップと、
    前記第1の推論処理ステップによる推論結果と、前記第2の推論処理ステップによる推論結果とを組み合わせ、前記実行基盤の構築が失敗した原因について最終的な結論を導く組み合わせ処理ステップと、
    を含むことを特徴とする原因推論方法。
JP2020101390A 2020-06-11 2020-06-11 原因推論システム、原因推論装置および原因推論方法 Pending JP2021196730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020101390A JP2021196730A (ja) 2020-06-11 2020-06-11 原因推論システム、原因推論装置および原因推論方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020101390A JP2021196730A (ja) 2020-06-11 2020-06-11 原因推論システム、原因推論装置および原因推論方法

Publications (1)

Publication Number Publication Date
JP2021196730A true JP2021196730A (ja) 2021-12-27

Family

ID=79195597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020101390A Pending JP2021196730A (ja) 2020-06-11 2020-06-11 原因推論システム、原因推論装置および原因推論方法

Country Status (1)

Country Link
JP (1) JP2021196730A (ja)

Similar Documents

Publication Publication Date Title
US10618137B2 (en) Automated constructing method of cloud manufacturing service and cloud manufacturing system
JP5684946B2 (ja) イベントの根本原因の解析を支援する方法及びシステム
CN108304201B (zh) 对象更新方法、装置及设备
CN110928772B (zh) 一种测试方法及装置
US11551105B2 (en) Knowledge management using machine learning model trained on incident-knowledge relationship fingerprints
US10719428B2 (en) Automation framework for testing user interface applications
US8566792B2 (en) Validating visual components
US9262126B2 (en) Recommendation system for agile software development
US11954461B2 (en) Autonomously delivering software features
US20180365700A1 (en) Identifying clusters for service management operations
US7159209B1 (en) Inter-application validation tool for use in enterprise architecture modeling
US20150222731A1 (en) Computer, guide information providing method and recording medium
CN111324535B (zh) 一种控件异常检测方法、装置和计算机设备
US11567918B2 (en) Generating context tree data based on a tailored data model
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
US20230334072A1 (en) Automatic question answering system and question-answer pair data generation method
US9727663B2 (en) Data store query prediction
US20190286500A1 (en) Systems and method for event parsing
WO2020219750A1 (en) Management of annotation jobs
US9201960B2 (en) Virtual agent response to customer inquiries
JP2017016507A (ja) テスト管理システムおよびプログラム
US20200395004A1 (en) Computer System, Model Generation Method, and Computer Readable Recording Medium
US8930908B2 (en) Aspect and system landscape capability-driven automatic testing of software applications
JP2021196730A (ja) 原因推論システム、原因推論装置および原因推論方法
US20210097447A1 (en) Computer System and Method for Supporting Model Selection