(58)【調査した分野】(Int.Cl.,DB名)
前記第1の提案は、(a)移行コスト見積、(b)移行スケジュール見積、または(c)前記特定の移行ファシリテータによって実施される前の移行を示すフィードバック記録のうちの1つ以上の指示を含む、請求項1に記載の方法。
前記特定の移行候補識別クエリは、(a)移行が前記特定の移行ファシリテータによってサポートされるアプリケーションアーキテクチャ、(b)移行が前記特定の移行ファシリテータによってサポートされるソースコンピューティング環境の最小サイズ、または(c)前記特定の移行ファシリテータの動作の好ましい地理的場所もしくは領域のうちの
1つ以上の指示を含む、請求項1に記載の方法。
【発明を実施するための形態】
【0006】
ネットワークアクセス可能発見サービスに実装されるインテリジェントな構成発見技術に関する方法及び装置、構成情報の自動的に更新されるビューを提供するための可視化技法、ならびに発見サービスの顧客を補助する移行マーケットプレイスサービス及びアプリケーションの移行に関する決定を行う移行ファシリテータの様々な実施形態が説明される。高レベルで、構成発見サービスは、(他の特徴の中でとりわけ)構成アイテム(アプリケーションを構成する物理サーバまたは仮想算出サーバ、ストレージデバイス、データベース、ソフトウェアスタック構成要素等)の自動検出と、種々のデータソースによって集められる未加工データに基づく分散アプリケーションパターンと、構成アイテムへの一意の識別名の割り当てと、相互作用(例えば、トランザクション、ネットワークトラフィックフロー等)の追跡及びアイテム間の依存関係と、複雑なアプリケーション実行環境に関する所望のレベルの粒度で監視するパフォーマンスとを可能にし得る。構成発見サービスはまた、構成アイテムがアプリケーションを形成する構成要素であるため、「アプリケーション発見サービス」と称され得る、または、一部の環境では「リソース発見サービス」と称され得る。構成発見サービスは、構成関連クエリに対する応答を得るために、サービスクライアントによって使用されることができる種々のプログラムインターフェース(例えば、ウェブサービスアプリケーションプログラムインターフェース、コマンドラインインターフェース等)を実装し得、また、より高レベルの機能性を提供する移行マーケットプレイスサービス及び可視化サービスを含む他のサービスによる構成要素として使用されることができる。一部の実施形態では、構成発見サービスと連携する、またはその一部である可視化サービスは、構成発見サービスのクライアントに関する相互作用の主要モードの1つとしての役割を果たし得る。例えば、顧客は、使用される特定のクライアント側表示環境に適合されるそのアプリケーション実行環境のカスタム表現を視認し、可視化インターフェースを介して、構成関連クエリを発行し、及び/またはリソースの1セットから別のものまでアプリケーション移行の一部または全部を開始し得る。様々な実施形態では、移行マーケットプレイスは、(例えば、クライアント施設からクラウドベースコンピューティング環境まで、または一方のクラウドベース環境から別のものまで移動させるために)クライアントが好適な移行施設を識別することを可能にし、移行ファシリテータがクライアントの候補者を識別することを可能にする中間サービスとして働き得る。
【0007】
少なくとも一部の実施形態では、サービスの一部または全ては、プロバイダネットワークで実施され得る。インターネット及び/または他のネットワークを介して、クライアントの分散セットにアクセス可能な1つ以上のネットワークアクセス可能サービス(様々な種類のクラウドベースコンピューティングサービスまたはストレージサービス等)を提供するために、企業または公営企業組織等の事業体によって設定されたネットワークは、本明細書では、「プロバイダネットワーク」と称され得る。プロバイダネットワークは、時々、「パブリッククラウド」環境と称され得る。プロバイダネットワークのリソースは、いくつかの場合、複数のデータセンターにわたって分散され得、そこでは、同様に、多数の都市、州、及び国間で分散され得る。構成発見サービス、可視化サービス、及び/または移行マーケットプレイスサービスが特定のプロバイダネットワーク内で実施され得るが、これらのサービスの一部または全部は承認され、他のプロバイダネットワークから(例えば、異なる企業組織によって起動されるプロバイダネットワークから)情報にアクセスする適切な許可が与えられ得ることに留意されたい。例えば、オペレータO1によって起動されるプロバイダネットワークPN1で起動する構成発見サービスは、オペレータO2によって起動されるプロバイダネットワークPN2から(同様に、クライアント所有データセンター及びPN1の所有データセンター等の他の施設から)集められた構成データを収集することが可能であり得、PN1で起動する可視化サービスは、クライアントが、PN2で起動する構成要素を備える分散アプリケーションアーキテクチャを視認することを可能にし得、及び/またはPN1で起動する移行マーケットプレイスサービスは、PN2で起動する構成要素をPN1に移行させるために、移行ファシリテータについての情報をクライアントに提供することが可能であり得る。一部の実施形態では、可視化サービス及び/または移行マーケットプレイスサービスは、構成発見サービスの補助構成要素として実施され得る。構成発見サービスはまた、本明細書では、単に、「発見サービス」と称され得る。
【0008】
様々なデータソースは、構成記録のリポジトリを構築する構成発見サービスで採用され得る。例えば、一部の実施形態では、データソースは、クライアントデータセンター(構成データが時々プログラムインターフェースを介して大量にインポートされ得る)において既存の構成管理データベースと、様々なリソースで構成発見サービスの代わりにインストールされるエージェントまたは構成データコレクタと、第3者または業界標準構成管理ツール等とを含み得る。各データソースは、(例えば、構成アイテムの一部のセットに関するいくつかの数の属性値のペアを含む)構成情報を、時間内に1つ以上の点において構成発見サービスに提供し得る。いくつかのデータソースが規則的間隔で未加工構成データを提供し得る一方、他のものは、少なくとも一部の実施形態では、イベント駆動型であり得る。様々な実施形態では、(例えば、サービスの代わりにインストールされたエージェントを介して)値がサービスにおいて取得される構成アイテム属性は、とりわけ、ユーザ情報(ユーザ名及びホームディレクトリ等)、グループ情報(グループ名及びグループ帰属関係等)、インストール済ソフトウェア/プログラムのリスト、及びカーネルモジュールのリストを含み得る。プロセス作成/終了(関連プロセス識別子を用いる)、ドメインネームサービス(DNS)クエリ及び応答、パケット等のいくつかの異なる種類の構成関連イベントについての情報は、ネットワークスタックの様々な層で送信及び受信され、したがって、また、少なくとも一部の実施形態では、集められ得る。(例えば、使用されるイーサネット(登録商標)、サポートされる最大帯域幅、関連メディアアクセス制御またはMACアドレス等のネットワーク相互接続の種類を含む)物理及び/または仮想ネットワークインターフェースの様々な属性の値は、標的実行環境のデバイスから集められ得る。様々なリソースにおいて使用されているTCP(伝送制御プロトコル)ポートまたはUDP(ユーザデータグラムプロトコル)ポート等の特定のネットワークポートが識別され得、TCPバージョン4またはバージョン6の接続属性(接続部の両端におけるプロセスの識別子、接続確立回数、接続部が開いたままである期間等)が集められ得る。例えば、様々なホスト及び仮想マシンで使用中のオペレーティングシステムの特定のバージョンを含むオペレーティングシステム関連属性は、一部の実施形態で集められ得る。システム性能及びプロセス性能測定基準は、異なる実施形態で様々な間隔で集められ得る。一部の実施形態では、発見サービスの複数のエージェントは、1つ以上の構成アイテムに関する構成属性値の各々のサブセットを集めるために、所与のホストまたはデバイスにインストールされ得る。他の実施形態では、単一のエージェントまたはツールは、属性値をいくつかの異なるソースから抽出することが可能であり得る。
【0009】
構成発見サービスは、粒度の各々のレベルにおいて及び各々のスケジュールに従って、様々なデータソースから集められた潜在的に期限切れの矛盾し、及び/または不明瞭な未加工構成情報の連結部及び監督部として働き得る。異なるデータソースから、一部の実施形態では、構成発見サービスは、合体構成記録及び監督構成記録を生成及び記憶することを担当し得る。係る合体記録は、可視化サービス及び移行マーケットプレイスサービス(または、発見サービスに依存する他のサービス)に関する構成データの信頼性のあるソースとして役割を果たし得る。少なくとも一部の実施形態では、構成発見サービスは、一意のサービス側識別子を生成し、当該サービスによって定義されるオントロジに少なくとも部分的に基づいて、それを各々の構成アイテムに割り当て得る。例えば、所与のハードウェアサーバは、サーバのIPアドレス(経時的に変化し得る)の1つに基づく一方のデータソースによって、サーバ名またはMAC(メディアアクセス制御)アドレスに基づく別のデータソースによって、分散アプリケーションのサーバによって行われる役割(例えば、「ウェブサーバ」または「分散アプリケーション」)に基づく第3のデータソース等によって識別され得る。データソースは、それぞれ、構成発見サービスに提供される未加工構成データのサーバに関するそのデータソース自体の各々の識別子/名前を含み得る。係る識別子は、本明細書では、「データソース側識別子」と称され得る。構成発見サービスは、1つ以上の異なるデータソースから受信された未加工構成データを検査し、(未加工データの属性値のサブセットを考慮し得る)定義されたオントロジ及びネーミングスキームに基づいて、サーバに関する一意のサービス側識別子を生成し得る。
【0010】
一意のサービス側識別子は、データソースによって使用される識別子/名前の少なくとも一部と異なり得る。未加工構成データの新しいセットが当該サービスにおいて受信または分析されるとき、当該サービスは、少なくとも一部の実施形態では、未加工データの一意の識別子の不足に関わらず、未加工データの少なくとも一部が適用する一意に識別された構成アイテムを判定することが可能であり得る。一部の実施形態では、当該サービスは、データソース提供識別子と一意のサービス側識別子との間でマッピングを維持することに、及び係るマッピングと関連付けられる不明瞭性(例えば、データソースが所与の構成アイテムに関するその識別子を変更させる場合に生じ得る不明瞭性)を解決することを担当し得る。不明瞭性は、例えば、一部の期間にわたって他のデータソースから受信された未加工構成データに対する相関分析、クライアントのフィードバック等に基づいて、異なる実施形態で種々の機構を使用して解決され得る。一例示的シナリオでは、例えば、2つの特徴のある一意のサービス側識別子は、例えば、2つの異なるデータソースから受信された各々の未加工構成データセットDS1及びDS2に基づいて、(誤って)最初に同じ構成項目に割り当てられ得、結果として、各々の特徴のあるサービス側識別子を伴う2つの異なる合体構成記録R1及びR2は、サービスリポジトリ内に記憶され得る。後で、例えば、1つ以上の追加未加工データセットを処理した後、及び/またはクライアントとのプログラムインターフェースを介した対話の後、エラーを検出及び訂正し得る。すなわち、当該サービスは、値がR2に記憶される属性が実際にR1に対応する基本構成アイテムの属性であることを判定し得る。例えば、リソース消費情報の分析に基づいて、係る判定を行い得る。R1及びR2に関連付けられる2つの構成アイテムが最初に誤って異なるハードウェアサーバであると想定されていたが、2つのアイテムのCPU利用レベルまたはネットワークパケット流出に関する収集測定基準がある期間にわたってかなり類似するまたは同一であることが分かる場合、記録R1及びR2は、同じサーバを指すものとして識別され得る。R2で記憶された情報の一部は、係るシナリオでは、R1を更新するために使用され得、R2は削除され得る(または反対に、R1の情報はR2を修正するために使用され得、次に、R1は削除され得る)。少なくとも1つの実施形態では、エラー訂正APIは発見サービスによって実施され得、クライアント(及び/または、プロバイダネットワークオペレータの専門サービスアナリスト、コンサルタントまたはパートナー等の他の権限のある事業体)が、係る誤りに関するサービスを知らせることを可能にする。係るAPIを介して提供される訂正は、様々な実施形態では、より広範にサービス動作を改善するために使用され得る。例えば、所与のサービス顧客の構成データの所与のセットに関する1つの承認された事業体によって行われる訂正は、同じ顧客または他の顧客の構成データの他のセットに対して行われた潜在的エラーを検出及び訂正するために一般化及び使用され得る。
【0011】
少なくとも一部の実施形態では、構成発見サービスは、各々の信頼スコアを異なるデータソースと関連付ける場合があり、潜在的に矛盾する、または期限切れの構成データ要素のセットの中のどのセットを受け入れるべきかを決定するときに、係る信頼スコアを使用し得る。信頼スコア自体は経時的に変化し得る。例えば、クライアントデータセンターを表すクライアントの構成管理データベースのダンプがサービスにおいて取得される場合、クライアントのデータベースに関する最初の信頼スコアは高い値に設定され得るが、当該スコアは時間が経過するにつれて小さくなり得、構成変更はクライアントデータセンターで発生する。少なくとも一部の実施形態では、合体構成記録を未加工構成データから生成するときに、信頼スコアを使用し得る。例えば、高い信頼性のデータソースから取得された属性値は、低い信頼性のデータソースから取得された属性値よりも高い合体記録の可能性があるように含まれ得る。現在の信頼スコアTS1を伴うデータソースDS1から得られた属性値V1が、より高い現在の信頼スコアTS2を伴う異なるデータソースDS2から得られた属性値V2と相反または矛盾するシナリオでは、より高い信頼スコアを伴うソースから得られた属性値(この場合、V2)は合体構成記録に含まれ得、より小さい信頼スコアを伴うソースから得られた属性値は除外され得る。少なくとも一部の実施形態では、機械学習法は、経時的に、信頼スコアを生成及び更新するために使用され得る。
【0012】
アプリケーション構成要素の自動パターンベースのグループ分け及びタグ付け、難読化中間部を介して受信されるネットワークパケットのソースを検出するためのアルゴリズムを含み、関連スコアをクエリに対する応答性を増加させるために使用される構成アイテム、データモデル、及び事前ロード技法に関連付ける、構成発見サービスの動作の様々な態様に関する追加詳細が下記に提供される。発見サービスの詳細が検討された後に、可視化サービス及びマーケットプレイスサービスを説明する。
【0013】
例示的システム環境
図1は、少なくとも一部の実施形態による、マルチデータセンターアプリケーションに関するインテリジェント構成発見サービスが実装され得る例示的システム環境を示す。示されるように、システム100は、示される実施形態では、プロバイダネットワーク102A及び102B等の複数のプロバイダネットワークと、顧客施設ネットワーク172とを備え得る。プロバイダネットワーク102のそれぞれの内部では、1つ以上のネットワークアクセス可能サービスは、各々のプロバイダネットワークオペレータによって実施され得る。例えば、プロバイダネットワーク102Aは、構成発見サービス104と、仮想化コンピューティングサービス132と、潜在顧客によって利用され、それらのアプリケーションをプロバイダネットワーク102Aの外側の実行環境からプロバイダネットワーク102Aに移行させ得る1つ以上の移行関連サービス130とを備える。移行関連サービスについての追加詳細は下記に提供される。プロバイダネットワーク102Bは、それ自体の仮想化コンピューティングサービス192を含み得、仮想化コンピューティングサービス192では、算出サーバの仮想化に関する異なるアプローチは、仮想コンピューティングサービス132で使用されるよりも利用され得る。例えば、異なる種類のハイパーバイザまたは仮想化管理ソフトウェアスタックが利用され得、異なるセットのプログラムインターフェースが仮想マシンを獲得及び使用するためにサポートされ得る。
【0014】
いくつかの分散アプリケーションは、示される実施形態では、プロバイダネットワーク102A及び102Bのリソース及び顧客施設ネットワーク172のリソースを使用して、様々な顧客の代わりに起動し得る。所与のアプリケーションのために使用されるリソースのセットまたはアプリケーションの関連セットは、本明細書では、「アプリケーション実行環境(AEE)144」と称され得る。所与のAEEは、様々なリソース(例えば、仮想及び/または物理算出サーバ、ストレージデバイス、ネットワークデバイス、マルチレイヤーソフトウェアスタック等)を備え得る。リソースの少なくとも一部は、構成アイテム(CI)136を備え得、構成アイテム(CI)136について、構成情報の各々のセット(例えば、属性値の群)が構成発見サービス104内で集められ及び記憶される。一般的に、構成発見サービス及びそのクライアントの観点から、構成アイテム136は、任意の物理エンティティ、仮想エンティティ、または論理エンティティ(それらの構成設定及び/または状態情報が1つ以上のアプリケーションを管理するために有用であり得る)を備え得、構成発見サービスによって、プログラムインターフェースを介して取得されることができる。例示的構成アイテムは、とりわけ、非仮想ハードウェアサーバ、仮想マシン、ソフトウェア処理または関連処理の群、回転磁気ディスクまたはソリッドステート(SSD)等のストレージデバイス、ルータ等のネットワークデバイス等を備え得る。一部の実施形態では、構成発見サービスは、繰り返して(例えば、規則的間隔で、または特定のイベントの発生に応答して)、所与の構成アイテム136についての構成データの各々のデータセットを1つ以上の構成データソース(CDSrcs)134から取得し得る。後のシナリオでは、サービス104に記憶される構成データは、構成アイテムに関する複数のタイムスタンプが付された記録を含み得る。例えば、構成発見サービス104の代わりにインストールされるソフトウェア及び/またはハードウェアエージェント、業界標準構成管理ツール、顧客構成管理ツール、顧客構成管理データベース等のいくつかの異なる種類の構成データコレクタまたはソースは、様々な実施形態で採用され得る。
【0015】
いくつかのAEE(AEE144AまたはAEE144C等)は、所与のネットワークの境界内のリソースを備え得る。AEE144Aは顧客施設ネットワーク172の構成アイテム136Q、136R、及び136Sを備える一方、AEE144Cはプロバイダネットワーク102Bの構成アイテム136I及び136Jを備える。他のAEEは、複数のネットワーク及び/またはデータセンター間で分散される構成アイテムを備え得る。例えば、AEE144Bは、プロバイダネットワーク102Aの構成アイテム136A〜136Dと、プロバイダネットワーク102Bの構成アイテム136Hとを備える。時間の経過にわたって、少なくとも一部の実施形態では、AEE144と、AEEの構成アイテムが位置するネットワークとの間のマッピングが変化し得ることを留意されたい。例えば、1つ以上の構成アイテムは、顧客施設ネットワークからプロバイダネットワークに、またはプロバイダネットワークから顧客施設ネットワークに、すなわち、異なるネットワークに移行され得る。
【0016】
示される実施形態では、各ネットワークは、構成発見サービス104と通信し得る複数の構成データソース134を備え得る。例えば、プロバイダネットワーク102Aは、まとめて構成アイテム136A〜136Fに関する構成データセットを取得し、サービス104に伝達することを担当するような構成データソース134A〜134Cを備える。同様に、プロバイダネットワーク102Bは構成アイテム136H〜136Lについて報告することを担当するデータソース134E〜134Gを備える一方、顧客施設ネットワーク172は構成アイテム136N及び136P〜136Sに関連する構成データセットをサービス104に伝達することを担当するデータソース134H及び134Iを備える。いくつかの場合、所与の構成データソース134は複数の構成アイテム136に関連する構成データを集めることを担当し得る一方、他の場合、構成データソース134は単一の構成アイテム136について報告し得る。少なくとも、いくつかの構成アイテム136に関して、構成データセットは、例えば、粒度の各々のレベルにおいて、及び/またはソフトウェア/ハードウェアスタックの各々の層において、複数の構成データソース134によって集められ得る。一部の実施形態では、所与の構成データソース134は、例えば、構成アイテムを表すサーバで起動する実行のプロセスまたはスレッドのような構成アイテム136の補助構成要素であり得る。例えば、データソース134Gは、構成アイテム136Lの一部として示される。いくつかの構成データソースは、既存の構成管理ツールの補助構成要素を備え得る。例えば、示される実施形態では、顧客の構成管理データベース167は、サービス104に報告するデータソース134Gを備える。
【0017】
構成発見サービス104は、示される実施形態では、プログラムインターフェース150の1つ以上のセットを実装し得、プログラムインターフェース150のいずれかは、例えば、アプリケーションプログラミングインターフェース(API)、ウェブベースコンソール、コマンドラインツール、及び/またはグラフィカルユーザインターフェースを備え得る。クライアント対応プログラムインターフェース150Aは、例えば、顧客によって使用され、そのアプリケーション実行環境144に関連付けられる許可を収集する構成データを識別し及び/または与え、サービス104(例えば、さらに詳細に下記に検討されるような可視化サービスを使用する)によって集められる構成情報を視認し、クライアントフィードバックを要求し得るイベントまたは状況に関する通知等を取得し得る。データ群のセット及び/またはサービス側プログラムインターフェース150Bは、示される実施形態では、構成データソース134とサービス104との間の相互作用のために、同様に、サービス104の集められた構成データを使用して、移行関連サービス130及び/または他のサービスによって追加特徴を構築するために使用され得る。
【0018】
構成発見サービス104は、示される実施形態では、いくつかの補助構成要素を備え得る。いくつかの補助構成要素として、下記に示されるように、構成記録リポジトリ108と、未加工構成データを合体し/その曖昧性を除去することを担当する構成要素110と、及び/またはデータソース134に信頼スコアを割り当てる/その信頼スコアを修正することに、及び/または関連スコアを構成記録に割り当てる/その関連スコアを修正することを担当する1つ以上のスコアリング構成要素112が挙げられる。少なくとも一部の実施形態では、当該サービスは、下記に説明されるように、異なる実行能力及び/またはデータモデルを伴ういくつかのデータストアを備え得る。例えば、構成記録は、予期される種類のクエリに対する応答性を高めるために、中央リポジトリ108から低遅延キャッシュに事前にロードされ得る。
【0019】
構成データソース134は、示される実施形態では、種々の形式において及び構成発見サービス104に異なる間隔で、未加工構成データセットを提供し得る。いくつかの場合、1つ以上の構成アイテム136に対するサービス104で受信される未加工データは、古いまたは期限切れまたは不正確であり得る。さらに、構成アイテムが異なるデータソース134によって提供される未加工データセットで識別される様式は、いくつかの場合、一貫性がない場合がある。例えば、所与のハードウェアサーバ構成アイテムが複数のIPアドレスを有する場合、サーバは、異なる構成データソースによって異なるIPアドレス、または他のデータソースによって名前もしくは場所(「データセンターDC1のルーム3のラックR1のサーバ5」等)によって、異なるIPアドレスを使用して参照され得る。構成発見サービス104は、示される実施形態では、種々の技法を使用して、未加工構成データセットを統合し、その曖昧性を除去し、それを監督することを担当し得る。1つの係る技法では、未加工構成データのセットが受信されるとき、サービス104は、当該データが既知の構成アイテム136(構成データが当該サービスで事前に受信及び記録されているアイテム)を参照しているかどうかを判別することを試み得る。新しく受信されるデータが既知の構成アイテムに対応するように思えない場合、ネーミングスキームまたはアルゴリズムが、サービス104に定義されるオントロジ及び/または未加工データに示される構成アイテムの1つ以上の属性値に少なくとも部分的に基づいて、未加工データが対応する構成アイテムに関する一意のサービス側識別子を生成するために使用され得る。一意のサービス側識別子は、少なくとも一部の実施態様では、未加工データセットのデータソースによって使用される識別子と異なり得る。実質的に、係る実施態様では、サービス104は、データソース報告識別子と一意のサービス側識別子との間でマッピングを維持することを担当し得る。後の未加工データセットが当該サービスで受信されるとき、一部の実施形態では、合体/曖昧性除去構成要素110は、係るマッピングを利用して、及び/または事前に見られたデータとの未加工構成データの相関関係を使用し、未加工データセットが適用する構成アイテムを識別し得る。一部の実施形態では、所与の構成アイテム136に割り当てられるサービス側識別子がサービス104に記憶される構成記録の群全体内で一意であり得る一方、他の実施形態では、識別子は、特定の構成ドメインまたはネームスペース(例えば、所与の顧客に関連付けられるドメインまたはネームスペース)の内部で一意であり得る。
【0020】
構成アイテムについての利用可能な構成データが一意のサービス側識別子を生成するために分析及び使用される様式は、異なる実施形態で異なり得る。一実施形態では、未加工構成データ(異なるデータソースによる、XML(拡張マークアップ言語)、JSON(JavaScript(登録商標) Object Notation)、CBOR(簡潔なバイナリオブジェクト表現)等のプレーンテキストまたはバイナリフォーマット)は、最初に、共通形式に構文解析及び正規化され得る。いくつかのネームスペース内の一意性と関連付けられるキーワード(インターネットプロトコルに関する「IPアドレス」、または媒体アクセス制御アドレスに関する「MACアドレス」)に提供される属性値に関する検索が未加工データまたは正規化データで行われ得、検索の結果は、一意のサービス側識別子(例えば、「DBServer.<DBVendorName>.<IP address>」)を生成するために、オブジェクトタイプ名(例えば、「データベースサーバ」または「仮想化ホスト」)と組み合わせられ/連結され得る。一実施形態では、機械学習法は、構成アイテムに関する一意のサービス側の名前を生成するプロセスを改善するために使用され得る。例えば、識別子を生成するための機械学習モデルは、プロバイダネットワーク(例えば、構成発見サービスが起動する同じプロバイダネットワーク)の仮想コンピューティングサービスの様々な構成要素から集められた大きい匿名構成データセットを使用して訓練され得る。モデルの初期バージョンによって行われるネーミング決定の一部はエラーがある場合がある。例えば、同じ基本構成アイテムは2つの異なる一意の識別子が与えられ得る、または2つの構成アイテムは同じ識別子が与えられ得る。経時的に、より大きい入力データセットを用いたモデル訓練が進むにつれて、エラー率は少なくなり得る。
【0021】
少なくとも一部の実施形態では、各々の信頼スコアは、(例えば、スコアリング構成要素112によって)各々の構成データソース134に割り当てられ、実質的に、2つの潜在的に矛盾するソースのどれが所与の時点でより正確である可能性が高いかを決定するために使用され得る。例えば、データソースの一部は発見サービス104のエージェントを備え、発見サービス104はインストール前にプロバイダネットワーク102Bのオペレータの人員によって設計、開発、及びテストされている一方、他のデータソースに関連付けられる起源及び/またはテストレベルが既知である可能性が低い場合がある。後のシナリオでは、より高い信頼スコアは、時々、より知られているまたは良好に理解されているデータソースに割り当てられ得る。一部の実施形態では、所与のデータソースの信頼スコアは、属性(その値が検討中である)または属性値が生成されたソフトウェア/ハードウェアスタックのレベルに基づいて変わり得る。例えば、データソースDS1及びDS2は、それぞれ、所与のプログラムまたはプロセスのCPU使用に関する各々の測定基準C1及びC2を提供し得る。DS1がハイパーバイザ層においてCPU利用測定法C1のそのバージョンを集める場合、DS2がオペレーティングシステムによって提供されるツールを使用してそのバージョンC2を集める間に、異なる信頼スコアは、2つのソースからCPU使用属性値に割り当てられ得る。複数のデータソースが同じ属性に関する各々の値を提供し得る少なくとも一部の実施形態では、各データソース(または{データソース及び属性}のペア)は、現在の信頼レベルを示す各々の加重が割り当てられ得、当該加重は、発見サービスによって使用及び保存される属性の最終値を判定するために使用され得る。一実施形態では、同じ構成アイテム136に対応する2つの異なる未加工データセットが各々のデータソース134から受信され、及び一方の未加工データセットの少なくとも1つの属性値が他方に示される属性値と矛盾または相反する場合及びそのとき、より低い信頼スコアと矛盾するデータソースの属性値を除外する合体構成記録は、リポジトリ108内で生成及び記憶され得る。異なるデータソース134に関する信頼スコアは、一部の実施形態では、時間加重され得る。例えば、未加工構成データが1つのデータソースCDSrc1によって時間T1で集められ得及び一見矛盾している未加工データが別のデータソースCDSrc2によって時間T2(T2はT1よりも遅い)で集められ得る場合、より最近に集められた未加工データは、より信頼性があるものとして見なされ得る。構成要素110を合体し/その曖昧性を除去することによって生成される合体データ記録は、様々な実施形態では、プログラムインターフェース150A及び/または150Bを介して(例えば、プロバイダネットワーク102Aの顧客から、またはその他のサービスからのどちらかで)受信される構成クエリに対する応答を提供するために使用され得る。
【0022】
データソース134から受信された未加工構成データを監督または統合することに加えて、少なくとも一部の実施形態では、発見サービス104の構成要素は、いくつかの他の機能を行い得、他の機能として、分散アプリケーションパターンに一緒に対応する構成要素のグループを自動的に識別すること、係るグループ内の役割を各々の構成アイテムに割り当てること、ネットワークトラフィック(そのソースが媒介デバイスによって難読化されている場合があるもの)に関するトラフィックソース検出アルゴリズムを実施すること、先に構成データを準備し高性能クエリをサポートすること等が挙げられる。これらの機能及び他の機能についての追加詳細は下記に提供される。
【0023】
前述に言及されたように、少なくとも一部の実施形態では、構成発見サービスは、構成アイテムのオントロジを定義及び利用し得る。
図2は、少なくとも一部の実施形態による、構成情報を体系化するために使用され得る発見サービスオントロジの例示的構成要素を示す。オントロジ202は、示される実施形態では、複数のオブジェクトタイプと、各オブジェクトタイプに対応する1つ以上の属性のリストとを備え得る。所与の構成アイテムに関する所与の属性リストの属性の少なくとも一部の各々の値は、様々な構成データソースによって構成発見サービスに伝達される未加工構成データセットに含まれ得る。オントロジ及び未加工属性値は、様々な実施形態では、構成アイテムに関する一意のサービス側識別子を生成するために使用され得る。例えば、構成アイテムに関する一意のサービス側識別子は、一部の実施形態では、いくつかの属性値(それらの一部が異なるデータソースから取得され得る)をサービス生成テキスト識別子接頭辞と連結させることによって構成され得る。
【0024】
オブジェクトタイプ204Aは、例えば、物理ホストまたはサーバに対応する。対応する属性リスト205Aは、CPU種類、CPUまたはコアのカウント、現在割り当てられるホスト名、ハイパーバイザ(いずれかがインストールされている場合)、オペレーティングシステム(OSデータ)の様々な要素、1つ以上のIPアドレス等を含み得る。205A等の属性リストの所与の属性の値は、それ自体、データのいくつかの特徴のある要素を備え得る。例えば、「CPUタイプ」属性は、CPUによってサポートされる命令セットアーキテクチャ、CPUベンダ、CPUのクロック周波数、モデル名等についての情報を含み得る。
【0025】
オブジェクトタイプ204Bは、プロセス(例えば、サーバでの実行の単位)を表す。当該プロセスに関する属性リスト205Bは、とりわけ、プロセス名、プロセスを読み出すために使用されるコマンドライン、当該プロセスに使用される実行ファイルの場所及び/または当該プロセスのホームディレクトリに対応するホストのオペレーティングシステムにおけるパス(例えば、ディレクトリパスまたはフォルダパス)、当該プロセスのスレッド数等を含み得る。
【0026】
オブジェクトタイプ204Cは、ネットワーク接続(この例では、伝達制御プロトコル/インターネットプロトコルまたはTCP/IPスイートを使用して確立されることが想定される)を表す。属性リスト205Cは、ソース及び宛先IPアドレス(各々、srcIP及びdestIP)(例えば、ソースが接続を確立するために接続()コールを発行したエンドポイントとして識別される)、ソース及び宛先プロセス識別子(各々、srcProcess及びdestProcess)、及び/または宛先ポート(destPort)を含む。
【0027】
オブジェクトタイプ204Dは、特定の技術ベンダV1から取得される仮想化フレームワークを使用して生成される仮想マシンに対応する。仮想マシンに関する属性リスト205Dは、ベンダ定義済仮想マシン識別子(VMID)と、仮想マシンが起動中である、または起動しているデータセンターの識別子と、仮想マシンが現在起動中である、起動する予定になっている、または起動しているホストとを含む。
【0028】
いくつかの他のオブジェクトタイプは、様々な実施形態では、オントロジ202に定義され得る。例えば、各々のオブジェクトタイプは、一部の実施形態では、ストレージデバイス、データベースインスタンス等のエンティティ、ロードバランサ/ルータ等のネットワークデバイスなどに定義され得る。一実施形態では、各々のオブジェクトタイプは、リソースの地理的または他のグループ分けに関して定義され得る。例えば、データセンターはそれ自体のオブジェクトタイプを有し得る、または、サーバラックはそれ自体のオブジェクトタイプを有し得る。一部の実施形態では、オントロジは、様々なオブジェクト間の階層的関係または包含関係を定義し得る。例えば、いくつかのプロセスは、所与のホストで起動し得る、ひいては、ホスト内に含有され得、アプリケーションのマスタープロセスは、マスターの子プロセスとして設計され得る様々な他のプロセスをスポーンし得る等が行われる。オントロジの様々なエンティティ間の関係は、少なくとも一部の実施態様では、オブジェクト指向様式で定義され得る。
【0029】
合体及び監督構成記録
図3は、少なくとも一部の実施形態による、監督属性値リストを作り出すために、複数のデータソースからの未加工構成情報を各々の信頼スコアと合体する例を示す。示される実施形態では、複数の未加工構成データセット320(所与の構成アイテムに関連するデータセット320A、320B、及び320Kを含む)は、各々のデータソース310(例えば、データソース310A、310B、及び310K)によって発見サービスに伝達される。各未加工構成データセット320は、各々の属性値リスト325を含む。所与のホストに関して、例えば、属性及びその対応する値は、「名前:ホスト100」、「IPアドレス:a.b.c.d」、「オペレーティングシステム:<OSバージョン>」等を含み得る。少なくとも一部の実施形態では、属性値は、必ずしも、単一の構成アイテムに対応しない場合がある。例えば、1つ以上の構成データソースは、複数の構成アイテムについて報告し得る。異なるデータセット320は、異なるレベルの粒度を表し得る。例えば、一方のデータセットは発行または受信されるデータベーストランザクションの数等のアプリケーションレベル情報を含み得る一方、別のデータセットは伝達または受信されるネットワークパケットの数等の下位レベルの詳細を含み得る。2つの異なるデータソースによって送信される未加工構成データの一部は、異なる時間に対応し得る。例えば、データセット320Aは、データセット320Kと異なる時間で集められている場合がある。いくつかの場合、所与の構成アイテムに関連する2つ以上の属性値は相互に矛盾し得る。例えば、当該属性は、一方のデータセットが、一方のホストH1におけるプロセス識別子PID1を伴う特定のプロセスが異なるホストと通信することを担当したことを示す一方、別のデータセットが、別のプロセス識別子PID2を伴うプロセスが係る通信を担当したことを示す場合であり得る。一部の実施形態では、構成データソースの少なくとも一部は、それらがデータを発見サービスに提供する構成アイテムに関する各々の識別子を生成し、データセット320にこれらの識別子を含み得る。係る識別子は、それを発見サービスによって生成される識別子と区別するために、「データソース側識別子」と称され得る。2つのデータソースは、時々、特徴のあるデータソース側識別子を使用する同じ基本構成アイテムを指す場合がある。例えば、1つのデータソースは、名前でホストを指す場合があり(例えば、「ホストK.<ドメイン名>」)、別のデータソースは、IPアドレスによって同じホストと、機能によって別のホストとを指す場合がある(例えば、「データベースサーバDBS1」)。
【0030】
構成発見サービスの合体/曖昧性除去構成要素360は、示される実施形態では、全ての未加工構成データセット320を検査及び処理し、1つ以上の構成アイテム(その未加工データがデータセット320に含まれる)に対応する各々の合体構成記録350を更新(または作成)し得る。2つの異なるソースから2つの未加工構成データセットを合体するために使用され得るアルゴリズムは、一実施形態では、以下のステップの少なくとも一部を備え得る。最初に、データセットのそれぞれが同じ種類の構成アイテム(
図2のオントロジ202のオブジェクトタイプとして定義されるホスト、プロセス、仮想マシン等)に関連する属性値を含むかどうかについての判定が行われ得る。それを行うために、一部の実施形態では、属性名は、発見サービスのオントロジにおいて、様々な構成アイテムに関して定義される属性リスト(例えば、
図2の属性リスト205)と比較され得る。属性リストは、いくつかの場合、同義語を示し得る。例えば、同じ属性名は、一方のデータソースによって名前「属性名1」及び別のデータソースによって名前「属性名2」を用いて識別される。両方のデータセットが同じ構成アイテム種類に関連する少なくとも一部の属性値を含有していることが判定される場合、それらの<属性:値>ペアは、相関関係、一致、または重複に関して検査され得る。例えば、両方のデータセットが(a)ホストにおけるCPU利用が特定の時間間隔の間に約75%であったことと、(b)2500UDPパケットが当該ホストからある時間間隔の間に送信されたことを示す場合、これは、異なるデータソース側識別子が同じホストに使用される場合でさえも、データセットが同じホストを指すことを指示するものとして解釈される場合がある。係る一致が(ある最小の信頼レベルで)検出される場合、ホストに関する単一の合体記録を作成する決定が行われ得る。そうでなければ、2つのデータセットは、2つの異なるホストを指すものと思われ得、別個の合体記録が生成され得る。単一の合体記録の中で、1つまたは両方のデータセットから取られた<属性:値>ペアの一部のサブセットが組み込まれられ得る。例えば、冗長/重複属性値が破棄され得、いくつかの属性値は合体記録に含まれない場合があり得、この理由として、それらが含有する情報が、含まれる他の属性値から推論されるためであり、または、同じデータに関するより正確なデータソースが既知であるためである。データセットに含まれるデータの種類に応じて、いくつかの場合、既存の合体構成記録の1つ以上の要素または属性値は、新しい合体構成記録を生成する代わりに、更新され得る(または、新しい属性が既存の合体構成記録に追加される)。
【0031】
合体構成記録350は、多くの場合、任意の単一の未加工構成データセット320から可能であるだろうものよりも構成アイテムのより完全な特性化をもたらし得る。合体構成記録350は、構成アイテムに関する一意のサービス側識別子352を含み得、一意のサービス側識別子352は、示される実施形態では、未加工データセット320に示される各々のデータソース側識別子と異なり得、構成発見サービスのオントロジ及び/または未加工構成データセットの要素に少なくとも部分的に基づいて生成され得る。少なくとも一部の実施形態では、合体構成記録350は、構成アイテムに関連する全ての属性値リスト325の共用体を必ずしも含まない場合がある監督属性値リスト354を含み得る。その代わりに、例えば、合体/曖昧性除去構成要素は、いくつかの属性値を1つ以上のデータソースから破棄し得る、この理由として、値が古いためである(例えば、値が他のソースから取得される同じ基本属性に関するより新しい値に取って代わる、または単に、値が集められた時間と値が処理されている時間との間の差が閾値を超えるためである)。一部の実施形態では、異なるデータソースの各々の信頼スコア315(例えば、スコア315A〜315K)は、また、または代わりに、所与の属性値が合体構成記録に含まれるかどうかを判定するために使用され得る。信頼スコアは、特に、2つの異なるデータソースが同じ属性に対応する未加工データを提供するときに有用であり得る。係るシナリオでは、より高い信頼スコアで当該ソースによって提供される属性値が優先され得る。各未加工データセット320が、当該データが集められたときを示す関連タイムスタンプを有する一部の実施形態では、タイムスタンプ及び信頼スコアの両方を考慮する式(実質的に、時間加重信頼スコアをもたらす)は、どの属性が監督属性値リスト354内に含まれるべきかを選択するために使用され得る。
【0032】
一部の実施形態では、未加工データセット320内の所与の1つのアイテムまたは複数のアイテムが関連する構成アイテムが不明である場合及びそのとき、構成発見サービスの合体/曖昧性除去構成要素360は、パターンマッチングアプローチを利用して構成アイテムを識別し得る。例えば、未加工データセット320B及び320Kの両方が、いくつかの構成アイテムに関する所与の時間間隔にわたる、おおよそのアウトバウンドネットワークトラフィックについて報告し、データセット320Bが構成アイテムのホスト名を含むが、データセット320Kはそれを含まない単純なシナリオを考慮されたい。この平凡な例示的シナリオでは、合体/曖昧性除去構成要素360は、同様の期間に他のデータセットの属性値に一致するデータセット320Kに含有される属性値を見つけることを試み得る。アウトバウンドネットワークトラフィックレートが、データセット320Kと320Bとの間で、精度または正確性のある程度の閾値レベルに一致する場合、2つのデータセット(いずれかの矛盾している証拠が不足している)が、同じ基本構成アイテムを指すことが想定され得る。
【0033】
前述に言及されたように、種々のプログラムインターフェースは、様々な実施形態では、構成発見サービスにおいて使用され得る。
図4は、少なくとも一部の実施形態による、構成発見サービスにおいて実装され得るアプリケーションプログラミングインターフェースの例を示す。構成データ獲得インターフェース(未加工構成データセットを当該サービスに提供するために使用される)の4つの例が示され、構成データ消費インターフェース(当該サービスに向けられたクエリに対する応答を取得するために使用される)の一例が示される。
【0034】
少なくとも1つの実施形態では、構成発見サービス460は、大量のインポート/エクスポートアプリケーションプログラミングインターフェース(API)415Aを提供し得、API415Aは、例えば、クライアントの構成管理データベース410から当該サービスに大量の情報を伝送するために使用され得る。少なくとも一部の実施形態では、当該サービスは、(例えば、ダウンロードにより)構成データが取得される様々な物理または仮想デバイスにインストールされ得るいくつかの異なるソフトウェアエージェント412を提供し得る。係るエージェントは、エージェントAPI415Bを使用し、当該サービスと通信し得る。様々な実施形態では、エージェント412の少なくとも一部は、特定のイベントに関するデータを集め得(例えば、X秒毎に1回、CPU利用収集イベントがサーバでスケジュールされ得る)、結果として、エージェントのAPI415Bを介して1回に伝達されるデータ量は、エクスポート/インポートAPI415Aにわたって伝送されるデータ量と比較して、比較的小さい場合がある。
【0035】
一部の実施形態では、構成発見サービスは、未加工構成データを種々の構成ツール414から受け得、構成ツール414は、例えば、簡易ネットワーク管理プロトコル(SNMP)、ウィンドウズ(登録商標)管理測定器(WMI)、またはWBEM(ウェブベース企業管理)を含む。ツール特異的API415Cは、係るツールと構成発見サービスとの間で相互作用するように実装され得る。市販のレポーティングAPI415Dはまた、一部の実施形態で展開及び配備され得るカスタムデータソース416のために実装され得る(すなわち、エージェント自体ではないデータソースが、第3者の構成ツールと関連付けられなく、クライアント構成管理データベースと連携しない)。
【0036】
いくつかの異なるクエリAPI416は、発見サービスの合体構成情報を消費するエンティティのために実装され得る。係るエンティティは、移行マーケットプレイスサービスまたは移行計画サービスを含む可視化サービス及び/または1つ以上の移行関連サービス等のプロバイダネットワークの他のサービスと、移行関連サービスが起動するプロバイダネットワークの顧客とを含み得る。いくつかのクエリAPI416は、構造化クエリ言語(SQL)等の既知のクエリ言語の変形を利用し得る。一実施形態では、OpenTSDBによってサポートされる言語等の時系列指向クエリ言語は、時間構成関連クエリに利用され得る。
【0037】
パターンベースのグループ分け及び役割の割り当て
図5は、少なくとも一部の実施形態による、構成アイテムが果たす役割を自動的に検出する発見サービスにおいて使用され得るアプリケーションアーキテクチャパターンの例を示す。様々な実施形態では、当該サービスは、構成アイテムをグループ化するために使用されるアプリケーション、ソフトウェア、及び/またはハードウェア構成パターンで検索するためのクエリをサポートし得る。示される実施形態では、構成発見サービスの構成アイテムグループ記述子データベース590は、510Aまたは510B等のいくつかのグループ記述子510を含み得る。各グループ記述子510は、「3階層ウェブアプリケーション」または「段階的分割連結アプリケーション」等の各々のパターン名577(例えば、577Aまたは577B)と、アプリケーション、またはアプリケーションの関連セットをまとめて実装する様々なエンティティ間の関係の表現とを含み得る。
【0038】
各エンティティは、アプリケーションパターン内の特定の論理的役割を果たし得、異なる役割が割り当てられたエンティティによって示されることが予期される通信挙動は、グループ記述子510で示され得る。例えば、グループ記述子510Aは、4つの役割(ロードバランサ(LB)役割511、ウェブサーバ役割512、アプリケーションサーバ(Appserver)役割513、及びデータベースサーバ(DBserver)役割514)を定義する。511A〜511C等の1つ以上のロードバランサは、記述子510Aに対応する構成アイテムのグループのインスタンスにおける512A〜512N等の1つ以上のウェブサーバと、ネットワークトラフィックを介して相互作用し得る。ウェブサーバ512のそれぞれは、また、1つ以上のアプリケーションサーバ513(例えば、513A〜513K)と相互作用し得、同様に、各アプリケーションサーバは、また、514A〜514J等の1つ以上のバックエンドデータベースサーバと相互作用し得る。グループ記述子510Bでは、当該役割は、タスクをサブタスクに細かく分割することを担当するタスクスプリッタ551と、サブタスクを実行することを担当する段階1のワーカー552と、段階1のタスクの結果を集め、段階2の分析に関する結果を区分化することを担当する段階1の結果連結部553と、区分化された結果を分析することを担当する段階2のワーカー554と、段階2の分析の結果を収集する最終結果連結部555とを含み得る。少なくとも一部の役割に対応する構成アイテムの特定の数は、一方のグループインスタンスから別のものまで異なり得る。例えば、単一のタスクスプリッタ、段階1の結果連結部、及び最終結果連結部が、記述子510Bに対応する構成アイテムグループ内でインスタンス化され得るが、段階1のワーカーまたは段階2のワーカーとして構成される構成アイテムの数は、記述子の一実施例から別のものまで変わり得る。
【0039】
一部の実施形態では、発見サービスのクライアントは、記述子510の表現を当該サービスにプログラムインターフェースを介して提出し得、当該サービスは、記述子に示されるパターンを示す構成アイテムの対応する例を識別し得る。所与の記述子510は、分散アプリケーションの様々な態様の指示を含み得、その指示として、アプリケーションに関連付けられる構成アイテムの予期される相互接続トポロジ、アプリケーションに関連付けられる予期されるアイテム名リスト(例えば、プロセス名またはパス)、及び/またはアプリケーションに関連付けられる構成アイテムのペアの間の予期される通信パターン(例えば、要求応答挙動または初期化/終了ハンドシェイク手順の特定の種類を表すパケットの交換)が挙げられる。当該サービスは、様々な構成アイテムの観測挙動を記述子要素に一致させ、構成アイテムが果たす役割を判定することを試み得る。例えば、
図5に示される実施形態では、様々なデータソースから集められた構成データを使用して、当該サービスは、合体構成記録580Aによって表される一意のサービス側識別子582Aが、アイテムグループID586Aによって識別されるグループテンプレートの1つの特定のインスタンス(例えば、4階層ウェブアプリケーションのインスタンス1)内のアイテムグループ役割ID588Aによって示される役割(例えば、ウェブサーバの役割)を果たしている。合体構成記録580Bによって表されるアイテム等の他の構成アイテムは、必ずしも、任意の所与のパターンまたはグループ記述子に関連付けられる役割を果たさない場合がある。係る構成アイテムに関するフィードアイテムグループ役割ID及びアイテムグループIDは、示される実施形態では、無効にするように設定され得る。アイテムグループ役割ID及びアイテムグループIDに使用されるラベルは、一部の実施形態では、同じ役割を果たす、または同じ挙動パターンを示す複数の構成アイテムを指す「タグ」として使用され得る。係るタグは、発見サービスのクライアントによって要求される様々な動作に関するオペランドを識別するために使用され得る。例えば、クエリ「タグ「ウェブサーバ」を伴うデータセンターDC1内の全ての構成アイテムをリスト化する」またはコマンド「データセンターDC2への、タグ「DBサーバ」を伴うデータセンターDC1内の構成アイテムの自動移行を開始する」の論理的等価物が、クライアントによって発行され得る。クライアントは、一部の実施形態では、様々な構成アイテムに関するタグを指定し得、係るタグは、次により大きいパターンまたはグループ記述子を識別するために、発見サービスによって使用され得る。一実施形態では、発見サービスの一方の顧客によって示されるパターン及び/またはタグは、他の顧客の構成アイテムの中から役割をグループ分けし及び割り当てるために、発見サービスによって(例えば、パターン/タグを提供した顧客の許可を用いて)使用され得る。
【0040】
難読化ネットワークトラフィックソースの自動検出
多くのアプリケーションでは、ネットワークアドレス変換(NAT)デバイス、ポート変換デバイス等のネットワーク中継部は、時々、所与のパケットの真のソースがそれらのパケットの宛先に関連付けられる構成データソースに対して即座に検出可能ではないような方法で、ネットワークパケットを修正し得る。
図6は、少なくとも一部の実施形態による、構成発見サービスにおいてネットワークパケットに関するソース識別情報検出アルゴリズムの使用を示す。係るソース識別情報検出アルゴリズムはまた、本明細書では、「ソースエンドポイント検出アルゴリズム」と称され得る。示されるように、トラフィックソースエンドポイント610(構成アイテム等の発見サービスで表現可能であり得る)からのパケットセット622は、表示される実施形態では、1つ以上のアドレス難読化中継部612を介して、トラフィック宛先エンドポイント628に送信され得る。アドレス難読化中継部は、また、逆方向(例えば、エンドポイント628からエンドポイント610に)のトラフィックに使用され得る。宛先及びソースエンドポイントの両方は、構成データを発見サービスに伝達することを担当するそれらに関連付けられる1つ以上の構成データソースを有し得る。しかしながら、中継部または複数の中継部612によって行われる難読化動作(例えば、パケットヘッダ変更、エンベロープパケット内のカプセル化等)のため、受信パケットセット623(送信パケットセット622に対応する)の送信者の識別情報は、宛先エンドポイント628と連携するデータソース(複数可)に対して不明であり得る。顧客の観点から(その代わりに、発見サービスがエンドポイント610及び628で使用される)、または、1つまたは両方のエンドポイントに関連する構成情報を取得する別のサービス(例えば、移行関連サービス)の観点から、送信者の識別情報を発見することは、重要であり得る。
【0041】
いくつかの技法のいずれかは、受信されたパケットセット623の送信者エンドポイントを識別するために発見サービスによって採用され得る。少なくとも1つの実施形態では、コマンドが当該サービスから発行されることができる各々のデータソースが2つのエンドポイントで起動し、特別なパケットシーケンス655は、エンドポイント検出アルゴリズムの一部として、難読化中継部または複数の中継部612を介して、エンドポイント628からエンドポイント610まで発行され得る。例えば、別々に正確にNミリ秒の間隔があるN「余分」なパケット(正常なアプリケーショントラフィックの一部ではない)は、エンドポイント628に関連付けられるデータソースによってパケットシーケンス655で発行され得、エンドポイント610を含む様々な他のエンドポイントにおけるデータソースは、実質的に、係る正確な間隔のあるパケットに関する着信トラフィックを監視し得る。エンドポイント間の経路に沿ってネットワーク障害または問題がないことを仮定すると、エンドポイント610におけるデータソースが、受信された余分パケットの到着時間間隔を、エンドポイント628におけるデータソースの伝達時間間隔と一致させることが可能であり得、それによって、かなり高い確率でパケットセット623の送信者の識別情報を確証する。一部の実施形態では、様々なパケットのIPアドレス及び/またはポートは中継部612で難読化され得、パケットのシーケンス番号は修正されない場合があり、パケットのシーケンス番号は、エンドポイント検出アルゴリズムでは、パケットのソースを識別するために受信者及び送信者のデータソースにおける一致に関して分析され得る。一実施形態では、接続解除要求がすぐ後に続く一連の接続確立要求は、エンドポイント628からエンドポイント610まで発行され得、管理要求の係る異常パターンは、エンドポイント検出アルゴリズムにおいてパケットソースを識別するために使用され得る。一実施形態では、エンドポイント628で起動するサービスエージェント等のデータソースは、サービス側の一意のサービス側識別子に関する要求を、エンドポイント610で起動するデータソース(別のサービスエージェント等)に発行し得、一意のサービス側識別子は、送信者を識別するために使用され得る。送信者を検出するために採用される特定のエンドポイント検出アルゴリズムに関わらず、送信者の識別情報を示す合体構成記録は、送信者が識別された後、様々な実施形態で更新され得る。
【0042】
関連スコア
図7は、少なくとも一部の実施形態による、関連スコアを構成アイテムに割り当てる構成発見サービスにおいて使用され得る例示的因子を示す。関連スコアは、構成アイテムに向けられるクエリに対する少なくとも最初の応答を判定するために使用され得る。例えば、「ホストH1で起動するプロセスをリスト化する」等の一般的クエリに対する応答は、閾値を上回る関連スコアが割り当てられているプロセスを含み得、それによって、応答の合計サイズを小さくし、ノイズが多い応答または情報が不足した応答を回避する。
図7に示される特定の例示的因子がプロセスに適用するが、同様に、様々な実施形態では、他の種類の構成アイテムに関して、同様のアプローチをとり得る。
【0043】
所与の物理または仮想算出サーバは、数百のプロセスを含み得、当該プロセスは、一般的に、多くのリソースを消費しなく、バックグラウンドタスクを行うまたは異常な状況に応答するために(例えば、オペレーティングシステムレベルまたはカーネルレベルで)使用される多くの低レベルプロセスまたはバックグラウンドのプロセスを含む。多くの係るプロセスは、所与のバージョンのオペレーティングシステムの全てのインスタンスに存在し得る。例えば、50のリナックス(登録商標)サーバを含む実行環境では、デーモンプロセスの同様のセットは、全ての50サーバで実行し得る。構成サービスのデータの少なくとも一部の消費者は、アプリケーション特有であり、ひいては、必ずしもデフォルト設定でサーバ毎の処理リスト内で現れないプロセスにより関心があり得る。したがって、構成サービスは、その関連スコア割り当てアルゴリズム710において、異なるホストまたはサーバにおける所与の周波数の繰り返し周波数712を考慮し得、全てのホストで(または、ほとんど全てのホストで)実行するそれらのプロセスは、より低い関連性が割り当てられる。最新のCPU使用714、ネットワークポート使用量716等のプロセスのリソース使用レベル(例えば、当該プロセスが1つ以上のネットワークポートを介してトラフィックを伝達または受信しているかどうかのレベル)及び/または入出力デバイス使用量718はそれぞれ、示される実施形態では、関連スコアと正の相関があり得る。例えば、かなり低レベルのリソースを消費する傾向があり、及び/またはネットワークから切断されているそれらのプロセスは、関連性が低いと見なされる場合がある。少なくとも一部の実施形態では、構成発見サービスは、(例えば、所与のクライアント、クライアントの群、または全てのクライアント/顧客のいずれかから)特別に、所与の種類のプロセスを標的化するいくつかのクエリ(例えば、「httpd」と名付けられたプロセスに向けられたクエリ)の追跡を継続し得る。クエリ履歴測定基準724は、また、プロセスの関連性を判定するために使用され得る。例えば、X日前以内に名前または役割によって特別にプロセスに向けられたクエリが存在している場合、高い関連スコアは当該プロセスに割り当てられ得る。
【0044】
示される実施形態では、アルゴリズム710によって生成される関連スコアは、プロセスを少なくとも2つのカテゴリに分類またはランク付けするために使用され得、示される実施形態では、選択された閾値よりも高いスコアを伴う「より関心のある」プロセス730と、閾値以下または閾値と同等のスコアを伴う「関心の少ない」プロセス732とが挙げられる。所与のプロセス関連クエリが、全てのプロセスがそれに応答することにおいて含まれるべきであることを規定していない場合、または特別に、「関心の少ない」プロセスとして分類されることが発生する特定のクエリについての情報を要求しない場合、より関心のあるプロセスのリストは、示される実施形態では、クエリ応答を準備するために使用され得る。同様の発見的解決アプローチは、少なくとも一部の実施形態では、他の種類の構成アイテムに関するクエリに対する応答を除去または短くするために使用され得る。様々な実施形態では、
図1に示されるスコアリング構成要素112は、機械学習法を利用して、関連スコア、信頼スコア等を生成し得る。
【0045】
構成クエリパフォーマンスの改善
発見サービスの多くの顧客は、大きなアプリケーション実行環境を有し得、潜在的に、いくつかのデータセンター間で分散される数千の構成アイテムを備え得る。アプリケーション構成要素の構成に対する最新の変更及び/またはアプリケーション構成のパフォーマンスまたは挙動の最新の傾向は、多くの場合、より古い構成データよりも係る顧客により関心があり得る。経時的に、所与のアプリケーション実行環境に関して発見サービスで集められ及び記憶される構成データの合計量は、極めて大きくなり得、潜在的に、特にいくつかの従来のデータモデルが最適化されない場合がある時間クエリに対してクエリ応答性を遅くする。
図8は、少なくとも一部の実施形態による、時間クエリに対する反応性を改善する構成発見サービスにおいて採用され得る技法の概要を示す。
【0046】
データソース802によって取得される未加工構成データセット871は、タイムスタンプが付された合体構成記録872を生成または更新するために、発見サービスの合体構成要素804で使用され得、合体構成記録872のそれぞれは、前述に考察されたような構成アイテムの1つ以上の一意のサービス側識別子と関連付けられる。合体構成記録872は、示される実施形態では、持続的発見サービスリポジトリ810のセットの一部を形成する自動スケーリング区分化データストア820で記憶され得る。各パーティションは、一実施態様では、Mギガバイト等の選択された最大量の構成記録データを含み得、発見サービスの各クライアントは最初に1つのパーティションに割り当てられる。クライアントの構成データがクライアントの既存のパーティション(複数可)の最大パーティションサイズに近づくにつれて及びそのとき、リソースの関連セットを伴う新しいパーティション(例えば、割り付けられたストレージスペース及び/または算出能力)は、クライアントのために自動的に生成され得、一部の実施態様では、クライアントのデータの一部のサブセットは、負荷バランシングのための新しいパーティションに移動し得る。一部の実施形態では、プロバイダネットワークによって実施されるデータベースサービス及び/またはストレージサービスは、持続的リポジトリ810に使用され得る。持続的リポジトリはまた、一部の実施形態では、事前に生成されたクエリ結果のために随意式ストア822を含み得る。持続的リポジトリ810は、記録読み出しのための平均待ち時間L1をもたらし得る。
【0047】
図8に示される実施形態では、少なくとも一部の構成記録は、矢印875によって示されるように、ある予期される種類のクエリに関して最適化される低遅延リポジトリ850に先に事前ロードされ得る。当該記録はそれぞれ、様々な実施形態では、作成及び/または最新の修正タイムスタンプを含み得る。当該記録は新しい順にロードされ得、例えば、少なくとも一部の実施形態では、最優先事項は事前ロードされたより最新に更新された(または、より最新に作成された)記録に割り当てられる。リポジトリ850から記録にアクセスする平均待ち時間L2は、リポジトリ810への記録アクセスの待ち時間L1よりも短い場合がある。少なくとも一部の実施態様では、リポジトリ850は、最新の構成データに主に向けられた時間クエリまたは時系列クエリを含む、クライアントクエリを扱うために指定される発見サービスの様々なコンピューティングデバイスにおいて、揮発性メモリの一部を備え得る。リポジトリ850における構成データキャッシュ852は、一部の実施形態では、OpenTSDBで使用されるデータモデル等の時間クエリ(例えば、「サーバS1及びS2において、最後に発生する構成変更をリスト化する」の論理的等価物)に対して特別に標的化されるデータモデルを実装し得る。少なくとも一部の実施形態では、キャッシュ852に利用可能である最大スペースは、持続的記録リポジトリで利用可能であるスペースよりも小さい場合があり、結果として、より古いキャッシュエンティティ892は、必要に応じて、新しいエンティティに場所を作るために破棄され得る。少なくとも一部の実施形態では、いくつかのクエリの結果は、随意に、クエリ結果ストア822に記憶され得、必要に応じて、矢印877によって示されるように再利用され得る。
【0048】
一部の実施形態では、
図8に示されるものを超えるストレージの追加層が使用され得る。例えば、コールドストレージのバックエンド層は、閾値経過時間(1カ月または6カ月等)に達している構成データに使用され得る。係るコールドストレージ層は、主要持続的データリポジトリよりも少ないコストであり得る(いくつかの場合、当該データに関するより空間効率の良い形式を使用する)。しかしながら、コールドストレージから記録を読み出す待ち時間は、より長くなり得る。少なくとも一部の実施形態では、スナップショットベースのプログラムインターフェースのセット(または、他の時間指向のプログラムインターフェース)は、構成発見サービスによって実施され、特定タイムスタンプまたは期間に対応する構成記録を使用されるストレージの異なる層のいずれかから読み出すことを可能にし得る。一実施形態では、異なる時点に関するクライアントの構成データの各々のスナップショットは、少なくとも一部の時間ベース構成クエリに対する急速な応答を可能にし得る発見サービスによる特徴のあるオブジェクトとして自動的に、または要求に応じて、作成または記憶され得る。様々な時点に対応するスナップショットは、他の層から、様々な実施形態では、キャッシュ852に要求に応じて(または、要求を予想して)ロードされ得る。一実施形態では、スナップショットベースAPIは、クライアントが、2つのスナップショット構成が、比較が有用になるように十分に同様であるかどうかを判定することが可能であり得、そのような場合、係る比較の結果(構成スナップショットレベルで「diff」コマンドの結果に対する概念上同様であるもの)を提供することを可能にし得る。
【0049】
構成発見サービスをサポートするための方法
図9は、少なくとも一部の実施形態による、構成発見サービスで行われ得る動作の態様を示すフロー図である。要素901に示されるように、クライアントの1つ以上のアプリケーション実行環境から構成情報の自動発見が発見サービスで開始されたことの判定を行い得る。実行環境は、1つ以上のプロバイダネットワークにおいて(例えば、発見サービス自体が実施される同じプロバイダネットワークの仮想コンピューティングサービス及び/またはストレージサービスにおいて、ならびに他のプロバイダネットワークにおいて)、及び/または顧客所有施設または顧客管理施設において、リソースを含み得る。例えば、発見サービスのプログラムインターフェースを介して顧客から受信される要求に応答して、自動発見が開始される判定を行い得る。例えば、当該サービスは、サービスのエージェントに自動発見を開始させることができるStartdatacollectionAPIを露出し得る。例えば、エージェントは、状態変更に関してAPIをポーリングするように構成可能である。発見サービスが、データ収集を開始するためにデータベースの状態を変化させるとき、エージェントは、この状態更新を受信し、データ収集を始めることができる。
【0050】
構成データソースの最初のセットが、例えば、発見サービスエージェントによって識別され得、ネットワーク接続性は、(例えば、エージェントを介して)発見サービスとデータソースとの間で確立され得る(要素904)。例えば、クライアントの既存の構成管理データベース、第3者構成管理ツール及び/またはパフォーマンス管理ツール、及び/またはクライアントに特別に生成されるカスタムデータを含む種々のデータソースを使用し得る。当該サービスは、大量のエクスポート/インポートインターフェース、イベント駆動型構成更新に関するインターフェース等を含む、データソースの異なるカテゴリから未加工構成データセットを受信するためにプログラムインターフェースを実装し得る。エージェントは、データをプログラムインターフェースに送信するように構成可能である。例えば、エージェントは、プログラムインターフェースに関するエンドポイント(複数可)を識別する情報でプログラムされることができる。
【0051】
当該サービスは、データソースから未加工構成データセットを集めることを開始し得る(要素907)。各データセットは、関連構成アイテムに関する属性値の一部のセット及びいくつかの識別情報(例えば、データソースによって取得される識別子)を含み得る。一意のサービス側識別子は、例えば、データソース側識別子、属性値、及び/または発見サービスで定義されるオントロジの要素を組み合わせるネーミングスキームに基づいて、示される実施形態では、様々な構成アイテムのために作成され得る(要素910)。構成アイテムが異なる目的のために物理的に移動され、再配備される等が行われる場合でさえも、サービス側識別子は、データソース提供識別子の少なくとも一部と異なり得、一部の実施形態では、そのライフサイクル間にサーバ等の構成アイテムを一意に識別するために使用され得る。一部の実施形態では、特定の構成アイテムに適用される構成変更の程度に応じて、発見サービスは、経時的に、一意のサービス側識別子を修正し得る。サービス側識別子を変更するための閾値条件は、構成アイテムの1つのカテゴリから別のものまで異なり得る。一例示的シナリオでは、例えば、メモリまたはディスクスペースがホストに追加される場合、ホストのサービス側の一意の識別子は変更しないが、CPUまたはマザーボードを交換する場合、一意の識別子は変更され得る。
【0052】
異なる粒度で、異なる時間で、または異なるツールを使用して、同じ基本エンティティについての構成詳細を含み得る種々のデータソースから得られた未加工構成データセットは、示される実施形態では、発見サービスにおいて合計され得る(要素913)。未加工データセットは、一部の実施形態では、共通識別子を使用して、構成アイテムを識別しない場合があり(例えば、異なるデータソース側識別子は、各々の未加工構成データセットの同じ構成アイテムに提供され得る)、当該サービスは、異なるソースから受信される様々な属性値間の相関関係または一致を利用して、2つの異なるデータセットの構成データが実際に同じアイテムを指していることを判定し得る。合体構成記録は、発見サービスの1つ以上の持続的リポジトリで生成及び記憶され得る。
【0053】
少なくとも一部の実施形態では、各々の信頼スコアは、異なるデータソースに関連付けられ得、係る信頼スコアは、報告された構成データ間の矛盾をなくすために、及び/または随意に、低信頼性ソースから受信された一部の属性値を破棄するために使用され得る(要素916)。したがって、合体監督構成記録は、未加工構成データセットに示される属性値のいくつかのサブセットを除外し得る。いくつかの属性値は、信頼スコアに起因して除外されることに加えて、またはその代わりに、陳腐化に起因して(例えば、値が集められてから経過している時間が当該サービスで選択された閾値を超えるため)、除外され得る。信頼スコア自体は、例えば、機械学習法及び/またはクライアントフィードバックを使用して、経時的に調整され得る。
【0054】
様々な実施形態では、発見サービスは、アプリケーションパターンに従って、構成アイテムをグループ分けするために記述子を維持し得る。構成アイテムの挙動及び/または通信パターンが係る記述子の示される挙動またはパターンに一致する場合、当該サービスは、構成アイテムの構成記録を対応する役割識別子に自動的にタグ付けし得る(要素919)。例えば、当該サービスで集められた構成データ(例えば、ネットワークパケットフローのパターン)は、当該サービスが、サーバが果たす役割のクライアントによって知らされることなく、特定のサーバが複数階層ウェブアプリケーションパターンのウェブサーバであることと、別のサーバが当該パターンのアプリケーションサーバであること等とを認識することが十分であり得る。
【0055】
一部の実施形態では、合体及び監督構成記録の少なくとも一部は、元の持続的リポジトリから事前ロードされ得、持続的リポジトリでは、当該記録は、予期された種類のクエリに適するデータモデルが実装される低遅延リポジトリ内に記憶されていた(要素922)。低遅延リポジトリは、一部の実施形態では、時間クエリに対する急速な応答が提供され得るキャッシュ(例えば、揮発性メモリに実装される)を備え得る。データは、一部の実施形態では、(合体記録の最新のタイムスタンプを使用して)新しい順で事前ロードされ得、これにより、より最新の変更または測定基準に向けられた対象のクエリを優先するようにする。合体記録のコンテンツは、発見サービスのプログラムインターフェースを介して受信されるクエリに応答して提供され得る(要素925)。
【0056】
発見された構成情報に関する可視化サービス
図10は、少なくとも一部の実施形態による、発見サービスで収集された構成記録に関する可視化サービスが実装され得る例示的システム環境を示す。示されるように、システム1000は、プロバイダネットワーク1002A及び1002Bと、顧客施設ネットワーク1072とを備える。
図1〜
図9に関連して上記に説明されたものと同様に、構成発見サービス1004を含むいくつかのネットワークアクセス可能サービスは、プロバイダネットワーク1002Aで実施され得る。示される実施形態では、可視化サービス1006は、例えば、発見サービス1004に記憶される構成データのカスタムのグラフィカル表現を提供するために、構成発見サービス1004の構成要素として実装され得る。他の実施形態では、可視化サービス1006は、構成記録を発見サービス1004から取得する独立型サービスとして実装され得る。
【0057】
システム1000は、示される実施形態では、プロバイダネットワーク1002Aの構成アイテム1036A〜1036Cと、プロバイダネットワーク1002Bの構成アイテム1036F〜1036Hと、顧客施設ネットワーク1072の構成アイテム1036L〜1036Nとを含む、多数の構成アイテム1036を備える。構成アイテムに関連付けられる未加工構成データセット(例えば、属性値のセット)は、プロバイダネットワーク1002Aのデータソース1034A及び1034B、プロバイダネットワーク1002Bのデータソース1034K、及び顧客施設ネットワーク1072のデータソース1034M等の様々な構成データソース(CDSrcs)1034で取得され得る。未加工構成データセットは、構成発見サービス1004に伝達され得、合体構成記録は、前述のような、及び1つ以上のリポジトリ内に記憶された未加工データから収集され得る。
【0058】
可視化サービス1006は、示される実施形態では、動的に、複雑なアプリケーション環境の構成の更新されたコンテクスト依存グラフィカル表現をクライアントに提供し得る。所与のクライアントが可視化コンソールを見るとき、またはそうでなければ、クライアントのアプリケーション実行環境のグラフィカル表現が所望される指示を送信するとき、可視化サービスは、発見サービスのプログラムインターフェースを使用して1つ以上のクエリを発行し、構成データが表示されるクライアントに関連付けられる構成アイテムのセットを識別し得る。情報が所与のクライアント側表示環境でクライアントの代わりに可視化される構成アイテム1036の群は、本明細書では、「可視化標的環境(VTE)」と称され得る。所与のVTEは、異なるネットワークの複数のデータセンター間に分散される構成アイテムを備え得る。例えば、クライアントC1のVTE1044Aは、プロバイダネットワーク1002Aの1つ以上のデータセンターの構成アイテム1036B及び1036Cと、プロバイダネットワーク1002Bの場合、1つ以上のデータセンターの構成アイテム1036F及び1036Gとを備え得る。クライアントC2のVTE1044Bは、示される例では、プロバイダネットワーク1002Bの構成アイテム1036Hと、顧客施設ネットワーク1072の構成アイテム1036Lとを備え得る。
【0059】
少なくとも一部の実施形態では、可視化サービス1006は、VTEのグラフィカル表現が示される表示環境の様々な特性または制約(例えば、表示に利用可能であるスクリーンの種類、表示をレンダリングすることを担当するクライアント側デバイスの算出能力等)を検出することと、適宜、表示されるコンテンツを調整することとが可能であり得る。所与のクライアントは、いくつかの異なる表示環境を利用することが可能であり得る。例えば、クライアントC1の表示環境1082Aは複数のモニタを伴うデスクトップを備える一方、クライアントC1の別の表示環境1082Bはタブレットコンピューティングデバイスを備え得る。クライアントC2の表示環境1082Cは、1084×768画素のスクリーンを伴う13インチのラップトップを備える。いくつかの場合、複数の表示環境は、同時に単一のクライアントの代わりに使用され得、可視化サービスは、異なるレベルの粒度において、情報を異なる表示環境に伝達し得る。
【0060】
所与のクライアントのVTE1044の一部として識別されている構成アイテムのセットに少なくとも部分的に基づいて、及び表示環境の制約または特徴に少なくとも部分的に基づいて、可視化サービスは、VTEが表示される粒度のレベルを選択し得る。可視化サービスとの対話型セッション中、利用可能であるクライアントの構成情報の様々なサブセット(または全て)のいくつかの異なるビューが提供され得、特定の組み合わせまたはシーケンスのビューがセッションに関するクライアントの目標に応じて提供される。例えば、一方のセッション中、クライアントは性能上の問題のトラブルシューティングを行うことを望み得、別のセッション中、クライアントは、一部の期間にわたって、アプリケーションの構成に対する変更を視認することを望み得、第3のセッション中、クライアントは、ネットワークパケットのソースを識別すること等を望み得る。係るセッションまたはワークフローは、それぞれ、各々の一連のグラフィカル表示またはビューを含み得る。「ビューカテゴリ」と称され得る構成データを表示するいくつかの異なるモードは、示される実施形態では、例えば、階層的またはツリー指向ビュー、グラフまたはネットワーク指向ビュー、またはテーブルビュー等の可視化サービスによってサポートされ得る。所与のセッション中に所与の表示のために使用される特定のビューカテゴリは、少なくとも一部の実施形態では、可視化サービスによって自動的に選択され得る。当該セッションは、セッションまたはワークフローの現在の状態に最も関連があると思われる特定の種類の構成データ(例えば、性能測定、ネットワーク接続性情報、構成の経時変化、構成アイテム間の階層/包含関係、クライアントの特定基準に基づく特定の種類の構成アイテムのランキング等)に少なくとも部分的に基づくものであり得る、及び/またはクライアントの目標に関するサービスの予測または予期に少なくとも部分的に基づくものであり得る。クライアントには、所望される場合、ビューカテゴリ選択を無効にする制御要素(例えば、ボタン、ドロップダウンメニュー等)が提供され得る。例えば、クライアントは、テーブルビューから階層ビューに(またはその逆も同様に)変更する要求を発行し得る。動的カスタム構成可視化1022(例えば、可視化1022A〜1022C)を生成するために使用されることができるデータ及び/または命令(それぞれが使用されるビューカテゴリと一緒に、選択された粒度レベルでVTEの少なくとも一部を表す)は、クライアントの表示環境のデバイスに伝達され得る。したがって、VTE構成要素に対応するデータは、クライアントのデバイスで視認するためにレンダリングされ得る。可視化サービスは、少なくとも一部の実施形態では、並行して同じVTEのいくつかの異なる表現の表示を開始し得る。
【0061】
少なくとも一部の実施形態では、VTE1044の全てまたは一部のグラフィカル表現の生成を開始することに加えて、可視化サービスは、また、クライアントのために、ダッシュボード内に含まれる最優先の、または高い重要性があるコンテンツを提供し得る。可視化サービスは、例えば、時間ウィンドウの境界を判定し、時間ウィンドウ中に発生した少なくとも一部の構成変更についての情報を、ダッシュボードの「最新の変更」セクションに表示させ得る。ダッシュボードはまた、さらに詳細に下記に説明されるような様々な実施形態では、可視化サービス及び/または発見サービスによって識別される不明瞭性に関してクライアントフィードバックを受信するために使用され得る。ダッシュボードのレイアウト及び提示はまた、少なくとも一部の実施形態では、クライアントの表示環境の制約及び能力に基づいて修正され得る。
【0062】
新しい構成情報が発見サービス1004に収集されるにつれて及びそのとき、可視化サービスは、クライアントに提供されるグラフィカル表現を自動的に更新し得る。いくつかの対話式制御は、下記にさらに詳細に検討されるように、時間関数のような構成情報を再生するためのスライダ等の視覚インターフェースでクライアントに利用可能にされ得る。
【0063】
コンテクストベースのビュー推移
可視化サービスは、様々な実施形態では、構成データを視認するためのクライアントワークフローのステップを予想し、表示されたコンテンツを自動的に調整し、最も有用なビューを提供し得る。
図11は、少なくとも一部の実施形態による、可視化サービスによって自動的に実施され得るビュー間のコンテクストベースの推移の例を示す。3つの例示的ビューのカテゴリ(テーブルビュー1120A、ツリーまたは階層ビュー1120B、及びグラフまたはネットワークビュー1120C)が示される。いくつかの場合、それは、ビューカテゴリの一部または全部を使用して、構成アイテム1102A〜1102F等の構成アイテムの同じセットについて表示することが可能であり得る。
【0064】
可視化サービスは、示される実施形態では、様々な要因に基づいて、例えば、クライアントによって次に入力されることが予期される対話的ワークフローの特定のステージに基づいて、表示される構成データの種類、表示のために選択される粒度等に基づいて、使用される特定のビューカテゴリを選択し得る。様々な実施形態では、ビューカテゴリを選択するために使用され得る構成データ種類の例は、とりわけ、性能測定、トランザクションフロー、構成に対する経時変化、アクティブな接続数等のネットワーク接続性インジケータ、制約/階層関係情報、構成アイテムの場所ベースのグループ分け、
図5に示されるもののようなアプリケーションパターンの帰属関係等を含み得る。係る自動ワークフローコンテクストベース推移1105(例えば、推移1105A〜1105C)は、少なくとも一部の実施形態では、クライアントによって無効にされ得る。例えば、使用されるグラフィカルインターフェースのリンクまたは他の制御要素は、表示されるデータに使用されるビューカテゴリの変化を要求するクライアントに提供され得る。
【0065】
可視化サービスは、少なくとも一部の実施形態では、頻繁に使用されるクライアントワークフローの知識ベースを維持し得、各ワークフローは、可視化サービスで、セッション中にクライアントの目標を達成するためにクライアントに一般的に提供される各々の一連の表示を表す。例えば、一方の係るワークフローは、可視化コンソールにログインするクライアントにより始まり、クライアントのアプリケーションに使用される全てのホスト等の選択種類の構成アイテムのテーブルビューが提供され得る。テーブルビューでは、属性値等(例えば、ホスト名、IPアドレス、現在のアップタイム、最新の時間間隔中の平均CPU利用、最新の時間間隔中に消費される平均ネットワーク回線容量等)が、異なるホストに提供され得る。クライアントがログインした後に表形式で最初に提示される特定の構成アイテム種類が、例えば、一実施態様では、クライアントの好みの設定で表示され得る。クライアントが最初のログイン後表示に関する特定の好みを有さない場合、一実施形態では、クライアントの可視化標的環境に関連する最大の、または最も包括的な階層的構成アイテム種類(例えば、クライアントのリソースが分散されるデータセンター、クライアントによって使用されるネットワークサブネット、
図5に示されるものに同様のアプリケーションパターンのインスタンス、またはホスト)を見つけることと、当該種類の構成アイテムをリスト化することとを試み得る。
【0066】
ワークフローの次の表示に関するビューカテゴリは、(例えば、事前に使用されたワークフローとの一致に基づいて、ワークフローに関するクライアントの目標の指示として解釈され得る)第1の指示でクライアントの対話に基づいて選択され得る。第1の表示がホスト情報のテーブルを含み及びクライアントが、ホストがネットワーク回線容量使用測定基準に基づいてソートされることを要求する場合、例えば、当該サービスは、クライアントが次の表示でネットワーク接続情報を視認することを望むことを想定し得る。したがって、ホストの選択されたセットのネットワークビューは次に表示され得、例えば、ホスト間のネットワーク経路、ホスト間の接続開放等を示す。第1の表示が利用可能コンテナまたはデータセンター等の階層コンテナのリストを含み及びクライアントがコンテナの1つをクリックする場合、階層またはツリービューカテゴリは、クライアントが含有される構成アイテムを視認することを望む想定の下、次の表示のために選択され得る。表示される構成データの種類以外であり及び事前に使用されたワークフローと一致するいくつかの因子は、様々な実施形態では、自動ビューカテゴリ選択に考慮され得、例えば、情報がワークフローの所与のステージで利用可能であるクライアントの構成アイテムの合計数、クライアントの表示環境の予想サイズ(例えば、画素)等が、カテゴリビュー選択に影響を及ぼし得る。例えば、クライアントのアプリケーションが1000ホストを使用し及びスマートフォンがクライアントの表示環境として検出される場合、ホストの階層ビューまたは要約ビュー(例えば、データセンターの場所に基づくもの、またはサブネット帰属関係に基づくもの)は、1000ホストの全てのテーブルビューの代わりに提供され得る。一実施形態では、クライアントは、可視化サービス(いくつかの場合、自動ビューカテゴリ選択決定のクライアントによる無効を含み得る)とのその対話の記録が保存されることを要求し得、係るカスタム記録は、後続セッションでビューカテゴリを選択するために使用され得る。
【0067】
例示的可視化インターフェース構成要素
前述に言及されたように、可視化サービスは、1つ以上のアプリケーション実行環境の少なくとも一部のグラフィカルビュー及びダッシュボードの両方を提供し得る。
図12は、少なくとも一部の実施形態による、可視化サービスのグラフィカルユーザインターフェースの例示的要素を示す。示されるように、可視化インターフェース1202は、示される実施態様では、可視化標的環境1205及びダッシュボード1270の一部または全てを表示し得る。一部の実施形態では、グラフィカルユーザインターフェースは、ブラウザの一部としてレンダリングされ得る一方、他の実施態様では、独立型ツールが採用され得る。
【0068】
VTE部1205は、構成アイテムのいくつかの場所ベースのグループ分けを示し得る。示される例では、プロバイダネットワーク1220及び顧客所有データセンター1230で発見される構成アイテムについての情報は、VTE部で含まれる。少なくとも一部の実施形態では、プロバイダネットワークは、複数の地理的領域に体系化され得、各領域は、1つ以上の利用可能コンテナを含み得、また、利用可能コンテナは「利用可能ゾーン」と称され得る。同様に、利用可能コンテナは、所与の利用可能コンテナ内のリソースが他の利用可能コンテナ内の不具合から隔離されるような方法で(例えば、電力関連機器、冷房機器、または物理的機密保護構成要素等の独立式インフラ構成要素で)設計された、1つ以上の特徴のある場所またはデータセンターの一部または全てを備え得る。一方の利用可能コンテナ内の不具合が、任意の他の利用可能コンテナ内に不具合をもたらすことが予期されない場合があり、したがって、所与のリソースの利用可能プロファイルは、異なる利用可能コンテナ内のリソースの利用可能プロファイルから独立していることが意図される。したがって、様々な種類のサービス及び/またはアプリケーションは、各々の利用可能コンテナ内の複数のアプリケーションインスタンスを起動することによって、単一の場所の不具合から保護され得る。少なくとも一部のプロバイダネットワーク顧客のために、異なる利用可能コンテナ間で顧客に割り付けられるリソースの分散の視覚表現を提供することは有用であり得る。
図12に示されるシナリオでは、顧客に割り付けられる仮想マシンは、少なくとも2つの利用可能コンテナ間で分散される。仮想マシン(VM)1222A及び1222Bはプロバイダネットワーク1220の利用可能コンテナ1210A内で起動する一方、VM1222K及び1222Lは第2の利用可能コンテナ1210B内で起動する。
【0069】
可視化サービスによってプロバイダネットワークに対して表示される場所ベースグループは時々、例えば、場所の詳細に関して異なる許可に基づいて、顧客施設ネットワークに対して表示されるグループと異なり得る。例えば、仮想マシン1222は利用可能コンテナによってグループ化されるように示され、顧客所有データセンター1230内に示されるリソースは、場所及びサーバラックによってグループ化される。データセンター1230の場所1214は、顧客のVTEの2つのラック1232A及び1232Bを備える。ラック1232Aは2つのサーバ1234A及び1234Bを備える一方、ラック1232Bはサーバ1234Cを備える。また、構成アイテム間に確立されるネットワーク接続は表示される。例えば、VM1222Aはサーバ1234A及びサーバVM1222Kに接続されるように示され、VM1222BはサーバVM1222L及びサーバ1234Kに接続される。場所ベースグループ分けの粒度は、例えば、構成アイテムの合計数、表示環境特性等に基づいて、仮想化サービスによって自動的に選択され得る。少なくとも1つの実施形態では、特定のグラフィカル表現で自動的に含まれる(それを行う明示的要求を受信することがない)場所ベース境界カテゴリは、例えば、プロバイダネットワークの利用可能コンテナ境界、データセンター境界、ラック境界、場所境界、ネットワーク相互接続トポロジ境界、物理マシン境界、処理コンテナ境界、または仮想マシン境界を含むセットから選択され得る。各々の分離アプリケーションセットに対応する複数の処理コンテナは、例えば、単一のハードウェアでサポートされ得、可視化サービスは、あるビューに関するサーバ内のコンテナのグラフィカル表現を提供し得る。
【0070】
ダッシュボード1270は、示される実施形態では、2種類の情報;最新の構成変更(セクション1271の選択された時間ウィンドウに示されるもの)と、曖昧性除去セクション1272とを含み得る。示される実施態様では、最新の時間ウィンドウ内で発生している構成変更は、(例えば、上記に説明された種類の関連スコアに基づいて、及び/または他の因子に基づいて)ランク付けされ得、セクション1271で、順番にまたはランク順に表示され得る。これは、クライアントが、どのようにそのアプリケーション実行環境が変化しているかをすぐに理解することを可能にし得る。
【0071】
一部の実施形態では、構成発見サービスは、可視化インターフェースは、可視化インターフェースを利用して、クライアントフィードバックを取得し、構成アイテムの識別情報に関する質問を確認または解決することを支援し得る。特定の構成アイテムの識別情報のクライアントフィードバックベース曖昧性除去が開始したことを判定する場合、曖昧性除去要求は、インターフェースのセクション1272に示され得る。例えば、当該要求は、提案された識別情報の確認を要求する記号(例えば、クエスチョンマークまたはテキストの吹き出し)で、構成アイテムの提案された識別情報及び/または1つ以上の属性値を示し得る。クライアントは、フィードバック(例えば、チェックマーク)を入力することによって識別情報を確認し得る、または代替の識別子もしくは名前を提供し得る。不明瞭な識別情報をクライアントのフィードバックの支援で解決する場合、構成発見サービスは、示される実施態様では、その構成記録を更新し得(または、検証済としてマークし得)、曖昧性除去要求がセクション1272から除去され得る。
【0072】
一部の実施形態では、可視化サービスは、クライアントが、構成発見サービスによって識別された様々な種類のトランザクションに関連付けられる詳細(例えば、待ち時間)を検査することを可能にし得る。
図13は、少なくとも一部の実施形態による、可視化サービスの支援で表示され得るトランザクション関連情報の例を示す。示されるように、可視化インターフェース1302は、「トランザクション表示」制御要素1350(例えば、ボタン)と、クライアントが、情報が表示される粒度を増加または減少させることを可能にするズーム制御要素1349とを含み得る。ズーム制御要素1349は、例えば、個々の仮想マシン1322(プロバイダネットワーク1320内にある)及びサーバ1334(顧客所有データセンター1330内にある)が示される粒度のレベルに達するために使用され得る。クライアントが「トランザクション表示」ボタンをクリックすると、領域1370A及び1370Bを示すために表示を更新し得る。領域1370Aが、12500のトランザクションに関する要求(トランザクションの定義がサービスにより選択され得る、またはクライアントにより選択され得る)が、一部の期間中に(この例では、100秒)、顧客所有データセンターの場所1314のラック1332Aにおけるサーバ1334Bから、プロバイダネットワーク1320の利用可能コンテナ1310Bの仮想マシン1322Kに伝達されたことを示す。平均スループットは12.5トランザクション/秒であり、平均トランザクション待ち時間または応答時間は500ミリ秒であった。同様に、領域1370Bは、サーバ1334Kから仮想マシン1322Bに提出されるトランザクションに関するカウント、スループット、待ち時間を示す。
【0073】
最新のトランザクションリスト1385は、示される実施形態では、表示に含まれ得る。可視化標的環境の現在表示されている部に関連付けられる最新のトランザクションの一部に関して、提出部構成アイテム1387(例えば、トランザクションが開始されたプロセスまたはホスト)の識別子、応答者1388、提出タイムスタンプ1389、トランザクションコマンド/要求詳細1390、ならびに完了時間及び状態(例えば、コミット/途中停止)1391等の詳細が挙げられる。クライアントは、可視化インターフェースを使用して、選択された属性に基づいて最新のトランザクションをソートすること、選択された期間が表示されることを要求すること、及び/またはトランザクション送信者またはトランザクション応答者についての追加詳細を視認することを可能にし得る。一部の実施形態では、クライアントは、可視化サービス(例えば、パケットフローシーケンス、トランザクション要求及び応答の形式等を示す)を介して、トランザクション記述子を提出し得、構成発見サービスが、トランザクションが発生するときに当該トランザクションを監視することを可能にする。他の実施形態では、発見サービスは、様々な構成アイテム間の通信の頻繁な要求/応答パターンを検出することが可能であり得、これらのパターンを使用して、トランザクションを定義し得る。
【0074】
図14は、少なくとも一部の実施形態による、可視化サービスの支援で表示され得るネットワークトラフィック関連情報の例を示す。前述のように、時々、ネットワークトラフィック経路が、1つ以上のパケットが送信された真のソースを検出することをより難しくするアドレス変換機構またはポート変換機構等の難読化デバイスを含み得る場合があり得る。示される実施形態では、可視化サービスは、選択された構成アイテム(例えば、仮想マシン1422A)で受信されたネットワークパケットの数に関する統計値を示す制御要素(制御要素1448等)を提供し得る。示される例示的シナリオでは、領域1470は、一部の選択された時間間隔中、合計4500パケットが、利用可能コンテナ1410A及びプロバイダネットワーク1420の仮想マシン1422Aで受信されたことを示す。
【0075】
「トラフィックソース表示」とラベル付けされる制御要素1450は、受信されたパケットに関するソース検出クエリを、可視化サービスを介して、構成発見サービスに提出するために使用され得る。それに応答して、発見サービスは、
図6に関連して検討されるもの等のいくつかのソース識別情報検出アルゴリズムのいずれかを採用し、パケットを、難読化中継部を介して、仮想マシン1422Aに伝達している構成アイテムの考えられる識別情報を解明し得る。当該アルゴリズムは、例えば、異常パターンの複数の接続確立要求及び接続解除要求を送信することと、パケット到着時間間隔を綿密に追跡すること、そのパケット到着時間間隔を伝達時間間隔と一致させること、シーケンス番号を監視すること等を含み得る。領域1471A及び領域1471Bに示されるように、構成発見サービスは、示される例では、4500パケットのうちの500の適したソースのようなサーバ1434Aと、残りの4000パケットの適したソースのようなサーバ1434Kとを識別している。いくつかのパケットに関するソース識別が、必ずしも、ここで検討される識別情報検出アルゴリズムの種類の起動を要求しない場合があることを留意されたい。難読化中継部を通過しないパケットのソースは、構成発見サービスによってパケットヘッダから単純に取得され得る。
【0076】
一部の実施形態では、可視化インターフェースは、最新の受信済パケットリスト領域1485を含み得、パケットリスト領域1485では、受信タイムスタンプ1487、推定の送信者のIPアドレス1488、受信者のIPアドレス1489、パケットサイズ1490、及び/またはシーケンス番号1491等の詳細が表示され得る。クライアントは、可視化インターフェースによって提供される制御によって、所望されるような最新の受信済パケットリスト領域1485のコンテンツをソート及び/または再配列することが可能であり得る。
【0077】
図15は、少なくとも一部の実施形態による、可視化サービスの支援で経時的に構成変化の可視化を得るようなスライダ制御要素の使用例を示す。スライダ制御要素1571は、クライアントが、様々な時点における、その可視化標的環境の状態を視認することを可能にし得る。示される例では、可視化インターフェース1502Aは、要素1574Aに示される時点の、クライアントの標的環境が5つのアイテム(プロバイダネットワーク1520の利用可能コンテナ1510AにおけるCI1522A及び1522Bと、利用可能コンテナ1510BにおけるCI1522K及び1522Lと、外部データセンター1533におけるCI1522P)を含むことを示す。
【0078】
例えば、クライアントによって使用される表示環境に応じてマウスまたは指先を使用して、スライダが右に動く(矢印1551によって示されるように)につれて、要素1574Aに示される時間は進み得、インターフェースに示される構成アイテムは変更し得る。例えば、要素1574Bに対応する時間において、インターフェース1502Bは、2つの新しい構成アイテムがクライアントの標的環境に追加されていることを示す。構成アイテム1522Rは利用可能コンテナ1510Bに追加されている一方、構成アイテム1522Sは外部データセンターに追加されている。少なくとも一部の実施態様では、新しく追加された構成アイテムは、矢印1555によって示されるようにハイライトされ得る(例えば、一時的に、異なる色で示される)。スライダ以外の対話式制御(例えば、ラジオ式ボタン、または早送り制御/巻き戻し制御)は、一部の実施形態では、時間ベース構成表示に提供され得る。インターフェースは、また、時間クエリに関連付けられる追加制御を提供し、例えば、様々な時点におけるその可視化標的環境の状態の機械読取可能スナップショットをキャプチャすることを可能にし、特定の時点における構成の差だけを示し、タイムラインの変更をプロットする等を行うことを可能にし得る。スライダ1571及び視覚インターフェースの他の時系列的制御は、様々な実施形態では、発見サービス(
図8に関連して上記で検討された)のスナップショットベースAPI及び/または時系列的APIに依存し得る。
【0079】
一部の実施形態では、可視化サービスは、クライアントが、アプリケーション構成要素を一方のデータセンターまたはプロバイダネットワークから別のものに移行させることを可能にする機構を提供し得る。
図16は、少なくとも一部の実施形態による、アプリケーション実行環境の段階的移行を開始する可視化サービスの使用例を示す。示されるシナリオでは、アプリケーションパターンの範囲内の様々な構成アイテムが果たす役割を示すタグは、可視化インターフェース1602Aに示され得る。例えば、クライアントの構成アイテム間の相互作用のパターンに基づいて、構成発見サービスは、複数階層ウェブアプリケーションを識別している場合がある。外部データセンター1633で起動する構成アイテム1622Qは複数階層ウェブアプリケーションのウェブサーバとして識別されている場合がある一方、構成アイテム1622Rは複数階層ウェブアプリケーションのデータベースサーバとして識別されている場合がある。タグ1674A及び1674Bは、各々、構成アイテム1622Q及び1622Rのために生成されている場合がある。
【0080】
あるステージの複数階層ウェブアプリケーションの構成要素をプロバイダネットワーク1620に移行させる計画は、示される実施形態で、例えば、移行計画及び実施サービスにおいて、生成されている場合がある。移行の各ステージは、プロバイダネットワークへの特定の役割を果たす構成アイテム(例えば、「ウェブサーバ」または「データベースサーバ」)の移行を伴い得る。役割毎の移行計画の詳細は、制御1633A(データベースサーバ用)及び1633B(ウェブサーバ用)を使用して視認され得る。制御要素1675は、クライアントが特定のタグに関連付けられる構成アイテムに関する段階的移行を開始することを可能にするように提供され得る。
【0081】
示される例では、クライアントがデータベースサーバのためにラベル「DB」でタグ付けされる構成アイテムの移行を要求する場合及びそのとき、可視化サービスは、示される実施形態では、発見サービス及び/または移行実施サービスにプログラムで対応する要求を伝達し得る。構成アイテム1622Rに対応するデータベースサーバがプロバイダネットワーク1620の利用可能コンテナ1610Bへの段階的移行の一部として推移した後、クライアントのビューは、インターフェース1602Bに示されるような移行構成アイテム(1674Cとラベル付けされた)を示すように更新され得る。
【0082】
少なくとも一部の実施形態では、可視化サービスは、また、移行に対する前後の性能比較を可能にするインターフェースをサポートし得る。例えば、移行前のアプリケーションの性能(例えば、スループット、トランザクション待ち時間/応答時間等)の基準値のビューが領域1646に示され得る一方、対応する移行後の性能統計が領域1647に示され得る。後の性能統計が満たされない場合、クライアントは、所望される場合、逆の移行を開始し得る(示される例では、データベースサーバを外部データセンターに戻るように移動させる)。
【0083】
一実施形態では、可視化インターフェースは、アプリケーション内の構成アイテムが果たす様々な役割に関連付けられるタグを直接規定するように、クライアントによって使用され得る。例えば、「タグを加える」制御は、クライアントが新しいタグを定義する、またはインターフェースを介して選択された構成アイテムと既存のタグを関連付けるために提供され得る。経時的に、タグのライブラリは蓄積され得、クライアントは、可視化インターフェースを使用して、利用可能タグを点検し、ライブラリの既存タグに関するタグ付け要求を発行し、または新しいタグをライブラリに追加し得る。実質的に、クライアントは、可視化サービスによって提供される係る制御を使用して、アプリケーションパターンに関する発見サービスを「教え」得る。クライアントがウェブサーバタグを、可視化サービスを使用して、例えば、1つ以上の構成アイテムに関連付けた後、発見サービスは、タグ付けされたアイテムの挙動(例えば、他の構成アイテムとのネットワーク相互作用のパターン)を監視し得る。発見サービスは、観測された挙動に基づいて、発見的解決策を生成することが可能であり得、以下のことを行うためにクライアントによって明確に要求されることなく、他の構成アイテムを、クライアントによって提供される例と同じラベル/タグに自動的にタグ付けするために使用されることができる。例えば、クライアントが複数階層ウェブアプリケーションアーキテクチャを実装する環境内のウェブサーバまたはデータベースサーバのいくつかの例を提供した後、発見サービスは、それ自体に同様のアプリケーションアーキテクチャを実装する他の環境内で他のウェブサーバ及び/またはデータベースサーバを識別し、適宜、自動生成されたタグを表示し得る。
【0084】
構成データ可視化サービスをサポートするための方法
図17は、少なくとも一部の実施形態による、構成記録のグラフィカル表現を提供する可視化サービスによって行われ得る動作の態様を示すフロー図である。要素1701に示されるように、例えば、クライアントが可視化ツールもしくはコンソールにログインするとき、またはクライアントがプログラムインターフェースを介して可視化要求を発行するとき、クライアントの1つ以上のアプリケーション実行環境に関連付けられる構成情報のグラフィカル表現が提供された判定を行い得る。アプリケーション実行環境は、1つ以上のデータセンター間に分散されるリソースを備え得る。データセンターの一部は各々のプロバイダネットワークの一部であり得る一方、他のものは顧客所有施設にあり得る。合体構成記録の発見サービスのリポジトリに向けられた1つ以上のクエリを使用して、可視化サービスは、特定の可視化標的環境または情報が表示される環境を識別し得る(要素1704)。一部の実施形態では、可視化サービスは構成発見サービスの外部にあり得る一方、他の実施形態では、可視化サービスは構成発見サービスの一部を形成し得る。いくつかの場合、可視化サービス(または発見サービス)の所与の顧客アカウントは、当該アカウントに関連付けられるいくつかの異なるアプリケーション実行環境を有し得、視認されることができる構成アイテムの特定のセットは、一方のクライアント側表示環境から別のものまで異なり得る。顧客のオフィス内に位置するワークステーションから、例えば、タブレットコンピュータからのものよりも大きいクライアントのアプリケーション実行環境のサブセットは、可視化によってアクセスされ得る。少なくとも一部の実施形態では、識別情報及びアクセス管理システムは、表示が提供されることができる構成アイテムの種類を判定するために使用され得る。
【0085】
可視化サービスは、(例えば、クライアント側デバイスオペレーティングシステムによってサポートされるAPIを使用して)クライアント側表示環境の様々な特徴を識別し得る(要素1707)。当該特徴は、利用可能であるスクリーンの数及びサイズ、グラフィカル表現が提供されるクライアント側デバイスのコンピュータ能力、当該サービスとクライアントデバイスとの間の通信に利用可能であるネットワーク回線容量等を含み得る。可視化標的環境に利用可能である構成データの量に基づいて及び/または表示環境の特徴に基づいて、クライアントのために生成される最初のグラフィカル表現に関する可視化サービスにおいて、いくつかの決定を行い得る。これらの決定は、構成情報が表示される(例えば、データセンターレベル、利用可能コンテナレベル、場所レベル、サーバレベル等で集約される)粒度と、使用されるビューカテゴリ(例えば、表ビュー、グラフ/ネットワークビュー、またはツリー/階層ビュー)粒度とを選択することを含み得る(要素1710)。
【0086】
少なくとも一部の実施形態では、例えば、可視化インターフェースのダッシュボード部を使用して、構成変更がハイライトされる時間ウィンドウを判定し得る(要素1713)。選択された粒度及びビューカテゴリを使用して可視化標的環境の動的に更新された表示が、クライアント側表示環境において開始され得る(要素1716)。新しい構成データが発見サービスから利用可能になるにつれて及びそのとき、またはクライアントによってプログラムで発行される要求に応答して、表示を更新し得る(要素1719)。一実施形態では、クライアント側表示環境の特徴は、時々、クライアントによって要求される情報を表示するのに不十分であると思われ得る。例えば、利用可能であるスクリーンスペースは、クライアントによって要求される詳細のレベルを示すには非常に小さい場合がある、またはクライアントに利用可能であるネットワーク回線容量は、妥当な時間で要求されるデータ量を伝送するには非常に小さい場合がある。いくつかの係るシナリオでは、例えば、現在のクライアント側表示環境を介して可視化要求を満たすことに関連付けられるリソース使用の推定に基づいて、可視化サービスは、可視化要求で要求される情報を表示するために、オフラインツール(または、現在使用されるものと異なるクライアント側表示環境)を利用する推薦を伝達し得る。
【0087】
移行マーケットプレイスサービス
図1に関して言及されるように、プロバイダネットワークは、一部の実施形態では、1つ以上の移行関連サービスを実装し得、顧客が所望されるようにアプリケーションまたはアプリケーション構成要素を物理または仮想プラットフォームの一方のセットから別のものに伝送することを可能にし、例えばコストを減らすことを支援し、アプリケーションの可用性または回復力を高め、管理を簡単にする等の高いレベルの目標がある。発見サービスによって集められた情報は、前述で検討されたような移行関連決定を行う際に有用であり得る。しかしながら、複雑なアプリケーションスタックの構成要素間の多くの依存関係の一部に起因して、アプリケーションを一方の環境から別の環境に推移させるプロセスは、時々、アプリケーション所有者の組織の内部で利用可能でなくてよい専門知識によって利益を受け得る。一部の実施形態では、構成発見サービスが起動するプロバイダネットワークは、移行マーケットプレイスサービスを実装することによって、移行ファシリテータまたは専門家とアプリケーション所有者との間の中継部として働き得る。例えば、顧客所有データセンターからプロバイダネットワークへ、または一方のプロバイダネットワークから別のものへ等、実行プラットフォームの一方のセットから別のセットへのアプリケーションまたはアプリケーション構成要素の移行を計画及び/または実施することを支援することが可能である企業体は、本明細書では、「移行ファシリテータ」または「移行実行者」と称され得る。移行ファシリテータが、実行プラットフォーム(アプリケーションが移行される)の標的セットを動作させる事業体と異なり及び事業体のアプリケーションが移行される当該事業体と異なる場合、移行ファシリテータは、「第3者移行ファシリテータ」と称され得る。少なくとも一部の移行ファシリテータは、第3者として特徴付けられない場合がある。例えば、プロバイダネットワークへの/から移行が行われる当該プロバイダネットワークの1つの一部である(または、それと連携する)専門サービスまたはコンサルタント組織は、また、一部の実施形態では、移行ファシリテータの役割において移行マーケットプレイスサービスを利用し得る。高レベルにおいて、移行マーケットプレイスサービスは、アプリケーション所有者が、複雑なアプリケーション移行タスクを支援し得る潜在的パートナーについて学習することを可能にし得、移行ファシリテータが顧客を見つけることを可能にし得る。移行ファシリテータは、様々な実施形態では、ツールプロバイダ(例えば、アプリケーション移行を実施するためにクライアントによって使用されることができる移行ツールを開発する独立ソフトウェアベンダまたは独立系ソフト開発会社)と、ツールを提供する代わりに実際に移行を計画及び実施することが利用可能である技術専門家(そのようなものとして、専門サービス組織、プロバイダネットワークオペレータのパートナー等)とを含み得る。
【0088】
図18は、少なくとも一部の実施形態による、構成発見サービスで集められたデータを利用する移行マーケットプレイスサービスが実装され得る例示的システム環境を示す。示されるように、システム1800は、いくつかのネットワークアクセス可能サービスが実装されるプロバイダネットワーク1802を備える。当該サービスは、仮想コンピューティングサービス1810、パッケージ化プログラム実行サービス1812、1つ以上のストレージまたはデータベース1814、構成発見サービス1804、移行マーケットプレイスサービス1806、及び移行計画及び実施サービス1808を含む。各サービスは、示される実施形態では、プログラムインターフェースのセットを実装し得、プログラムインターフェースは、当該サービスとそのクライアントとの間に相互作用するために使用され得、また、いくつかの場合、サービス相互作用間に使用され得る。仮想コンピューティングサービス1810に関連付けられるVCSプログラムインターフェース1844は、仮想マシンを獲得、使用、及び解放するために使用され得る。パッケージ化プログラム実行サービス1812のPESインターフェース1845は、明確にサーバをリクエスタに割り付けることなく、及びプログラム実行の結果を受信するために、プログラムの実行に関する要求を提出するために使用され得る。SDSプログラムインターフェース1846は、様々なアプリケーションに関連付けられるデータセットを記憶し及びそれにアクセスするために使用され得る。発見サービス1804のCDSプログラムインターフェース1841は、前述で検討されたように、構成情報の自動発見を開始するために及び自動発見の結果を視認するために採用され得る。移行計画及び実施サービス1808のMPISインターフェース1843は、詳細な移行計画を生成し、当該計画を実行するために使用され得る。
【0089】
移行マーケットプレイスサービス1806は、示される実施形態では、
図18に示される他のサービスの一部または全てを利用し得る。移行マーケットプレイスサービスのMMSプログラムインターフェース1842は、少なくとも2種類のエンティティ;潜在的移行クライアント1834(例えば、移行され得るアプリケーションの所有者)及び移行ファシリテータ1836によって利用され得る。一実施形態によると、クライアント1834は、要求を移行マーケットプレイスサービスに伝達し、1つ以上の移行ファシリテータをクライアントのアプリケーションに関連付けられる構成情報の少なくとも一部のサブセットにアクセスすることを可能にし得る。アクセス許可が与えられる構成情報は、例えば、発見サービス1804に維持されるリポジトリの合体構成記録に記憶され得る。前述で検討されるように、クライアント1834の所与のアプリケーション実行環境は、例えば、プロバイダネットワーク1802の外側にあるいくつかのリソース及び/またはプロバイダネットワーク1802の内部に位置するいくつかのリソースを含む、複数のプラットフォーム間で分散される構成アイテムまたはリソースを含み得る。一部の実施形態では、クライアント1834は、構成詳細の少なくとも一部が移行ファシリテータに提供される前に難読化または匿名化されることを要求し得る。すなわち、ファシリテータは、十分な詳細が提供されることなく、構成情報のいくつかの態様にアクセスすることが可能にあり得る。いくつかの場合、クライアントは、移行ファシリテータの特定のセットだけが構成情報を検査することを可能にし得る一方、他の実施形態では、移行マーケットプレイスサービスによって登録または承認されている任意の移行ファシリテータは、アクセス許可が与えられ得る。クライアントの構成記録収集部へのアクセスを共有するクライアント要求に応答して、移行マーケットプレイスサービス1806は、(例えば、移行マーケットプレイスサービス自体によって維持されるメタデータ内、または発見サービス1804のメタデータ内のいずれかで)構成記録に関する1つ以上のセキュリティ設定の修正を開始し得る。
【0090】
移行マーケットプレイスサービス1806は、示される実施態様では、MMSプログラムインターフェース1842を介して、各々のメンバーの要求をファシリテータから受信し得る。少なくとも一部の実施形態では、移行マーケットプレイスサービスは、マーケットプレイスの認可されたメンバーとして移行ファシリテータを登録する前に、(例えば、ファシリテータの識別情報及び事業背景を検証するために)有効な手順のセットを開始し得る。
【0091】
登録移行ファシリテータは、示される実施形態では、インターフェース1842を介して、移行候補マッチング要求1837を伝達し得る。係る要求は、例えば、ファシリテータの専門知識または能力の記述(例えば、アプリケーションスタックの種類:ファシリテータが過去に支援されていたアプリケーションスタックの移行)、及び/またはファシリテータが好むであろう移行クライアントの種類の特徴(例えば、移行されるべきアプリケーション実行環境の最小または最大サイズ、移行されるべきアプリケーション実行環境または移行目的地環境の地理的場所等)を含み得る。発見サービス1804のクライアントの中からファシリテータのために1人以上の潜在的顧客を識別する移行候補マッチング要求1837に対する応答は、移行ファシリテータにアクセスが許可されている構成情報を使用して、サービス1806で生成され得る。さらに詳細に下記に検討される一部の実施形態では、移行マーケットプレイスサービス1806は、サービス生成アルゴリズムを実行し一致する潜在顧客を見つけ得る一方、他の実施形態では、ファシリテータは、それ自体の実行可能コードモジュールを供給し得、ファシリテータ供給コードは事前パッケージ化プログラム実行サービス1812またはいくつかの他のプラットフォームにおいて実行し得る。
【0092】
移行ファシリテータ1836は、サービス1806によって提供される潜在的移行候補に関して提供された情報を検査し、移行提案を、インターフェース1842を介してサービス1806に提出し得る。当該提案は、例えば、アプリケーション実行環境の特定のサブセットまたは全て、暫定的スケジュールまたは実施計画等を移行させるための暫定的コスト見積を含む、ファシリテータが提供する意志がある補助の様々な態様を表し得る。移行ファシリテータが、実際に移行を実施する際に関心のある技術専門家よりも移行ツールを提供する独立したソフトウェアベンダである場合、ツールの名前(クライアントのアプリケーションを移行させるためにクライアントによって使用されることができる)は、一部の実施形態では、提案に含まれ得る。次に、サービス1806は、提案1837の表現を潜在的移行クライアント1834に、プログラムインターフェース1842を介して伝達し得る。サービス1806は、一部の実施形態では、同じ潜在的移行クライアント1834の所与のアプリケーション環境に関する多数の提案を受信し、提案のそれぞれは、クライアントにプログラムで提供され得る。
【0093】
クライアント1834が許容可能な提案の1つを見つけ、詳細な移行計画及び/または実施に進むことを望む場合、一部の実施形態では、承認メッセージは、インターフェース1842を介して、移行マーケットプレイスサービスに伝達され得る。係る承認メッセージに応答して、一実施形態では、移行マーケットプレイスサービスは、例えば、途切れなく及びプログラムでさらなる移行相互作用をMPISインターフェース1842に伝送することによって、クライアント1834が移行計画及び/または実施サービス1808のワークフローを実行することを可能にする動作を開始し得る。したがって、少なくとも一部の実施形態では、移行マーケットプレイスサービス1806は、必ずしも、移行の詳細な計画及び実際の実施を担当しない場合がある。その代わりに移行マーケットプレイスサービス1806の主な役割は、移行を計画及び実行する詳細な作業が始まる前に、潜在的移行クライアントと移行ファシリテータとの間の情報の信頼できるパイプ役として働くことを含み得る。他の実施形態では、移行マーケットプレイスサービスは、移行の少なくとも一部の態様の実施を計画及び/または調整することを担当し得る。
図10〜
図17に関連して本明細書で検討される可視化サービスは、また、一部の実施形態では、移行マーケットプレイスサービス1806及び/または移行計画/実施サービス1808とともに使用され得ることを留意されたい。可視化サービスは、係る実施形態では、アプリケーション実行環境構成データを視認するために使用されることができるグラフィカルインターフェースの統一された途切れないセットを提供し、アプリケーション移行に関する潜在的ファシリテータを識別し、所望されるような移行を計画及び実施し得る。
【0094】
移行マーケットプレイスサービスとのプログラム相互作用
図19は、少なくとも一部の実施形態による、クライアントと移行マーケットプレイスサービスとの間のプログラム相互作用の例を示す。示されるように、クライアント1920は、発見データアクセス許可要求1925を移行マーケットプレイスサービス1922の1つ以上のコンピューティングデバイスに、プログラムインターフェースを介して提出し得る。発見データアクセス許可要求1925は、例えば、クライアントの構成記録収集部に対応するアプリケーション環境識別子1928、1つ以上のセキュリティ制約1931、及び/またはファシリテータリスト1934のセットを含み得る。ファシリテータリスト1934は、クライアント1920の構成情報が必要に応じて開示される1つ以上の特定のファシリテータを示し得る、または任意の登録/承認ファシリテータに構成情報が提供され得たことを示し得る。セキュリティ制約1931は、任意の制限が公開された構成データに課されるかどうか(例えば、クライアントは、構成アイテムの一部の種類の詳細が個々の構成アイテムレベルで公開されないが、集約情報が公開され得ることを好む場合がある)を示し、もしあれば構成情報のどの態様が匿名化または難読化されたか等を示し得る。
【0095】
要求1925のコンテンツに少なくとも部分的に基づいて、移行マーケットプレイスサービス1922は、例えば、マーケットプレイスメタデータリポジトリ1955において及び/または構成発見サービス1957において、クライアントの構成記録に関連付けられるセキュリティ設定を修正し得る。要求アクセス許可変更が適用されていることを示す構成メッセージ1975は、クライアント1920にプログラムインターフェースを介して伝達され得る。
【0096】
図20は、少なくとも一部の実施形態による、移行ファシリテータと移行マーケットプレイスサービスとの間のプログラム相互作用の例の第1のセットを示す。示される実施形態では、移行ファシリテータ2020は、移行候補識別クエリ2025を移行マーケットプレイスサービス2022に、プログラムインターフェースを介して提出し得る。クエリ2025は、ファシリテータの能力2028(例えば、アプリケーションの種類:ファシリテータが補助を提供する際に関心があるアプリケーションの移行に関するもの)と、候補の好み2031(例えば、最小及び/または最大アプリケーション構成サイズ(ファシリテータが補助する意思がある)、ファシリテータの観点から好ましい地理的領域または場所等)とを含み得る。
【0097】
候補識別クエリ2025に応答して、マッチング構成データを構成発見サービスデータベース2040から読み出すフィルタ仕様2037は、移行マーケットプレイスサービス2022において準備され得る。一部の実施形態では、構成データアノニマイザ2034は、フィルタ仕様2037の準備に関与し得、これにより、
図19に関連して検討される種類のアクセス許可要求によってアクセスが潜在的移行クライアントによって許可されている構成データのサブセットだけが、読み出される。様々な実施形態では、難読化基準(例えば、潜在的移行クライアントによって提供されるもの、または発見的解決策に基づいて移行マーケットプレイスサービスによって生成されるもの)は、クライアント構成セキュリティまたは機密保護の違反を回避するためにフィルタを準備するために使用され得る。一実施形態では、フィルタ仕様を生成する代わりに及びそれに加えて、構成データアノニマイザ2034は、発見サービスデータベースから読み出される構成データを処理し、潜在的移行クライアントによって示される任意のセキュリティ制約が違反ではないことを確実にし得る。
【0098】
移行ファシリテータ2020の能力及び好みに一致するアプリケーション実行環境及び/またはクライアントを示す監督候補環境リスト2046は、サービスのプログラムインターフェースを介して、ファシリテータに伝達され得る。順に、ファシリテータは、リスト2046に示される候補環境及びクライアントの一部または全てに対応するサービス2022に移行提案のリスト2049を提出し得る。次に、移行マーケットプレイスサービスは、示される実施形態では、移行提案2051(例えば、2051A及び2051B)の表現を、適切なクライアント2080(例えば、2080Aまたは2080B)に、サービスのプログラムインターフェースを介して伝達し得る。提案2051の少なくとも一部は、示される実施形態では、提案された移行取り組みに関する暫定的コスト見積2054(例えば、2054Aまたは2054B)の各々の指示を含み得る。一実施形態では、提案2051は、また、または、その代わりに、移行スケジュール推定、または提案に関連付けられるファシリテータによって実施される前の移行を示すフィードバック記録(例えば、レビューまたは評定/ランキングスコア)を含み得る。
【0099】
図21は、少なくとも一部の実施形態による、移行ファシリテータと移行マーケットプレイスサービスとの間のプログラム相互作用の例の第2のセットを示す。
図21と
図20との主な差は、
図21に示されるシナリオでは、移行ファシリテータが、サービス生成マッチングアルゴリズムを使用する移行マーケットプレイスサービスに依存する代わりに、ファシリテータの要求に一致する移行候補を識別するために実行されることができる実行可能プログラムコードを伝達し得ることである。係るアプローチは、例えば、移行ファシリテータが、マーケットプレイスサービスに提供される必要があるファシリテータの能力または制約に関する詳細情報の量を減らすことを可能にし得、また、マーケットプレイスサービスに課される負担を減らし、正確及び効率的なマッチングアルゴリズムを開発し得る。
【0100】
図21に示される実施形態では、移行ファシリテータ2120は、実行可能候補マッチングアルゴリズムコードモジュール2128の指示を含む移行候補識別クエリ2125を、移行マーケットプレイスサービス2122に提出する。一部の実施態様では、クエリ2125は、候補マッチングコードモジュール2128が起動する実行プラットフォームまたはサービスの一部の指示を含み得る。サービス2122は、コード2128を選択された実行サービス2175(例えば、
図18のパッケージ化プログラム実行サービス1812)に伝達する。パッケージ化プログラム実行サービスの使用は、リソースが移行ファシリテータに事前に割り付けられる必要がなくてよい利点をもたらし得る。その代わりに、パッケージ化プログラム実行サービスは、単に、プラットフォームのプールの中から利用可能実行プラットフォームを見つけ、モジュールを当該プラットフォーム上で起動し、実行の結果を提供し得る。移行ファシリテータは、モジュールの実行に実際に使用される算出リソースだけを担当し得る。いくつかの場合、プロバイダネットワークの仮想コンピューティングサービス等の他の実行プラットフォームを使用し得る。
【0101】
マッチングアルゴリズムコードの実行の結果として、フィルタ仕様2178を構成発見サービスに伝達し得、候補構成環境2181に一致する場合、適宜、セットを生成し得る。マッチングアルゴリズムコードは、候補構成環境を使用して、移行マーケットプレイスサービスに伝達される移行提案リスト2183を作り出し得る。次に、リストの個々の提案2184(例えば、2184Aまたは2184B)は、示される実施形態では、適切なクライアント2180(例えば、2180または2180B)に伝達され得る。
【0102】
マーケットプレイスメタデータ
図22は、少なくとも一部の実施形態による、移行マーケットプレイスサービスのメタデータリポジトリに記憶され得る項目の例を示す。示されるように、メタデータリポジトリ2205は、少なくとも2つのカテゴリの情報(移行ファシリテータ記録2231及び発見サービスクライアント記録2251)を含み得る。
【0103】
移行ファシリテータ記録2231は、例えば、ファシリテータの能力2233または専門知識(例えば、アプリケーションスタックの種類:ファシリテータが経験を有する当該ファシリテータの移行を有するもの)を含み得る。記録2231は、また、様々な実施形態では、移行候補をファシリテータに適切にさせる特徴(例えば、移行前の構成アイテムもしくは移行後の構成アイテムの地理的分散、移行されるべきアプリケーション環境の許容可能なもしくは好ましいサイズの範囲、またはファシリテータの動作の好ましい地理的領域もしくは場所)に関するファシリテータの好みまたは要求2235を含み得る。少なくとも1つの実施形態では、記録2231は、また、ファシリテータの前の補助の評価を示すフィードバック2237または証明書を含み得る。当該フィードバックは、一部の実施形態では、評定またはランキング(例えば、1〜5の星の数で、1は劣った評定を示し、5は優れた評定を示す)と、テキストレビューとを含み得る。示される実施形態では、記録2231は、また、移行提案履歴2239(過去にファシリテータによって生成される1つ以上の提案を示す)と、クライアントによって受けた提案のサブセットを示す提案変換履歴2241とを含み得る。
【0104】
発見サービスクライアント記録2251は、様々なクライアントに対応する構成データアクセス許可2253を含み得る。加えて、少なくとも1つの実施形態では、また、クライアントの移行履歴を示す項目2255を維持し得る。一部の実施形態では、
図22に示される要素の種類の少なくとも一部が、必ずしも、移行マーケットプレイスサービスで記憶されない場合があることを留意されたい。
【0105】
ウェブベースマーケットプレイスサービスインターフェース
図23は、少なくとも一部の実施形態による、移行マーケットプレイスサービスによって実装され得るウェブベースインターフェースの例を示す。示されるように、当該インターフェースは、メッセージエリア2310と、各々の登録移行ファシリテータに対応するいくつかの広告領域2315(例えば、2315A〜2315D)と、相互作用制御(例えば、ボタンまたはウェブリンク)2325、2327、及び2329とを含む、ウェブページ2302を含む。
【0106】
メッセージエリア2302は、移行マーケットプレイスサービスのクライアントに、様々な移行ファシリテータに関する追加情報が広告内に示されるリンクによって取得されることができることを知らせ得る。広告のそれぞれは、特定のファシリテータが、例えば、広告領域2315A内のファシリテータF1のサポートされたアプリケーションスタック2322A、広告領域2315B内のファシリテータF2のサポートされたアプリケーションスタック2322B等で補助する意志があるアプリケーションスタックを示し得る。ファシリテータに関するランキング/評定フィードバック2324及び例示的価格情報2325はまた、一部の実施形態では、広告内に含まれ得る。
【0107】
(例えば、顧客所有データセンターからプロバイダネットワークまでの)移行アプリケーションの利点を示すケーススタディは、ウェブページ2302のボタン制御2325によってクライアントに利用可能になり得る。構成アイテム及び/または移行計画の自動発見に関する追加情報(例えば、ホワイトペーパーまたはオンラインチュートリアル)は、ボタン制御2327によってアクセスされ得る。示される実施形態では、クライアントは、制御2329を使用して、移行ファシリテータに関する推薦にサインアップし得る。様々な実施形態では、クライアントは、移行マーケットプレイスサービスのインターフェースを使用して、移行の補助に関する要求を提出し得る。例えば、一部の実施形態では、発見サービスを使用して、まだ開始していないが、潜在的に、今後いつか、そのアプリケーションを移行することに関心があり得るプロバイダネットワークのクライアントは、要求をマーケットプレイスサービスのプログラムインターフェースを介して伝達し、構成アイテムの自動発見を開始し得る。係る要求に応答して、移行マーケットプレイスサービスは、当該クライアントの代わりに構成発見サービスのプログラムインターフェースを呼び出し得、これにより、クライアントのアプリケーションに関連付けられるデータベースから構成情報の読み出しが始まり得る。集められた情報は、後で、クライアントを適切な移行ファシリテータと一致させるために使用され得る。少なくとも1つの実施形態では、クライアント(代わりの構成データが既に発見サービスに集められている)は、移行補助要求を移行マーケットプレイスサービスに提出し得る。移行マーケットプレイスサービスは、ファシリテータ(例えば、
図22のリポジトリ2205内にある)に関して記憶されるクライアントの構成データ及びメタデータに基づいて、それ自体のマッチングアルゴリズムを実行し、ファシリテータの推薦をクライアントに提供し得る。
【0108】
移行マーケットプレイスをサポートするための方法
図24は、少なくとも一部の実施形態による、移行マーケットプレイスサービスで行われ得る動作の態様を示すフロー図である。要素2401に示されるように、移行ファシリテータがクライアントのアプリケーション環境の構成記録にアクセスすることを可能にする要求は、プロバイダネットワークの移行マーケットプレイスサービスで受信され得る。構成記録は、前述に示されたような構成発見サービスと連携する種々のデータソースから集められている場合がある。クライアントの構成記録収集部に関するセキュリティメタデータは、適宜、修正され得る(要素2404)。前述に言及されたように、いくつかの場合、セキュリティ設定は発見サービスで修正され得る一方、他の実施形態では、セキュリティメタデータは移行マーケットプレイスサービス自体によって維持され得る。
【0109】
移行候補識別要求またはクエリは、移行ファシリテータからマーケットプレイスサービスで受信され得る(要素2407)。クライアントの許可付与及び/またはデータ難読化要求に基づく発見サービスデータベースから読み出される構成データを制限するフィルタ仕様またはクエリは、発見サービスに伝達され得る(要素2410)。一部の実施形態では、移行マーケットプレイスサービスは、フィルタ仕様またはクエリを伝達し得る。他の実施形態では、移行候補マッチングアルゴリズムに関する実行可能コードは移行ファシリテータによって供給され得、プロバイダネットワーク(コードに関するサーバの事前割り付けを要求しないパッケージ化プログラム実行サービス等)の異なるサービスにおいて起動し得、フィルタ仕様またはクエリの提出をもたらす。
【0110】
フィルタリングに応答して読み出される構成情報は、1つ以上の移行提案を生成するために使用され得(要素2413)、例えば、移行ファシリテータがクライアントの実行環境の移行を補助することに関心があることを示す。少なくとも一部の実施形態では、当該提案は、暫定的コスト見積を含み得る。マーケットプレイスサービスは、提案の表現をそのプログラムインターフェースを介して、提案が適用されるクライアントに伝達し得る(要素2416)。随意に、プログラムインターフェースを介して提案のクライアントの受け取りに応答して、移行マーケットプレイスサービスは、別個の移行計画または実施サービスのワークフローを開始し得る(要素2419)。
【0111】
様々な実施形態では、
図9、
図17、及び
図24に示されるもの以外の少なくとも一部の動作は、上記に説明された構成発見関連技法及び移行マーケットプレイス関連技法を実施するために使用され得ることを留意されたい。示される動作の一部は、一部の実施形態では、実施されない場合がある、または、異なる順序で、もしくは連続的よりもむしろ並行して実施され得る。
【0112】
使用ケース
複数のネットワークにおける種々のソースからの構成データの自動収集、合体、及び仮想化の、ならびに、移行関連オンラインマーケットプレイスの上記に説明された技法は、種々の実施形態で有用であり得る。顧客所有及びプロバイダ所有リソース間に分散される複雑なアプリケーションに関して、説明される構成発見サービスは、粒度、信頼性、及び正確性のレベルを変えることで、アプリケーション構成データを組み合わせ及び監督することが可能であり得る。当該サービスは、顧客の計画を支援しプロバイダネットワーク環境へのアプリケーションの移行を実施するサービス等のより高いレベルサービスを構築するために使用されることができるAPIを含む使い易いプログラムインターフェースを介して、標準オントロジベースネーミングスキーマに従って体系化される、収集データを露出し得る。構成発見サービス情報の可視化構成要素は、顧客が、その全体のアプリケーションスタックの概要を取得すること及び任意の所望のレベルの詳細を掘り下げることをより容易にし得、これは、パフォーマンス及びトラブルシューティングを計画しデバックするリソース能力を支援することができる。移行マーケットプレイスサービスは、アプリケーション所有者(潜在的にそのアプリケーションをプロバイダネットワークに移行することに関心があり得る)を紹介することができる中継部として働き得るが、その移行の必要性があるアプリケーション所有者を支援することが可能であり得る移行ファシリテータまたは専門家に、移行を計画及び実施する方法についてある程度の必要な技術的専門知識を有しない場合がある。移行サービスは、所与のアプリケーション環境に関して提供される情報がアプリケーション所有者のセキュリティ基準を満たすことを確実にし得、移行ファシリテータを選択している顧客のための移行計画及び実施サービスへのスムーズな推移をサポートし得る。
【0113】
本開示の実施形態は、以下の条項を鑑みて説明できる。
1.システムであって、
プロバイダネットワークのリソース移行マーケットプレイスサービスの1つ以上のコンピューティングデバイスであって、
前記1つ以上のコンピューティングデバイスは、
1つ以上のプログラムインターフェースを介して、第1のクライアントから前記第1のクライアントの構成記録収集部への1つ以上の移行ファシリテータによるアクセスを可能にする第1の要求を受信し、前記構成記録収集部は構成発見サービスに記憶され、前記構成記録収集部は前記第1のクライアントの第1のコンピューティング環境に関連付けられ、前記第1のコンピューティング環境は前記プロバイダネットワークの外側に少なくとも1つのリソースを含み、
前記1つ以上のプログラムインターフェースを介して前記1つ以上の移行ファシリテータのうちの特定の移行ファシリテータに、特定の移行候補識別クエリに対する前記構成発見サービスにおいて生成される応答を伝達し、前記応答は前記構成記録収集部に少なくとも部分的に基づくものであり、
前記特定の移行ファシリテータから前記1つ以上のプログラムインターフェースを介して、第2のコンピューティング環境への前記第1のコンピューティング環境の少なくとも一部を移行させることに関連付けられる第1の提案の指示を受信し、前記第2のコンピューティング環境は前記プロバイダネットワークの少なくとも1つのリソースを含み、前記第1の提案は暫定的コスト測定基準を含み、
前記1つ以上のプログラムインターフェースを介して第1のクライアントに、前記第1のコンピューティング環境の少なくとも一部を移行させることに関連付けられる1つ以上の提案の各々の指示を伝達し、前記1つ以上の提案は前記第1の提案を含む、
ように構成される、前記システム。
【0114】
2.前記1つ以上のコンピューティングデバイスは、
前記1つ以上のプログラムインターフェースを介して、前記特定の移行候補識別クエリを前記特定の移行ファシリテータから受信し、
移行候補識別クエリに少なくとも部分的に基づいて及び1つ以上の構成難読化基準に少なくとも部分的に基づいて、前記構成記録収集部から読み出される1つ以上の構成属性を示すフィルタ仕様を構成し、
前記フィルタ仕様を含む構成クエリを、前記構成発見サービスに伝達し、
前記構成クエリに対する前記自動構成発見サービスから受信される応答に少なくとも部分的に基づいて、前記特定の移行候補識別クエリに対する前記応答を生成する
ように構成されている、条項1に記載のシステム。
【0115】
3.前記1つ以上のコンピューティングデバイスは、
前記1つ以上のプログラムインターフェースを介して、実行可能候補マッチングモジュールの指示を前記特定の移行ファシリテータから受信し、前記特定の移行候補識別クエリに対する前記応答は前記候補マッチングモジュールを実行する結果に少なくとも部分的に基づくものである
ように構成されている、条項1に記載のシステム。
【0116】
4.前記第1の提案は、(a)移行コスト見積、(b)移行スケジュール見積、または(c)前記特定の移行ファシリテータによって実施される前の移行を示すフィードバック記録のうちの1つ以上の指示を含む、条項1に記載のシステム。
【0117】
5.前記1つ以上のコンピューティングデバイスは、
第2のクライアントから前記1つ以上のプログラムインターフェースを介して、第2の移行ファシリテータに対する前記第2のクライアントによって割り当てられる評定を受信し、前記評定は第2のコンピューティング環境の特定の移行に関連付けられ、前記特定の移行は前記第2の移行ファシリテータによって行われていた、
前記評定を前記移行ファシリテータデータベース内に記憶し、
前記1つ以上のプログラムインターフェースを介して、前記評定を第3のクライアントに提供する
ように構成されている、条項1に記載のシステム。
【0118】
6.方法であって、
リソース移行マーケットプレイスサービスの1つ以上のコンピューティングデバイスによって、
1つ以上のプログラムインターフェースを介して、第1のクライアントから前記第1のクライアントの構成記録収集部への1つ以上の移行ファシリテータによるアクセスを可能にする第1の要求を受信することであって、前記構成記録収集セットは前記第1のクライアントの第1のコンピューティング環境に関連付けられる情報を含む、前記受信することと、
前記1つ以上のプログラムインターフェースを介して前記1つ以上の移行ファシリテータのうちの特定の移行ファシリテータに、特定の移行候補識別クエリに対する応答を伝達することであって、前記応答は前記構成記録収集部に少なくとも部分的に基づくものである、前記伝達することと、
前記第1のクライアントに前記1つ以上のプログラムインターフェースを介して、前記特定の移行ファシリテータの補助で、前記第1のコンピューティング環境の少なくとも一部を第2のコンピューティング環境に移行することに関連付けられる第1の提案の指示を提供することと、
を行うことを含む、前記方法。
【0119】
7.前記1つ以上のコンピューティングデバイスによって、
前記1つ以上のプログラムインターフェースを介して、前記移行候補識別クエリを前記特定の移行ファシリテータから受信することと、
移行候補識別クエリに少なくとも部分的に基づいて及び1つ以上の構成難読化基準に少なくとも部分的に基づいて、前記構成記録収集部から読み出される1つ以上の構成属性を示すフィルタ仕様を構成することと、
前記フィルタ仕様を含む構成クエリを、前記構成記録収集部が記憶される自動構成発見サービスに伝達することと、
前記構成クエリに対する前記自動構成発見サービスから受信される応答に少なくとも部分的に基づいて、前記特定の移行候補識別クエリに対する前記応答を生成することと、
を行うことをさらに含む、条項6に記載の方法。
【0120】
8.前記1つ以上のコンピューティングデバイスによって、
前記1つ以上のプログラムインターフェースを介して、実行可能候補マッチングモジュールの指示を前記特定の移行ファシリテータから受信することであって、前記特定の移行候補識別クエリに対する前記応答は前記候補マッチングモジュールを実行する結果に少なくとも部分的に基づくものである、前記受信すること、
を行うことをさらに含む、条項6に記載の方法。
【0121】
9.前記1つ以上のコンピューティングデバイスによって、
前記1つ以上のプログラムインターフェースを介して前記特定の移行ファシリテータから、前記候補マッチングモジュールが実行されるプロバイダネットワークの特定の算出サービスの指示を受信することと、
実行するための前記候補マッチングモジュールを前記特定の算出サービスに提出することと、
を行うことをさらに含む、条項8に記載の方法。
【0122】
10.前記第1の提案は、(a)移行コスト見積、(b)移行スケジュール見積、または(c)前記特定の移行ファシリテータによって実施される前の移行を示すフィードバック記録のうちの1つ以上の指示を含む、条項6に記載の方法。
【0123】
11.前記1つ以上のコンピューティングデバイスによって、
第2のクライアントから前記1つ以上のプログラムインターフェースを介して、第2の移行ファシリテータに対する前記第2のクライアントによって割り当てられる評定を受信することであって、前記評定は第2のコンピューティング環境の特定の移行に関連付けられ、前記特定の移行は前記第2の移行ファシリテータの補助で行われた、前記受信することと、
前記評定を前記データベース内に記憶することと、
前記1つ以上のプログラムインターフェースを介して、前記評定を第3のクライアントに提供することと、
を行うことをさらに含む、条項6に記載の方法。
【0124】
12.前記1つ以上のコンピューティングデバイスによって、
第2のクライアントから前記1つ以上のプログラムインターフェースを介して、第2のコンピューティング環境に対する移行補助要求を受信することと、
前記移行補助要求に応答して、前記第2のクライアントに前記1つ以上のプログラムインターフェースを介して、前記第2のコンピューティング環境の移行を補助するための候補として前記特定の移行ファシリテータを識別する推薦を伝達することと、
を行うことをさらに含む、条項6に記載の方法。
【0125】
13.前記1つ以上のコンピューティングデバイスによって、
第2のクライアントから前記1つ以上のプログラムインターフェースを介して、前記特定の移行ファシリテータが第2のコンピューティング環境の移行に関して承認されている指示を受信することと、
前記第2のクライアントが、プロバイダネットワークの移行計画サービスのワークフローを実行することを可能にする1つ以上の動作を開始することと、
を行うことをさらに含む、条項6に記載の方法。
【0126】
14.前記特定の移行候補識別クエリは、(a)移行が前記特定の移行ファシリテータによってサポートされるアプリケーションアーキテクチャ、(b)移行が前記特定の移行ファシリテータによってサポートされるソースコンピューティング環境の最小サイズ、または(c)前記特定の移行ファシリテータの動作の好ましい地理的場所もしくは領域のうちの
1つ以上の指示を含む、条項6に記載の方法。
【0127】
15.前記1つ以上のコンピューティングデバイスによって、
前記1つ以上のプログラムインターフェースを介して、第2のクライアントから第2のコンピューティング環境の構成情報の読み出しを開始する要求を受信することであって、前記第2のコンピューティング環境で起動するアプリケーションは第3のコンピューティング環境への移行に関する候補である、前記受信することと、
自動発見サービスの1つ以上のプログラムインターフェースを呼び出し、前記構成情報の前記読み出しを開始することと、
を行うことをさらに含む、条項6に記載の方法。
【0128】
16.非一過性コンピュータアクセス可能ストレージ媒体であって、1つ以上のプロセッサ上で実行されるとき、
第1のクライアントから前記第1のクライアントの構成記録収集部への1つ以上の移行ファシリテータによるアクセスを可能にする第1の要求が受信されていることを判定させ、前記構成記録収集セットは前記第1のクライアントの第1のコンピューティング環境に関連付けられる情報を含み、
1つ以上のプログラムインターフェースを介して前記1つ以上の移行ファシリテータのうちの特定の移行ファシリテータに、特定の移行候補識別クエリに対する応答の伝達を開始させ、前記応答は前記構成記録収集部に少なくとも部分的に基づくものであり、
前記特定の移行ファシリテータの補助で、前記第1のコンピューティング環境の少なくとも一部を第2のコンピューティング環境に移行することに関連付けられる第1の提案の指示を、前記第1のクライアントに前記1つ以上のプログラムインターフェースを介して提供させる、
プログラム命令を記憶する、前記非一過性コンピュータアクセス可能ストレージ媒体。
【0129】
17.前記命令は、前記1つ以上のコンピューティングデバイスで実行されるとき、
前記移行候補識別クエリが前記1つ以上のプログラムインターフェースを介して前記特定の移行ファシリテータから受信されていることを判定し、
移行候補識別クエリに少なくとも部分的に基づいて及び1つ以上の構成難読化基準に少なくとも部分的に基づいて、前記構成記録収集部から読み出される1つ以上の構成属性を示すフィルタ仕様を構成し、
前記構成記録収集部が記憶される自動構成発見サービスへの前記フィルタ仕様を含む構成クエリの伝達を開始させ、
前記構成クエリに対する前記自動構成発見サービスから受信される応答に少なくとも部分的に基づいて、前記特定の移行候補識別クエリに対する前記応答を生成する、
条項16に記載の非一過性コンピュータアクセス可能ストレージ媒体。
【0130】
18.前記命令は、前記1つ以上のコンピューティングデバイスで実行されるとき、
実行可能候補マッチングモジュールの指示が前記1つ以上のプログラムインターフェースを介して前記特定の移行ファシリテータから受信されていることを判定させ、前記特定の移行候補識別クエリに対する前記応答は前記候補マッチングモジュールを実行する結果に少なくとも部分的に基づくものである、条項16に記載の非一過性コンピュータアクセス可能ストレージ媒体。
【0131】
19.前記命令は、前記1つ以上のコンピューティングデバイスで実行されるとき、
前記候補マッチングモジュールが実行されるプロバイダネットワークの特定の算出サービスを識別し、
前記候補マッチングモジュールを、実行するために前記特定の算出サービスに提出させる、
条項18に記載の非一過性コンピュータアクセス可能ストレージ媒体。
【0132】
20.前記第1の提案は、(a)移行コスト見積、(b)移行スケジュール見積、または(c)前記特定の移行ファシリテータの補助で実施される前の移行を示すフィードバック記録のうちの1つ以上の指示を含む、条項16に記載の非一過性コンピュータアクセス可能ストレージ媒体。
【0133】
21.前記第1の提案は前記特定の移行ファシリテータから利用可能である移行関連ツールを示し、前記ツールは、前記第1のクライアントによって使用可能であり、前記第1のコンピューティング環境の前記一部を前記第2のコンピューティング環境に移行させる、条項16に記載の非一過性コンピュータアクセス可能ストレージ媒体。
【0134】
例示のコンピュータシステム
少なくとも一部の実施形態では、構成発見サービス、関連可視化サービス、及び/または移行マーケットプレイスサービスの構成要素を実装する技法を含む本明細書で説明される1つ以上の技法の一部または全てを実装するサーバは、1つ以上のコンピュータアクセス可能媒体を含む、またはそれにアクセスするように構成される汎用コンピュータシステムを含み得る。
図25は、係る汎用コンピューティングデバイス9000を示す。示される実施形態では、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介して、システムメモリ9020(不揮発性及び揮発性メモリモジュールの両方を備え得る)に連結される、1つ以上のプロセッサ9010を含む。コンピューティングデバイス9000は、さらに、I/Oインターフェース9030に連結されるネットワークインターフェース9040を含む。
【0135】
様々な実施形態では、コンピューティングデバイス9000は、1つのプロセッサ9010を含むユニプロセッサシステム、またはいくつかのプロセッサ9010(例えば、2つ、4つ、8つ、または別の好適な数)を含むマルチプロセッサシステムであり得る。プロセッサ9010は、命令を実行することが可能な任意の好適なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ9010は、x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISA等の様々な命令セットアーキテクチャ(ISA)のうちのいずれかを実装する、汎用または組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ9010のそれぞれは、同じISAを一般的に実装し得るが、必ずしもそうでない場合がある。一部の実施態様では、グラフィックス処理ユニット(GPU)は、従来のプロセッサの代わりに、またはそれに加えて使用され得る。
【0136】
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令及びデータを記憶するように構成され得る。少なくとも一部の実施形態では、システムメモリ9020は、揮発性及び不揮発性部の両方を備え得、他の実施形態では、揮発性メモリだけが使用され得る。様々な実施形態では、システムメモリ9020の揮発性部は、静的ランダムアクセスメモリ(SRAM)、同時性動的RAM、または任意の他の種類のメモリ等の任意の好適なメモリ技術を使用して実装され得る。システムメモリの不揮発性部(例えば、1つ以上のNVDIMMを備え得る)に関して、一部の実施形態では、NAND−フラッシュデバイスを含むフラッシュベースのメモリデバイスが使用され得る。少なくとも一部の実施形態では、システムメモリの不揮発性部は、スーパーキャパシタまたは他の電力ストレージデバイス(例えば、バッテリ)等の電源を含み得る。様々な実施形態では、メモリスタベースの抵抗ランダムアクセスメモリ(ReRAM)、3次元NAND技術、強誘電RAM、磁気抵抗RAM(MRAM)、または様々な種類の相変化メモリ(PCM)のうちのいずれかが、少なくともシステムメモリの不揮発性部に使用され得る。示される実施形態では、上記に説明されたそれらの方法、技法、及びデータ等の1つ以上の所望の機能を実施するプログラム命令及びデータは、コード9025及びデータ9026として、システムメモリ9020内に記憶されるように示される。
【0137】
一実施形態では、I/Oインターフェース9030は、ネットワークインターフェース9040、または様々な種類の持続的及び/または揮発性ストレージデバイス等の他の周辺インターフェースを含む、プロセッサ9010、システムメモリ9020、及びデバイス内の任意の周辺デバイス間のI/Oトラフィックを調整するように構成され得る。一部の実施形態では、I/Oインターフェース9030は、1つの構成要素(例えば、システムメモリ9020)からのデータ信号を、別の構成要素(例えば、プロセッサ9010)による使用に好適な形式に変換するように、任意の必要なプロトコル、タイミング、または他のデータ変換を行い得る。一部の実施形態では、I/Oインターフェース9030は、例えば、ペリフェラル・コンポーネント・インターコネクト(PCI)バス規格、またはユニバーサルシリアルバス(USB)規格の異形等の様々な種類の周辺バスによって取設されるデバイスに対するサポートを含み得る。一部の実施形態では、I/Oインターフェース9030の機能は、例えば、ノースブリッジ及びサウスブリッジ等の2つ以上の別個の構成要素に分割され得る。また、一部の実施形態では、システムメモリ9020に対するインターフェース等のI/Oインターフェース9030の機能性のうちの一部または全ては、プロセッサ9010に直接組み込まれ得る。
【0138】
ネットワークインターフェース9040は、データが、例えば、
図1〜
図24に示されるような他のコンピュータシステムまたはデバイス等の、コンピューティングデバイス9000と、単一のネットワークまたは複数のネットワーク9050に取設される他のデバイス9060との間で交換されることを可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース9040は、例えば、イーサネットネットワークの種類等の任意の好適な有線または無線一般データネットワークを介した通信をサポートし得る。加えて、ネットワークインターフェース9040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワーク等の電気通信/テレフォニネットワークを介して、ファイバチャネルSAN等のストレージエリアネットワークを介して、または任意の他の好適な種類のネットワーク及び/またはプロトコルを介して通信をサポートし得る。
【0139】
一部の実施形態では、システムメモリ9020は、対応する方法及び装置の実施形態を実装するための
図1〜
図24に関して上記に説明されたようなプログラム命令及びデータを記憶するように構成される、コンピュータアクセス可能媒体の一実施形態であり得る。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なる種類のコンピュータアクセス可能媒体に、受信、送信、または記憶され得る。一般的に、コンピュータアクセス可能媒体は、I/Oインターフェース9030を介してコンピューティングデバイス9000に連結される、磁気もしくは光媒体(例えば、ディスクもしくはDVD/CD)等の非一過性ストレージ媒体またはメモリ媒体を含み得る。非一過性コンピュータアクセス可能ストレージ媒体は、また、システムメモリ9020または別の種類のメモリ等のコンピューティングデバイス9000の一部の実施形態に含まれ得るRAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等の任意の揮発性または不揮発性媒体を含み得る。さらに、コンピュータアクセス可能媒体は、伝送媒体、またはネットワーク及び/または無線リンク等の通信媒体を介して伝えられる(ネットワークインターフェース9040を介して実施され得る等)電気、電磁気、もしくはデジタル信号等の信号を含み得る。
図25に示されるもの等の複数のコンピューティングデバイスのうちの一部または全ては、様々な実施形態では、説明される機能性を実装するために使用され得、例えば、種々の異なるデバイス及びサーバ上で起動するソフトウェア構成要素が、機能性を提供するために協働し得る。一部の実施形態では、説明される機能性の一部は、汎用コンピュータシステムを使用して実装されることに加えて、またはその代わりに、ストレージデバイス、ネットワークデバイス、または専用コンピュータシステムを使用して実装され得る。本明細書で使用されるような用語「コンピューティングデバイス」は、少なくとも全てのこれらの種類のデバイスを指し、これらの種類のデバイスに限定されない。
【0140】
結論
様々な実施形態は、さらに、コンピュータアクセス可能媒体に関する前述の説明に従って実施される命令及び/またはデータを受信、送信、または記憶することを含み得る。一般的に、コンピュータアクセス可能媒体は、磁気媒体または光媒体(例えば、ディスクまたはDVD/CD−ROM)等のストレージ媒体またはメモリ媒体と、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性または不揮発性媒体と、伝達媒体、またはネットワーク及び/または無線リンク等の通信媒体を介して伝えられる電気信号、電磁信号、またはデジタル信号等の信号とを含み得る。
【0141】
図に示され及び本明細書で説明されるような様々な方法は、本方法の例示的実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施され得る。方法の順序は変更され得、様々な要素が追加、再順位付け、組み合わせ、省略、修正等され得る。
【0142】
本開示の利点を有する当業者に明白であるように、種々の変形及び変更を行い得る。全ての係る修正及び変更を包含することを意図しており、適宜、上記説明が限定的な意味よりはむしろ、例示的であると見なされる。