(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-26
(45)【発行日】2024-04-03
(54)【発明の名称】クロス・クラウド・オペレーションのためのクラウド・サービス
(51)【国際特許分類】
H04L 41/40 20220101AFI20240327BHJP
G06F 9/455 20180101ALI20240327BHJP
G06F 9/50 20060101ALI20240327BHJP
H04L 41/342 20220101ALI20240327BHJP
【FI】
H04L41/40
G06F9/455 150
G06F9/50 150Z
H04L41/342
(21)【出願番号】P 2022525633
(86)(22)【出願日】2020-10-29
(86)【国際出願番号】 US2020058022
(87)【国際公開番号】W WO2021087152
(87)【国際公開日】2021-05-06
【審査請求日】2022-06-24
(32)【優先日】2019-10-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518249328
【氏名又は名称】サービスナウ, インコーポレイテッド
【氏名又は名称原語表記】ServiceNow, Inc.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】ヘルレ ヴァルシャ
(72)【発明者】
【氏名】ジャイン カヴィッシュ
(72)【発明者】
【氏名】ヴァッデンプディ シャラート
【審査官】鈴木 香苗
(56)【参考文献】
【文献】米国特許出願公開第2018/0060117(US,A1)
【文献】米国特許出願公開第2012/0151074(US,A1)
【文献】米国特許出願公開第2017/0244613(US,A1)
【文献】米国特許出願公開第2015/0127795(US,A1)
【文献】国際公開第2013/114829(WO,A1)
【文献】米国特許第10185727(US,B1)
【文献】米国特許出願公開第2016/0321275(US,A1)
【文献】特開2009-230586(JP,A)
【文献】特開2017-167912(JP,A)
【文献】米国特許出願公開第2017/0235587(US,A1)
【文献】特開2010-250778(JP,A)
【文献】米国特許出願公開第2017/0090995(US,A1)
【文献】米国特許出願公開第2015/0263894(US,A1)
【文献】米国特許第09880870(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/40
G06F 9/455
G06F 9/50
H04L 41/342
(57)【特許請求の範囲】
【請求項1】
第1のインスタンスを有する第1のクラウドの少なくとも部分をホストする第1のデータ・センタであって、前記第1のデータ・センタのメモリが、前記第1のインスタンスのデータの第1のセットと、前記第1のインスタンスのライフ・サイクルを管理するためのオートメーションの第1のセットと、第1のクラウド・サービス(CS)とを記憶している、第1のデータ・センタを含み、前記クラウド・サービスが、
前記第1のデータ・センタと第2のクラウドをホストする第2のデータ・センタとの間のピア・ツー・ピア通信チャネルを確立するように構成されたクラウド・オーケストレータ・サービス(COS)と、
前記第1のデータ・センタの前記データの第1のセットおよび前記オートメーションの第1のセットを
分析し、かつ
、前記第2のデータ・センタのデータの第2のセットおよびオートメーションの第2のセットを
分析して、前記第2のデータ・センタにおいて実行
中の前記オートメーションの第2のセットによって
、前記第1のデータ・センタにおける前記オートメーションの第1のセットの実行が引き起こされたときに
、前記第1のデータ・センタにおける前記オートメーションの第1のセットのローカルの実行を可能にし、前記第1のデータ・センタにおける前記オートメーションの第1のセットの前記ローカルの実行によって生成され
た実行結果が、前記オートメーションの第1のセットが前記第2のデータ・センタによってローカルに実行されたかのように前記第2のデータ・センタにシームレスに提供され、
前記第1のデータ・センタにおける前記オートメーションの第1のセットの実行が、前記第2のデータ・センタによってホストされるリソースへの参照を含むときに、前記第1のデータ・センタにおいて実行
中の前記オートメーション
の第1のセットが前記第2のデータ・センタにおける前記オートメーションの第2のセットのローカルの実行を引き起こすことを可能にし、前記第2のデータ・センタにおける前記オートメーションの第2のセットのローカルの実行によって生成された実行結果が、前記オートメーションの第2のセットが前記第1のデータ・センタによってローカルに実行されたかのように前記第1のデータ・センタにシームレスに提供される、
ように構成されたクラウド・ブローカ・サービス(CBS)と、
を含む、システム。
【請求項2】
前記第1のインスタンスが、デベロッパ・インスタンス、プロダクション・クライアント・インスタンス、テスト・クライアント・インスタンスまたは共有企業インスタンスである、請求項1に記載のシステム。
【請求項3】
前記第1のデータ・センタと前記第2のデータ・センタとの間の前記ピア・ツー・ピア通信チャネルが、暗号化されたインターネット・プロトコル(IP)チャネルを含む、請求項1に記載のシステム。
【請求項4】
前記CBSが、カスタマイズされた企業内アプリケーション統合(EAI)アプリケーションを含む、請求項1に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、クラウド・コンピューティングに関し、より具体的には、多数の異なるクラウドにまたがるプラットフォーム・オーケストレーションを可能にするクラウド・ツー・クラウド・ブローカ・サービスに関する。
【背景技術】
【0002】
本セクションは、以下で説明および/または請求される本開示の様々な態様に関連する場合がある技術の様々な態様を読者に紹介することを意図したものである。この考察は、本開示の様々な態様のより良い理解を促進するために読者に背景情報を提供するのに役立つと考えられる。したがって、これらの記述は、この観点で読まれるべきであり、従来技術の承認として読まれるべきではない。
【0003】
組織は、規模にかかわらず、継続的な運用および成功のために情報技術(IT)ならびにデータおよびサービスへのアクセスに依存する。それぞれの組織のITインフラストラクチャは、関連したハードウェア・リソース(例えば、コンピューティング・デバイス、ロード・バランサ、ファイアウォール、スイッチなど)およびソフトウェア・リソース(例えば、生産性ソフトウェア、データベース・アプリケーション、カスタム・アプリケーションなど)を有する場合がある。次第に、ますます多くの組織が、ITインフラストラクチャ・ソリューションを補うまたは高めるためにクラウド・コンピューティング・アプローチへ転換している。
【0004】
クラウド・コンピューティングは、一般にインターネットを介してアクセスされるコンピューティング・リソースの共有に関する。特に、クラウド・コンピューティング・インフラストラクチャにより、個人および/または企業などのユーザは、サーバ、ストレージ・デバイス、ネットワーク、アプリケーションおよび/またはその他のコンピューティング・ベースのサービスなどのコンピューティング・リソースの共有プールへアクセスすることができる。そうすることによって、ユーザは、遠隔のロケーションに位置するコンピューティング・リソースにオンデマンドでアクセスすることができ、このリソースは、様々なコンピューティング機能(例えば、大量のコンピューティング・データを記憶および/または処理する)を行うために使用される場合がある。企業およびその他の組織ユーザにとって、クラウド・コンピューティングは、高価なネットワーク機器を購入するまたはプライベートなネットワーク・インフラストラクチャを確立するために大量の時間を投資するなど、大きな初期費用を生じることなく、クラウド・コンピューティング・リソースにアクセスすることにおける柔軟性を提供する。その代わり、クラウド・コンピューティング・リソースを利用することによって、ユーザは、企業の中核機能に集中するようにリソースをリダイレクトすることができる。
【0005】
本明細書において考察されるようなデータ・センタは、クラウド・コンピューティング環境のオペレーションをサポートするグループまたはポッドに配置された多数のハードウェア・サーバを含むことができる。各ポッドは、例えば、デベロッパ・インスタンス、プロダクション・クライアント・インスタンス、テスト・クライアント・インスタンス、共有または企業インスタンスなどを含む場合がある適切な数のインスタンスをホストする場合がある。これらのインスタンスのライフ・サイクルは、クラウド・コンピューティング環境内での、割り当て、複製/クローニング、バックアップ/リストア、フェイルオーバーなどを含む場合がある。したがって、クラウドは、ホストされるインスタンスのライフ・サイクルを管理するために実行されるオートメーションを含む場合がある。本明細書において使用される場合、「オートメーション」とは、インスタンス・ライフ・サイクルを制御またはさもなければ維持するオーケストレーションを意味する。本明細書において使用される場合、「オーケストレーション」とは、適切なコンピューティング・システムによって実行されたときにクラウド環境内で管理機能を行うコンピュータ実行可能または解釈可能命令(例えば、1つまたは複数のスクリプト、ワークフロー、サブワークフロー、オペレーション、サブオペレーションおよび/またはスケジュール・ジョブ)を意味する。したがって、特定のクラウドのオートメーションは、一般に、特定のクラウドによってホストされるデータおよび/または実行可能命令への参照を含む。
【0006】
加えて、あるクラウド・コンピューティング環境は、特定のセキュリティ制限に関連している。例えば、プライベート・クラウドは、すべてのデータ・ストレージおよび処理が高められたセキュリティおよび/または規制コンプライアンスのためにプライベート・クラウド内で行われることを指定する検疫制限を有する場合がある。加えて、あるクラウド・コンピューティング環境は、異なるハードウェア制限、帯域幅制限、アプリケーション・フレームワークなどの異なる特徴を提供する。したがって、組織のニーズが変化するとき、インスタンスを1つのクラウド・コンピューティング環境から別のクラウド・コンピューティング環境へ移行させることが望ましい場合がある。しかしながら、オートメーションは一般的にインスタンスライフ・サイクル・タスクを処理するために使用されるのに対し、オートメーションは特定のクラウド・コンピューティング環境に固有のものであり、したがって、オートメーションは、各クロス・クラウド・インスタンス移行のためにカスタマイズされなければならない。したがって、現在、クロス・クラウド・インスタンス移行などのクロス・クラウド・オートメーション・アクションを可能にすることができる、異なるクラウド環境の間でのオートメーションの実行をオーケストレートするためのシステムの必要性が存在することが認識されている。
【発明の概要】
【0007】
本明細書に開示されたある実施形態の概要が以下に示される。これらの態様は、これらのある実施形態の簡単な概要を読者に提供するためにのみ提供されており、これらの態様は本開示の範囲を限定することを意図したものではないことを理解すべきである。実際、本開示は、以下に示されない場合がある様々な態様を包含する場合がある。
【0008】
本実施形態は、データ・リソースへのクロス・クラウド・アクセスおよびオートメーションを含むオーケストレーションのクロス・クラウド実行を可能にするクラウド・サービス(CS)に向けられる。CSは、ピア・ツー・ピア(P2P)クラウド・オーケストレータ・サービス(COS)およびクラウド・ブローカ・サービス(CBS)を含む。COSは、異なるクラウド・コンピューティング環境の間でのP2P識別および通信ルーティングを可能にする。加えて、COSは、異なるクラウド・コンピューティング環境からのデータおよびオーケストレーション(例えば、1つまたは複数のスクリプト、ワークフローおよび/またはスケジュール・ジョブ)へのクロス・クラウド・アクセスを可能にするCBSのオペレーションを制御する。加えて、データ・センタは、CSを通ってデータ・センタのすべてのオーケストレーション・コールをルーティングするように構成される場合があり、これにより、CSは、ローカル・データおよびオーケストレーションへの参照がデータ・センタ内で処理されることを保証することができる一方、異なるデータ・センタのデータおよびオーケストレーションへの参照は、適切なデータ・センタの対応するCSによって処理されるように適切にルーティングされる。したがって、クラウド・コンピューティング環境内に定義された既存のオートメーションを、修正なしにクロス・クラウド・オペレーションを可能にするようにCSによって活用することができ、効率、コスト削減およびエラー削減における著しいゲインを提供する。例えば、開示されたCSを使用して、クラウド・コンピューティング環境内でのインスタンスの割り当て、複製/クローニング、バックアップ/リストアなどのための十分に確立されたオートメーションは、最小限のダウンタイムで、データ損失なく、かつ高い移動安定性での有効なP2P、クロス・クラウド・インスタンス移行を可能にするために使用される場合がある。加えて、CSは、クロス・クラウド・ヘルス・モニタリングなどの他のクロス・クラウド・オペレーションを可能にすることができる。さらに、CSのCBSは、高められたセキュリティおよび/または規制コンプライアンスのためにあるデータおよび/またはオーケストレーションにローカル・アクセスすることに制限するように構成することができる。
【0009】
上述の特徴の様々な改良が、本開示の様々な態様に関連して存在する場合がある。さらなる特徴が、これらの様々な態様に組み込まれる場合もある。これらの改良および追加的な特徴は、個別にまたはあらゆる組合せにおいて存在する場合がある。例えば、示された実施形態のうちの1つまたは複数に関連して以下で考察される様々な特徴は、単独でまたはあらゆる組合せにおいて本開示の上述の態様のいずれかに組み込まれる場合がある。上記で提供した簡単な概要は、請求項に記載の対象への制限なく本開示の実施形態のある態様および状況を読者に普及させることだけを意図したものである。
【0010】
本開示の様々な態様は、以下の詳細な説明を読みかつ図面を参照することによってより良く理解される場合がある。
【図面の簡単な説明】
【0011】
【
図1】本開示の実施形態が動作する場合があるクラウド・アーキテクチャの実施形態のブロック図である。
【
図2】本開示の実施形態が動作する場合があるマルチ・インスタンス・クラウド・アーキテクチャの実施形態の概略図である。
【
図3】本開示の態様による、
図1または
図2に存在する場合があるコンピューティング・システムにおいて利用されるコンピューティング・デバイスのブロック図である。
【
図4】本開示の態様による、それぞれが、データおよび命令のクロス・クラウド・アクセスを可能にするそれぞれのクラウド・サービス(CS)を有する2つのデータ・センタによってそれぞれホストされる2つのクラウドを含む例示的な実施形態を示す図である。
【
図5】本開示の態様による、インスタンスがCSを使用して第1のクラウドから第2のクラウドへ移行させられる、クロス・クラウド・インスタンス移行オートメーション・プロセスの例示的な実施形態を示す流れ図である。
【
図6】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図7】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図8】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図9】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図10】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図11】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図12】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図13】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【
図14】本開示の態様による、
図5の例示的なクロス・クラウド・インスタンス移行オートメーションの特定のステップを示す図である。
【発明を実施するための形態】
【0012】
1つまたは複数の具体的な実施形態を以下に説明する。これらの実施形態の簡潔な説明を提供するための努力において、実際の実装のすべての特徴が明細書において説明されるわけではない。あらゆるこのような実際の実装の開発において、あらゆるエンジニアリングまたは設計プロジェクトにおけるように、1つの実装ごとに変化する場合がある、システム関連および企業関連の制約とのコンプライアンスなどの、開発者の特定の目標を達成するために、多くの実装特定の決定がなされなければならないことを理解されたい。さらに、このような開発努力は複雑かつ時間のかかるものであり得るが、それにもかかわらず本開示の利益を有する当業者のための設計、製造および生産のルーティン事業であることを理解されたい。
【0013】
本明細書において使用される場合、「コンピューティング・システム」という用語は、1つのコンピュータ、仮想マシン、仮想コンテナ、ホスト、サーバ、ラップトップおよび/もしくはモバイル・デバイスなどの、しかしながらこれらに限定されない電子コンピューティング・デバイス、またはコンピューティング・システム上でもしくはコンピューティング・システムによって行われるものとして説明された機能を行うために協働する複数の電子コンピューティング・デバイスを意味する。本明細書において使用される場合、「媒体」という用語は、そこに記憶されるものとして説明される内容を一緒に記憶する1つまたは複数の非一時的コンピュータ可読物理的媒体を意味する。実施形態は、不揮発性二次記憶装置、読取専用メモリ(ROM)および/またはランダム・アクセス・メモリ(RAM)を含む場合がある。本明細書において使用される場合、「アプリケーション」という用語は、1つまたは複数のコンピューティングモジュール、プログラム、プロセス、作業負荷、スレッドおよび/またはコンピューティング・システムによって実行される1セットのコンピューティング命令を意味する。アプリケーションの例示的な実施形態は、ソフトウェア・モジュール、ソフトウェア・オブジェクト、ソフトウェア・インスタンスおよび/またはその他のタイプの実行可能なコードを含む。
【0014】
言及したように、オートメーションは、インスタンス・ライフ・サイクルを管理するためにクラウド・コンピューティング環境のデータ・センタによって実行される。しかしながら、オートメーションはデータ・センタに特定のものであるため、それによって第1のクラウドをホストする第1のデータ・センタが、第2のクラウドをホストする第2のデータ・センタによるオートメーションの実行をトリガすることができる、またはオートメーションのパフォーマンスについての情報を受信することができる標準化されたフレームワークは存在しない。したがって、オートメーションは、データ・センタまたはクラウド内のライフ・サイクル・オペレーション(例えば、割り当て、複製/クローニング、バックアップ/リストア、およびフェイルオーバー)を処理するように定義される場合があるが、それらは、一般に、別のデータ・センタまたはクラウドによってコールまたはアクセスされるために利用可能ではない。
【0015】
前記のことに留意して、本実施形態は、オートメーションのクロス・クラウド実行を可能にするクラウド・サービス(CS)に向けられている。CSは、ピア・ツー・ピア(P2P)クラウド・オーケストレータ・サービス(COS)およびクラウド・ブローカ・サービス(CBS)を含む。COSは、異なるクラウド・コンピューティング環境の間のP2P識別および通信ルーティングを可能にする。CBSは、異なるクラウド・コンピューティング環境からのデータおよびオーケストレーション(例えば、1つまたは複数のスクリプト、ワークフローおよび/またはスケジュール・ジョブ)へのクロス・クラウド・アクセスを可能にする。加えて、データ・センタは、CSを介したデータ・センタのすべてのオーケストレーション・コールをルーティングするように構成される場合があり、これにより、CSは、ローカル・データおよびオーケストレーションへの参照がデータ・センタ内で処理されることを保証することができる一方、異なるデータ・センタのデータおよびオーケストレーションへの参照は、適切なデータ・センタの対応するCSによって処理されるように適切にルーティングされる。したがって、クラウド・コンピューティング環境内で定義された既存のオートメーションは、修正なしでクロス・クラウド・オペレーションを可能にするようにCSによって活用することができ、効率、コスト削減およびエラー削減における著しいゲインを提供する。例えば、開示されたCSを使用して、クラウド・コンピューティング環境の割り当て、複製/クローニング、バックアップ/リストアなどのための十分に確立されたオートメーションが、最小限のダウンタイムで、データ損失なく、かつ高い移動安定性で有効なP2P、クロス・クラウド・インスタンス移行を可能にするために使用される場合がある。加えて、CSは、クロス・クラウド・ヘルス・モニタリングなど、その他のクロス・クラウド・オペレーションを可能にすることができる。さらに、CSのCBSは、高められたセキュリティおよび/または規制コンプライアンスのためにあるデータおよび/またはオーケストレーションにローカル・アクセスすることに制限するように構成することができる。
【0016】
前記のことに留意して、以下の図面は、マルチ・インスタンス・フレームワークにおいて組織にサービスを提供するために利用される場合がありかつそこで本アプローチが利用される場合がある様々なタイプの一般化されたシステム・アーキテクチャまたは構成に関する。対応して、これらのシステムおよびプラットフォームの例は、本明細書において考察された技術が実装またはさもなければ利用される場合があるシステムおよびプラットフォームにも関する場合がある。ここで
図1を参照すると、本開示の実施形態が動作する場合があるクラウド・コンピューティング・システム10の実施形態の概略図が示されている。クラウド・コンピューティング・システム10は、クライアント・ネットワーク12、ネットワーク14(例えば、インターネット)およびクラウド・ベースのプラットフォーム16を含む場合がある。幾つかの実装において、クラウド・ベースのプラットフォーム16は、設定管理データベース(CMDB)プラットフォームである場合がある。1つの実施形態において、クライアント・ネットワーク12は、スイッチ、サーバおよびルータを含むがこれらに限定されない様々なネットワーク・デバイスを有するローカル・エリア・ネットワーク(LAN)などのローカル・プライベート・ネットワークである場合がある。別の実施形態では、クライアント・ネットワーク12は、1つまたは複数のLAN、仮想ネットワーク、データ・センタ18および/またはその他のリモート・ネットワークを含むことができる企業ネットワークを表す。
図1に示したように、クライアント・ネットワーク12は、クライアント・デバイスが互いにかつ/またはプラットフォーム16をホストするネットワークと通信することができるように1つまたは複数のクライアント・デバイス20A、20Bおよび20Cに接続することができる。クライアント・デバイス20は、コンピューティング・システムおよび/または一般的にモノのインターネット(IoT)デバイスと呼ばれるその他のタイプのコンピューティング・デバイスである場合があり、これらは、例えばウェブ・ブラウザ・アプリケーションを介してまたはクライアント・デバイス20とプラットフォーム16との間のゲートウェイとして作用する場合があるエッジ・デバイス22を介して、クラウド・コンピューティング・サービスにアクセスする。
図1は、プラットフォーム16をホストするネットワークと、その他の外部アプリケーションと、データ・ソースと、サービスと、クライアント・ネットワーク12との間のデータの通信を容易にするディスカバリ(MID)サーバ24などの、アドミニストレーションまたは管理者デバイス、エージェントまたはサーバを含む。
図1には具体的に示されていないが、クライアント・ネットワーク12は、接続ネットワーク・デバイス(例えば、ゲートウェイまたはルータ)またはカスタマ・ファイアウォールもしくは侵入保護システムを実装するデバイスの組合せを含む場合もある。
【0017】
例示した実施形態について、
図1は、クライアント・ネットワーク12がネットワーク14に結合されていることを示している。ネットワーク14は、クライアント・デバイス20とプラットフォーム16をホストするネットワークとの間でデータを送信するために、その他のLAN、広域ネットワーク(WAN)、インターネットおよび/またはその他のリモート・ネットワークなどの1つまたは複数のコンピューティング・ネットワークを含む場合がある。ネットワーク14内の各コンピューティング・ネットワークは、電気的および/または光学的領域において動作する有線および/またはワイヤレスのプログラマブル・デバイスを含む場合がある。例えば、ネットワーク14は、セルラ・ネットワーク(例えば、グローバル移動体通信システム(GSM)ベースのセルラ・ネットワーク)、IEEE802.11ネットワークおよび/またはその他の適切な無線ベースのネットワークなどの、ワイヤレス・ネットワークを含む場合がある。ネットワーク14は、伝送制御プロトコル(TCP)およびインターネット・プロトコル(IP)などの、任意の数のネットワーク通信プロトコルを利用する場合もある。
図1には明示的に示されていないが、ネットワーク14は、ネットワーク14上でデータを転送するように構成された、サーバ、ルータ、ネットワーク・スイッチおよび/またはその他のネットワーク・ハードウェアデバイスなどの様々なネットワーク・デバイスを含む場合がある。
【0018】
図1において、プラットフォーム16をホストするネットワークは、クライアント・ネットワーク12およびネットワーク14を介してクライアント・デバイス20と通信することができるリモート・ネットワーク(例えば、クラウド・ネットワーク)である場合がある。プラットフォーム16をホストするネットワークは、クライアント・デバイス20および/またはクライアント・ネットワーク12に追加的なコンピューティング・リソースを提供する。例えば、プラットフォーム16をホストするネットワークを利用することによって、クライアント・デバイス20のユーザは、様々な企業、ITおよび/またはその他の組織関連機能のためのアプリケーションを構築および実行することができる。1つの実施形態において、プラットフォーム16をホストするネットワークは1つまたは複数のデータ・センタ18において実装されており、各データ・センタは異なる地理的位置に対応することができる。各データ・センタ18は、複数の仮想サーバ26(本明細書では、アプリケーション・ノード、アプリケーション・サーバ、仮想サーバ・インスタンス、アプリケーション・インスタンスまたはアプリケーション・サーバ・インスタンスとも呼ばれる)を含み、各仮想サーバ26は、1つの電子コンピューティング・デバイス(例えば、1つの物理的ハードウェア・サーバ)などの物理的コンピューティング・システム上でまたは複数のコンピューティング・デバイス(例えば、複数の物理的ハードウェア・サーバ)にわたって実装することができる。仮想サーバ26の例は、ウェブ・サーバ(例えば、ユニタリ・アパッチ・インストール)、アプリケーション・サーバ(例えば、ユニタリJAVA(登録商標)仮想マシン)および/またはデータベース・サーバ(例えば、ユニタリ・リレーショナル・データベース・マネジメント・システム(RDBMS)カタログ)を含むが、これらに限定されない。
【0019】
プラットフォーム16内でコンピューティング・リソースを利用するために、ネットワーク・オペレータは、様々なコンピューティング・インフラストラクチャを使用してデータ・センタ18を構成するように選択する場合がある。1つの実施形態において、データ・センタ18のうちの1つまたは複数は、サーバ・インスタンス26のうちの1つが複数のカスタマからの要求を処理しかつ複数のカスタマにサービスするように、マルチ・テナント・クラウド・アーキテクチャを使用して構成される。マルチ・テナント・クラウド・アーキテクチャを有するデータ・センタ18は、複数のカスタマからのデータを混合および記憶し、複数のカスタマ・インスタンスは仮想サーバ26のうちの1つに割り当てられる。マルチ・テナント・クラウド・アーキテクチャにおいて、特定の仮想サーバ26は、様々なカスタマからのデータおよびその他の情報を区別し、分離する。例えば、マルチ・テナント・クラウド・アーキテクチャは、各カスタマからのデータを識別および分離するために、各カスタマのために特定の識別子を割り当てることができる。一般に、マルチ・テナント・クラウド・アーキテクチャを実装することは、サーバ・インスタンス26のうちの特定の1つに障害が発生し、特定のサーバ・インスタンスに割り当てられたすべてのカスタマが停止するなど、様々な欠点を生じる場合がある。
【0020】
別の実施形態において、データ・センタ18のうちの1つまたは複数は、すべてのカスタマに独自の1つまたは複数のカスタマ・インスタンスを提供するようにマルチ・インスタンス・クラウド・アーキテクチャを使用して構成される。例えば、マルチ・インスタンス・クラウド・アーキテクチャは、各カスタマ・インスタンスに専用のアプリケーション・サーバおよび専用のデータベース・サーバを提供することができる。その他の例では、マルチ・インスタンス・クラウド・アーキテクチャは、各カスタマ・インスタンスのために、1つもしくは複数の専用のウェブ・サーバ、1つもしくは複数の専用のアプリケーション・サーバおよび1つもしくは複数のデータベース・サーバなどの、1つの物理的もしくは仮想サーバ26ならびに/または物理的および/もしくは仮想サーバ26のその他の組合せを展開することができる。マルチ・インスタンス・クラウド・アーキテクチャにおいて、複数のカスタマ・インスタンスを1つまたは複数のそれぞれのハードウェア・サーバに実装することができ、各カスタマ・インスタンスは、コンピューティング・メモリ、ストレージおよび処理電力などの、物理的サーバ・リソースのある部分を割り当てられる。そうすることによって、各カスタマ・インスタンスは、データ・アイソレーション、カスタマがプラットフォーム16にアクセスするための比較的少ないダウンタイム、およびカスタマ・ドリブン・アップグレード・スケジュールの利益を提供する独自のソフトウェア・スタックを有する。マルチ・インスタンス・クラウド・アーキテクチャ内でカスタマ・インスタンスを実装する一例を、
図2を参照して以下により詳細に考察する。
【0021】
図2は、本開示の実施形態が動作する場合があるマルチ・インスタンス・クラウド・アーキテクチャ100の実施形態の概略図である。
図2は、マルチ・インスタンス・クラウド・アーキテクチャ100が、クライアント・ネットワーク12およびネットワーク14を含み、これらが、地理的に互いから分離されておりかつデータ複製および/またはフェイルオーバー能力を提供する場合がある2つの(例えば、対になった)データ・センタ18Aおよび18Bに接続されていることを示している。一例として
図2を用いて、ネットワーク環境およびサービス・プロバイダ・クラウド・インフラストラクチャ・クライアント・インスタンス102(本明細書ではクライアント・インスタンス102とも呼ばれる)が、専用の仮想サーバ(例えば、仮想サーバ26A、26B、26Cおよび26D)および専用のデータベース・サーバ(例えば、仮想データベース・サーバ104Aおよび104B)に関連している(例えば、それらによってサポートされかつ可能にされる)。言い換えれば、仮想サーバ26A~26Dならびに仮想データベース・サーバ104Aおよび104Bは、他のクライアント・インスタンスと共有されておらず、それぞれのクライアント・インスタンス102に特定されている。示された例において、クライアント・インスタンス102の利用可能性を促進するために、仮想サーバ26A~26Dならびに仮想データベース・サーバ104Aおよび104Bは、2つの異なるデータ・センタ18Aおよび18Bに割り当てられており、これにより、データ・センタ18のうちの一方は、バックアップ・データ・センタとして機能する。マルチ・インスタンス・クラウド・アーキテクチャ100のその他の実施形態は、ウェブ・サーバなどのその他のタイプの専用の仮想サーバを含むことができる。例えば、クライアント・インスタンス102は、専用の仮想サーバ26A~26D、専用の仮想データベース・サーバ104Aおよび104B、ならびに追加の専用の仮想ウェブ・サーバ(
図2には示されていない)に関連していることができる(例えば、それによってサポートされかつ可能にされることができる)。
【0022】
図1および
図2は、クラウド・コンピューティング・システム10およびマルチ・インスタンス・クラウド・アーキテクチャ100の特定の実施形態をそれぞれ示しているが、開示は、
図1および
図2に示された特定の実施形態に限定されない。例えば、
図1は、プラットフォーム16がデータ・センタを使用して実装されることを示しているが、プラットフォーム16のその他の実施形態はデータ・センタに限定されず、その他のタイプのリモート・ネットワーク・インフラストラクチャを利用することができる。さらに、本開示のその他の実施形態は、1つまたは複数の異なる仮想サーバを1つの仮想サーバに組み合わせる場合があるか、または逆に複数の仮想サーバを使用する1つの仮想サーバに起因する動作を行う場合がある。例えば、一例として
図2を使用すると、仮想サーバ26A、26B、26C、26Dおよび仮想データベース・サーバ104A、104Bは、1つの仮想サーバに組み合わされる場合がある。さらに、本アプローチは、マルチ・テナント・アーキテクチャ、汎用クライアント/サーバ実装を含むがこれらに限定されないその他のアーキテクチャまたは構成において、および/または本明細書において考察される動作のうちの幾つかまたはすべてを行うように設定された1つの物理的プロセッサ・ベースのデバイスにおいてさえも、実装される場合がある。同様に、仮想サーバまたはマシンは、実装の考察を容易にするために参照される場合があるが、物理的サーバがその代わりに適切なものとして利用される場合がある。
図1および
図2の使用および考察は、記載および説明の容易さを促進するための例でしかなく、本明細書に示された特定の例に開示を限定することを意図したものではない。
【0023】
理解され得るように、
図1および
図2に関して考察されたそれぞれのアーキテクチャおよびフレームワークは、全体を通じて様々なタイプのコンピューティング・システム(例えば、サーバ、ワークステーション、クライアント・デバイス、ラップトップ、タブレットコンピュータ、携帯電話など)を組み込む。完全性のために、このようなシステムにおいて典型的にみられる構成要素の簡単でハイレベルな概説が提供される。理解され得るように、本概説は、このようなコンピューティング・システムにおいて典型的な構成要素のハイレベルで一般化された見解を単に提供することを意図したものであり、考察されるまたは考察から省略される構成要素の観点から限定するものと見なされるべきではない。
【0024】
背景によって、本アプローチが、
図3に示されたような1つまたは複数のプロセッサ・ベースのシステムを使用して実装される場合があることが理解され得る。同様に、本アプローチにおいて利用されるアプリケーションおよび/またはデータベースは、このようなプロセッサ・ベースのシステムにおいて記憶、利用および/または維持される場合がある。理解され得るように、
図3に示されたこのようなシステムは、分散されたコンピューティング環境、ネットワーク環境またはその他のマルチ・コンピュータ・プラットフォームもしくはアーキテクチャに存在する場合がある。同様に、
図3に示されたようなシステムは、本アプローチが実装される場合がある1つまたは複数の仮想環境または計算インスタンスをサポートするかまたはこれらと通信する際に使用される場合がある。
【0025】
このことに留意して、例示的なコンピュータ・システムは、
図3に示されたコンピュータ構成要素のうちの幾つかまたはすべてを含む場合がある。
図3は、概して、コンピューティング・システム200の例示的な構成要素および1つまたは複数のバスなどに沿ったそれらの潜在的な相互接続または通信経路のブロック図を示している。示したように、コンピューティング・システム200は、1つまたは複数のプロセッサ202、1つまたは複数のバス204、メモリ206、入力デバイス208、電源210、ネットワーク・インターフェース212、ユーザ・インターフェース214、および/または本明細書に説明された機能を行う際に役立つその他のコンピュータ構成要素などの、しかしながらこれらに限定されない様々なハードウェア構成要素を含む場合がある。
【0026】
1つまたは複数のプロセッサ202は、メモリ206に記憶された命令を行うことができる1つまたは複数のマイクロプロセッサを含む場合がある。幾つかの実施形態において、命令は、メモリ206における各プロセスの実行スタックからパイプラインされる場合があり、より迅速かつ効率的に処理されるために1つまたは複数のプロセッサ202の命令キャッシュに記憶される場合がある。追加的にまたは代替的に、1つまたは複数のプロセッサ202は、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)および/またはメモリ206からの命令をコールすることなく本明細書において考察された機能のうちの幾つかまたはすべてを行うように設計されたその他のデバイスを含む場合がある。
【0027】
その他の構成要素に関して、1つまたは複数のバス204は、コンピューティング・システム200の様々な構成要素の間にデータおよび/または電力を提供するための適切な電気チャネルを含む。メモリ206は、あらゆる有形の、非一時的な、コンピュータ可読の記憶媒体を含む場合がある。
図1に1つのブロックとして示されているが、メモリ206は、1つまたは複数の物理的位置において同じまたは異なるタイプの複数の物理的ユニットを使用して実装することができる。入力デバイス208は、1つまたは複数のプロセッサ202にデータおよび/またはコマンドを入力するための構造に対応する。例えば、入力デバイス208は、マウス、タッチパッド、タッチスクリーン、キーボードなどを含む場合がある。電源210は、ライン電源および/またはバッテリ電源などの、コンピューティング・デバイス200の様々な構成要素の電源に適した任意の電源であり得る。ネットワーク・インターフェース212は、1つまたは複数のネットワーク(例えば、通信チャネル)上で他のデバイスと通信することができる1つまたは複数のトランシーバを含む。ネットワーク・インターフェース212は、有線ネットワーク・インターフェースまたはワイヤレス・ネットワーク・インターフェースを提供する場合がある。ユーザ・インターフェース214は、1つまたは複数のプロセッサ202から伝送されるテキストまたは画像を表示するように構成されたディスプレイを含む場合がある。ディスプレイに加えておよび/またはディスプレイの代わりに、ユーザ・インターフェース214は、ライト(例えば、LED)、スピーカなどの、ユーザとインターフェースするためのその他のデバイスを含む場合がある。
【0028】
前記のことに留意して、
図4は、本明細書では単に「クラウド」と呼ばれる場合がある、2つのサービス・プロバイダ・クラウド・ベース・プラットフォーム16Aおよび16Bを含む例示的な実施形態を示す図である。上記で考察したように、各クラウド16Aおよび16Bは、それぞれのデータ・センタ18Aおよび18Bに関連した適切な処理およびストレージ・リソースによってホストされる。加えて、各データ・センタ18は、クライアント・インスタンス、企業または共有インスタンス、テスト・インスタンス、デベロッパ・インスタンスなどの、多数のインスタンス102をホストする。各インスタンス102は、上記で考察したように、各インスタンスの動作をサポートする仮想サーバ26および仮想データベース・サーバ104を含む。例えば、インスタンス102Aは、クライアントに関連したリソースおよびアセットのための構成アイテム(CI)を記憶する構成管理データベース(CMDB)をホストするクライアント・インスタンスである。したがって、インスタンス102Aは、概して、クライアント・デバイス20などの複数のエンド・ユーザ・デバイスを同時にサポートするように構成されており、各エンド・ユーザ・デバイスは、クライアント・ネットワーク12および/またはネットワーク14を介してクライアント・インスタンス102Aと通信する。クラウド16は、あらゆる適切な数の同時インスタンスをサポートするように構成される場合がある。
【0029】
示された実施形態の場合、各クラウド16Aおよび16Bは、それぞれデータ・センタ18Aおよび18Bによってサポートまたはホストされる。その他の実施形態において、各クラウド16Aおよび16Bは、それぞれ異なる地理的位置に位置する場合がある多数の異なるデータ・センタ18によってホストされる。加えて、ある実施形態において、データ・センタ18は、「ポッド」と呼ばれるハードウェア・サーバのグループにさらに細分される場合がある。クラウド16は、異なるクラウド・ベース企業、カンパニー、サービス、またはテクノロジによってホストされるまたはこれらと関連している場合がある。各データ・センタ(またはデータ・センタ組織に応じて、各データ・センタの各ポッド)は、ホストされるインスタンス102のライフ・サイクルを管理することに責任のあるオートメーション220を記憶する。これらのオートメーション220は、それぞれのホストされるクライアント・インスタンス102を生成、維持および除去するためにデータ・センタ18の適切な処理回路によって実行される1つまたは複数のオーケストレーション222(例えば、ワークフロー224、スクリプト226および/またはスケジュール・ジョブ228)において定義される場合がある。例えば、オートメーション220は、新たなインスタンスを生成するときにリソース割り当てを処理する、インスタンスの複製/クローニングを管理する、同じクラウド・インスタンス移行を管理する、インスタンス・データベース・サーバのバックアップ/リストアを行う、仮想サーバおよび/またはデータベース・サーバのフェイルオーバーを管理する、インスタンス終了を処理する、インスタンス終了後のインスタンス・リソースのリリースまたは再割り当てを管理するなどのために定義される場合がある。本開示が存在しない場合、これらのオートメーション220は、それぞれのクラウド16Aおよび16Bのインスタンス102を管理するために各データ・センタ18Aおよび18Bによって独立して実行され、したがって、クラウド16Bおよびデータ・センタ18Bは、クラウド16Aおよびデータ・センタ18Aにおいて定義されたオートメーション220の実行をアクセスまたはトリガすることができない。したがって、本開示が存在しない場合、クロス・クラウド・インスタンス移行などのクロス・クラウド・インスタンス・ライフ・サイクル・オペレーションは不可能である。
【0030】
前記のことに留意して、本実施形態は、クロス・クラウド・データ交換およびオートメーションのクロス・クラウド実行を可能にするクラウド・サービス(CS)に向けられている。示された実施形態の場合、データ・センタ18Aおよびデータ・センタ18Bは、それぞれのCS230をホストする。データ・センタ18Aまたは18Bがポッドに組織化されている実施形態の場合、データ・センタの各ポッドは、それぞれのCS230をホストする場合がある。各CS230は、それぞれのピア・ツー・ピア(P2P)クラウド・オーケストレータ・サービス(COS)232およびクラウド・ブローカ・サービス(CBS)234を含む。以下で考察するように、COS232は、適切なネットワーク14を介してデータ・センタ18間のP2P識別および通信ルーティングを可能にする。すなわち、データ・センタ18AのCOS232およびデータ・センタ18BのCOS232は、クラウド16Aおよび16Bが、互いおよびその他の通信により結合されたピア・クラウドを識別し、かつデータ・センタ18間の適切な通信ルート(例えば、暗号化された、P2Pインターネット・プロトコル(IP)チャネル)を確立することを可能にする。例えば、データ・センタ18Aが、データ・センタ18Bに、クラウド16Bにおいてオートメーションを実行させようとするとき、データ・センタ18AのCOS232は、所望のオートメーションを有するクラウド16Bをホストするものとしてデータ・センタ18BのCOS232を識別する場合がある。ある実施形態では、データ・センタ18AのCOS232は、リソース(例えば、データ、データベース・クエリ、オーケストレーション)がデータ・センタ18BのCBS234を介してアクセスまたは実行されるために利用可能であるかどうかを決定するために、データ・センタ18BのCOS232にユニキャスト・クエリを提供する場合がある。各データ・センタ18のCOS232によって維持されるP2Pネットワークにおいて複数のピア・クラウドが存在する実施形態の場合、データ・センタ18のCOS232は、それぞれのピア・クラウドをホストするすべての通信により結合されたデータ・センタへマルチキャスト・クエリを送信する場合があり、その後、関心のあるリソースをホストする適切なデータ・センタ/クラウドからの応答を受信する場合がある。このような実施形態の場合、各データ・センタ18のCOS232は、これらのピア・クラウドをホストする各データ・センタ18のCOS232間でP2Pネットワークの動作を可能にするために、固有の識別子、IPアドレスまたはユニバーサル・リソース識別子(URI)、ルーティング・テーブル、認証信任状などの、ピア・クラウドに関する情報の集合を維持する場合がある。ある実施形態において、データ・センタ18AのCS230とデータ・センタ18BのCS230との間の通信は、representational state transfer(REST)メッセージ、シンプル・オブジェクト・アクセス・プロトコル(SOAP)メッセージ、またはあらゆるその他の適切なスタイル、フォーマットもしくはプロトコルにおけるメッセージを含む場合があることが理解され得る。
【0031】
示された実施形態の場合、COS232は、CBS234の動作を制御し、CBS234は、ネットワーク14を介したクラウド16間での、オーケストレーション222およびオートメーション220などのデータおよび命令へのクロス・クラウド・アクセスを可能にする。ある実施形態において、CBS234は、カスタマイズされたCITRUSクライアントまたは別の適切なenterprise application integration(EAI)プラットフォームである場合がある。示された実施形態の場合、インスタンス・ライフ・サイクルに関連したオートメーション220、すなわちオーケストレーション222(例えば、ワークフロー224、スクリプト226および/またはスケジュール・ジョブ228)は、CBS234を介して実行される。加えて、CBS234は、オートメーションが特定のクラウド内で実行されるかどうかまたはオートメーションがクロス・クラウド・オペレーションを表すかどうかをシームレスに決定する。言い換えれば、CBS234は、ローカルおよびリモートのデータおよび命令(例えば、オーケストレーション、オートメーション)を要約し、これにより、オートメーション220は、ローカルまたはリモートで実行されるかどうかに気づかない。CBS234をこの形式で実装することにより、前に利用不可能だったクロス・クラウド・オペレーションを、修正なく、クラウド16内に既に定義された、確立されかつテストされたローカル・オートメーション220を使用して実装することができ、これは、開発およびデバッグ・コストを著しく削減する。加えて、言及したように、クラウド隔離が望まれる場合、CBS234は、隔離されたクラウド内のデータまたは命令へのローカル・アクセスを依然として可能にしながら、特定のデータまたは命令がピア・クラウドによってアクセスされることをブロックまたは防止するように構成することができる。
【0032】
示された実施形態の動作中、オートメーション220のスクリプト226の実行がデータ・センタ18Aによって要求されたとき、実行される命令は、分析のためにデータ・センタ18AのCBS234に提供される。オートメーション220のスクリプトが、クラウド16A内に記憶されたリソース(例えば、データおよび/または命令)への参照のみを含む場合、CBS234は、データ・センタ18A内でスクリプトをローカルに実行する。しかしながら、スクリプト226が、クラウド16Bによってホストされるデータまたは命令を参照する場合、CBS234は、リソースのための要求をデータ・センタ18Bへルーティングする。ある実施形態において、データ・センタ18Aによって実行されるオートメーション220が、データ・センタ18Bによってホストされるデータにアクセスするための要求(例えば、作成、読み取り、更新、または削除(CRUD)要求)を含む場合、データ・センタ18AのCBS234は、クラウド16Aおよび16BのCOS232によって記憶されたルーティング情報に基づいて、データにアクセスするための適切な要求をクラウド16BのCBSへ送信する場合がある。その後、クラウド16BのCBS234は、要求されたデータをクラウド16AのCBS234に提供することによって応答する場合があり、クラウド16BのCBS234が、要求されたデータをエクスポートすることから制限されていないと仮定する。ある実施形態において、クラウド16Aにおいて実行するオートメーションが、クラウド16Bによってホストされるオートメーションの実行を要求すると、クラウド16AのCBS234は、オートメーションを実行するためにクラウド16BのCBSに対する要求を送信する場合があり、データ・センタ18Bにおける要求されたオートメーションの実行によって生成されたクラウド16BのCBSからのリザルト(例えば、出力データ、ステータス情報、エラー情報など)を受信する場合がある。
【0033】
図5は、クロス・クラウド・インスタンス移行オートメーション250の例示的な実施形態を示す流れ図であり、クロス・クラウド・インスタンス移行オートメーション250は、クラウド内に定義された既存のオートメーションを活用しながらインスタンスを第1のクラウドから第2のクラウドへ移動させるためのクロス・クラウド移行プロセスを定義する。加えて、
図6~
図14は、
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250の特定のステップを示す図である。したがって、
図6~
図14の例は、概して、クラウド16内でリソースを割り当て、データを移送し、ノードをインストールし、トラフィックをリダイレクトしかつリソースをリリースするためにクラウド16AのCS230およびクラウド16BのCS230がどのように協働するかを説明している。この例示的なクロス・クラウド・インスタンス移行オートメーション250は、単に開示されたCS230の利益の一例として提供されており、限定することを意図したものではない。実際、その他の実施形態において、クロス・クラウド・インスタンス移行オートメーション250は、本開示に従って、より少ないステップ、追加的なステップ、反復されるステップなどを有するCS230を使用して実装される場合がある。この例の場合、データ・センタ18BのCS230がクロス・クラウド・インスタンス移行オートメーション250を実行するのに対し、クロス・クラウド・インスタンス移行オートメーション250の部分(例えば、サブオートメーション)は、以下で考察するように、ローカルまたはクロス・クラウド形式においてデータ・センタ18Aまたは18BのそれぞれのCS230によって実行される場合があることが理解され得る。追加的な明瞭性のために、
図5のブロックは、どのデータ・センタ18がクロス・クラウド・インスタンス移行オートメーション250の様々なステップを実行するかの挿入指示を含む。
【0034】
図5のクロス・クラウド・インスタンス移行オートメーション250の考察を促進するために、
図6は、クライアント・インスタンス102A(この例ではソース・インスタンス102Aとも呼ばれる)を含むクラウド16A(この例ではソース・クラウド16Aとも呼ばれる)をホストするデータ・センタ18A(この例ではソース・データ・センタ18Aとも呼ばれる)を示している。
図2に関して考察したように、クライアント・インスタンス102Aは、複数の仮想サーバ26(例えば、アプリケーション・サーバ)と、一次データベース・サーバ104Aおよび二次データベース・サーバ104Bを含むデータベース・サーバ104とを含む。同様に、データ・センタ18B(この例ではターゲット・データ・センタ18Bとも呼ばれる)は、あらゆる適切な数のインスタンス(図示せず)を含む場合があるクラウド16B(この例ではターゲット・クラウドとも呼ばれる)をホストする。
【0035】
図6に示したように、動作中、データ・センタ18BのCS230は、クロス・クラウド・インスタンス移行オートメーションを実行してクライアント・インスタンス102Aをクラウド16Aおよびデータ・センタ18Aからクラウド16Bおよびデータ・センタ18Bへ移動させるために、管理者252からの要求を受信する。クロス・クラウド・インスタンス移行オートメーション250は、データ・センタ18Aおよびデータ・センタ18Bによってホストされる他のオートメーション220への参照またはコールを含み、これらのオートメーション220は、上記で考察したように、クラウド16Aおよび16B内のインスタンスのために、リソース割り当て、インスタンス複製/クローニング、データ・バックアップ/リストア、フェイルオーバーなどをローカルで処理するように設計されている。示された例の場合、データ・センタ18BによってホストされるCOS232は、データ・センタ18Aが、要求されたクロス・クラウド・インスタンス移行オートメーションによって使用されるオートメーション220をホストし、上記で考察したように、データ・センタ18Aと通信するための適切な情報をデータ・センタ18BのCBS234に提供することを決定する。クロス・クラウド・インスタンス移行オートメーションを実行するための要求を受信したことに応答して、データ・センタ18BのCBS234は、
図5のクロス・クラウド・インスタンス移行オートメーション250によって説明されるように、クロス・クラウド・インスタンス移行オートメーション250の実行を開始する。上述のように、データ・センタ18Bは、行われるクロス・クラウド・オートメーション・プロセスのインスティゲータであり、このプロセスの部分は、データ・センタ18Bによってローカルで実行されるのに対し、他の部分は、この例では、データ・センタ18Aによってリモートで実行される。
【0036】
図5を参照すると、クロス・クラウド・インスタンス移行オートメーション250の例示的な実施形態は、移行をスケジュールし、キューに入れることによって開始する(ブロック254)。例えば、
図6に示したように、データ・センタ18BのCBS234は、移行が開始するための時間をスケジュールし、また、スケジュールされた時間に達したときに移行をキューに入れるためにスケジューリング・オートメーションを実行する。このスケジューリング・オートメーションは、データ・センタ18Bにローカルのリソースのみを伴うので、データ・センタ18BのCBS234は、データ・センタ18Aにアクセスすることなくまたはデータ・センタ18Aを伴うことなく、スケジューリング・オートメーションをローカルで実行する。上述のように、データ・センタ18Bによって記憶および実行されるスケジューリング・オートメーションは、データ・センタ18Bによってホストされるインスタンスのためのライフ・サイクル・タスクをスケジュールするために設計された既存のオートメーションである場合があり、この既存のオートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行オートメーションによって活用することができる。
【0037】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック254において移行をスケジュールし、キューに入れた後、データ・センタ18BのCBS234は、ソース・インスタンスを確認することによって進行する場合がある(ブロック256)。例えば、
図7に示したように、クロス・クラウド・インスタンス移行オートメーション250を実行するデータ・センタ18BのCBS234は、次いで、データ・センタ18Aによってホストされるインスタンス確認オートメーションを実行するために命令に達する。上記で考察したように、データ・センタ18BのCBS234は、インスタンス確認オートメーションを実行するためにデータ・センタ18AのCBS234に命令を送信する。このインスタンス確認オートメーションの実行は、データ・センタ18Aおよびクラウド16Aにローカルのリソースのみを伴うので、データ・センタ18AのCBS234は、インスタンス102Aに対してインスタンス確認オートメーションをローカルで実行する。インスタンス確認オートメーションの実行が完了すると、データ・センタ18AのCBS234は、実行の結果(例えば、成功/失敗指示、構成/容量情報)を、インスタンス確認オートメーションのリモート実行をトリガしたデータ・センタ18BのCBS234へ送信する。データ・センタ18Bが、インスタンス102が確認に失敗したことの指示を受信する状況の場合、データ・センタ18BのCBS234は、クロス・クラウド・インスタンス移行オートメーション250の実行を中断し、後の管理者レビューのために失敗した確認をログ付けする場合がある。上述のように、データ・センタ18Aによって記憶および実行されたインスタンス確認オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる、クラウド16A内のインスタンス確認のために設計された既存のオートメーションである場合がある。
【0038】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ソース・インスタンス102Aがブロック256において確認されると、データ・センタ18AのCBS234は、クラウド16Bによってホストされる新たなインスタンス102B(本明細書ではターゲット・インスタンス102Bとも呼ばれる)を生成するためにリソースを割り当てる場合がある(ブロック258)。例えば、
図8に示したように、データ・センタ18AのCBS234は、容量獲得オートメーションを実行し、クラウド16B内のインスタンス102Aをホストするためにデータ・センタ18Aのリソースを割り当てる。示した例の場合、インスタンス102Aは、4つの仮想サーバ26ならびにデータベース・サーバ104Aおよび104Bを含む。したがって、データ・センタ18BのCBS234は、容量獲得オートメーションをローカルで実行し、クラウド16Bの新たに定義されたターゲット・インスタンス102B内で仮想サーバ26ならびにデータベース・サーバ104Cおよび104Dを割り当てる場合がある。ある実施形態において、データ・センタ18Bは、ブロック256および
図6に関して考察したように、クライアント・インスタンス102Aの容量に関する情報を、データ・センタ18Aによるインスタンス確認オートメーションの実行から受信された応答の一部として受信する場合がある。その他の実施形態では、容量獲得オートメーションを実行する前に、データ・センタ18BのCBS234は、まず、データ・センタ18AのCBS234によってローカルで実行されるために容量決定オートメーションをコールする場合があり、データ・センタ18AのCBS234は、データ・センタ18BのCBS234に容量情報を提供することによって応答する場合がある。上述のように、データ・センタ18Aによって記憶および実行される容量獲得オートメーションと、データ・センタ18Bによって記憶および実行される容量決定オートメーションとは、クラウド16Aおよび16B内で容量をそれぞれ決定または獲得するために設計された既存のオートメーションである場合があり、これらのローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0039】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック258においてインスタンス・リソースを割り当てた後、データ・センタ18BのCBS234は、ソース・データ・センタ18Aにおいて移行をアレンジする場合がある(ブロック260)。例えば、
図9に示したように、データ・センタ18BのCBS234は、ソース・データ・センタ18Aによって移行管理オートメーションの実行をコールする場合があり、コールは、移行のための特定のパラメータを含む。例えば、データ・センタ18BのCBS234は、データ・センタ18AのCBS234に、移行が生じる時間ウィンドウおよびターゲット・インスタンス102BのIPアドレスまたはユニバーサル・リソース識別子(URI)を提供する場合がある。受信されたパラメータを使用して、データ・センタ18AのCBS234は、移行管理オートメーションを実行する場合があり、これは、スケジュールされたダウンタイムならびに移行が完了した後にインスタンス102BにアクセスするためのIPアドレスまたはURIに関してインスタンス102Aの管理者およびユーザに情報を提供する。加えて、データ・センタ18AのCBS234は、インスタンス102Aの構造または構成(例えば、仮想サーバ26の数、データベース・サーバ104によって記憶されるデータの構造)に対する変化を防止するためにインスタンス102Aにおいてロック・インスタンス・オートメーションをローカルで実行する場合がある。インスタンス102Aは、ソース・インスタンス102A内の構成変化を防止するようにロックされるが、インスタンスはアクティブのままである場合があり、ユーザが、仮想サーバ26に通常アクセスしかつデータベース・サーバ104Aおよび104Bによって記憶されたデータにアクセス/修正することを可能にする。さらに、ある実施形態では、データ・センタ18AのCBS234は、移行管理オートメーションの一部としてソース・インスタンス102Aのより徹底した検証を行う場合があり、ソース・インスタンス102Aの容量および構成に関するより詳細な情報をデータ・センタ18BのCBS234に提供する場合がある。上述のように、データ・センタ18Aによって記憶および実行される移行管理オートメーションおよびロック・インスタンス・オートメーションは、クラウド16A内で移行をスケジュールするまたはインスタンスをロックするために設計された既存のオートメーションである場合があり、これらのオートメーションは、修正なく例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0040】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック260においてソース・データ・センタ18Aにおいて移行をスケジューリングした後、データ・センタ18BのCBS234は、引き続き、ターゲット・インスタンス102Bを構成する場合がある(ブロック262)。例えば、
図10に示したように、データ・センタ18BのCBS234は、インスタンス102Bに前もって割り当てられたリソースがインスタンス102Aを移行させるのに十分であることを確認するために容量検証オートメーションをローカルで実行する場合がある。容量が検証されると、データ・センタ18BのCBS234は、構成されているときにインスタンス102Bの構造または構成に対する望ましくない変更を防止するためにロック・インスタンス・オートメーションをローカルで実行する場合もある。加えて、データ・センタ18BのCBS234は、ソース・インスタンス102Aの仮想サーバ26のインストールおよび構成に基づいて、ターゲット・インスタンス102Bの仮想サーバ26をインストールおよび構成するインストール・インスタンス・オートメーションを実行する場合がある。しかしながら、ソース・インスタンス102のデータベース・サーバ104Aおよび104Bによって記憶されたデータは、ターゲット・インスタンス102Bへまだ移送されていないので、ターゲット・インスタンス102Bの仮想サーバ26は、
図10に示したように、ソース・インスタンス102Aの一次データベース・サーバ104Aに記憶されたデータを使用することにインストール中に最初は向けられる。
図10に別個の通信経路として示されているが、ある実施形態において、ターゲット・インスタンス102Bの仮想サーバ26からのソース・インスタンス102Aのデータベース・サーバ104へのデータ要求は、上記で考察したように、シームレス形式でデータ・センタ18Aおよび18BのCBS234を通ってルーティングされる場合がある。上述のように、データ・センタ18Bによって記憶および実行される容量検証オートメーション、ロック・インスタンス・オートメーションおよびインストール・インスタンス・オートメーションは、クラウド16B内で容量を検証し、インスタンスをロックし、または仮想サーバをインストールするために設計された既存のオートメーションである場合があり、これらのローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0041】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック262においてターゲット・インスタンス102Bを構成した後、データ・センタ18BのCBS234は、引き続きバックアップおよびリストア・ステップへ進む場合がある(ブロック264)。例えば、
図11に示したように、クロス・クラウド・インスタンス移行オートメーション250を実行するデータ・センタ18BのCBS234は、データベース・バックアップ・オートメーションの実行を要求する適切な命令をデータ・センタ18AのCBS234へ送信する。応答して、データ・センタ18AのCBS234はデータベース・バックアップ・オートメーションをローカルで実行し、これは、二次データベース・サーバ104Bによって記憶されるデータのバックアップ・コピー266またはスナップショットを生成する。バックアップ・オートメーションの成功の実行の指示およびバックアップ・コピー266の位置(例えば、URI)を受信すると、データ・センタ18BのCBS234は、データベース・リストア・オートメーションを実行し、これは、バックアップ・コピー266からのデータをターゲット・インスタンス102Bのデータベース・サーバ104Aおよび104Bに付加する。このデータベース・リストア・オートメーションの実行中、ソース・データ・センタ18AのCBS234は、上述のように、バックアップ・コピー266のデータをターゲット・データ・センタ18BのCBS234にシームレスにルーティングし、ターゲット・データ・センタ18Bにおけるデータベース・リストア・オートメーションの実行を可能にする。上述のように、データ・センタ18Aによって記憶および実行されるデータベース・バックアップ・オートメーションと、データ・センタ18Bによって記憶および実行されるデータベース・リストア・オートメーションとは、クラウド16Aおよび16B内にそれぞれデータをバックアップしまたはデータをリストアするために設計された既存のオートメーションである場合があり、これらのローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0042】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック264のバックアップおよびリストアを行った後、データ・センタ18BのCBS234は、引き続き、ターゲット・データ・センタ18Bに複製をセット・アップする場合がある(ブロック268)。言及したように、ある実施形態において、ソース・インスタンス102Aは、ソース・インスタンス102Aの仮想サーバ26ならびにデータベース・サーバ104Aおよび104Bによってホストされるサービスおよびデータへのアクセスをユーザに提供するという観点から、クロス・クラウド・インスタンス移行オートメーション250においてこの時点までアクティブなままである場合がある。したがって、
図12に示したように、複製ステップの間、データ・センタ18BのCBS234は、ソース・インスタンス102Aのデータベース・サーバ104Aおよび104Bによって記憶されたデータへのさらなる変更を防止するデータベース・ロック・オートメーションのローカルの実行を要求する命令をデータ・センタ18AのCBS234へ送信する場合がある。加えて、
図12に示したように、データ・センタ18BのCBS234は、データベース確認オートメーションを実行し、パラメータは、データ・ソースがソース・インスタンス102Aの二次データベース・サーバであり、かつデータ・ターゲットがターゲット・インスタンス102Bの一次および二次データベース・サーバ104Aおよび104であることを示している。例えば、このデータベース確認オートメーションの実行中、データ・センタ18BのCBS234は、データ・センタ18AのCBS234が比較オートメーションをローカルで実行することを要求する場合があり、比較オートメーションは、ソース・インスタンス102Aのデータベース・サーバ104Bによって現在記憶されたデータをバックアップ・コピー266(ブロック264および
図11に関して考察した)と比較する。このオートメーションを実行するデータ・センタ18AのCBS234に応答して、データ・センタ18BのCBS234は、ブロック264のバックアップおよびリストア・オペレーション以来生じたデータへの変更のすべて(例えば、データ・エントリ、データ修正)を示す出力を受信する場合がある。受信されたデータを使用して、データ・センタ18BのCBS234は、データベース・更新・オートメーションを実行する場合があり、データベース・更新・オートメーションは、ターゲット・インスタンス102Bの二次データベース・サーバ104Bによって記憶されたデータを更新する。最後に、この複製セット・アップ・ステップの間、データ・センタ18のCBS234は、データベース複製セット・アップ・オートメーションをローカルで実行する場合があり、データベース複製セット・アップ・オートメーションは、二次データベース・サーバ104Bを使用してターゲット・インスタンス102Bの一次データベース・サーバ104Aを更新し、次いで、
図2に関して上記で考察したように、一次データベース・サーバ104Aと二次データベース・サーバ104Bとの間の継続する複製オペレーションを確立する。上述のように、データ・センタ18Bによって記憶および実行されるデータベース・ロック・オートメーションおよび比較オートメーションと、データ・センタ18Bによって記憶および実行されるデータベース確認オートメーション、データベース・更新・オートメーションおよびデータベース複製セット・アップ・オートメーションとは、クラウド16Aおよび16B内でそれぞれインスタンスのデータベースをロックし、比較し、確認し、更新しかつ複製するように設計された既存のオートメーションである場合があり、これらのローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0043】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250で続けると、ブロック268においてターゲット・インスタンス102Bにおいて複製をセット・アップした後、データ・センタ18BのCBS234は、引き続き、ソース・インスタンス102Aの仮想サーバ26をカットオーバーする場合がある(ブロック270)。例えば、
図13に示したように、データ・センタ18BのCBS234は、カットオーバー・オートメーションの実行を要求する命令をデータ・センタ18AのCBS234に提供する場合があり、データ・ソースとしてターゲット・インスタンス102Bの一次データベース・サーバ104Aを指示するパラメータを含む。応答して、データ・センタ18AのCBS234は、カットオーバー・オートメーションをローカルで実行し、カットオーバー・オートメーションは、ターゲット・インスタンス102Bの一次データベース・サーバ104Aを使用するためにソース・インスタンス102Aの仮想サーバ26をリダイレクトする。したがって、カットオーバー・オートメーションを実行した後、ソース・インスタンス102Aの仮想サーバ26のあらゆるオペレーションは、ターゲット・インスタンス102Bのデータベース・サーバ104Aによって記憶されたデータを使用して行われる。データ・センタ18BのCBS234は、ターゲット・インスタンス102Bの一次データベース・サーバ104Aを使用するためにターゲット・インスタンス102Bの仮想サーバ26をリダイレクトするカットオーバー・オートメーションもローカルで実行する場合がある。別個の通信経路として示されているが、ある実施形態において、ソース・インスタンス102Aの仮想サーバ26からターゲット・インスタンス102Bのデータベース・サーバ104Aまたは104Bへのデータ要求は、上記で考察したように、シームレス形式でデータ・センタ18Aおよび18BのCBS234を通じてルーティングされる場合がある。上述のように、データ・センタ18Aおよび18Bによって記憶および実行されるカットオーバー・オートメーションは、クラウド16Aまたは16B内のインスタンス間で仮想サーバ26をそれぞれカットオーバーするように設計された既存のオートメーションである場合があり、このローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用することができる。
【0044】
図5の例示的なクロス・クラウド・インスタンス移行オートメーション250を続けると、ブロック270のカットオーバーを行った後、データ・センタ18BのCBS234は、引き続き、ソース・インスタンス102Aの移行後クリーンアップを行う場合がある(ブロック272)。例えば、
図14に示したように、データ・センタ18BのCBS234は、インスタンス・クリーンアップ・オートメーションの実行を要求する命令をデータ・センタ18AのCBS234に提供する場合があり、ソース・インスタンス102Aを指示するパラメータを提供する場合がある。応答して、データ・センタ18AのCBS234は、インスタンス・クリーンアップ・オートメーションをローカルで実行する場合があり、インスタンス・クリーンアップ・オートメーションは、データ・センタ18Aによってホストされる他のインスタンスへの後の割り当てのために、ソース・インスタンス102Aを無効化し、そのリソース(例えば、仮想サーバ26、データベース・サーバ104、ならびに対応するメモリおよび処理リソース)を取り戻す場合がある。ある実施形態において、インスタンス・クリーンアップ・オートメーションは、情報通知をセット・アップするなどのその他の移行後アクティビティを行う場合があり、またはリタイヤしたソース・インスタンス102Aへのアクセスを要求するユーザをそのポイントでターゲット・インスタンス102B、データ・センタ18Bおよび/またはクラウド16Bへリダイレクトする。ある実施形態において、データ・センタ18BのCBS234は、インスタンス・クリーンアップ・オートメーションの実行を要求する前にインスタンス検証オートメーションを実行する場合があり、インスタンス検証オートメーションは、ソース・インスタンス102Aおよびターゲット・インスタンス102Bが、ソース・インスタンス102Aがリタイヤさせられる前は実質的に同じであることを保証する。ある実施形態の場合、データ・センタ18BのCBS234は、データ・センタ18AのCBS234を介してソース・インスタンス102Aに関する情報にアクセスする場合がある。上述のように、データ・センタ18Aによって記憶および実行されるインスタンス・クリーンアップ・オートメーションと、データ・センタ18Bによって記憶および実行されるインスタンス検証オートメーションとは、クラウド16Aまたは16B内でインスタンスをそれぞれクリーンアップまたは検証するように設計された既存のオートメーションである場合があり、これらのローカル・オートメーションは、修正なしに例示的なクロス・クラウド・インスタンス移行プロセスによって活用される場合がある。
【0045】
本開示の技術的効果は、データへのクロス・クラウド・アクセスおよびオーケストレーション(例えば、スクリプト、ワークフローおよび/またはスケジュール・ジョブ)のクロス・クラウド実行を可能にするクラウド・サービス(CS)を含む。CSは、P2P COSおよびCBSを含む。COSは、異なるクラウド・コンピューティング環境間でのP2P識別および通信ルーティングを可能にするのに対し、CBSは、異なるクラウド・コンピューティング環境からのデータおよびオーケストレーションへのクロス・クラウド・アクセスを可能にする。データ・センタは、CSを通じてすべてのオーケストレーション・コールをルーティングするように構成される場合があり、これにより、CSは、ローカル・データおよびオーケストレーションへの参照が、データ・センタ内で処理されることを保証することができるのに対し、異なるデータ・センタのデータおよびオーケストレーションへの参照は、適切なデータ・センタの対応するCSによって処理されるように適切にルーティングされる。したがって、クラウド・コンピューティング環境内に定義された既存のオートメーションは、修正なしにクロス・クラウド・オペレーションを可能にするためにCSによって活用することができ、効率、コスト削減およびエラー削減における著しいゲインを提供する。例えば、開示されたCSを使用して、クラウド・コンピューティング環境の割り当て、複製/クローニング、バックアップ/リストアなどのための十分に確立されたローカル・オートメーションが、最小限のダウンタイムで、データ損失なく、かつ高い移動安定性で、有効なP2P、クロス・クラウド移行を可能にするために使用される場合がある。加えて、CSは、クロス・クラウド・ヘルス・モニタリングなどの、その他のクロス・クラウド・オペレーションを可能にすることができる。さらに、CSのCBSは、高められたセキュリティおよび/または規制コンプライアンスのためにあるデータおよび/またはオーケストレーションにローカル・アクセスすることに制限するように構成することができる。
【0046】
上記で説明した特定の実施形態は、例として示されており、これらの実施形態は、様々な修正および代替的な形態を生じる場合があることを理解すべきである。請求項は、開示された特定の形態に限定されることを意図したものではなく、本開示の思想および範囲に含まれるすべての修正、均等物および代替物をカバーすることが意図されている。
【0047】
本明細書において提供されかつ請求された技術は、当該技術分野を実証可能に改良する実用的性質の材料物体および具体的例に参照および適用され、したがって、要約、無形、または純粋に理論的ではない。さらに本明細書の最後に添付されたあらゆる請求項が、「[ある機能]を[行う]ための手段」または「[ある機能]を[行う]ためのステップ」として指定された1つまたは複数の要素を含む場合、このような要素は、米国特許法第112条(f)項の下で解釈されるべきであることが意図されている。しかしながら、あらゆる他の形式で指定された要素を含むあらゆる請求項の場合、このような要素は米国特許法第112条(f)項の下で解釈されるべきでないことが意図されている。