(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-31
(54)【発明の名称】MLモデルを用いて準リアルタイムデータ/オフラインデータでデータセンタの大規模な故障の検出
(51)【国際特許分類】
G06F 11/07 20060101AFI20240524BHJP
G06F 11/22 20060101ALI20240524BHJP
【FI】
G06F11/07 140A
G06F11/22 675E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023574401
(86)(22)【出願日】2022-05-31
(85)【翻訳文提出日】2023-12-01
(86)【国際出願番号】 US2022031614
(87)【国際公開番号】W WO2022256330
(87)【国際公開日】2022-12-08
(32)【優先日】2021-06-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モンガ,アマルパル・シン
(72)【発明者】
【氏名】チェン,ビン
(72)【発明者】
【氏名】ハミルトン,アレックス・エドワード
【テーマコード(参考)】
5B042
5B048
【Fターム(参考)】
5B042JJ30
5B042KK15
5B048CC17
(57)【要約】
本開示の実施形態は、データセンタ故障の検出および警告の生成に関する。本明細書に記載された故障検出サービスは、データセンタの様々なソースから準リアルタイムデータを処理し、モデルを用いてデータを処理することによって、検出された故障の1つ以上の推測される発生源を決定し得る。本明細書に記載されたモデルは、準リアルタイムデータおよびオフラインデータを処理し、故障の1つ以上の推測される発生源を決定するための一組のルールを組み込む1つ以上の機械学習モデルを含み得る。故障の推測される発生源および故障に関連する他のデータを提供するように、警告メッセージが、生成され得る。
【特許請求の範囲】
【請求項1】
データセンタ内の故障の1つ以上の推測される発生源を推定するための方法であって、前記方法は、
データセンタ、前記データセンタ内の一連の装置、および前記データセンタ内の前記装置上で実行しているアプリケーションに関連する様々なパラメータを提供する一組の入力データを取得することと、
取得された前記一組の入力データに少なくとも部分的に基づいて、前記データセンタの少なくとも1つの機能の故障を検出することと、
前記故障を検出することに応答して、モデルを用いて前記一組の入力データを処理することによって、前記故障の1つ以上の推測される発生源を推定することとを含み、前記モデルは、前記一組の入力データと、前記故障の前記1つ以上の推測される発生源としての前記装置または前記装置上で実行している前記アプリケーションとの間の相関関係を特定する一組のルールを組み込み、
前記故障の前記1つ以上の推測される発生源を推定することは、
前記モデルに利用可能な前記一組のルールと各パラメータに関連する過去データとを用いて、前記一組の入力データに含まれる各パラメータの推定レベルを生成することと、
各パラメータの前記推定レベルと前記一組の入力データに含まれる各パラメータの実際のレベルとを比較することによって、対応する各推定レベルから閾値偏差を有する実際のレベルを含む1つ以上の異常パラメータを特定することと、
特定された前記異常パラメータの各々に対応する1つ以上の装置および/またはアプリケーションを特定することとを含み、特定された前記1つ以上の装置および/または前記アプリケーションの各々は、前記故障の前記1つ以上の推測される発生源として含まれ、
前記方法はさらに、前記一組の入力データを処理することに少なくとも部分的に基づいて、前記故障の前記1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含む、方法。
【請求項2】
前記一組の入力データは、前記データセンタ内の各サーバの温度と、前記データセンタの各ラック内の各電源の電力レベルと、前記データセンタ内の一連のセンサから取得された前記データセンタの気候データと、取得された前記データセンタの任意の機能を特定するチケットデータと、前記データセンタ内の一連の装置と、前記データセンタ内の全ての装置の位置とのうちのいずれか1つを特定する、請求項1に記載の方法。
【請求項3】
前記一組の入力データは、前記データセンタ内の各装置の位置と、前記データセンタ内の各装置の装置種類とを含み、
前記方法は、
前記一組の入力データを処理することによって、前記一組の入力データの各部分に関連するデータ種類および1つ以上の関連装置を特定することと、
前記一組の入力データの各部分を取得した時間を示すタイムスタンプを、前記一組の入力データの各部分に割り当てることと、
特定された前記データ種類および割り当てられた前記タイムスタンプに従って、前記一組の入力データをデータベースに記憶することとをさらに含む、先行する請求項のいずれか一項に記載の方法。
【請求項4】
前記故障を検出することは、
外部コンピューティング装置から、前記故障が発生したことを特定する故障通知を取得すること、または
取得された前記データセンタの少なくとも1つの機能の喪失または一部のコンピューティングリソースの喪失を特定する閾値数のチケットが受信されたことを検出することをさらに含む、先行する請求項のいずれか一項に記載の方法。
【請求項5】
前記故障通知メッセージは、第1の異常パラメータのグラフィカル表現と、第1の異常パラメータの推定レベルとを含む、先行する請求項のいずれか一項に記載の方法。
【請求項6】
前記方法は、前記故障の前記1つ以上の推測される発生源の各推測される発生源に対して、前記故障の各推測される発生源に関連するパラメータに相関するいくつかのルールに少なくとも部分的に基づいて信頼度レベルを推定することをさらに含み、
前記故障通知メッセージは、前記信頼度レベルを含む、先行する請求項のいずれか一項に記載の方法。
【請求項7】
前記故障の前記1つ以上の推測される発生源の各推測される発生源および前記故障の前記1つ以上の推測される発生源の各推測される発生源に対する信頼度レベルは、故障の実際の発生源に関する識見を提供するように、前記一組の入力データの異常特徴を前記データセンタ内の装置またはアプリケーションと相関させる、請求項6に記載の方法。
【請求項8】
前記方法は、前記故障の前記1つ以上の推測される発生源の各推測される発生源に対して、前記故障の前記1つ以上の推測される発生源の各推測される発生源に関連する解決策データを取り出すことをさらに含み、
前記解決策データは、前記故障の各推測される発生源に特有の故障を解決するための既知の方法を提供し、
前記故障通知メッセージは、前記解決策データを含む、先行する請求項のいずれか一項に記載の方法。
【請求項9】
クラウドインフラストラクチャノードであって、
プロセッサと、
命令を含む非一時的なコンピュータ可読媒体とを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに以下の動作を実行させ、前記動作は、
データセンタ、前記データセンタ内の一連の装置、および前記データセンタ内の前記装置上で実行しているアプリケーションに関連する様々なパラメータを提供する一組の入力データを取得することと、
取得された前記一組の入力データに少なくとも部分的に基づいて、前記データセンタの機能の故障を検出することと、
前記故障を検出することに応答して、モデルを用いて前記一組の入力データを処理することによって、前記故障の1つ以上の推測される発生源を推定することとを含み、前記モデルは、前記一組の入力データと、前記故障の前記1つ以上の推測される発生源としての前記装置または前記装置上で実行している前記アプリケーションとの間の相関関係を特定する一組のルールを組み込み、前記動作は、
前記推定に少なくとも部分的に基づいて、前記故障の前記1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含む、クラウドインフラストラクチャノード。
【請求項10】
前記非一時的なコンピュータ可読媒体は、前記プロセッサに、
前記一組のルールのうちの第1のルールを使用する前記モデルを用いて、第1の異常パラメータが前記データセンタ内の一部のサーバ上で実行している第1のアプリケーションに関連することを特定することと、
前記一組のルールのうちの第2のルールを使用する前記モデルを用いて、前記第1のアプリケーションの実行に対する変更が前記故障を検出した時間の閾値期間内に生じたことを特定することとをさらに実行させ、
前記第1のアプリケーションは、前記故障の第1の推測される発生源として前記故障通知メッセージに含まれ、
前記故障通知メッセージはさらに、前記第1のアプリケーションの前記実行に対する前記変更を除去するように、前記第1のアプリケーションを以前のバージョンに戻すための命令を特定する解決策データを提供する、請求項9に記載のクラウドインフラストラクチャノード。
【請求項11】
前記一組の入力データは、前記データセンタ内の各装置の位置と、前記データセンタ内の各装置の装置種類とを含み、
前記非一時的なコンピュータ可読媒体は、前記プロセッサに、
前記一組の入力データを処理することによって、前記一組の入力データの各部分に関連するデータ種類および1つ以上の関連装置を特定することと、
前記一組の入力データの各部分を取得した時間を示すタイムスタンプを、前記一組の入力データの各部分に割り当てることと、
特定された前記データ種類および割り当てられた前記タイムスタンプに従って、前記一組の入力データをデータベースに記憶することとをさらに実行させる、請求項9から10のいずれか一項に記載のクラウドインフラストラクチャノード。
【請求項12】
前記故障を検出することは、
外部コンピューティング装置から、前記故障が発生したことを特定する故障通知を取得すること、または
取得された前記データセンタの少なくとも1つの機能の喪失または一部のコンピューティングリソースの喪失を特定する閾値数のチケットが受信されたことを検出することをさらに含む、請求項9から11のいずれか一項に記載のクラウドインフラストラクチャノード。
【請求項13】
前記非一時的なコンピュータ可読媒体は、前記プロセッサに、
前記故障の前記1つ以上の推測される発生源の各推測される発生源に対して、前記故障の各推測される発生源に関連するパラメータに相関する前記一組のルールのうちのいくつかのルールに少なくとも部分的に基づいて信頼度レベルを推定することをさらに実行させ、
前記故障通知メッセージは、前記信頼度レベルを含む、請求項9から12のいずれか一項に記載のクラウドインフラストラクチャノード。
【請求項14】
前記モデルを用いて前記一組の入力データを処理することによって、前記故障の前記1つ以上の推測される発生源を生成することは、
前記一組の入力データに含まれる各パラメータに関連する過去データを用いて、各パラメータの推定レベルを生成することと、
各パラメータの前記推定レベルと前記一組の入力データに含まれる各パラメータの実際のレベルとを比較することによって、対応する各推定レベルから閾値偏差を有する実際のレベルを含む1つ以上の異常パラメータを特定することと、
特定された前記異常パラメータの各々に対応する装置または一連の装置を特定することとをさらに含み、
特定された前記装置または一連の装置の各々は、前記故障の前記1つ以上の推測される発生源として含まれる、請求項9から13のいずれか一項に記載のクラウドインフラストラクチャノード。
【請求項15】
プロセッサによって実行されると、前記プロセッサに以下のプロセスを実行させる一連の命令を記憶する非一時的なコンピュータ可読媒体であって、
前記プロセスは、
データセンタに関連する様々なパラメータを提供する一組の入力データを取得することと、
取得された前記一組の入力データに少なくとも部分的に基づいて、前記データセンタの故障を検出することと、
前記一組の入力データを使用するモデルを用いて、前記故障の1つ以上の推測される発生源を推定することとを含み、
前記故障の前記1つ以上の推測される発生源を推定することは、
各パラメータの推定レベルと、前記一組の入力データに含まれる各パラメータの推定レベルとを比較することによって、対応する各推定レベルから閾値偏差を有する1つ以上の異常パラメータを特定することと、
特定された前記異常パラメータの各々に対応する1つ以上の装置および/またはアプリケーションを特定することとを含み、特定された前記1つ以上の装置および/または前記アプリケーションの各々は、前記故障の前記1つ以上の推測される発生源として含まれ、
前記プロセスは、
前記推定に少なくとも部分的に基づいて、前記故障の前記1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含む、コンピュータ可読媒体。
【請求項16】
前記一組の入力データは、前記データセンタ内の各サーバの温度と、前記データセンタの各ラック内の各電源の電力レベルと、前記データセンタ内の一連のセンサから取得された前記データセンタの気候データと、取得された前記データセンタの任意の機能を特定するチケットデータと、前記データセンタ内の一連の装置と、前記データセンタ内の全ての装置の位置とのうちのいずれか1つを特定する、請求項15に記載のコンピュータ可読媒体。
【請求項17】
前記一組の入力データは、前記データセンタ内の各装置の位置と、前記データセンタ内の各装置の装置種類とを含み、
前記プロセスは、
前記一組の入力データを処理することによって、前記一組の入力データの各部分に関連するデータ種類および1つ以上の関連装置を特定することと、
前記一組の入力データの各部分を取得した時間を示すタイムスタンプを、前記一組の入力データの各部分に割り当てることと、
特定された前記データ種類および割り当てられた前記タイムスタンプに従って、前記一組の入力データをデータベースに記憶することとをさらに含む、請求項15から16のいずれか一項に記載のコンピュータ可読媒体。
【請求項18】
前記故障通知メッセージは、第1の異常パラメータのグラフィカル表現と、前記第1の異常パラメータの推定レベルとを含む、請求項15から17のいずれか一項に記載のコンピュータ可読媒体。
【請求項19】
前記プロセスは、前記故障の前記1つ以上の推測される発生源の各推測される発生源に対して、前記故障の各推測される発生源に関連するパラメータに相関するいくつかのルールに少なくとも部分的に基づいて信頼度レベルを推定することをさらに含み、
前記故障通知メッセージは、前記信頼度レベルを含む、請求項15から18のいずれか一項に記載のコンピュータ可読媒体。
【請求項20】
前記プロセスは、前記故障の前記1つ以上の推測される発生源の各推測される発生源に対して、前記故障の前記1つ以上の推測される発生源の各推測される発生源に関連する解決策データを取り出すことをさらに含み、
前記解決策データは、前記故障の各推測される発生源に特有の故障を解決するための既知の方法を提供し、
前記故障通知メッセージは、前記解決策データを含む、請求項15から19のいずれか一項に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本願は、2021年6月3日に出願され、「DETECTING DATACENTER MASS OUTAGE WITH NEAR REAL-TIME/OFFLINE DATA USING ML MODELS」と題された米国特許非仮出願第17/338478号の優先権を主張する。当該出願の全ての内容は、あらゆる目的で参照により本開示に組み込まれる。
【0002】
分野
開示された技術は、データセンタの大規模な故障を検出することに関する。より具体的には、開示された技術は、リアルタイムデータおよび/またはオフラインデータを分析する機械学習モデルを用いて、データセンタの大規模な故障を検出することに関する。
【背景技術】
【0003】
背景
データセンタは、様々な処理タスクを実行するように構成された複数のコンピューティング装置(例えば、サーバ)と、これらのコンピューティング装置に電力を供給すると共に、これらのコンピューティング装置を外部装置に接続するための関連装置とを含み得る。サーバは、いくつかのサーバを含むラックに配置することができ、ラック内のサーバの電力は、ラック電源から供給される。データセンタ内のサーバの過熱または機能の喪失を防止するために、(例えば、センサおよび空気調和装置を用いて)データセンタの内部状態(例えば、温度、湿度)は、制御および監視され得る。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、様々な理由により、データセンタに故障が発生する可能性がある。故障は、データセンタ内の任意のコンピューティング装置の任意の機能の喪失、例えば、サーバ上で実行しているアプリケーションの機能の喪失またはサーバの過熱およびシャットダウンを含み得る。このような故障は、データセンタ内の装置および/または装置上で実行しているアプリケーションと対話しているユーザの体験を低下させる可能性がある。したがって、データセンタを維持しているオペレータは、故障の発生源を効率的に特定し、故障を引き起こす原因を解決することを望んでいる。しかしながら、多くの装置およびアプリケーションがデータセンタに実装されているため、故障の発生源を効率的に特定することは、ますます困難になる可能性がある。
【課題を解決するための手段】
【0005】
概要
本実施形態は、1つ以上のモデルを用いて、準リアルタイムデータでデータセンタの大規模な故障を検出することに関する。第1の例示的な実施形態は、クラウドインフラストラクチャノードによって実行され、データセンタの故障の1つ以上の推測される発生源を推定するための方法を提供する。この方法は、データセンタ、データセンタ内の一連の装置、および装置上で実行しているアプリケーションに関連する様々なパラメータを提供する一組の入力データを取得することを含み得る。また、この方法は、データセンタの少なくとも1つの機能の故障を検出することを含み得る。故障は、(例えば、アプリケーション)機能の喪失またはコンピューティングリソースの喪失(例えば、サーバとの接続の喪失、サーバへの電力の喪失)に起因し得る。
【0006】
また、この方法は、モデルを用いて一組の入力データを処理することによって、故障の1つ以上の推測される発生源を推定することを含み得る。モデルは、一組の入力データと、故障の1つ以上の推測される発生源としての装置または装置上で実行しているアプリケーションとの間の相関関係を特定する一組のルールを組み込むことができる。また、この方法は、故障の1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含み得る。
【0007】
第2の例示的な実施形態は、クラウドインフラストラクチャノードに関する。クラウドインフラストラクチャノードは、プロセッサと、非一時的なコンピュータ可読媒体とを備え得る。非一時的なコンピュータ可読媒体は、命令を含み、これらの命令は、プロセッサによって実行されると、プロセッサに、データセンタ、データセンタ内の一連の装置、および装置上で実行しているアプリケーションに関連する様々なパラメータを提供する一組の入力データを取得することを実行させることができる。また、これらの命令は、プロセッサに、データセンタの機能の故障を検出させることができる。
【0008】
命令はさらに、プロセッサに、一組の入力データを使用するモデルを用いて故障の1つ以上の推測される発生源を推定することを実行させることができる。故障の1つ以上の推測される発生源を推定することは、モデルに利用可能な一組のルールと一組の入力データに含まれる各パラメータに関連する過去データとを用いて、各パラメータの推定レベルを生成することを含み得る。いくつかの例において、過去データは、(例えば、各パラメータの)同一の発生源から以前に受信したデータを含む。故障の1つ以上の推測される発生源を推定することは、各パラメータの推定レベルと一組の入力データに含まれる各パラメータの実際のレベルとを比較することによって、対応する各推定レベルから閾値偏差を有する実際のレベルを含む1つ以上の異常パラメータを特定することを含み得る。故障の1つ以上の推測される発生源を推定することは、特定された異常パラメータの各々に対応する1つ以上の装置および/またはアプリケーションを特定することを含み得る。特定された1つ以上の装置および/またはアプリケーションの各々は、故障の1つ以上の推測される発生源として含まれる。命令はさらに、プロセッサに、故障の1つ以上の推測される発生源を提供する故障通知メッセージを生成することを実行させることができる。
【0009】
第3の実施形態は、非一時的なコンピュータ可読媒体に関する。非一時的なコンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに以下のプロセスを実行させる一連の命令を含み得る。プロセスは、データセンタに関連する様々なパラメータを提供する一組の入力データを取得することを含み得る。また、プロセスは、データセンタの故障を検出することを含み得る。さらに、プロセスは、一組の入力データを使用するモデルを用いて、故障の1つ以上の推測される発生源を推定することを含み得る。
【0010】
故障の1つ以上の推測される発生源を推定することは、各パラメータの推定レベルと、一組の入力データに含まれる各パラメータの推定レベルとを比較することによって、対応する各推定レベルから閾値偏差を有する1つ以上の異常パラメータを特定することを含み得る。また、故障の1つ以上の推測される発生源を推定することは、特定された異常パラメータの各々に対応する1つ以上の装置および/またはアプリケーションを特定することを含み得る。特定された1つ以上の装置および/またはアプリケーションの各々は、故障の1つ以上の推測される発生源として含まれる。また、プロセスは、故障の1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含み得る。
【0011】
さらに、実施形態は、プロセッサによって実行されると、プロセッサに、本開示に記載の方法/技術のいずれかを実行させるコンピュータプログラム/命令を含むコンピュータプログラム製品を用いて実施され得る。
【図面の簡単な説明】
【0012】
【
図1】少なくとも1つの実施形態に従う、例示的なデータセンタを示すブロック図である。
【
図2】少なくとも1つの実施形態に従う、故障に対する警告を生成するための方法を示す流れ図である。
【
図3】少なくとも1つの実施形態に従う、例示的な故障検出サービスを示すブロック図である。
【
図4】少なくとも1つの実施形態に従う、例示的な警告を示す図である。
【
図5】少なくとも1つの実施形態に従う、データセンタの故障の1つ以上の推測される発生源を推定するための例示的な方法を示すブロック図である。
【
図6】少なくとも1つの実施形態に従う、クラウドインフラストラクチャをサービスシステムとして実装するための1つのパターンを示すブロック図である。
【
図7】少なくとも1つの実施形態に従う、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
【
図8】少なくとも1つの実施形態に従う、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
【
図9】少なくとも1つの実施形態に従う、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。
【
図10】少なくとも1つの実施形態に従う、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0013】
詳細な説明
データセンタは、複数の装置、例えば、コンピューティング装置、コンピューティング装置に電力を供給する電源、コンピューティング装置との間でデータを通信するネットワーク装置、および/またはデータセンタの環境を監視/制御する複数のセンサを含み得る。多くの場合、例えば、データセンタに故障が発生すると、コンピューティング装置またはコンピューティング装置によって実施されている関連プロセスへのアクセスができなくなる、またはデータセンタ内の装置間でデータを転送することができなくなる可能性がある。
【0014】
データセンタの故障は、様々な原因、例えば、電源の故障、データセンタ内の1つ以上の装置の故障、データセンタ内の装置の過熱、アプリケーションの実行の失敗に起因する可能性がある。特に、データセンタが多くの装置、処理リソース、およびアプリケーション/サービスを含むため、故障の発生源を効率的に特定し、修復処理を実行することが困難な場合がある。故障を修復する時間が長くなると、データセンタ内の装置/アプリケーションと対話しているユーザの体験を低下させる可能性がある。
【0015】
本実施形態は、データセンタの故障の検出および警告の生成に関する。具体的には、本明細書に記載された故障検出サービスは、データセンタの様々なソースから準リアルタイムデータを処理し、モデルを用いてデータを処理することによって、検出された故障の1つ以上の推測される発生源を決定し得る。
【0016】
例えば、故障は、(例えば、サーバのラックに電力供給する)ラック電源の不調によって引き起こされ、対応するサーバの機能の喪失につながる。この場合、本明細書に記載された故障検出システムは、モデルを用いて準リアルタイムデータを処理することによって、1つ以上の異常パラメータを特定し得る。この例において、モデルは、故障を検出した時点に近い時点のラック電源の電力レベルが閾値レベルを下回ったこと、またはラック内のサーバの電力レベルが閾値レベルを下回ったことを特定し得る。モデルは、一連のルールを使用して準リアルタイム入力データを処理することによって、ラック電源および/またはラック内のサーバが故障の推測される発生源であると判断し得る。
【0017】
警告メッセージは、故障の推測される発生源および故障に関連する他のデータを提供するために生成され得る。上記の例において、警告メッセージは、ラック電源および/またはラック内のサーバを故障の推測される発生源として特定することができ、モデルによって特定された異常パラメータ、故障の推測される発生源の各々に対する信頼値などを特定し得る。警告メッセージは、故障に関する識見を提供することができ、故障を効率的に修復し得る。
【0018】
準リアルタイムデータは、データセンタ内の装置からの環境データを含み得る。例示的な準リアルタイムデータは、サーバ温度、サーバ/ラック電力使用量、取得されたチケット、センサデータなどを含むことができ、準リアルタイムデータを取得した時間を示すタイムスタンプと共に記憶される。故障の発生に応答して、故障検出サービスは、準リアルタイムデータおよびオフラインデータを入力として使用して、モデルを実行することによって、故障の1つ以上の推測される発生源を特定し得る。
【0019】
本明細書に記載されたモデルは、準リアルタイムデータおよびオフラインデータを処理し、故障の1つ以上の推測される発生源を決定するために、一連のルールを組み込んだ1つ以上の機械学習モデルを含み得る。例えば、モデルは、故障を引き起こす可能性が高いデータセンタ内の装置の1つ以上の異常パラメータを特定し得る。モデルは、故障の1つ以上の推測される発生源または原因、例えば、故障を引き起こす可能性が高い装置、電源、アプリケーションなどの特定、および故障を引き起こす各推測される発生源の推定信頼度を提供する信頼値などを出力し得る。故障の推測される発生源は、準リアルタイムデータから検出されたパターンを提供することによって、故障の回復を知らせるために使用し得る大規模な故障の相関関係を確立し得る。例えば、故障の推測される発生源は、故障(および任意の関連原因)がデータセンタ内のコンポーネント/アプリケーションにどのように広がっているかを示すブループリント(blueprint)を提供し得る。故障の推測される発生源をブループリントとして利用して故障から回復することによって、故障の検出および解決にかかる全体的な時間を短縮し得る。
【0020】
例示的な例として、故障は、オペレータからの指示によってデータセンタから検出されてもよく、または故障検出システムによって(例えば、異常パラメータを検出することによって、故障を特定する入来チケットの数を検出することによって)データセンタから自動的に検出され得る。例えば、故障は、サーバラックのラック電源からの電力の異常な増加によってサーバラックが機能を喪失し、サーバラック内のサーバの過熱を引き起こすことによって、引き起こされる可能性がある。
【0021】
この例において、故障検出サービスは、サーバ温度(例えば、206)、ラック電力使用量(例えば、210)、チケットデータ(例えば、212)などに関連するデータ(例えば、準リアルタイムデータ202)を取得し、モデルによる処理のためにタイムスタンプに従ってデータを用意し得る。モデルは、取得したデータを処理することによって、故障の原因を示すことができる異常パラメータを特定し得る。例えば、受信した複数のチケットは、第1の時点に発生した故障を特定し得る。さらに、ラック電源のラック電力メトリックが第1の時点で異常に増加することができ、(コアサーバの温度上昇を示す)ラック内のサーバのファン速度が第1の時点で増加し得る。
【0022】
この例において、モデルは、故障の第1の原因が、ラック内のサーバの過熱(および機能の制限)を引き起こすラック電源の電力サージを含み得ることを特定し得る。モデルは、一連のルールを用いて、故障の原因がラック電源の電力サージである尤度を特定することができ、(例えば、百分率としての)信頼値を故障の原因に割り当てることができる。
【0023】
この例において、故障検出サービスは、故障の原因を解決するための1つ以上のステップを提供する解決策データを提供し得る。例示的な解決策データは、ラック電源をリセットまたは交換すること、またはラック内のサーバをリセットすることを特定し得る。故障検出サービスは、故障の特徴、故障の推測される原因、解決策データ、および/またはデータセンタから取得されたデータから特定された異常パラメータを示す1つ以上のグラフを含む警告を出力し得る。
【0024】
図1は、例示的なデータセンタ100を示すブロック図である。データセンタ100は、複数のコンピューティング装置と、コンピューティング装置に電力を供給し、コンピューティング装置とデータセンタ100の外部装置との間のデータ通信を容易にする関連装置とを格納する環境(例えば、部屋、建物)を含み得る。データセンタ100は、データセンタ100内の閾値環境条件(例えば、温度、湿度)を維持するために、制御された環境を提供し得る。
【0025】
データセンタ100は、コンピューティング装置(例えば、サーバ104a~l)を含む複数のサーバスタック102a~nを含み得る。サーバスタック(例えば、102a~n)は、一組のサーバ104a~lを配置するラックを含み得る。各サーバスタック102a~nは、1つ以上の電源(例えば、電力ユニット106a~n)と、データセンタ100内の装置間のデータ伝送を可能にするネットワーク装置(例えば、108a~n)とを含み得る。いくつかの実施形態において、本明細書に記載された故障検出サービスは、1つ以上のコンピューティング装置(例えば、サーバ104a~l)またはデータセンタ100の外部のコンピューティング装置上で実装され得る。
【0026】
データセンタ100内の各サーバ104a~lは、例えばデータベースの保守および更新などの様々な処理タスクを実行するように構成されたアプリケーション/プラグイン/アドオン/仮想マシンなどを実装し得る。サーバ104a~lは、各サーバに関するデータ、例えば、各サーバ104a~lのコア温度、電力使用量、ファン速度、状態などを捕捉するように構成された複数のセンサを含み得る。
【0027】
各サーバ104a~lは、1つ以上の電力ユニット106a~nに接続し得る。各電力ユニットは、サーバスタック102a~nに関連付けられ、サーバ104a~lに電力を提供し得る。電力ユニット106a~nは、各電力ユニット106a~nによって提供される複数の電力パラメータ(例えば、電圧、電流)を監視することができ、これらの電力パラメータは、準リアルタイムデータとして故障検出サービスに提供し得る。
【0028】
サーバ104a~lは、ネットワーク装置108a~nを介してデータを通信し得る。ネットワーク装置108a~nは、サーバ104a~lと受信装置との間でデータを転送し得るネットワークスイッチ、ルータなどを含み得る。場合によっては、ネットワーク装置108a~nは、サーバ104a~lと本明細書に記載されたクラウドインフラストラクチャノード上で実行している故障検出サービスとの間に低遅延データ通信を提供するストリーミングサービスを実装し得る。
【0029】
データセンタ100は、複数のセンサ110a~nを含み得る。センサ110a~nは、データセンタ100の環境を監視/制御し得る。例示的なセンサは、温度センサ、湿度センサ、圧力センサなどを含み得る。センサ110a~nによって捕捉されたデータは、準リアルタイムデータとして故障検出サービスに提供し得る。
【0030】
図2は、故障に対する警告を生成するための方法を示す流れ
図200である。以下に説明するように、警告は、データセンタのオペレータに提供され、故障および故障の潜在的な発生源に関する識見を提供する通知(例えば、メッセージ、電子メール、テキスト通知)を含み得る。故障に対する警告を生成するための方法は、本明細書に記載された故障検出サービスによって実行し得る。
【0031】
故障検出サービスは、様々なソースから準リアルタイムデータ202およびオフラインデータ204を取得し得る。準リアルタイムデータ202およびオフラインデータ204は、本明細書に記載されたモデルを用いて処理される入力データとして処理され得る。準リアルタイムデータ202は、様々な種類のデータ、例えば、サーバ温度データ206、サーバ電力使用量データ208、ラック電力使用量データ210、チケットデータ212、および任意の種類の他のデータ214を含み得る。故障検出サービスは、故障検出サービスに低遅延のデータ通信を提供するストリーミングサービスを介して、データセンタ内のソースから準リアルタイムデータ202を取得し得る。
【0032】
サーバ温度データ206は、センサ(例えば、110a~n)またはサーバ(例えば、104a~n)によって提供されたデータセンタ内のサーバの内部温度に関するデータを含み得る。サーバ温度データ206は、特定の時点のサーバ温度を特定することができ、これにより、サーバ温度の傾向を経時的に監視し得る。本明細書に記載されたように、1つ以上のサーバのサーバ温度の上昇は、サーバの電力使用量の上昇または過熱を示すことができ、故障の原因となり得る。場合によっては、サーバ温度データ206は、データセンタ内のサーバのファン速度を特定するファン速度データを含むことができ、ファン速度データは、サーバの温度を示すことができる。
【0033】
サーバ電力使用量データ208は、データセンタ内の各サーバの電力消費量を特定し得る。サーバ電力使用量データ208に関連する例示的なパラメータは、ある期間中に各サーバの電圧、電流、消費電力、生産負荷などを含み得る。様々なセンサをサーバの内部またはサーバの近くに配置することによって、サーバ電力使用量データ208を取得し得る。
【0034】
ラック電力使用量データ210は、ラック(例えば、サーバスタック102a~n)内のサーバ(および/または付属装置)の電力使用量を提供し得る。ラック電力使用量は、ラックの電源(例えば、電力ユニット106a~n)によって提供され得る。電力ユニット106a~nは、複数の電力パラメータ(例えば、ラックおよびラック内の各装置の電圧、電流、および電力消費量)を測定し得る。
【0035】
チケットデータ212は、チケットノード(例えば、データセンタ内の装置またはデータセンタの外部装置からチケットを取得するためにコンピューティング装置上で実行しているアプリケーション)によって取得された一連のチケットを含み得る。チケットは、データセンタ内の装置上で実行している装置またはアプリケーションに関する検出された問題/警告に対して受信し得る。チケットは、データセンタ内の装置と通信する装置によって自動的に提供されてもよく、またはデータセンタ内の装置と対話するオペレータによって手動で提供され得る。
【0036】
一例として、装置は、データセット内の第1のサーバ上で実行しているアプリケーションからデータを取得することができないときに、チケットを自動的に生成し得る。別の例として、クライアントは、クライアント装置を介してデータセンタ内の第2のサーバによって維持されているデータベースにアクセスできないときに、チケットを生成し得る。本明細書で説明するように、チケットは、タイムスタンプと関連付けられてもよく、故障または故障の原因を特定するために使用され得る。
【0037】
他のデータ214は、データセンタ内の装置のデータ伝送特性を特定するネットワークデータ、データセンタ内の装置上で実行しているアプリケーションのアプリケーションデータパラメータ、データセンタ内のアプリケーション/装置の変更記録などを含み得る。
【0038】
また、故障検出サービスは、静的なデータセンタ情報を含む1つ以上のデータベースなどのデータソースから、オフラインデータ204を取得することもできる。オフラインデータ204の例は、装置データ216、位置データ218、および他のデータ220を含み得る。装置データ216は、データセンタ内の装置の数を特定することができ、位置データ218は、データセンタ内の各装置の位置を含み得る。装置データ216および位置データ218は、データセンタ内の装置グループ、例えばラックにグループ化されたサーバを特定し得る。他のデータ220は、各サーバ上で実行しているアプリケーション、データセンタ内の各装置の能力、各装置のソフトウェアバージョン、データセンタ内の装置の種類(例えば、センサ、ネットワーク装置、電力装置)などを特定し得る。
【0039】
222において、準リアルタイムデータ202およびオフラインデータ204は、結合され得る。これは、データ種類に従ってデータを配列することと、データに関連するタイムスタンプに基づいてデータをデータソース(例えば、データベース、テーブル)に記憶することとを含み得る。データが経時的に取得されるため、データの受信時間に従ってデータ種類によってデータをデータベース/テーブルに記憶され得る。例えば、データセンタ内の第1のサーバのサーバ温度データは、データを取得した時間に従って記憶され、ある期間にわたる第1のサーバの温度を提供し得る。別の例として、ラック電力使用量が記憶されて、ラックの電力使用量の経時的な傾向を提供し得る。受信したデータ中のパラメータの傾向および変動は、データセンタ内の異常なパラメータおよびデータセンタ内の故障の潜在的な原因に関する識見を提供し得る。
【0040】
いくつかの実施形態において、データセンタから測定されたパラメータの推定レベルは、データセンタの過去レベルに基づいて生成され得る。例えば、過去のサーバ温度データが経時的に捕捉されることができ、各時点の推定温度が生成され得る。過去のサーバ温度は、過去レベルの一例に過ぎない。推定レベルを対応するパラメータと比較することによって、推定レベルからの偏差を検出することができ、この偏差は、故障の発生源となり得る異常を示すことができる。
【0041】
モデル224は結合データを用いて実行されて、故障の1つ以上の推測される原因を決定し得る。場合によっては、当該モデルは、故障の検出(例えば、オペレータによる手動指示、チケットデータの検査による自動検出)に応答して、実行され得る。
【0042】
モデル224は、結合データを、故障の発生源を示し得る異常挙動を検出するために使用され得る入力パラメータとして処理し得る。モデル224は、結合データ(例えば、222で結合されたデータ)を処理し、故障の1つ以上の推測される発生源を検出するために、複数のルール226を組み込むことができる機械学習モデルを含み得る。
【0043】
ルール226は、以前に特定された故障および故障に対する既知の解決策から生成され得る。例えば、以前の故障がラック電源の電力サージに起因する場合、新しいルールは、任意の電源の同様の電力サージおよび電力サージに起因して検出された故障の同様の特性を監視するための命令を含み得る。また、ルール226は、過去のデータセンタデータまたは故障の解決策に応答して提供されたフィードバックデータに基づいて生成され得る。いくつかの例において、過去のデータセンタデータは、過去の時間に取得されたデータセンタデータおよび/またはメタデータである。
【0044】
例えば、ルール226は、入力パラメータを処理して、パラメータが任意の時点で異常特性を有するか否かを判断するための命令を含み得る。また、ルール226は、異常パラメータを、故障の推測される発生源としての1つ以上の装置と相関させ、異常パラメータによって影響される1つ以上の装置を特定するための命令を含み得る。
【0045】
第1の例において、当該モデルは、第1のルールを用いて、第1のサーバのサーバ電力データが異常特性を含むか否かを判定し得る。例えば、ルール226は、モデルが、第1のサーバのサーバ電力データを推定電力レベルと比較することによって、実際の電力レベルと推定電力レベルとの間の偏差を検出するための命令を提供し得る。このルールは、実際の電力レベルが特定の時点の推定電力レベルからの閾値偏差を超えると、モデル224が異常パラメータである第1のサーバのサーバ電力レベルを特定することを指定し得る。
【0046】
別の例として、ルール226は、故障を検出した(例えば、故障を示すチケットを受信した)閾値時間内に、データセンタ内の装置のアプリケーション/ソフトウェアに対して行われた任意の変更を特定するための命令を含み得る。例えば、アドオンが故障を引き起こした場合、ルールは、故障を検出した閾値時間内にデータセンタ内のソフトウェアに対して行われた任意の変更を特定し得る。この例において、ルールは、故障を検出した時点と同様の時点に実装され、故障の潜在的な発生源を構成するアドオンを特定し得る。
【0047】
後続のルールは、異常特性を処理することによって、故障の1つ以上の推測される発生源を決定し得る。ルール226は、異常特性を、対応する装置/一連の装置/一連のアプリケーション/その他に相関させるための命令を含み得る。例えば、第1のラック電源の電力レベルが推定レベルを超えて急上昇した場合、電力レベルの上昇により機能の喪失をもたらす可能性があるため、ルールは、第1のラック電源に接続されたサーバが、故障を引き起こす可能性が高くなることを特定し得る。別の例として、閾値数のチケットが第1のアプリケーションの故障を特定する場合、ルールは、第1のアプリケーションを実装する全てのサーバ(または第1のアプリケーションを実装する仮想マシン)が故障の推測される発生源を含み得ることを特定し得る。モデルは、複数のルールを組み合わせて実行することによって、故障の推測される発生源を決定し得る。
【0048】
多くの場合、モデルを用いて、複数のルールを組み合わせることによって、各推測される発生源が故障の実際の発生源になる尤度を決定し得る。各推測される発生源が故障の実際の発生源になる尤度は、信頼度レベルで表すことができる。信頼度レベルは、例えば、準リアルタイムデータに基づいて、故障の各推測される発生源と故障の実際の発生源との間の相関の強さ、低い偽陽性比率、または高い真陽性比率を特定し得るが、それらに限定されない。例えば、故障の各推測される発生源の信頼度レベルは、各発生源を故障の推測される発生源として特定するルールの数に基づいて推定され得る。信頼度レベルは、各装置/アプリケーションを故障の推測される発生源として特定するために実行したルールの数に基づいて推定され得る。
【0049】
例えば、故障の第1の推測される発生源は、サーバを含むことができ、故障の第2の推測される発生源は、サーバとの間でデータを通信するためのネットワークスイッチを含み得る。この例において、モデルによって実行された2つのルール(例えば、サーバの異常な温度レベルを特定するためのルール、およびサーバ上で実行しているアプリケーションの機能の喪失を特定するためのルール)は、サーバを故障の第1の推測される発生源として特定し得る。さらに、この例において、1つのルール(例えば、サーバに対応するポートからのデータ通信スループットが推定レベルよりも低いことを特定するためのルール)は、ネットワークスイッチを故障の第2の推測される発生源として特定し得る。この例において、故障の第1の推測される発生源は、故障の第2の推測される発生源よりも高い信頼度レベルを有し得る。
【0050】
228において、故障が、検出され得る。故障は、データセンタ内の任意の装置によって実装された機能の任意の特定された喪失を含み得る。例示的な故障は、サーバの過熱、サーバ上で実行しているアプリケーションの利用不可能、サーバ上で実行しているサーバ/アプリケーションとのデータ通信の欠如などから生じ得る。
【0051】
いくつかの実施形態において、当該故障は、オペレータが発生した故障を示すことによって、手動で検出され得る。他の実施形態において、故障は、例えば、チケットまたは他の準リアルタイムデータを処理して、データセンタ内の装置/アプリケーションの機能またはデータ通信の喪失を検出することによって、自動的に検出され得る。モデルは、入力データを処理することによって故障を検出するように構成され得る。故障の1つ以上の推測される発生源を推定するためのプロセスは、故障の検出に応答して実行され得る。
【0052】
230において、警告が生成され得る。警告は、故障、故障の1つ以上の潜在的な発生源、および故障に対する既知の解決策を特定するための通知をオペレータに提供し得る。例えば、警告は、故障の説明、(例えば、モデル224から推定された)故障の1つ以上の潜在的な発生源、故障を解決するための任意の解決策データ、故障の潜在的な発生源を証明するための1つ以上のパラメータの描写などを提供し得る。
図4を参照して、警告をより詳細に説明する。
【0053】
図3は、例示的な故障検出サービス314を示すブロック図である。上述したように、故障検出サービス314は、データセンタの外部で相互接続された1つ以上のコンピューティング装置上で実装し得る。本明細書に記載されたように、故障検出サービス314は、入力パラメータ(例えば、準リアルタイムデータ、オフラインのデータ)を取得し、モデルを用いて入力パラメータを処理することによって、故障の1つ以上の推測される発生源を推定し得る。
【0054】
故障検出サービス314は、問題検出サービス302から準リアルタイムデータを取得し得る。問題検出サービス302は、準リアルタイムデータ(例えば、サーバ温度データ、ラック電力使用量データ、データセンタセンサデータ)を取得し得る。
図2を参照して説明したように、問題検出サービス302は、任意の準リアルタイムデータ202を提供し得る。場合によっては、問題検出サービス302は、故障検出サービス314による後続の記憶および処理のために、データ種類に従って準リアルタイムデータを分類し得る。
【0055】
問題検出サービスによって送信された準リアルタイムデータは、ストリーミングサービス304を介して故障検出サービス314に転送し得る。ストリーミングサービス304は、問題検出サービス302と故障検出サービス314との間の低遅延データ伝送を可能にし得る。例えば、ストリーミングサービス304は、問題検出サービス302と故障検出サービス314との間の低遅延接続を提供するAPIを含み得る。
【0056】
テレメトリサービス306は、データセンタ内の電源の一連の電力関連パラメータを生成し、故障検出サービス314に提供し得る。例えば、テレメトリサービス306は、各電源(例えば、ラック電力ユニット106a~n)の複数の電力パラメータ(例えば、電圧、電流、抵抗、電力)を提供し得る。
【0057】
リソース管理サービス308は、データセンタ内のコンポーネントおよびデータセンタ内の各コンポーネントの位置を監視および追跡し得る。例えば、リソース管理サービス308は、データセンタ内の各ラック内の各サーバの位置および識別子のリストおよび対応するサーバに電力を供給する全ての電源のリストを維持し得る。リソース管理サービス308は、データセンタ内の任意の装置、データセンタ内の各サーバ上で実行しているアプリケーション、およびデータセンタ内の他の装置に直接に接続されている全ての装置の位置のリストを維持し得る。
【0058】
チケットデータサービス310は、データセンタに関連して受信したチケットを取得して処理し得る。例えば、アプリケーションの実行または外部装置へのデータ提供に失敗したことに応答して、この失敗を特定するためのチケットを生成し得る。別の例として、クライアントは、アプリケーションまたは装置が特定の機能の提供に失敗したことに応答して、チケットの生成を要求し得る。チケットデータサービス310は、受信した各チケットの特徴を集約して特定し得る。本明細書に記載されたように、チケットデータサービス310は、受信した各チケットから特徴を解析することによって、特定のアプリケーション/装置などを特定することができ、故障の推測される原因に関する識見を提供し得る。テレメトリサービス306、リソース管理サービス308、およびチケットデータ310から取得されたデータは、オブジェクトストレージ312に記憶され得る。オブジェクトストレージ312は、データ種類およびデータを取得した時間に従って、受信したデータを配列するデータベースを含み得る。
【0059】
故障検出サービス314は、準リアルタイムデータ(例えば、温度データ316、装置電力データ318、ラック電力データ320、位置データ322)を取得し、データ種類に従ってデータを配列し得る。例えば、準リアルタイムデータを処理することによって、データの各部分に関連する特徴、例えば、データ種類(例えば、温度、電力)、データの各部分に関連する装置/コンポーネント、データを取得した時間などを特定し得る。
【0060】
故障検出サービス314は、抽出、変換およびロード(ETL)プロセス324を実施することによって、受信したデータ(例えば、温度データ316、装置電力データ318、ラック電力データ320、位置データ322)を移動および変換し得る。例えば、ETLプロセス324は、準リアルタイムデータを取得し、データの各部分に関連するデータ種類を特定し得る。また、ETLプロセス324は、(例えば、リソース管理サービス308からの一連の装置を用いて)装置/コンポーネントをデータの様々な部分と関連付け、データの様々な部分にタイムスタンプを割り当てることができる。処理されたデータは、関連する温度および電力データを提供するデータベース326に記憶され得る。
【0061】
故障検出サービス314は、モデル328を用いて記憶されたデータ(例えば、データベース326に記憶されたデータ)を処理することによって、故障の1つ以上の推測される発生源を推定し得る。いくつかの実施形態において、モデル328は、入力データを処理し、故障が発生したか否かを判定し、および/または(チケットデータを処理することによって、または準リアルタイムデータの異常パラメータを特定することによって)故障に関連する特徴を特定し得る。
【0062】
モデル328は、様々な種類の機械学習モデルを記憶し得るモデルストア332から取り出すことができる。モデル328は、ルールストア330から、モデルによって実行される様々なルールを組み込むことができる。例えば、ルールは、異常パラメータ(例えば、特定の時点の推定レベルからのパラメータの閾値偏差)を特定し、異常パラメータに対応する装置、および受信したチケットに対応する装置/関連アプリケーションなどを特定し得る。モデル328は、故障の1つ以上の推測される発生源と、故障の推測される発生源が故障に対応する信頼度を特定する信頼度レベルとを出力し得る。例えば、モデルは、準リアルタイムデータを処理することによって、第1の電源の電力サージを特定し、ルールストア330からのルールを用いて、故障の推測される発生源が第1の電源を含むと判断し得る。場合によっては、以前の故障からのデータ(例えば、故障からの異常パラメータ、故障に対する既知の解決策)をモデルストア332/ルールストア330にフィードバックして、故障の発生源を特定するためのルールを増分的に追加し得る。
【0063】
いくつかの実施形態において、故障検出サービス314は、故障の推測される発生源に対応する解決策データを特定し得る。例えば、モデル328が第1の電源を故障の推測される発生源として特定した場合、故障検出サービス314は、解決策データデータベース334から解決策データを検索することによって、対応する解決策データ(例えば、電源をリセットすること、電源を置き換えること)を取得し得る。別の例として、モデル328が一連のサービス上で実行している新たに変更されたアプリケーションを故障の推測される発生源として特定した場合、故障検出サービス314は、解決策データデータベース334から解決策データを検索することによって、対応する解決策データ(例えば、アプリケーションの変更を戻すこと)を取得し得る。
【0064】
故障検出サービスは、警告サービス336を介して警告を生成し得る。警告は、故障、故障の推測される発生源、故障の各推測される発生源に関連付けられた信頼値、故障の各推測される発生源に関連するた解決策データなどを記述するメッセージを提供し得る。
【0065】
図4は、例示的な警告400を示す。警告400は、メッセージ(例えば、オペレータに関連する装置上の電子メールメッセージ、テキストメッセージ、またはグラフィカル出力)を含み得る。警告400は、故障に関連する複数のデータソースを提供し得る。例えば、警告400は、故障の特徴(例えば、故障を検出した時間、故障によって影響される装置/アプリケーション)を特定するための故障データ402を提供し得る。故障データ402は、クライアントまたはオペレータによって提供されたデータ、故障の特徴を特定するモデルから推定されたデータなどを含み得る。
【0066】
警告400は、故障の1つ以上の推測される発生源を特定する推測される故障発生源404を提供し得る。例えば、警告は、故障の推測される発生源(例えば、404)のリスト、および各発生源を故障の推測される発生源として特定するためのデータポイント(例えば、異常パラメータ、チケットデータ)を提供し得る。また、警告400は、故障の各推測される発生源に関連付けられ、故障の各推測される発生源が実際に故障の発生源を含む推定尤度を特定する1つ以上の信頼値406を含み得る。
【0067】
警告400は、故障の推測される発生源に対応する1つ以上のパラメータのグラフィカル表現408を提供し得る。例えば、故障の推測される発生源がラック電源である場合、警告400は、電力パラメータのグラフィック表現408を含み得る。この例において、グラフィカル表現408は、一定の期間(例えば、時点T1~T6)中に(例えば、過去の電力レベルから推定された)推定電力レベル412と比較している実際の電力レベル410を提供し得る。いくつかの例において、過去の電力レベルは、以前の時間から受信した以前のレベルを含む。また、この例において、グラフィカル表現408は、推定電力レベル412からの複数の電力レベル異常偏差414a~bを示すことができる。複数の電力レベル異常偏差414a~bは、電力レベル410に関連する電源が故障の発生源であったという洞察を提供し得る。
【0068】
図5は、データセンタの故障の1つ以上の推測される発生源を推定するための例示的な方法を示すブロック
図500である。クラウドインフラストラクチャノードは、本明細書に記載の方法を実行するように構成された故障検出サービスを実装し得る。
【0069】
ブロック502において、方法は、データセンタ、データセンタ内の一連の装置、および装置上で実行しているアプリケーションに関連する様々なパラメータを提供する一組の入力データを取得することを含み得る。
図2を参照して上述したように、一組の入力データは、準リアルタイムデータ(例えば、202)と、オフラインデータ(例えば、204)とを含み得る。いくつかの実施形態において、一組の入力データは、データセンタ内の各サーバの温度と、データセンタの各ラック内の各電源の電力レベルと、データセンタ内の一連のセンサから取得されたデータセンタの気候データと、取得されたデータセンタの任意の機能を特定するチケットデータと、データセンタ内の一連の装置と、データセンタ内の全ての装置の位置とのうちのいずれか1つを特定し得る。
【0070】
いくつかの実施形態において、一組の入力データは、データセンタ内の各装置の位置と、データセンタ内の各装置の装置種類とを含む。この方法は、一組の入力データを処理することによって、一組の入力データの各部分に関連するデータ種類および1つ以上の関連装置を特定することを含み得る。例示的なデータ種類は、サーバ温度データ(例えば、206)、サーバ電力使用量データ(例えば、208)、装置データ(例えば、216)などを含み得る。また、この方法は、一組の入力データの各部分を取得した時間を示すタイムスタンプを、一組の入力データの各部分に割り当てることができる。故障検出サービスは、タイムスタンプに従って特定の種類のデータを配置することによって、一定の期間にわたるパラメータの傾向を推定する(例えば、パラメータの経時的な変化を特定する)ことができる。また、この方法は、データ種類および割り当てられたタイムスタンプに従って、一組の入力データをデータベース(例えば、データベース326)に記憶することを含み得る。故障検出サービスは、記憶されたデータをモデルの入力として使用して、故障の推測される発生源を推定し得る。
【0071】
ブロック504において、方法は、データセンタの少なくとも1つの機能の故障を検出することを含み得る。故障は、機能(例えば、アプリケーション)の喪失またはコンピューティングリソースの喪失(例えば、サーバへの接続の喪失、サーバへの電力の喪失)に起因し得る。故障を検出することは、外部コンピューティング装置から、故障が発生したことを特定する故障通知を取得すること、またはデータセンタの少なくとも1つの機能の喪失または一部のコンピューティングリソースの喪失を特定する閾値数のチケットが受信されたことを検出することを含み得る。
【0072】
ブロック506において、この方法は、モデルを用いて一組の入力データを処理することによって、故障の1つ以上の推測される発生源を推定することを含み得る。モデルは、一組の入力データと、故障の1つ以上の推測される発生源としての装置または装置上で実行しているアプリケーションとの間の相関関係を特定する複数のルールを組み込むことができる。
【0073】
ブロック508において、故障の1つ以上の推測される発生源を推定することは、モデルに利用可能な一組のルールと一組の入力データに含まれる各パラメータに関連する過去データとを用いて、各パラメータの推定レベルを生成することを含み得る。例えば、第1のサーバの過去のサーバ温度データを処理することによって、第1のサーバの推定温度レベルを決定し得る。各パラメータの推定レベルを検出レベルと比較することによって、いずれかのパラメータが推定レベルから逸脱しているか否かを特定し得る。このような逸脱は、装置またはアプリケーションが故障の推測される発生源であることを示すことができる。
【0074】
ブロック510において、故障の1つ以上の推測される発生源を推定することは、各パラメータの推定レベルと一組の入力データに含まれる各パラメータの実際のレベルとを比較することによって、対応する各推定レベルから閾値偏差を有する実際のレベルを含む1つ以上の異常パラメータを特定することを含み得る。例えば、パラメータの実際のレベルが当該パラメータの推定レベルからの閾値偏差を有する場合、当該パラメータは、異常であり得る。推定レベルからの閾値偏差を有するパラメータは、サーバの過熱、電源の電力サージ、ネットワークパケットの喪失などを示すことができる。
【0075】
ブロック512において、故障の1つ以上の推測される発生源を推定することは、特定された異常パラメータの各々に対応する1つ以上の装置および/またはアプリケーションを特定することを含み得る。特定された1つ以上の装置および/またはアプリケーションの各々は、故障の1つ以上の推測される発生源として含めることができる。例えば、第1のサーバのサーバ温度レベルが推定レベルを上回って突然上昇したと判断したことに応答して、モデルは、第1のサーバを故障の推測される発生源として特定し得る。
【0076】
いくつかの実施形態において、一組のルールは、以前に解決された故障と、以前に解決された故障の各故障の特定された発生源との間の相関関係に少なくとも部分的に基づいて推定される。これらの実施形態において、この方法は、一組のルールのうちの第1のルールを使用するモデルを用いて、第1の異常パラメータがデータセンタ内のサーバの一部分上で実行している第1のアプリケーションに関連することを特定することを含み得る。例えば、一組のサーバ上で実行しているアプリケーションに対する変更は、更新を引き起こし得る。この例において、モデルは、アプリケーションに関連する異常パラメータ、例えば、サーバ温度レベルの上昇、データパケット伝送の喪失を特定し得る。
【0077】
これらの実施形態において、この方法は、一組のルールのうちの第2のルールを使用するモデルを用いて、第1のアプリケーションの実行に対する変更が故障を検出した時間の閾値期間内に生じたことを特定することを含み得る。例えば、モデルは、アプリケーションに対する変更が故障を検出した時間内に生じたことを特定する(例えば、故障を検出してから5分以内に変更が生じたことを検出する)ことができる。これは、アプリケーションに対する変更が故障の推測される発生源であることを示すことができる。第1のアプリケーションは、故障の第1の推測される発生源として故障通知メッセージに含まれ得る。故障通知メッセージは、第1のアプリケーションの実行に対する変更を除去するように、第1のアプリケーションを以前のバージョンに戻すための命令を特定する解決策データをさらに提供し得る。
【0078】
ブロック514において、この方法は、故障の1つ以上の推測される発生源を提供する故障通知メッセージを生成することを含み得る。いくつかの実施形態において、故障通知メッセージは、第1の異常パラメータのグラフィカル表現と、第1の異常パラメータの推定レベルとを含む。
【0079】
いくつかの実施形態において、この方法は、故障の1つ以上の推測される発生源の各推測される発生源に対して、故障の各推測される発生源に関連するパラメータに相関するいくつかのルールに少なくとも部分的に基づいて信頼度レベルを推定することを含むことができ、故障通知メッセージは、信頼度レベルを含む。
【0080】
いくつかの実施形態において、この方法は、故障の1つ以上の推測される発生源の各推測される発生源に対して、故障の1つ以上の推測される発生源の各々に関連する解決策データを取り出すことを含むことができ、解決策データは、故障の各推測される発生源に特有の故障を解決するための既知の方法を提供し、故障通知メッセージは、解決策データを含む。
【0081】
上述したように、IaaS(Infrastructure as a Service)は、1つの特定の種類のクラウドコンピューティングである。IaaSは、パブリックネットワーク(例えば、インターネット)を介して仮想化計算リソースを提供するように構成され得る。IaaSモデルにおいて、クラウドコンピューティングプロバイダは、インフラストラクチャ要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストし得る。場合によっては、IaaSプロバイダは、インフラストラクチャ要素に付随する様々なサービス(例えば、課金、監視、ロギング、負荷分散およびクラスタリングなど)を提供し得る。したがって、これらのサービスがポリシー駆動型であり得るため、IaaSユーザは、アプリケーションの可用性および性能を維持するために、負荷分散を駆動するためのポリシーを実装し得る。
【0082】
いくつかの例において、IaaS顧客は、インターネットなどの広域ネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールし得る。例えば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、データベースなどのミドルウェアを展開し、ワークロードおよびバックアップの記憶バケットを作成し、VMに企業ソフトウェアをインストールし得る。顧客は、プロバイダのサービスを使用して、ネットワークトラフィックのバランシング、アプリケーションのトラブルシューティング、パフォーマンスの監視、災害復旧の管理などを含む様々な機能を実行し得る。
【0083】
殆どの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、オファー、レンタル、販売)に特化した第3者サービスであってもよいが、その必要はない。また、企業は、プライベートクラウドを配置し、インフラストラクチャサービスを提供するプロバイダになることもできる。
【0084】
いくつかの例において、IaaSの配置は、用意したアプリケーションサーバなどに新しいアプリケーションまたは新しいバージョンのアプリケーションを配置するプロセスである。IaaSの配置は、サーバを用意する(例えば、ライブラリ、デーモンなどをインストールする)プロセスを含んでもよい。IaaSの配置は、多くの場合、クラウドプロバイダによって、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下で管理される。したがって、顧客は、OS、ミドルウェア、および/またはアプリケーションの展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできるもの)などを行うことができる。
【0085】
いくつかの例において、IaaSのプロビジョニングは、使用されるコンピュータまたは仮想ホストを取得すること、およびコンピュータまたは仮想ホスト上に必要なライブラリまたはサービスをインストールすることを含んでもよい。殆どの場合、配置は、プロビジョニングを含まず、まずプロビジョニングを実行する必要がある。
【0086】
場合によっては、IaaSのプロビジョニングには2つの異なる課題がある。第1に、何かを実行する前に、インフラストラクチャの初期セットをプロビジョニングするという課題がある。第2に、全てのものをプロビジョニングした後に、既存のインフラストラクチャを進化させる(例えば、新しいサービスの追加、サービスの変更、サービスの削除)という課題がある。場合によっては、インフラストラクチャの構成を宣言的に定義することを可能にすることによって、これらの2つの課題に対処し得る。言い換えれば、インフラストラクチャ(例えば、どの要素が必要とされるか、およびこれらの要素がどのように相互作用するか)は、1つ以上の構成ファイルによって定義され得る。したがって、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどれに依存するか、どのように連携するか)は、宣言的に記述し得る。いくつかの例において、トポロジが定義されると、構成ファイルに記述された異なる要素を作成および/または管理するためのワークフローが生成され得る。
【0087】
いくつかの例において、インフラストラクチャは、多くの相互接続された要素を含み得る。例えば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(例えば、構成可能な計算リソースおよび/または共有されている計算リソースの潜在的なオンデマンドプール)が存在してもよい。いくつかの例において、ネットワークのインバウンドトラフィックおよび/またはアウトバウンドトラフィックをどのように設定するかを定義するためにプロビジョニングされる1つ以上のインバウンドトラフィックおよび/またはアウトバウンドトラフィックグループルールと、1つ以上の仮想マシン(VM)とが存在する可能性がある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされ得る。ますます多くのインフラストラクチャ要素が望まれるおよび/または追加されるにつれて、インフラストラクチャは、漸進的に進化し得る。
【0088】
いくつかの例において、様々な仮想コンピューティング環境にわたってインフラストラクチャコードの展開を可能にするために、連続展開技法を採用してもよい。また、記載された技法は、これらの環境内のインフラストラクチャ管理を可能にし得る。いくつかの例において、サービスチームは、1つ以上の、通常多くの異なる生産環境(例えば、時には全世界に及ぶ種々の異なる地理的場所にわたって)に展開されることが望まれるコードを書き込むことができる。しかしながら、いくつかの例において、コードを展開するためのインフラストラクチャを最初に設定しなければならない。いくつかの例において、プロビジョニングは、手動で行うことができ、プロビジョニングツールを用いてリソースをプロビジョニングすることができ、および/またはインフラストラクチャをプロビジョニングした後に、展開ツールを用いてコードを展開し得る。
【0089】
図6は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの例示的なパターンを示すブロック
図600である。サービスオペレータ602は、仮想クラウドネットワーク(VCN)606およびセキュアホストサブネット608を含み得るセキュアホストテナンシ604に通信可能に接続され得る。いくつかの例において、サービスオペレータ602は、1つ以上のクライアントコンピューティング装置を使用し得る。1つ以上のクライアントコンピューティング装置は、例えば、Microsoft Windows Mobile(登録商標)のようなソフトウェア、および/またはiOS、Windowsフォン、アンドロイド(登録商標)、ブラックベリー8およびパームOSなどの様々なモバイルオペレーティングシステムを実行することができ、インターネット、電子メール、ショートメッセージサービス(SMS)、ブラックベリー(登録商標)または他の通信プロトコルが有効化された手持ち式携帯装置(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、タブレット、携帯情報端末(PDA)またはウェアラブル装置(Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。クライアントコンピューティング装置は、例示として、Microsoft Windows(登録商標)オペレーティングシステム、Apple Macintosh(登録商標)オペレーティングシステムおよび/またはLinux(登録商標)オペレーティングシステムの様々なバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用のパーソナルコンピュータであってもよい。代替的には、クライアントコンピューティング装置は、例えば、様々なGNU/Linuxオペレーティングシステム、例えば、Google Chrome(登録商標)OSを含むがこれに限定されない市販のUNIX(登録商標)またはUNIXに類似する様々なオペレーティングシステムを実行するワークステーションコンピュータであってもよい。代替的にまたは追加的には、クライアントコンピューティング装置は、VCN606および/またはインターネットにアクセスできるネットワークを介して通信可能な他の電子機器、例えば、シンクライアントコンピュータ、インターネット対応のゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置を備えるまたは備えないMicrosoft Xbox(登録商標)ゲームコンソール)、および/またはパーソナルメッセージング装置であってもよい。
【0090】
VCN606は、ローカルピアリングゲートウェイ(LPG)610を含むことができ、このLPG610は、SSH VCN612に含まれるLPG610を介してセキュアシェル(SSH)VCN612に通信可能に接続し得る。SSH VCN612は、SSHサブネット614を含むことができ、SSH VCN612は、制御プレーンVCN616に含まれるLPG610を介して、制御プレーンVCN616に通信可能に接続され得る。また、SSH VCN612は、LPG610を介して、データプレーンVCN618に通信可能に接続され得る。制御プレーンVCN616およびデータプレーンVCN618は、IaaSプロバイダによって所有および/または運営され得るサービステナンシ619に含まれてもよい。
【0091】
制御プレーンVCN616は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンDMZ(demilitarized zone)層620を含み得る。DMZベースのサーバは、特定の信頼性を有し、セキュリティ侵害を封じ込めることができる。さらに、DMZ層620は、1つ以上のロードバランサ(LB)サブネット622と、アプリサブネット626を含み得る制御プレーンアプリ層624と、データベース(DB)サブネット630(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層628とを含み得る。制御プレーンDMZ層620に含まれたLBサブネット622は、制御プレーンアプリ層624に含まれるアプリサブネット626と制御プレーンVCN616に含まれ得るインターネットゲートウェイ634とに通信可能に接続されてもよく、アプリサブネット626は、制御プレーンデータ層628に含まれるDBサブネット630と、サービスゲートウェイ636と、ネットワークアドレス変換(NAT)ゲートウェイ638とに通信可能に接続され得る。制御プレーンVCN616は、サービスゲートウェイ636およびNATゲートウェイ638を含み得る。
【0092】
制御プレーンVCN616は、データプレーンミラーアプリ層640を含むことができ、データプレーンミラーアプリ層640は、アプリサブネット626を含み得る。データプレーンミラーアプリ層640に含まれたアプリサブネット626は、計算インスタンス644を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)642を含み得る。計算インスタンス644は、データプレーンミラーアプリ層640のアプリサブネット626を、データプレーンアプリ層646に含まれ得るアプリサブネット626に通信可能に接続し得る。
【0093】
データプレーンVCN618は、データプレーンアプリ層646と、データプレーンDMZ層648と、データプレーンデータ層650とを含み得る。データプレーンDMZ層648は、データプレーンアプリ層646のアプリサブネット626およびデータプレーンVCN618のインターネットゲートウェイ634に通信可能に接続され得るLBサブネット622を含み得る。アプリサブネット626は、データプレーンVCN618のサービスゲートウェイ636およびデータプレーンVCN618のNATゲートウェイ638に通信可能に接続され得る。また、データプレーンデータ層650は、データプレーンアプリ層646のアプリサブネット626に通信可能に接続され得るDBサブネット630を含み得る。
【0094】
制御プレーンVCN616のインターネットゲートウェイ634およびデータプレーンVCN618のインターネットゲートウェイ634は、パブリックインターネット654に通信可能に接続され得るメタデータ管理サービス652に通信可能に接続され得る。パブリックインターネット654は、制御プレーンVCN616のNATゲートウェイ638およびデータプレーンVCN618のNATゲートウェイ638に通信可能に接続され得る。制御プレーンVCN616のサービスゲートウェイ636およびデータプレーンVCN618のサービスゲートウェイ636は、クラウドサービス656に通信可能に接続され得る。
【0095】
いくつかの例において、制御プレーンVCN616またはデータプレーンVCN618のサービスゲートウェイ636は、パブリックインターネット654を経由することなく、クラウドサービス656へのアプリケーションプログラミングインターフェイス(API)呼び出しを行うことができる。サービスゲートウェイ636からのクラウドサービス656へのAPI呼び出しは、一方向であり得る。サービスゲートウェイ636は、クラウドサービス656へのAPI呼び出しを行うことができ、クラウドサービス656は、要求データをサービスゲートウェイ636に送信し得る。しかしながら、クラウドサービス656は、サービスゲートウェイ636へのAPI呼び出しを開始しないことがある。
【0096】
いくつかの例において、セキュアホストテナンシ604は、そうでなければ分離され得るサービステナンシ619に直接に接続され得る。セキュアホストサブネット608は、そうでなければ分離されたシステムとの双方向通信を可能にするLPG610を介して、SSHサブネット614と通信し得る。セキュアホストサブネット608をSSHサブネット614に接続することによって、セキュアホストサブネット608は、サービステナンシ619内の他のエンティティにアクセスし得る。
【0097】
制御プレーンVCN616は、サービステナンシ619のユーザが所望のリソースを設定またはプロビジョニングすることを可能にする。制御プレーンVCN616においてプロビジョニングされた所望のリソースは、データプレーンVCN618において展開または使用され得る。いくつかの例において、制御プレーンVCN616は、データプレーンVCN618から隔離されてもよく、制御プレーンVCN616のデータプレーンミラーアプリ層640は、データプレーンミラーアプリ層640およびデータプレーンアプリ層646に含まれ得るVNIC642を介して、データプレーンVCN618のデータプレーンアプリ層646と通信し得る。
【0098】
いくつかの例において、システムのユーザまたは顧客は、要求をメタデータ管理サービス652に通信し得るパブリックインターネット654を介して、例えば、作成(create)、読み取り(read)、更新(update)、または削除(delte)(CRUD)操作などの要求を行うことができる。メタデータ管理サービス652は、インターネットゲートウェイ634を介して、要求を制御プレーンVCN616に通信し得る。要求は、制御プレーンDMZ層620に含まれるLBサブネット622によって受信され得る。LBサブネット622は、要求が有効であると判断することができ、この判断に応答して、LBサブネット622は、要求を制御プレーンアプリ層624に含まれるアプリサブネット626に送信し得る。要求が検証され、パブリックインターネット654への呼び出しを必要とする場合、パブリックインターネット654への呼び出しを、パブリックインターネット654への呼び出しを行うことができるNATゲートウェイ638に送信し得る。要求によって記憶されたいメタデータは、DBサブネット630に記憶され得る。
【0099】
いくつかの例において、データプレーンミラーアプリ層640は、制御プレーンVCN616とデータプレーンVCN618との間の直接通信を容易にし得る。例えば、構成に対する変更、更新、または他の適切な修正は、データプレーンVCN618に含まれるリソースに適用されることが望ましい場合がある。制御プレーンVCN616は、VNIC642を介してデータプレーンVCN618に含まれるリソースと直接に通信し得るため、構成に対する変更、更新、または他の適切な修正を実行し得る。
【0100】
いくつかの実施形態において、制御プレーンVCN616およびデータプレーンVCN618は、サービステナンシ619に含まれてもよい。この場合、システムのユーザまたは顧客は、制御プレーンVCN616またはデータプレーンVCN618のいずれかを所有または操作しなくてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN616およびデータプレーンVCN618を所有または操作してもよく、これらの両方は、サービステナンシ619に含まれてもよい。この実施形態は、ネットワークの隔離を可能にすることによって、ユーザまたは顧客が他のユーザのリソースまたは他の顧客のリソースと対話することを防止できる。また、この実施形態は、システムのユーザまたは顧客が、記憶するための所望のレベルの脅威防止を有しない可能性のあるパブリックインターネット654に依存する必要なく、データベースをプライベートに記憶することを可能にし得る。
【0101】
他の実施形態において、制御プレーンVCN616に含まれるLBサブネット622は、サービスゲートウェイ636から信号を受信するように構成され得る。この実施形態において、制御プレーンVCN616およびデータプレーンVCN618は、パブリックインターネット654を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成され得る。顧客が使用するデータベースは、IaaSプロバイダによって制御され、パブリックインターネット654から隔離され得るサービステナンシ619に格納され得るため、IaaSプロバイダの顧客は、この実施形態を望む場合がある。
【0102】
図7は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別の例示的なパラメータを示すブロック
図700である。サービスオペレータ702(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)706(例えば、
図6のVCN606)およびセキュアホストサブネット708(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ704(例えば、
図6のセキュアホストテナンシ604)に通信可能に接続され得る。VCN706は、SSH VCN712に含まれるLPG610を介してセキュアシェル(SSH)VCN712(例えば、
図6のSSH VCN612)に通信可能に接続され得るローカルピアリングゲートウェイ(LPG)710(例えば、
図6のLPG610)を含み得る。SSH VCN712は、SSHサブネット714(例えば、
図6のSSHサブネット614)を含むことができ、SSH VCN712は、制御プレーンVCN716に含まれるLPG710を介して制御プレーンVCN716(例えば、
図6の制御プレーンVCN616)に通信可能に接続し得る。制御プレーンVCN716は、サービステナンシ719(例えば、
図6のサービステナンシ619)に含まれてもよく、データプレーンVCN718(例えば、
図6のデータプレーンVCN618)は、システムのユーザまたは顧客によって所有または運営され得る顧客テナンシ721に含まれてもよい。
【0103】
制御プレーンVCN716は、LBサブネット722(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層720(例えば、
図6の制御プレーンDMZ層620)と、アプリサブネット726(例えば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ層716(例えば、
図6の制御プレーンアプリ層624)と、データベース(DB)サブネット730(例えば、
図6のDBサブネット630と同様)を含み得る制御プレーンデータ層728(例えば、
図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層720に含まれるLBサブネット722は、制御プレーンアプリ層716に含まれるアプリサブネット726と、制御プレーンVCN716に含まれ得るインターネットゲートウェイ734(例えば、
図6のインターネットゲートウェイ634)とに通信可能に接続され得る。アプリサブネット726は、制御プレーンデータ層728に含まれるDBサブネット730、サービスゲートウェイ736(例えば、
図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ738(例えば、
図6のNATゲートウェイ638)に通信可能に接続され得る。制御プレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を含み得る。
【0104】
制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ層740(例えば、
図6のデータプレーンミラーアプリ層640)を含み得る。データプレーンミラーアプリ層740に含まれるアプリサブネット726は、(例えば、
図6の計算インスタンス644と同様の)計算インスタンス744を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)742(例えば、VNIC642)を含み得る。計算インスタンス744は、データプレーンミラーアプリ層740に含まれるVNIC742およびデータプレーンアプリ層746に含まれるVNIC742を介して、データプレーンミラーアプリ層740のアプリサブネット726と、データプレーンアプリ層746(例えば、
図6のデータプレーンアプリ層646)に含まれ得るアプリサブネット726との間の通信を促進し得る。
【0105】
制御プレーンVCN716に含まれるインターネットゲートウェイ734は、パブリックインターネット754(例えば、
図6のパブリックインターネット654)に通信可能に接続され得るメタデータ管理サービス752(例えば、
図6のメタデータ管理サービス652)に通信可能に接続され得る。パブリックインターネット754は、制御プレーンVCN716に含まれるNATゲートウェイ738に通信可能に接続され得る。制御プレーンVCN716に含まれるサービスゲートウェイ736は、クラウドサービス756(例えば、
図6のクラウドサービス656)に通信可能に接続され得る。
【0106】
いくつかの例において、データプレーンVCN718は、顧客テナンシ721に含まれてもよい。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN716を提供することができ、IaaSプロバイダは、顧客ごとに、サービステナンシ719に含まれる固有の計算インスタンス744を構成し得る。各計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716と、顧客テナンシ721に含まれるデータプレーンVCN718との間の通信を許可し得る。計算インスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716においてプロビジョニングされるリソースを、顧客テナンシ721に含まれるデータプレーンVCN718に展開することまたは使用することを許可し得る。
【0107】
他の例において、IaaSプロバイダの顧客は、顧客テナンシ721に存在するデータベースを有し得る。この例において、制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンマイナーアプリ層740を含み得る。データプレーンミラーアプリ層740は、データプレーンVCN718に存在してもよいが、データプレーンミラーアプリ層740は、データプレーンVCN718に存在しなくてもよい。すなわち、データプレーンミラーアプリ層740は、顧客テナンシ721にアクセスし得るが、データプレーンミラーアプリ層740は、データプレーンVCN718に存在しなくてもよく、IaaSプロバイダの顧客によって所有または運営されなくてもよい。データプレーンミラーアプリ層740は、データプレーンVCN718への呼び出しを行うように構成され得るが、制御プレーンVCN716に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN716にプロビジョニングされたデータプレーンVCN718内のリソースを展開することまたは使用することを望むことができ、データプレーンミラーアプリケーション階層740は、顧客のリソースの所望の展開または他の使用を促進し得る。
【0108】
いくつかの実施形態において、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN718に適用し得る。この実施形態において、顧客は、データプレーンVCN718がアクセスできるものを決定することができ、顧客は、データプレーンVCN718からのパブリックインターネット754へのアクセスを制限し得る。IaaSプロバイダは、データプレーンVCN718から任意の外部ネットワークまたはデータベースへのアクセスにフィルタを適用するまたは制御することができない場合がある。顧客が顧客テナンシ721に含まれるデータプレーンVCN718にフィルタおよび制御を適用することは、データプレーンVCN718を他の顧客およびパブリックインターネット754から隔離することを支援し得る。
【0109】
いくつかの実施形態において、クラウドサービス756は、サービスゲートウェイ736によって呼び出されて、パブリックインターネット754上に、制御プレーンVCN716上に、またはデータプレーンVCN718上に存在していない可能性があるサービスにアクセスし得る。クラウドサービス756と制御プレーンVCN716またはデータプレーンVCN718との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス756は、IaaSプロバイダによって所有または運営されている別のネットワーク上に存在してもよい。クラウドサービス756は、サービスゲートウェイ736から呼び出しを受信するように構成されてもよく、パブリックインターネット754から呼び出しを受信しないように構成され得る。いくつかのクラウドサービス756は、他のクラウドサービス756から隔離されてもよく、制御プレーンVCN716は、制御プレーンVCN716と同じ地域に配置していない可能性があるクラウドサービス756から隔離され得る。例えば、制御プレーンVCN716は、「地域1」に配置されてもよく、クラウドサービス「展開6」は、「地域1」および「地域2」に配置され得る。展開6への呼び出しが地域1に配置された制御プレーンVCN716に含まれるサービスゲートウェイ736によって行われる場合、この呼び出しは、地域1内の展開6に送信され得る。この例において、制御プレーンVCN716または地域1の展開6は、地域2の展開6と通信可能に接続されなくてもよい。
【0110】
図8は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図800である。サービスオペレータ802(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)806(例えば、
図6のVCN606)およびセキュアホストサブネット808(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ804(例えば、
図6のセキュアホストテナンシ604)に通信可能に接続され得る。VCN806は、SSH VCN812に含まれるLPG810を介してSSH VCN812(例えば、
図6のSSH VCN612)に通信可能に接続され得るLPG810(例えば、
図6のLPG610)を含み得る。SSH VCN812は、SSHサブネット814(例えば、
図6のSSHサブネット614)を含むことができ、SSH VCN812は、制御プレーンVCN816に含まれるLPG810を介して制御プレーンVCN816(例えば、
図6の制御プレーンVCN616)に通信可能に接続されてもよく、データプレーンVCN818に含まれるLPG810を介してデータプレーンVCN818(例えば、
図6のデータプレーン618)に通信可能に接続され得る。制御プレーンVCN816およびデータプレーンVCN818は、サービステナンシ819(例えば、
図6のサービステナンシ619)に含まれてもよい。
【0111】
制御プレーンVCN816は、ロードバランサ(LB)サブネット822(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層820(例えば、
図6の制御プレーンDMZ層620)と、アプリサブネット826(例えば、
図6のアプリサブネット626と同様)を含み得る制御プレーンアプリ層824(例えば、
図6の制御プレーンアプリ層624)と、DBサブネット830を含み得る制御プレーンデータ層828(例えば、
図6の制御プレーンデータ層628)とを含み得る。制御プレーンDMZ層820に含まれるLBサブネット822は、制御プレーンアプリ層824に含まれるアプリサブネット826と、制御プレーンVCN816に含まれ得るインターネットゲートウェイ834(例えば、
図6のインターネットゲートウェイ634)とに通信可能に接続され得る。アプリサブネット826は、制御プレーンデータ層828に含まれるDBサブネット830と、サービスゲートウェイ836(例えば、
図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ838(例えば、
図6のNATゲートウェイ638)とに通信可能に接続され得る。制御プレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を含み得る。
【0112】
データプレーンVCN818は、データプレーンアプリ層846(例えば、
図6のデータプレーンアプリ層646)と、データプレーンDMZ層848(例えば、
図6のデータプレーンDMZ層648)と、データプレーンデータ層850(例えば、
図6のデータプレーンデータ階層650)とを含み得る。データプレーンDMZ層848は、データプレーンVCN818に含まれるデータプレーンアプリ層846およびインターネットゲートウェイ834の信頼できるアプリサブネット860および信頼できないアプリサブネット862に通信可能に接続され得るLBサブネット822を含み得る。信頼できるアプリサブネット860は、データプレーンVCN818に含まれるサービスゲートウェイ836、データプレーンVCN818に含まれるNATゲートウェイ838、およびデータプレーンデータ層850に含まれるDBサブネット830に通信可能に接続され得る。信頼できないアプリサブネット862は、データプレーンVCN818に含まれるサービスゲートウェイ836、およびデータプレーンデータ層850に含まれるDBサブネット830に通信可能に接続され得る。データプレーンデータ層850は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に接続され得るDBサブネット830を含み得る。
【0113】
信頼できないアプリサブネット862は、テナント仮想マシン(VM)866(1)~(N)に通信可能に接続され得る1つ以上のプライマリVNIC864(1)~(N)を含み得る。各テナントVM866(1)~(N)は、それぞれの顧客テナンシ870(1)~(N)に含まれ得るそれぞれのコンテナ送信VCN868(1)~(N)に含まれ得るそれぞれのアプリサブネット867(1)~(N)に通信可能に接続され得る。それぞれのセカンダリVNIC872(1)~(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット862と、コンテナ送信VCN868(1)~(N)に含まれるアプリサブネットとの間の通信を促進し得る。各コンテナ送信VCN868(1)~(N)は、パブリックインターネット854(例えば、
図6のパブリックインターネット654)に通信可能に接続され得るNATゲートウェイ838を含み得る。
【0114】
制御プレーンVCN816に含まれるインターネットゲートウェイ834およびデータプレーンVCN818に含まれるインターネットゲートウェイ834は、パブリックインターネット854に通信可能に接続され得るメタデータ管理サービス852(例えば、
図6のメタデータ管理システム652)に通信可能に接続され得る。パブリックインターネット854は、制御プレーンVCN816に含まれるNATゲートウェイ838およびデータプレーンVCN818に含まれるNATゲートウェイ838に通信可能に接続され得る。制御プレーンVCN816に含まれるサービスゲートウェイ836およびデータプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に接続され得る。
【0115】
いくつかの実施形態において、データプレーンVCN818は、顧客テナンシ870に統合され得る。この統合は、コードを実行するときにサポートを望む場合がある場合などのいくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましい場合がある。顧客は、実行すると、破壊的であり得る、他の顧客リソースと通信し得る、または望ましくない影響を引き起こし得るコードを提供することがある。従って、IaaSプロバイダは、顧客がIaaSプロバイダに提供したコードを実行するか否かを判断し得る。
【0116】
いくつかの例において、IaaSプロバイダの顧客は、一時的なネットワークアクセスをIaaSプロバイダに許可することができ、データプレーンアプリ層846に追加する機能を要求し得る。機能を実行するためのコードは、VM866(1)~(N)で実行され得るが、データプレーンVCN818上の他の場所で実行されるように構成されることができない。各VM866(1)~(N)は、1つの顧客テナンシ870に接続され得る。VM866(1)~(N)に含まれるそれぞれのコンテナ871(1)~(N)は、コードを実行するように構成され得る。この場合、二重の隔離(例えば、コンテナ871(1)~(N)は、コードを実行し、コンテナ871(1)~(N)は、少なくとも、信頼できないアプリサブネット862に含まれるVM866(1)~(N)に含まれ得る)が存在してもよく、これは、誤ったコードまたは望ましくないコードがIaaSプロバイダのネットワークに損傷を与えること、または異なる顧客のネットワークに損傷を与えることを防止することを支援し得る。コンテナ871(1)~(N)は、顧客テナンシ870に通信可能に接続されてもよく、顧客テナンシ870からデータを送信または受信するように構成され得る。コンテナ871(1)~(N)は、データプレーンVCN818内の任意の他のエンティティからデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaS提供者は、コンテナ871(I)~(N)を強制停止(kill)し、または廃棄し得る。
【0117】
いくつかの実施形態において、信頼できるアプリサブネット860は、IaaSプロバイダによって所有または運営され得るコードを実行し得る。この実施形態において、信頼できるアプリサブネット860は、DBサブネット830に通信可能に接続され、DBサブネット830においてCRUD操作を実行するように構成され得る。信頼できないアプリサブネット862は、DBサブネット830に通信可能に接続され得るが、この実施形態において、信頼できないアプリサブネットは、DBサブネット830内で読み取り操作を実行するように構成され得る。各顧客のVM866(1)~(N)に含まれ、顧客からのコードを実行し得るコンテナ871(1)~(N)は、DBサブネット830と通信可能に接続されなくてもよい。
【0118】
他の実施形態において、制御プレーンVCN816およびデータプレーンVCN818は、通信可能に直接に結合されなくてもよい。この実施形態において、制御プレーンVCN816とデータプレーンVCN818との間に直接的な通信は、存在しないことがある。しかしながら、少なくとも1つの方法による間接的な通信は、存在してもよい。制御プレーンVCN816とデータプレーンVCN818との間の通信を容易にし得るLPG810が、IaaSプロバイダによって確立され得る。別の例において、制御プレーンVCN816またはデータプレーンVCN818は、サービスゲートウェイ836を介してクラウドサービス856への呼び出しを行うことができる。例えば、制御プレーンVCN816からクラウドサービス856への呼び出しは、データプレーンVCN818と通信し得るサービスの要求を含み得る。
【0119】
図9は、少なくとも1つの実施形態に従う、IaaSアーキテクチャの別の例示的なパラメータを示すブロック
図900である。サービスオペレータ902(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)906(例えば、
図6のVCN606)およびセキュアホストサブネット908(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ904(例えば、
図6のセキュアホストテナンシ604)に通信可能に接続され得る。VCN906は、SSH VCN912に含まれるLPG910を介してSSH VCN912(例えば、
図6のSSH VCN612)に通信可能に接続され得るLPG910(例えば、
図6のLPG610)を含み得る。SSH VCN912は、SSHサブネット914(例えば、
図6のSSHサブネット614)を含むことができ、SSH VCN912は、制御プレーンVCN916に含まれるLPG910を介して制御プレーンVCN916(例えば、
図6の制御プレーンVCN616)に通信可能に接続されてもよく、データプレーンVCN918に含まれるLPG910を介してデータプレーンVCN918(例えば、
図6のデータプレーン618)に通信可能に接続され得る。制御プレーンVCN916およびデータプレーンVCN918は、サービステナンシ919(例えば、
図6のサービステナンシ619)に含まれてもよい。
【0120】
制御プレーンVCN916は、LBサブネット922(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ層920(例えば、
図6の制御プレーンDMZ層620)、アプリサブネット926(例えば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ層924(例えば、
図6の制御プレーンアプリ層624)、DBサブネット930(例えば、
図8のDBサブネット830)を含み得る制御プレーンデータ層928(例えば、
図6の制御プレーンデータ層628)を含み得る。制御プレーンDMZ層920に含まれるLBサブネット922は、制御プレーンアプリ層924に含まれるアプリサブネット926と、制御プレーンVCN916に含まれ得るインターネットゲートウェイ934(例えば、
図6のインターネットゲートウェイ634)とに通信可能に接続され得る。アプリサブネット926は、制御プレーンデータ層928に含まれるDBサブネット930と、サービスゲートウェイ936(例えば、
図6のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ938(例えば、
図6のNATゲートウェイ638)とに通信可能に接続され得る。制御プレーンVCN916は、サービスゲートウェイ936およびNATゲートウェイ938を含み得る。
【0121】
データプレーンVCN918は、データプレーンアプリ層946(例えば、
図6のデータプレーンアプリ層646)、データプレーンDMZ層948(例えば、
図6のデータプレーンDMZ層648)、およびデータプレーンデータ層950(例えば、
図6のデータプレーンデータ層650)を含み得る。データプレーンDMZ層948は、データプレーンアプリ層946の信頼できるアプリサブネット960(例えば、
図8の信頼できるアプリサブネット860)および信頼できないアプリサブネット962(例えば、
図8の信頼できないアプリサブネット862)およびデータプレーンVCN918に含まれるインターネットゲートウェイ934に通信可能に接続され得るLBサブネット922を含み得る。信頼できるアプリサブネット960は、データプレーンVCN918に含まれるサービスゲートウェイ936、データプレーンVCN918に含まれるNATゲートウェイ938、およびデータプレーンデータ層950に含まれるDBサブネット930に通信可能に接続され得る。信頼できないアプリサブネット962は、データプレーンVCN918に含まれるサービスゲートウェイ936、およびデータプレーンデータ層950に含まれるDBサブネット930に通信可能に接続され得る。データプレーンデータ層950は、データプレーンVCN918に含まれるサービスゲートウェイ936に通信可能に接続され得るDBサブケット930を含み得る。
【0122】
信頼できないアプリサブネット962は、信頼できないアプリサブネット962に常駐するテナント仮想マシン(VM)966(1)~(N)に通信可能に接続され得るプライマリYNIC964(1)~(N)を含み得る。各テナントVM966(1)~(N)は、それぞれのコンテナ967(1)~(N)においてコードを実行することができ、コンテナ送信VCN968に含まれ得るデータプレーンアプリ層946に含まれ得るアプリサブネット926に通信可能に接続され得る。各セカンダリVNIC972(1)~(N)は、データプレーンVCN918に含まれる信頼できないアプリサブネット962とコンテナ送信VCN968に含まれるアプリサブネットとの間の通信を促進し得る。コンテナ送信VCNは、パブリックインターネット954(例えば、
図6のパブリックインターネット654)に通信可能に接続し得るNATゲートウェイ938を含み得る。
【0123】
制御プレーンVCN916に含まれるインターネットゲートウェイ934およびデータプレーンVCN918に含まれるインターネットゲートウェイ934は、パブリックインターネット954に通信可能に接続され得るメタデータ管理サービス952(例えば、
図6のメタデータ管理システム652)に通信可能に接続され得る。パブリックインターネット954は、制御プレーンVCN916に含まれるインターネットゲートウェイ934およびデータプレーンVCN918に含まれるNATゲートウェイ938に通信可能に接続され得る。制御プレーンVCN916に含まれるインターネットゲートウェイ934およびデータプレーンVCN918に含まれるサービスゲートウェイ936は、クラウドサービス956に通信可能に接続され得る。
【0124】
いくつかの例において、
図9のブロック
図900のアーキテクチャによって示されたパターンは、
図8のブロック
図800のアーキテクチャによって示されたパターンの例外と考えられ、IaaSプロバイダが顧客と直接に通信できない場合(例えば、非接続地域)、IaaSプロバイダの顧客にとって望ましいことがある。顧客は、各顧客のVM966(1)~(N)に含まれるそれぞれのコンテナ967(1)~(N)にリアルタイムでアクセスし得る。コンテナ967(1)~(N)は、コンテナ送信VCN968に含まれ得るデータプレーンアプリ層946のアプリサブネット926に含まれるそれぞれのセカンダリVNIC972(1)~(N)を呼び出すように構成され得る。セカンダリVNIC972(1)~(N)は、パブリックインターネット954に呼び出しを送信し得るNATゲートウェイ938に呼び出しを送信し得る。この例において、顧客がリアルタイムでアクセスできるコンテナ967(1)~(N)は、制御プレーンVCN916から隔離されてもよく、データプレーンVCN918に含まれる他のエンティティから隔離され得る。また、コンテナ967(1)~(N)は、他の顧客のリソースから隔離され得る。
【0125】
他の例において、顧客は、コンテナ967(1)~(N)を使用して、クラウドサービス956を呼び出すことができる。この例では、顧客は、コンテナ967(1)~(N)において、クラウドサービス956からサービスを要求するコードを実行し得る。コンテナ967(1)~(N)は、要求をパブリックインターネット954に送信し得るNATゲートウェイに要求を送信し得るセカンダリVNIC972(1)~(N)にこの要求を送信し得る。パブリックインターネット954は、インターネットゲートウェイ934を介して、制御プレーンVCN916に含まれるLBサブネット922にこの要求を送信し得る。要求が有効であるとの判断に応答して、LBサブネットは、この要求をアプリサブネット926に送信することができ、アプリサブネット926は、サービスゲートウェイ936を介して、この要求をクラウドサービス956に要求を送信し得る。
【0126】
なお、図示されたIaaSアーキテクチャ600、700、800および900は、図示されたもの以外の要素を含んでもよい。また、図示された実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一部の例に過ぎない。他のいくつかの実施形態において、IaaSシステムは、図示されたものよりも多いまたは少ない要素を有してよく、2つ以上の要素を組み合わせてよく、または要素の異なる構成または配置を有してよい。
【0127】
特定の実施形態において、本開示に記載されたIaaSシステムは、セルフサービス、サブスクリプションベース、柔軟な拡張可能性、信頼性、高可用性、および安全な方法で顧客に提供されるアプリケーション、ミドルウェア、およびデータベースサービスのスイートを含み得る。このようなIaaSシステムの一例は、本出願人によって提供されたオラクル(登録商標)クラウドインフラストラクチャ(OCI)である。
【0128】
図10は、様々な実施形態が実装され得る例示的なコンピュータシステム1000を示す。システム1000は、上述したコンピュータシステムのいずれかを実装するために使用され得る。図示のように、コンピュータシステム1000は、バスサブシステム1002を介して多数の周辺サブシステムと通信する処理ユニット1004を含む。これらの周辺サブシステムは、処理加速ユニット1006、I/Oサブシステム1008、記憶サブシステム1018、および通信サブシステム1024を含んでもよい。記憶サブシステム1018は、有形のコンピュータ可読記憶媒体1022およびシステムメモリ1010を含む。
【0129】
バスサブシステム1002は、コンピュータシステム1000の様々な構成要素およびサブシステムを意図したように相互に通信させるための機構を提供する。バスサブシステム1002は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム1002は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかの種類のバス構造のいずれかであってもよい。例えば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)、バス拡張ISA(EISA)バス、ビデオ電子標準協会(VESA)ローカルバス、およびIEEE P1386.1標準に準拠して製造されたメザニンバスとして実装できる周辺機器相互接続(PCI)バスなどを含み得る。
【0130】
1つ以上の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装され得る処理ユニット1004は、コンピュータシステム1000の動作を制御する。処理ユニット1004は、1つ以上のプロセッサを含んでもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでもよい。いくつかの実施形態において、処理ユニット1004は、各処理ユニットに含まれるシングルコアまたはマルチコアプロセッサを有する1つ以上の独立した処理ユニット1032および/または1034として実装され得る。他の実施形態において、処理ユニット1004は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されたクワッドコア(quad-core)処理ユニットとして実装され得る。
【0131】
様々な実施形態において、処理ユニット1004は、プログラムコードに応答して様々なプログラムを実行することができ、同時に実行する複数のプログラムまたはプロセスを維持し得る。任意の時点で、実行されるプログラムコードの一部または全部は、プロセッサ1004および/または記憶サブシステム1018に常駐し得る。プロセッサ1004は、適切なプログラミングを通して、上述した様々な機能性を提供し得る。コンピュータシステム1000は、デジタル信号プロセッサ(DSP)、専用プロセッサおよび/または同種のものを含み得る処理加速ユニット1006をさらに含んでもよい。
【0132】
I/Oサブシステム1008は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含み得る。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声命令認識システムを備える音声入力装置、マイクロフォン、および他の種類の入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、Microsoft Kinect(登録商標)モーションセンサのようなモーション検知および/またはジェスチャ認識装置を含んでもよい。Microsoft Kinect(登録商標)モーションセンサは、ジェスチャおよび音声命令を利用する自然ユーザインターフェイス(NUI)を介して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御することができ、それと対話し得る。また、ユーザインターフェイス入力装置は、Google Glass(登録商標)瞬き検出器のような眼球ジェスチャ認識装置を含み得る。Google Glass(登録商標)瞬き検出器は、ユーザの眼球活動(例えば、写真を撮るときおよび/またはメニューを選択するときの「瞬き」)を検出し、眼球活動を入力装置(例えば、Google Glass(登録商標))に入力する入力に変換する。さらに、ユーザインターフェイス入力装置は、音声命令を介してユーザと音声認識システム(例えば、Siri(登録商標)ナビゲータ)との対話を可能にする音声認識検出装置を含んでもよい。
【0133】
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、グラフィックタブレット、スピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ、3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置を含むがこれらに限定されない。さらに、ユーザインターフェイス入力装置は、例えば、コンピュータ断層撮影装置、磁気共鳴像装置、超音波放射断層撮影装置、および医療用超音波装置などのような医用画像入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、MIDIキーボードおよび電子楽器などの音声入力装置を含んでもよい。
【0134】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するフラットパネル装置、投射装置またはタッチスクリーンであってもよい。一般的に、「出力装置」という用語を使用する場合、コンピュータシステム1000から情報をユーザまたは他のコンピュータに出力するための全ての可能な種類の装置および機構を含むことを意図している。例えば、ユーザインターフェイス出力装置は、文字、画像およびオーディオ/ビデオ情報を視覚的に伝達する様々な表示装置、例えば、モニタ、プリンタ、スピーカ、ヘッドフォン、カーナビゲーションシステム、プロッタ、音声出力装置、およびモデムを含むがこれらに限定されない。
【0135】
コンピュータシステム1000は、記憶サブシステム1018を含み得る。記憶サブシステム1018は、ソフトウェア要素を備え、図示では、これらのソフトウェア要素は、システムメモリ1010内に配置されている。システムメモリ1010は、処理ユニット1004にロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行により生成されたデータを記憶し得る。
【0136】
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM))であってもよく、および/または、不揮発性メモリ(例えば、読取り専用メモリ(read-only memory:ROM)、フラッシュメモリ)であってもよい。一般的に、RAMは、処理ユニット1004がすぐにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット1004によって現在操作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム1000内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、一般的にROMに格納され得る。一例としておよび非限定的に、システムメモリ1010は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム1012、プログラムデータ1014およびオペレーティングシステム1016も示す。一例として、オペレーティングシステム1016は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/もしくはLinux(登録商標)オペレーティングシステムの様々なバージョン、様々な市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(様々なGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、および/または、iOS、Windows(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10 OSおよびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0137】
また、記憶サブシステム1018は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ可読記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム1018に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット1004によって実行され得る。また、記憶サブシステム1018は、本開示に従って使用されるデータを記憶するためのリポジトリを提供し得る。
【0138】
また、記憶サブシステム1000は、コンピュータ可読記憶媒体1022にさらに接続可能なコンピュータ可読記憶媒体リーダ1020を含み得る。コンピュータ可読記憶媒体1022は、システムメモリ1010と共に、または必要に応じてシステムメモリ1010と組み合わせて、コンピュータ可読情報を一時的におよび/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモート記憶装置、ローカル記憶装置、固定的な記憶装置および/または取外し可能な記憶装置を包括的に表すことができる。
【0139】
また、コードまたはコードの一部を含むコンピュータ可読記憶媒体1022は、当該技術分野において公知のまたは使用される任意の適切な媒体を含んでもよい。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体などの有形のコンピュータ可読記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ可読媒体、または、所望の情報を送信するために使用可能であり且つコンピュータシステム1000によってアクセス可能なその他の媒体を含み得る。
【0140】
一例として、コンピュータ可読記憶媒体1022は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含んでもよい。コンピュータ可読記憶媒体1022は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ可読記憶媒体1022は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含んでもよい。ディスクドライブおよびそれらの関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置をコンピュータシステム1000に提供し得る。
【0141】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム1024は、他のシステムからデータを受信し、コンピュータシステム1000から他のシステムにデータを送信するためのインターフェイスの役割を果たす。例えば、通信サブシステム1024は、コンピュータシステム1000がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施例では、通信サブシステム1024は、(例えば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバ構成要素、WiFi(IEEE802.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組み合わせ)、全地球測位システム(global positioning system:GPS)レシーバ構成要素、および/または、他の構成要素を含んでもよい。いくつかの実施例では、通信サブシステム1024は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えば、イーサネット(登録商標))を提供し得る。
【0142】
また、いくつかの実施例において、通信サブシステム1024は、コンピュータシステム1000を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030などの形態で入力通信を受信し得る。
【0143】
一例として、通信サブシステム1024は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード1026をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【0144】
また、通信サブシステム1024は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部を持たない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム1028および/またはイベント更新1030を含んでもよい。連続的なデータを生成するアプリケーションの例としては、例えばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含んでもよい。
【0145】
また、通信サブシステム1024は、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新1030などを、コンピュータシステム1000に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成され得る。
【0146】
コンピュータシステム1000は、手持ち式携帯機器(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウェアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含む様々な種類のうちの1つであってもよい。
【0147】
コンピュータおよびネットワークが絶え間なく進化し続けるため、図示されたコンピュータシステム1000の説明は、特定の例として意図されているにすぎない。図示されたシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成も可能である。例えば、ハードウェア、ファームウェア、(アプレットを含む)ソフトウェア、または組み合わせにおいて、カスタマイズされたハードウェアも使用されてもよく、および/または、特定の要素が実装され得る。さらに、ネットワーク入力/出力装置などの他の計算装置への接続が利用され得る。本開示において提供される開示および教示に基づいて、当業者は、様々な実施例を実現するための他の手段および/または方法を理解するであろう。
【0148】
本開示の特定の実施形態を説明してきたが、様々な変更、改変、代替構成、および同等物も本開示の範囲内に包含される。本開示の実施形態は、特定のデータ処理環境内で動作するのに限定されず、複数のデータ処理環境内で自由に動作し得る。さらに、一連の特定の処置およびステップを用いて本開示の実施形態を説明してきたが、本開示の範囲が説明された一連の処置およびステップに限定されないことは、当業者にとって明らかであろう。上述した実施形態の様々な特徴および態様は、個別にまたは共同で使用し得る。
【0149】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを用いて本開示の実施形態を説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内に含まれることを認識すべきである。ハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせを用いて、本開示の実施形態を実現し得る。本開示に記載された様々なプロセスは、同一のプロセッサまたは任意の組み合わせの異なるプロセッサ上で実行し得る。したがって、特定の処理を実行するように構成要素またはモジュールを構成すると説明する場合、その構成は、例えば、その処理を実行するように電子回路を設計することによって、その処理を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの組み合わせによって実現し得る。プロセスは、プロセス間の通信を行う従来技術を含むがこれに限定されない様々な技術を用いて通信を行うことができる。異なる対のプロセスは、異なる技術を使用することができ、または同一対のプロセスは、異なる時間で異なる技術を使用し得る。
【0150】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなすべきである。しかしながら、特許請求の範囲により定められた幅広い主旨および範囲から逸脱することなく、追加、削減、削除および他の修飾および変更を行ってもよいことは、明らかであろう。したがって、本開示の特定の実施形態を説明したが、これらの実施形態は、限定することを意図していない。様々な変更およびその等価物は、添付の特許請求の範囲に含まれる。
【0151】
本開示を説明する文脈に(特に特許請求の範囲の文脈に)使用された不定冠詞「a」/「an」、定冠詞「the」および同様の参照は、本開示に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、単数および複数の両方を含むように解釈すべきである。用語「含む(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に明記しない限り、非限定的な用語(すなわち、「含むがこれに限定されない」という意味)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在していても、その一部または全部が内部に含まれている、取り付けられている、または一緒に結合されていると解釈されるべきである。本開示において、値の範囲の列挙は、単にその範囲内に含まれる各個別の値を各々言及する速記方法として意図され、本開示に特に明記しない限り、各個別の値は、本開示に個別に記載されるように、本開示に組み込まれる。本開示に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、本開示に記載の全ての方法は、任意の適切な順序で行うことができる。本開示において、任意の例および全ての例または例示的な言語(例えば、「~のような」)の使用は、本開示の実施形態をより明瞭にするよう意図されており、特に明記しない限り、本開示の範囲を限定するものではない。明細書内の用語は、本開示の実施に不可欠な任意の非請求要素を示すものと解釈すべきではない。
【0152】
「X、Y、またはZの少なくとも1つ」というフレーズのような選言的言語は、特に断らない限り、項目、用語などがX、YもしくはZ、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)のいずれかであってもよいことを示すために一般的に用いられるものとして文脈内で理解されることを意図している。したがって、このような選言的言語は、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが存在することを必要とすることを一般的に意図しておらず、またはそれを暗示していない。
【0153】
本開示を実施するために知られている最良の形態を含み、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形例は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、このような変形例を採用することができ、本開示は、本明細書に具体的に記載されている以外の方法で実施され得る。したがって、本開示は、適用される法律によって許可され、本明細書に添付された請求項に記載された主題の全ての変形および等価物を含む。さらに、その全ての可能な変形における上記の要素の任意の組み合わせは、本明細書において別段の指示がない限り、本開示に包含される。
【0154】
本明細書に引用された刊行物、特許出願、および特許を含む全ての参考文献は、各文献が参照により組み込まれることが個別にかつ明確に示され、その全体が本明細書に記載された場合と同じ程度に、参照により組み込まれるものとする。
【0155】
前述の明細書において、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述した開示の様々な特徴および態様は、個々にまたは共同で使用され得る。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に説明されるものを超える任意の数の環境および用途において利用されることができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【国際調査報告】