JP2015115059A - クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム - Google Patents

クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2015115059A
JP2015115059A JP2014220920A JP2014220920A JP2015115059A JP 2015115059 A JP2015115059 A JP 2015115059A JP 2014220920 A JP2014220920 A JP 2014220920A JP 2014220920 A JP2014220920 A JP 2014220920A JP 2015115059 A JP2015115059 A JP 2015115059A
Authority
JP
Japan
Prior art keywords
cloud
workload
group
computing resources
cloud group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014220920A
Other languages
English (en)
Inventor
ジェイソン、ライオネル、アンダーソン
Lionel Anderson Jason
アニメッシュ、サイ
Singh Animesh
グレゴリー、ジェンセン、ボス
Jensen Boss Gregory
ニメッシュ、バティア
Bhatia Nimesh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015115059A publication Critical patent/JP2015115059A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction

Abstract

【課題】情報処理システムがクラウド・コンピューティング環境を動的に変更するための手法を提供すること。【解決手段】手法においては、各クラウド・グループで実行されている展開されたワークロードが特定され、クラウド・コンピューティング環境はいくつかのクラウド・グループを含む。手法は、展開されたワークロードのそれぞれに1組のコンピューティング・リソースを割り振る。1組のコンピューティング・リソースは、クラウド・コンピューティング環境で利用可能なコンピューティング・リソースの総量の一部である。手法は、クラウド・グループのそれぞれで実行されるワークロードに割り振られるコンピューティング・リソースの組に基づいてクラウド・グループの間にコンピューティング・リソースをさらに割り当てる。【選択図】図5

Description

本発明はクラウド環境の構成の動的な変更方法に関する。
クラウド・コンピューティングは、インターネットなどのコンピュータ・ネットワークによって接続された多数のコンピュータを利用する概念に関する。クラウドに基づくコンピューティングは、ネットワークに基づくサービスを指す。これらのサービスは、サーバ・ハードウェアによって提供されるように見える。しかし、サービスは、その代わりに、1つまたは複数の現実のコンピュータ・システムで実行されるソフトウェアによってシミュレートされる仮想的なハードウェア(仮想マシン、または「VM」)によって提供される。仮想的なサービスは、物理的に存在しないので、したがって、エンドユーザに影響を与えることなく、オン・ザ・フライであちこちに移動させられ、スケール「アップ」またはスケール「アウト」させられ得る。スケール「アップ」(または「ダウン」)は、処理を実行するVMに対するリソース(CPU、メモリなど)の追加(または削減)を指す。スケール「アウト」(または「イン」)は、特定のワークロード(workload)を実行するために割り振られるVMの数を追加することまたは減らすことを指す。
クラウド環境において、アプリケーションは、それらのアプリケーションが安全かつ正常に実行され得る特定の環境を要求する。これらの環境の要件は変化するのが普通である。しかし、現在のクラウド・システムは、これに対処するのに十分なほど柔軟でない。例えば、ファイアウォールのセキュリティまたは高可用性(High Availability)のポリシーの修正は、概して、動的に調整され得ない。
従って、本発明の目的は、移動するワークロードに基づくクラウド環境の構成の動的な変更を可能にすること、すなわち、クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラムを提供することである。
情報処理システムがクラウド・コンピューティング環境を動的に変更するための手法が、提供される。手法においては、各クラウド・グループで実行されている展開されたワークロードが特定され、クラウド・コンピューティング環境はいくつかのクラウド・グループを含む。手法は、展開されたワークロードのそれぞれに1組のコンピューティング・リソースを割り振る。1組のコンピューティング・リソースは、クラウド・コンピューティング環境で利用可能なコンピューティング・リソースの総量の一部である。手法は、クラウド・グループのそれぞれで実行されるワークロードに割り振られるコンピューティング・リソースの組に基づいてクラウド・グループの間にコンピューティング・リソースをさらに割り当てる。
以上の内容は、概要であり、したがって、当然、簡略化、一般化、および詳細の省略を含み、結果として、当業者は、概要が例示的にあるに過ぎず、限定するようにまったく意図されていないことを理解するであろう。特許請求の範囲によってのみ定義される本発明のその他の態様、発明の特徴、および利点は、以下に記載の非限定的な詳細な説明で明らかになるであろう。
添付の図面を参照することによって、本発明がより深く理解される可能性があり、本発明の多くの目的、特徴、および利点が当業者に明らかにされるであろう。
知識ベースを利用する知識マネージャを含むネットワーク環境を示す図である。 図1に示された情報処理システムなどの情報処理システムのプロセッサおよび構成要素のブロック図である。 クラウド環境に対して動的な変更がなされる前のクラウド・グループ(cloudgroup)および構成要素を示すコンポーネント図である。 移動するワークロードに基づいて動的な変更がクラウド環境で実行された後のクラウド・グループおよび構成要素を示すコンポーネント図である。 クラウド環境を動的に変更するために使用される論理を示す流れ図である。 クラウド・グループを再構成するために実行される論理を示す流れ図である。 ワークロードのリソースを設定するために使用される論理を示す流れ図である。 クラウド・グループを最適化するために使用される論理を示す流れ図である。 クラウド・グループにリソースを追加するために使用される論理を示す流れ図である。 ワークロードの分析に基づいて異種のクラウドのリソースを動的に移動させるために使用される構成要素の図である。 ワークロードのスケーリング要求の動的な処理で使用される論理を示す流れ図である。 スケーリング・システムによってスケーリング・プロファイル(scalingprofile)を生成するために使用される論理を示す流れ図である。 既存のスケーリング・プロファイルを実装するために使用される論理を示す流れ図である。 分析エンジンを使用してワークロードの性能を監視するために使用される論理を示す流れ図である。 クラウドのコマンドの傍受を使用するフラクショナル・リザーブ高可用性(HA)クラウド(fractional reserve High Availability (HA) cloud using cloud commandinterception)を実装する際に使用される構成要素を示すコンポーネント図である。 最初のアクティブ・クラウド環境で障害が発生した後の図15の構成要素の図である。 クラウドのコマンドの傍受を使用するフラクショナル・リザーブ高可用性(HA)クラウドを実装するために使用される論理を示す流れ図である。 クラウドのコマンドの傍受で使用される論理を示す流れ図である。 パッシブ・クラウドをアクティブ・クラウド環境に切り替えるために使用される論理を示す流れ図である。 クラウドのワークロードに関する水平スケーリング・パターン(horizontalscaling pattern)を決定する際に使用される構成要素を示すコンポーネント図である。 余ったクラウドの能力を使用することによって仮想マシン(VM)の特性をリアルタイムで再構築する際に使用される論理を示す流れ図である。
当業者に理解されるであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性があり、これらはすべてが概して本明細書において「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化する1つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
1つまたは複数のコンピュータ可読媒体の任意の組合せが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、またはデバイス、あるいはこれらの任意の好適な組合せである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例(非網羅的なリスト)は、以下、すなわち、1つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組合せを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組合せを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはこれらの任意の好適な組合せを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組合せで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータ、サーバ、もしくはサーバのクラスタ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行われ得る。
本発明の態様が、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して以下で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに与えられてマシンを生成する可能性がある。
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の1つのブロックまたは複数のブロックで規定された機能/動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために一連の動作のステップがコンピュータ、その他のプログラム可能な装置、またはその他のデバイスで実行されるようにするために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされる可能性もある。
概して、以下の詳細な説明は、上述の本発明の概要に従い、必要に応じて本発明のさまざまな態様および実施形態の定義をさらに説明し、拡張する。この目的で、この詳細な説明は、まず、本発明に関連するソフトウェアの技術またはハードウェアの技術あるいはその両方を実装するのに好適な図1のコンピューティング環境を説明する。最近のコンピューティング技術が複数の別個のデバイスを介して実行され得ることを強調するために、ネットワークで接続された環境が、図2においては基本的なコンピューティング環境の拡張として示される。
図1は、本明細書において説明される計算動作を実行することができるコンピュータ・システムの簡略化された例である情報処理システム100を示す。情報処理システム100は、プロセッサ・インターフェース・バス112に結合された1つまたは複数のプロセッサ110を含む。プロセッサ・インターフェース・バス112は、プロセッサ110を、メモリ・コントローラ・ハブ(MCH)としても知られるノースブリッジ115に接続する。ノースブリッジ115は、システム・メモリ120に接続し、(1つまたは複数の)プロセッサ110がシステム・メモリにアクセスするための手段を提供する。グラフィックス・コントローラ125も、ノースブリッジ115に接続する。一実施形態においては、PCI Expressバス118が、ノースブリッジ115をグラフィックス・コントローラ125に接続する。グラフィックス・コントローラ125は、コンピュータ・モニタなどのディスプレイ・デバイス130に接続する。
ノースブリッジ115およびサウスブリッジ135は、バス119を用いて互いに接続する。一実施形態において、バスは、ノースブリッジ115とサウスブリッジ135との間でデータを各方向に高速転送するダイレクト・メディア・インターフェース(DMI)バスである。別の実施形態においては、周辺装置相互接続(PCI)バスが、ノースブリッジとサウスブリッジとを接続する。I/Oコントローラ・ハブ(ICH)としても知られるサウスブリッジ135は、概して、ノースブリッジによって提供される能力よりも低速で動作する能力を実装するチップである。サウスブリッジ135は、通常、さまざまな構成要素を接続するために使用されるさまざまなバスを提供する。これらのバスは、例えば、PCIおよびPCI Expressバス、ISAバス、システム管理バス(SMBusもしくはSMB)、またはロー・ピン・カウント(LPC:Low Pin Count)バス、あるいはそれらすべてを含む。多くの場合、LPCバスは、ブートROM196および(「スーパーI/O」チップを使用する)「レガシー」I/Oデバイスなどの低帯域幅デバイスを接続する。「レガシー」I/Oデバイス(198)は、例えば、シリアルおよびパラレル・ポート、キーボード、マウス、またはフロッピー・ディスク・コントローラ、あるいはそれらすべてを含む可能性がある。また、LPCバスは、サウスブリッジ135をトラステッド・プラットフォーム・モジュール(TPM)195に接続する。サウスブリッジ135に含まれることが多いその他の構成要素は、ダイレクト・メモリ・アクセス(DMA)コントローラ、プログラム可能割り込みコントローラ(PIC:Programmable Interrupt Controller)、およびバス184を使用してサウスブリッジ135をハード・ディスク・ドライブなどの不揮発性ストレージ・デバイス185に接続するストレージ・デバイス・コントローラを含む。
ExpressCard155は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ExpressCard155は、ユニバーサル・シリアル・バス(USB)とPCI Expressバスとの両方を使用してサウスブリッジ135に接続するとき、PCI Expressの接続性とUSBの接続性との両方をサポートする。サウスブリッジ135は、USBに接続するデバイスにUSBの接続性を提供するUSBコントローラ140を含む。これらのデバイスは、ウェブカメラ(カメラ)150、赤外線(IR)受信機148、キーボードおよびトラックパッド144、ならびにワイヤレス・パーソナル・エリア・ネットワーク(PAN)を提供するBluetoothデバイス146を含む。さらに、USBコントローラ140は、マウス、取外し可能な不揮発性ストレージ・デバイス145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブ、および多くのその他の種類のUSB接続されるデバイスなどのその他の種々のUSB接続されるデバイス142にUSBの接続性を提供する。取外し可能な不揮発性ストレージ・デバイス145は、USB接続されるデバイスとして示されているが、Firewireインターフェースなどの異なるインターフェースを用いて接続される可能性がある。
ワイヤレス・ローカル・エリア・ネットワーク(LAN)デバイス175は、PCIまたはPCI Expressバス172を介してサウスブリッジ135に接続する。概して、LANデバイス175は、情報処理システム100と別のコンピュータ・システムまたはデバイスとの間のワイヤレス通信を行うためにすべて同じプロトコルを使用する無線変調技術のIEEE802.11規格のうちの1つを実装する。光ストレージ・デバイス190は、シリアルATA(SATA)バス188を使用してサウスブリッジ135に接続する。シリアルATAアダプタおよびデバイスは、高速シリアル・リンクを介して通信する。また、シリアルATAバスは、サウスブリッジ135を、ハード・ディスク・ドライブなどのその他の形式のストレージ・デバイスに接続する。サウンド・カードなどのオーディオ回路160は、バス158を介してサウスブリッジ135に接続する。さらに、オーディオ回路160は、オーディオ・ライン入力および光デジタルオーディオ入力ポート162、光デジタル出力およびヘッドフォン・ジャック164、内蔵スピーカ166、ならびに内蔵マイクロフォン168などの機能を提供する。イーサネット・コントローラ170は、PCIまたはPCI Expressバスなどのバスを用いてサウスブリッジ135に接続する。イーサネット・コントローラ170は、情報処理システム100を、ローカル・エリア・ネットワーク(LAN)、インターネット、ならびにその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークに接続する。
図1は1つの情報処理システムを示すが、情報処理システムは、多くの形態をとる可能性がある。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、またはその他のフォーム・ファクタ・コンピュータもしくはデータ処理システムの形態をとる可能性がある。加えて、情報処理システムは、携帯情報端末(PDA)、ゲーム機、ATM機、ポータブル電話デバイス、通信デバイス、またはプロセッサおよびメモリを含むその他のデバイスなどのその他のフォーム・ファクタを採用する可能性がある。
セキュリティ機能を提供するための、図1に示される、本明細書に記載のトラステッド・プラットフォーム・モジュール(TPM195)は、ハードウェア・セキュリティ・モジュール(HSM)の一例であるに過ぎない。したがって、本明細書において説明され、主張されるTPMは、「トラステッド・プラットフォーム・モジュール(TPM)仕様バージョン1.2」と題されたTrusted Computing Groups(TCG)規格に準拠するハードウェア・セキュリティ・デバイスを含むがこれに限定されない任意の種類のHSMを含む。TPMは、図2に概要を示される情報処理システムなどの任意の数の情報処理システムに組み込まれ得るハードウェア・セキュリティ・サブシステムである。
図2は、本明細書において説明される方法がネットワークで接続された環境で動作する多種多様な情報処理システムで実行され得ることを示すための、図1に示された情報処理システム環境の拡張を提供する。情報処理システムの種類は、ハンドヘルド・コンピュータ/モバイル電話210などの小型のハンドヘルド・デバイスからメインフレーム・コンピュータ270などの大型のメインフレーム・システムまでに及ぶ。ハンドヘルド・コンピュータ210の例は、携帯情報端末(PDA)、MP3プレーヤ、ポータブル・テレビ、およびコンパクト・ディスク・プレーヤなどのパーソナル・エンターテインメント・デバイスを含む。情報処理システムのその他の例は、ペンまたはタブレット・コンピュータ220、ラップトップまたはノートブック・コンピュータ230、ワークステーション240、パーソナル・コンピュータ・システム250、およびサーバ260を含む。図2に個々に示されていないその他の種類の情報処理システムは、情報処理システム280によって表される。示されるように、さまざまな情報処理システムは、コンピュータ・ネットワーク200を用いて一緒にネットワークで接続される可能性がある。さまざまな情報処理システムを相互接続するために使用され得るコンピュータ・ネットワークの種類は、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用され得る任意のその他のネットワーク・トポロジーを含む。情報処理システムの多くは、ハード・ドライブなどの不揮発性データ・ストアまたは不揮発性メモリあるいはその両方を含む。図2に示される情報処理システムの一部は、別々の不揮発性データ・ストアを示す(サーバ260は、不揮発性データ・ストア265を利用し、メインフレーム・コンピュータ270は、不揮発性データ・ストア275を利用し、情報処理システム280は、不揮発性データ・ストア285を利用する)。不揮発性データ・ストアは、さまざまな情報処理システムの外部にある構成要素である可能性があり、または情報処理システムのうちの1つの内部にある可能性がある。加えて、取外し可能な不揮発性ストレージ・デバイス145は、取外し可能な不揮発性ストレージ・デバイス145を情報処理システムのUSBポートまたはその他のコネクタに接続するなど、さまざまな技術を使用して2つ以上の情報処理システムの間で共有される可能性がある。
図3は、クラウド環境に対して動的な変更がなされる前のクラウド・グループおよび構成要素を示すコンポーネント図である。1つまたは複数のプロセッサおよびメモリを含む情報処理システムが、図1に示されたクラウド・コンピューティング環境を動的に変更する。展開されたワークロードは、クラウド・グループ321、322、および323のそれぞれで実行されている。示される例においては、人事管理301のワークロードが、クラウド・グループ321で実行され、ワークロードは、HRプロファイル311に基づいて構成される。同様に、財務302のワークロードが、クラウド・グループ322で実行され、ワークロードは、財務プロファイル312に基づいて構成される。ソーシャル・コネクション(Social Connections)303のワークロードが、クラウド・グループ323で実行され、ワークロードは、ソーシャル・コネクション・プロファイル313に基づいて構成される。
クラウド・コンピューティング環境は、クラウド・グループ321、322、および323のそれぞれを含み、展開されたワークロードにコンピューティング・リソースを与える。コンピューティング・リソースの組は、さまざまな計算ノードに割り振られたCPUおよびメモリなどのリソースを含む(ノード331および332はクラウド・グループ321で実行されるところが示され、ノード333および334はクラウド・グループ322で実行されるところが示され、ノード335、336、および337はクラウド・グループ323で実行されるところが示されている)。リソースは、IPアドレスも含む。クラウド・グループ321のためのIPアドレスは、10個のIPアドレスを有するIPグループ341として示され、クラウド・グループ322のためのIPアドレスは、50個のIPアドレスを有するIPグループ342として示され、クラウド・グループ323のためのIPアドレスは、グループ毎にそれぞれ50個のIPアドレスを有するIPグループ343および344として示される。各クラウド・グループは、クラウド・グループ・プロファイル(クラウド・グループ321のためのプロファイルであるCGプロファイル351、クラウド・グループ322のためのプロファイルであるCGプロファイル352、およびクラウド・グループ323のためのプロファイルであるCGプロファイル353)を有する。クラウド・コンピューティング環境によって利用可能にされるコンピューティング・リソースは、クラウド・グループのそれぞれで実行されるワークロードに割り振られたコンピューティング・リソースの組に基づいてクラウド・グループの間に割り当てられる。また、クラウド・コンピューティング環境は、ネットワーク接続性をさまざまなクラウド・グループに与えるネットワーク・バックプレーン360を提供する。より多くのリンクが割り振られたクラウド・グループがより広いネットワーク帯域幅を持つようにリンクが与えられる。示された例においては、人事管理クラウド・グループ321が1つのネットワーク・リンク361を有する。しかし、財務クラウド・グループ322は、割り振られた2つの完全なネットワーク・リンク(リンク362および363)と、ソーシャル・コネクション・クラウド・グループ323と共有される部分的なリンク364とを有する。ソーシャル・コネクション・クラウド・グループ323は、リンク364を財務クラウド・グループと共有し、割り振られた3つのさらなるネットワーク・リンク(365、366、および367)も割り振られている。
図3および4に示される以下の例においては、必要とされるクラウド・グループ322で実行される財務アプリケーションは、翌月が従業員がボーナスを受け取る月であるので、翌月、セキュリティおよび優先度を増す。したがって、アプリケーションは、そのアプリケーションがより可用性が高く、より高いセキュリティを有することを必要とする。これらの更新された要件は、修正されたクラウド・グループ・プロファイル353の形態でもたらされる。更新されたクラウド・グループ・プロファイル353の処理は、図3に示された現在の構成がこれらの要件に対応せず、したがって、再構成される必要があると判定する。
図4に示されるように、空いている計算ノード(計算ノード335)が、アプリケーションの可用性を高めるためにクラウド・グループ323からクラウド・グループ322に引き込まれる。更新されたセキュリティの要件は、ファイアウォールでアクセスを制限し、セキュリティの暗号化を強化する。図4に示されるように、ネットワーク接続は、セキュリティをさらに改善するために物理的に分離されるように再構成される。特に、ネットワーク・リンク364がどのようにしてソーシャル・コネクション・クラウド・グループともはや共有されなくなるかに注目されたい。加えて、財務クラウド・グループに関して現在見つかっている増加したネットワークの需要のために、ソーシャル・コネクション・グループに前に割り振られていたネットワーク・リンク(リンク365)のうちの1つが、今や財務グループに割り振られる。リソースの再割り振りの後、クラウド・グループ・プロファイルは正しく構成されており、財務アプリケーションの要件が満たされる。図3において、ソーシャル・コネクション・アプリケーションが高セキュリティおよび高優先度で実行されており、内部HRアプリケーションが低セキュリティおよび低優先度で実行されており、内部財部アプリケーションが中セキュリティおよび中優先度で実行されていたことに留意されたい。財務プロファイル312に対する変更が原因である再構成の後、ソーシャル・コネクション・アプリケーションは、引き続き中セキュリティおよび中優先度で実行されているが、内部HRアプリケーションは、高セキュリティおよび高優先度で実行されており、内部財務アプリケーションも、高セキュリティおよび高優先度で実行されている。
図5は、クラウド環境を動的に変更するために使用される論理を示す流れ図を示す。処理は、500で始まり、それから、ステップ510において、プロセスは、クラウド環境に対する動的な変更を引き起こした再構成のトリガを特定する。再構成のトリガが、クラウド・グループに入っていくアプリケーションかまたはクラウド・グループを離脱していくアプリケーションかのどちらかであったかどうかに関して、プロセスによって判定がなされる(判定520)。再構成のトリガがクラウド・グループに入っていくかまたはクラウド・グループを離脱していくアプリケーションである場合、判定520は、さらなる処理のために「はい」の分岐に分岐する。
ステップ530において、プロセスは、入っていくかまたは離脱していくアプリケーションに対応するアプリケーション・プロファイルを、データ・ストア540に記憶されるクラウド・グループ・アプリケーション・プロファイルに追加するか、またはデータ・ストア540に記憶されるクラウド・グループ・アプリケーション・プロファイルから削除する。データ・ストア540に記憶されるクラウド・グループ・アプリケーション・プロファイルは、クラウド・コンピューティング環境で現在実行されているクラウド・グループ毎のアプリケーションを含む。予め定義されたプロセス580で、プロセスは、クラウド・グループ・プロファイルがステップ530によって調整された後、クラウド・グループを再構成する(処理の詳細に関しては図6および対応する本文を参照されたい)。ステップ595において、処理は、次の再構成のトリガが発生するのを待ち、次の再構成のトリガが発生した時点で、処理は、ステップ510にループして戻って、次の再構成のトリガを処理する。
判定520に戻ると、再構成のトリガが、クラウド・グループに入っていくかまたはクラウド・グループから離脱していくアプリケーションが原因でない場合、判定520は、さらなる処理のために「いいえ」の分岐に分岐する。ステップ550において、プロセスは、クラウド・グループで現在実行されている第1のアプリケーションを選択する。ステップ560において、プロセスは、選択されたアプリケーションのプロファイルを調べることによって選択されたアプリケーションに関連する変更された要件を調べる。変更された要件は、ファイアウォールの設定の構成、定義されたロード・バランサのポリシー、アプリケーション・サーバのクラスタおよびアプリケーションの構成に対する更新、セキュリティ・トークンの交換および更新、更新を必要とするネットワーク構成、構成管理データベース(CMDB)で追加/更新される必要がある構成項目、ならびにシステムおよびアプリケーションの監視の閾値の設定などの領域をもたらす可能性がある。選択されたアプリケーションに関連する変更された要件がステップ560で特定されたかどうかに関して、プロセスによって判定がなされる(判定570)。選択されたアプリケーションに関連する変更された要件が特定された場合、判定570は、「はい」の分岐に分岐し、それから、予め定義されたプロセス580が、クラウド・グループを再構成するために実行される(処理の詳細に関しては図6および対応する本文を参照されたい)。一方、選択されたアプリケーションに関連する変更された要件がまったく特定されなかった場合、処理は、「いいえ」の分岐に分岐する。調べるべきクラウド・グループのさらなるアプリケーションが存在するかどうかに関して、プロセスによって判定がなされる(判定590)。調べるべきさらなるアプリケーションが存在する場合、判定590は、上述のようにクラウド・グループの次のアプリケーションを選択し、処理するためにループして戻る「はい」の分岐に分岐する。このループは、変更の要件を有するアプリケーションが特定される(判定570が「はい」の分岐に分岐する)か、またはクラウド・グループに選択すべきさらなるアプリケーションが存在しなくなる(判定590が「いいえ」の分岐に分岐する)かのどちらかまで継続する。クラウド・グループに選択すべきさらなるアプリケーションが存在しない場合、判定590は、「いいえ」の分岐に分岐し、それから、ステップ595において、処理は、次の再構成のトリガが発生するのを待ち、次の再構成のトリガが発生した時点で、処理は、ステップ510にループして戻って、次の再構成のトリガを処理する。
図6は、クラウド・グループを再構成するために実行される論理を示す流れ図を示す。再構成プロセスは、600で始まり、それから、ステップ610において、プロセスは、テナントのための適切なサービス品質保証契約(SLA)に基づいて、クラウド・グループで実行される1組のテナントを優先度で順序付ける。プロセスは、データ・ストア605からテナントのSLAを受け取り、優先順位を付けられたテナントのリストをメモリ領域615に記憶する。
ステップ620において、プロセスは、メモリ領域615に記憶された優先順位を付けられたテナントのリストから第1の(最も優先度の高い)テナントを選択する。選択されたテナントに対応するワークロードが、メモリ領域625に記憶される現在のクラウド環境から取得される。ステップ630において、プロセスは、選択されたテナントのために展開される第1のワークロードを選択する。ステップ640において、プロセスは、選択されたワークロードの優先度を決定または計算する。ワークロードの優先度は、テナントのSLA、およびデータ・ストア540から取得されるアプリケーション・プロファイルで設定されたテナントの優先度に基づく。所与のテナントは、テナントにとってのアプリケーションの必要性およびアプリケーションの重要性に基づいて異なるアプリケーションに異なる優先度を割り振る可能性がある。図3および4は、所与の企業で実行されるさまざまなアプリケーションに異なる優先度が割り振られる例を提供した。次いで、ワークロードの優先度が、メモリ領域645に記憶される。ステップ650において、プロセスは、ワークロードの現在の需要を特定し、さらに、テナントの優先度、ワークロードの優先度、およびワークロードの現在のまたは予測される需要に基づいてワークロードの重み付けされた優先度を計算する。ワークロードの重み付けされた優先度が、メモリ領域655に記憶される。処理される必要がある選択されたテナントのためのさらなるワークロードが存在するかどうかに関して、プロセスによって判定がなされる(判定660)。処理すべき選択されたテナントのためのさらなるワークロードが存在する場合、判定660は、上述のように次のワークロードを選択し、処理するためにステップ630にループして戻る「はい」の分岐に分岐する。このループは、処理すべきテナントのためのさらなるワークロードが存在しなくなるまで継続し、処理すべきテナントのためのさらなるワークロードがなくなった時点で、判定660は、「いいえ」の分岐に分岐する。
処理すべきさらなるテナントが存在するかどうかに関して、プロセスによって判定がなされる(判定665)。処理すべきさらなるテナントが存在する場合、判定665は、優先度によって次のテナントを選択し、上述のように新たに選択されたテナントのためのワークロードを処理するためにループして戻る「はい」の分岐に分岐する。このループは、テナントのすべてのためのワークロードのすべてが処理されるまで継続し、テナントのすべてのためのワークロードのすべてが処理された時点で、判定665は、さらなる処理のために「いいえ」の分岐に分岐する。
ステップ670において、プロセスは、メモリ領域655で見つかった重み付けされた優先度に基づいてワークロードを並べ替える。それらのワークロードのそれぞれの重み付けされた優先度によって順序付けられたワークロードは、メモリ領域675に記憶される。予め定義されたプロセス680で、プロセスは、メモリ領域675に含まれるワークロードのそれぞれのためのワークロードのリソースを設定する(処理の詳細に関しては図7および対応する本文を参照されたい)。予め定義されたプロセス680は、割り当てられたワークロードのリソースをメモリ領域685に記憶する。予め定義されたプロセス680で、プロセスは、メモリ領域685に記憶された割り当てられたワークロードのリソースに基づいてクラウド・グループを最適化する(処理の詳細に関しては図8および対応する本文を参照されたい)。次いで、プロセスは、695で呼び出し元のルーチン(図5参照)に戻る。
図7は、ワークロードのリソースを設定するために使用される論理を示す流れ図を示す。処理は、700で始まり、それから、ステップ710において、プロセスは、メモリ領域715から第1の(最も高い重み付けされた優先度の)ワークロードを選択し、メモリ領域715は、最も高い重み付けされた優先度のワークロードから最も低い重み付けされた優先度のワークロードまで既に並べ替えられている。
ステップ720において、プロセスは、ワークロードの需要およびワークロードの優先度に基づいて、選択されたワークロードによって必要とされるリソースを計算する。ワークロードの需要および優先度を前提としてワークロードを実行するために必要とされるリソースは、メモリ領域725に記憶される。
ステップ730において、プロセスは、VMの数、必要とされるIPアドレス、ネットワーク帯域幅などのワークロードに割り当てられたリソースを取得し、ワークロードの現在のリソース割り当てをワークロードのために必要とされるワークロードの計算されたリソースと比較する。比較に基づいてワークロードのリソース割り当てに対する変更が必要であるかどうかに関して、プロセスによって判定がなされる(判定740)。ワークロードのリソース割り当てに対する変更が必要とされる場合、判定740は、「はい」の分岐に分岐し、それから、ステップ750において、プロセスは、メモリ領域755に記憶されるワークロードのための「好ましい」リソース割り当てを設定する。「好ましい」という指定は、リソースが十分に利用可能である場合に、これらが、ワークロードが割り当てるべきであったリソースであることを意味する。しかし、クラウド・グループのリソースの制約のために、ワークロードは、好ましいワークロードのリソース割り当て未満の割り当てにとどめる必要がある可能性がある。判定740に戻ると、ワークロードが必要とされるリソースを既に割り当て済みである場合、判定740は、ステップ750を回避する「いいえ」の分岐に分岐する。
処理される必要がある、重み付けされた優先度によって順序付けられたさらなるワークロードが存在するかどうかに関して、プロセスによって判定がなされる(判定760)。処理すべきさらなるワークロードが存在する場合、判定760は、上述のように、次の(次に高く重み付けされた優先度の)ワークロードを選択し、新たに選択されたワークロードのリソースを設定するためにステップ710にループして戻る「はい」の分岐に分岐する。このループは、ワークロードのすべてが処理されるまで継続し、ワークロードのすべてが処理される時点で、判定760は、「いいえ」の分岐に分岐し、処理は、795で、呼び出し元のルーチンに戻る(図6参照)。
図8は、クラウド・グループを最適化するために使用される論理を示す流れ図を示す。処理は、800で始まり、それから、ステップ810において、プロセスは、データ・ストア805に記憶されたクラウド構成から第1のクラウド・グループを選択する。クラウド・グループは、さまざまなグループに適用されるサービス品質保証契約(SLA)、さまざまなクラウド・グループに割り振られた優先度、または何らかのその他の基準に基づいて並べ替えられる可能性がある。
ステップ820において、プロセスは、選択されたクラウド・グループの各ワークロードのための好ましいワークロードのリソースを集め、選択されたクラウド・グループで実行されるワークロードの好ましいワークロードのリソースを満たすために好ましいクラウド・グループのリソース(クラウド・グループによって必要とされる合計のリソース)を計算する。好ましいワークロードのリソースは、メモリ領域755から取得される。選択されたクラウド・グループで実行されるワークロードのワークロードのリソースを満たすために必要とされる計算された好ましいクラウド・グループのリソースは、メモリ領域825に記憶される。
ステップ830において、プロセスは、クラウド・コンピューティング環境で利用可能な第1のリソースの種類を選択する。ステップ840において、選択されたリソースが、選択されたクラウド・グループに既に割り当てられているリソースの現在の割り当てと比較される。クラウド・グループのためのリソースの現在の割り当ては、メモリ領域845から取得される。より多くの選択されたリソースが、選択されたクラウド・グループで実行されるワークロードのワークロードのリソースを満たすために選択されたクラウド・グループによって必要とされるかどうかに関して、プロセスによって判定がなされる(判定850)。より多くの選択されたリソースが選択されたクラウド・グループによって必要とされる場合、判定850は、「はい」の分岐に分岐し、それから、予め定義されたプロセス860において、プロセスは、選択されたクラウド・グループにリソースを追加する(処理の詳細に関しては図9および対応する本文を参照されたい)。一方、より多くの選択されたリソースが選択されたクラウド・グループによって必要とされない場合、判定850は、「いいえ」の分岐に分岐し、それから、過剰な選択されたリソースがクラウド・グループに現在割り当てられているかどうかに関して、プロセスによって判定がなされる(判定870)。過剰な選択されたリソースがクラウド・グループに現在割り当てられている場合、判定870は、「はい」の分岐に分岐し、それから、ステップ875において、プロセスは、過剰な割り当てられたリソースを、選択されたクラウド・グループから「利用可能」であるものとして印を付ける。この印を付けることは、メモリ領域845に記憶されたクラウド・グループのリソースのリストに対して行われる。一方、過剰な選択されたリソースが選択されたクラウド・グループに現在割り当てられていない場合、判定870は、ステップ875を回避する「いいえ」の分岐に分岐する。
分析すべきさらなるリソースの種類が存在するかどうかに関して、プロセスによって判定がなされる(判定880)。分析すべきさらなるリソースの種類が存在する場合、判定880は、上述のように次のリソースの種類を選択し、分析するためにステップ830にループして戻る「はい」の分岐に分岐する。このループは、選択されたクラウド・グループに関してリソースの種類のすべてが処理されるまで継続し、選択されたクラウド・グループに関してリソースの種類のすべてが処理される時点で、判定880は、「いいえ」の分岐に分岐する。選択し、処理すべきさらなるクラウド・グループが存在するかどうかに関して、プロセスによって判定がなされる(判定890)。選択し、処理すべきさらなるクラウド・グループが存在する場合、判定890は、上述のように次のクラウド・グループを選択し、処理するためにステップ810にループして戻る「はい」の分岐に分岐する。このループは、クラウド・グループのすべてが処理されるまで継続し、クラウド・グループのすべてが処理される時点で、判定890は、「いいえ」の分岐に分岐し、処理は、895で、呼び出し元のルーチンに戻る(図6参照)。
図9は、クラウド・グループにリソースを追加するために使用される論理を示す流れ図を示す。処理は、900で始まり、それから、ステップ910において、プロセスは、おそらくは、このクラウド・グループによって望まれる過剰なリソースを有するその他のクラウド・グループを見つけるために、クラウド・コンピューティング環境で実行されるその他のクラウド・グループを調べる。図8に既に示されたように、クラウド・グループが過剰なリソースを特定するとき、過剰なリソースは、印を付けられ、その他のクラウド・グループが利用できるようにされる。すべてのクラウドのリソース(クラウド・グループのそれぞれ)およびそれらのリソースの割り当てならびに過剰なリソースのリストが、メモリ領域905に作られる。
過剰な所望のリソースを有する1つまたは複数のクラウド・グループが特定されたかどうかに関する、プロセスによって判定がなされる(判定920)。過剰な所望のリソースを有する1つまたは複数のクラウド・グループが特定される場合、判定920は、「はい」の分岐に分岐し、それから、ステップ925において、プロセスは、特定された過剰な所望の(必要とされる)リソースを有する第1のクラウド・グループを選択する。メモリ領域935から取得された選択されたクラウド・グループのプロファイルとその他のクラウド・グループのプロファイルとの両方に基づいて、このクラウド・グループが選択されたクラウド・グループからリソースを受け取ることを許されるかどうかに関して、プロセスによって判定がなされる(判定930)。例えば、図3および4では、1つのクラウド・グループ(財務グループ)が、財務グループで実行される処理の機密性が原因で高セキュリティ設定を有する筋書きが示された。この機密性は、ネットワーク・リンクなどの一部のリソースが共有されるか、または財務グループからその他のクラウド・グループのうちの1つに再割り当てされることを防止した可能性がある。リソースが選択されたクラウド・グループからこのクラウド・グループに移動させられ得る場合、判定930は、「はい」の分岐に分岐し、それから、ステップ940において、リソース割り当てが、選択されたクラウド・グループからこのクラウド・グループに移動させられ、メモリ領域905に記憶されたクラウドのリソースのリストおよびメモリ領域990に記憶されたクラウドのリソースに反映される。一方、リソースが選択されたクラウド・グループからこのクラウド・グループに移動させられ得ない場合、判定930は、ステップ940を回避する「いいえ」の分岐に分岐する。調べるべきリソースを有するさらなるクラウド・グループが存在するかどうかに関して、プロセスによって判定がなされる(判定945)。調べるべきさらなるクラウド・グループが存在する場合、判定945は、次のクラウド・グループから利用することができる可能性があるリソースを選択し、分析するためにステップ925にループして戻る「はい」の分岐に分岐する。このループは、調べるべきさらなるクラウド・グループがなくなるまで(またはリソースの必要性が満たされるまで)継続し、調べるべきさらなるクラウド・グループがなくなる時点で、判定945は、「いいえ」の分岐に分岐する。
その他のクラウド・グループから利用することができる過剰なリソースを調べた後、クラウド・グループがまだより多くのリソースを必要とするかどうかに関して、プロセスによって判定がなされる(判定950)。さらなるリソースが必要とされない場合、判定950は、「いいえ」の分岐に分岐し、それから、処理は、955で呼び出し元のルーチンに戻る(図8参照)。一方、さらなるリソースがこのクラウド・グループのためにまだ必要とされる場合、判定950は、さらなる処理のために「はい」の分岐に分岐する。
ステップ960において、プロセスは、このクラウド・コンピューティング環境に現在割り当てられておらず、クラウド・プロファイル、SLAなどに基づいてこのクラウド・コンピューティング環境に割り当てられることを許される利用可能なリソースに関してデータ・センタに確認する。データ・センタのリソースは、メモリ領域965から取得される。このクラウド・グループのリソースの必要性を満たすデータ・センタのリソースが見つかったかどうかに関して、プロセスによって判定がなされる(判定970)。このクラウド・グループのリソースの必要性を満たすデータ・センタのリソースが見つかった場合、判定970は、「はい」の分岐に分岐し、それから、ステップ980において、プロセスは、特定されたデータ・センタのリソースをこのクラウド・グループに割り当てる。このクラウド・グループへの割り当ては、メモリ領域990に記憶されたクラウドのリソースのリストに対する更新で反映される。判定970に戻ると、このクラウド・グループのリソースの必要性を満たすためのデータ・センタのリソースが見つからなかった場合、判定970は、ステップ980を回避する「いいえ」の分岐に分岐する。次いで、処理は、995で呼び出し元のルーチン(図8参照)に戻る。
図10は、ワークロードの分析に基づいて異種のクラウドのリソースを動的に移動させるために使用される構成要素の図である。クラウド・グループ1000は、「負荷がかかっている(stressed)」と特定されたワークロード(仮想マシン(VM)1010)を示す。VMが負荷がかかっていると特定された後、ワークロードは、スケール「アップ」または「アウト」がワークロードにより有益であるかどうかを突き止めるために複製される。
四角1020は、元のVM1010のためにCPUおよびメモリなどの追加のリソースを確保することによってスケール「アップ」された変更されたVM(VM1021)を示す。四角1030は、ワークロードに追加の仮想マシン(VM1031、1032、および1033)を追加することによってスケール・アウトされた複製されたVMを示す。
スケール・アップされた環境が、試験され、試験結果が、メモリ領域1040に記憶される。同様に、スケール・アウトされた環境が、試験され、試験結果が、メモリ領域1050に記憶される。スケール・アップの試験結果とスケール・アウトの試験結果とを比較するプロセス1060が、示される。プロセス1060は、データ・ストア1070に記憶される1つまたは複数のワークロードのスケーリング・プロファイルをもたらす。ワークロードのスケーリング・プロファイルは、ワークロードのための優先的なスケーリング技術(アップ、アウトなど)および構成の設定(例えば、スケール・アップする場合の割り当てられるリソース、スケール・アウトする場合の仮想マシンの数)を示す。加えて、スケール・アップの一部の態様をスケール・アウトの一部の態様と組み合わせること(例えば、割り当てられるリソースを増やし、ワークロードのために追加の仮想マシンを確保することなど)によって、スケール「ダイアゴナル」(scale diagonal)が可能である。
図11は、ワークロードのスケーリング要求の動的な処理で使用される論理を示す流れ図を示す。プロセスは、1100で始まり、それから、ステップ1110において、プロセスは、所与のワークロードのためのリソースを増やすための要求をクラウド(クラウド・グループ1000)から受け取る。例えば、ワークロードの性能が、所与の閾値未満であった可能性があり、またはスケーリングのポリシーに違反していた可能性がある。
ワークロードのスケーリング・プロファイルがこのワークロードのために既に存在しているかどうかに関して、プロセスによって判定がなされる(判定1120)。ワークロードのスケーリング・プロファイルがこのワークロードのために既に存在している場合、判定1120は、「はい」の分岐に分岐し、それから、予め定義されたプロセス1130において、プロセスは、データ・ストア1070から既存のワークロードのスケーリング・プロファイルを読み取ることによって既存のスケーリング・プロファイルを実施する(処理の詳細に関しては図13および対応する本文を参照されたい)。
一方、ワークロードのスケーリング・プロファイルがこのワークロードのためにまだ存在しない場合、判定1120は、「いいえ」の分岐に分岐し、それから、予め定義されたプロセス1140において、プロセスは、ワークロードのための新しいスケーリング・プロファイルを生成する(処理の詳細に関しては図12および対応する本文を参照されたい)。新しいスケーリング・プロファイルは、データ・ストア1070に記憶される。
図12は、スケーリング・システムによってスケーリング・プロファイルを生成するために使用される論理を示す流れ図を示す。処理は、1200で始まり、それから、ステップ1210において、プロセスは、2つの異なる仮想マシンにワークロードを二重化する(ワークロード「A」1211は、スケール・アップされるワークロードであり、ワークロード「B」1212は、スケール・アウトされるワークロードである)。
ステップ1220において、プロセスは、ワークロードAのVMにリソースを追加する。これは、ワークロードAが追加のリソースを受け取るステップ1221で反映される。
ステップ1230において、プロセスは、ワークロードBを処理するために使用される追加のVMを追加する。これは、ワークロードBが追加のVMを受け取るステップ1231で反映される。
ステップ1240において、プロセスは、到着するトラフィックをワークロードAとワークロードBの両方に二重化する。これは、ワークロードAを実行するVMに割り当てられた追加のリソースを用いてトラフィック(要求)を処理するワークロードAのステップ1241に反映される。これは、ワークロードBを処理するために追加された追加のVMを用いて同じトラフィックを処理するワークロードBのステップ1242にも反映される。
ステップ1250において、ワークロードAとワークロードBの両方は、出て行くデータ(応答)を要求元に戻るように導く。しかし、ステップ1250は、要求元がただ1組の期待される出て行くデータを受け取るようにワークロードのうちの1つ(例えば、ワークロードB)からの出て行くデータを遮断する。
予め定義されたプロセス1260において、プロセスは、ワークロードAとワークロードBの両方の性能を監視する(処理の詳細に関しては図14および対応する本文を参照されたい)。予め定義されたプロセス1260は、スケール・アップ(ワークロードA)の結果をメモリ領域1040に記憶し、スケール・アウト(ワークロードB)の結果をメモリ領域1050に記憶する。このワークロードのためのスケーリングの方針を決定するために十分な性能データが収集されたかどうかに関して、プロセスによって判定がなされる(判定1270)。判定1270は、時間、またはワークロードによって処理されるトラフィックの量によって制御される可能性がある。このワークロードのためのスケーリングの方針を決定するために十分な性能データがまだ収集されていない場合、判定1270は、ワークロードAおよびワークロードBの性能の監視、ならびにそれぞれメモリ領域1040および1050に記憶されるさらなる試験結果の提供を継続するために予め定義されたプロセス1260にループして戻る「いいえ」の分岐に分岐する。このループは、このワークロードのためのスケーリングの方針を決定するために十分な性能データが収集されるまで継続し、このワークロードのためのスケーリングの方針を決定するために十分な性能データが収集される時点で、判定1270は、「はい」の分岐に分岐し、それから、ステップ1280において、プロセスは、収集された性能データ(スケール・アップ、スケール・アウト、またはスケール・ダイアゴナルの好ましさ、および割り当てられたリソースの量など)に基づいてこのワークロードのためのワークロードのスケーリング・プロファイルを生成する。次いで、処理は、1295で呼び出し元のルーチン(図11参照)に戻る。
図13は、既存のスケーリング・プロファイルを実装するために使用される論理を示す流れ図を示す。処理は、1300で始まり、それから、ステップ1310において、プロセスは、好ましいスケーリング方法(アップ、アウト、ダイアゴナル)、割り当てるべきリソース、および好ましいスケーリングが実行された後の予測される性能の向上を含むこのワークロードに関するワークロードのスケーリング・プロファイルを読む。
ステップ1320において、プロセスは、ワークロードのスケーリング・プロファイルに従って好ましいスケーリング方法を実施し、リソース(スケール・アップのときはCPU、メモリなど、スケール・アウトのときはVM、スケーリング・ダイアゴナルのときは両方)を追加する。この実施は、ワークロードに反映され、ステップ1321において、追加のリソース/VMが、ワークロードに追加される。ステップ1331において、ワークロードは、ワークロードで受け取られるトラフィック(要求)を処理し続ける(処理は今や追加されたリソース/VMによって実行される)。予め定義されたプロセス1330において、プロセスは、ワークロードの性能を監視する(処理の詳細に関しては図14および対応する本文を参照されたい)。監視の結果は、スケーリング結果のメモリ領域1340(スケール・アップの結果か、スケール・アウトか、またはスケール・ダイアゴナルの結果かのいずれか)に記憶される。
十分な時間がワークロードの性能の監視に費やされたかどうかに関して、プロセスによって判定がなされる(判定1350)。十分な時間がワークロードの監視に費やされていない場合、判定1350は、ワークロードの監視を継続し、メモリ領域1340にスケーリング結果を追加し続けるために予め定義されたプロセス1330にループして戻る「いいえ」の分岐に分岐する。このループは、十分な時間がワークロードの監視に費やされるまで継続し、十分な時間がワークロードの監視に費やされる時点で、判定1350は、さらなる処理のために「はい」の分岐に分岐する。
メモリ領域1340に記憶されたスケーリング結果に反映される性能の向上が予測される性能の向上に基づいて受け入れられるかどうかに関して、プロセスによって判定がなされる(判定1360)。性能の向上が受け入れられる場合、判定1360は、「いいえ」の分岐に分岐し、それから、ワークロードを再プロファイリングすべきか、またはワークロードに二次的なスケーリング方法を使用すべきかどうかに関して、プロセスによって判定がなされる(判定1370)。判定がワークロードを再プロファイリングすることである場合、判定1370は、「再プロファイリング」の分岐に分岐し、それから、予め定義されたプロセス1380において、スケーリング・プロファイルが、ワークロードに関して再生成され(処理の詳細に関しては図12および対応する本文を参照されたい)、処理は、1385で呼び出し元のルーチンに戻る。
一方、判定が二次的なスケーリング方法を使用することである場合、判定1370は、「二次を使用する」の分岐に分岐し、それから、ステップ1390において、プロセスは、ワークロードのスケーリング・プロファイルから別のスケーリング方法を選択し、二次的なスケーリング方法を使用するときに予測される性能の向上を読み取る。次いで、処理は、二次的なスケーリング方法を実施するためにステップ1320にループして戻る。このループは、スケーリング方法のうちの1つの性能の向上が受け入れられる(判定1360が「はい」の分岐に分岐し、処理が1395で呼び出し元のルーチンに戻る)まで、またはワークロードを再プロファイリングするための判定がなされる(判定1370が「再プロファイリング」の分岐に分岐する)とき、その他のスケーリング方法が選択され、使用されるようにして継続する。
図14は、分析エンジンを使用してワークロードの性能を監視するために使用される論理を示す流れ図を示す。処理は、1400で始まり、それから、ステップ1410において、プロセスは、システムの構成要素に適用するためのマップを生成する。ステップ1420において、プロセスは、メモリ領域1425に記憶されるそれぞれのシステムの構成要素に関する監視データを収集する。
ステップ1430において、プロセスは、各指標(index)の平均、ピーク、および加速(acceleration)を計算し、計算をメモリ領域1425に記憶する。ステップ1440において、プロセスは、メモリ領域1425に既に記憶されている監視データに関連してデータ・ストア1435からのボトルネックおよび閾値データを使用することによってボトルネックに関する特性および閾値のポリシーを追跡する。
いずれかの閾値またはボトルネックが破られるかどうかに関して、プロセスによって判定がなされる(判定1445)。いずれかの閾値またはボトルネックが破られる場合、判定1445は、「はい」の分岐に分岐し、それから、ステップ1450において、プロセスは、処理されたデータを処理するために分析エンジンに送る1470。一方、閾値またはボトルネックが破られない場合、判定1445は、ステップ1450を回避する「いいえ」の分岐に分岐する。
ワークロードの性能の監視を継続すべきかどうかに関して、プロセスによって判定がなされる(判定1455)。監視が継続すべきである場合、判定1455は、「はい」の分岐に分岐し、ステップ1460において、プロセスは、ワークロードに対応するワークロードのスケーリング・プロファイルの判定のエントリ(decision entry)を追跡し、確認する。ステップ1465において、プロセスは、ワークロードの将来の最適化のために判定のエントリに注釈を付ける。次いで、処理は、上述のように監視データを収集し、データを処理するためにステップ1420にループして戻る。このループは、ワークロードの性能の監視を停止する判定がなされるまで継続し、ワークロードの性能の監視を停止する判定がなされる時点で、判定1455は、「いいえ」の分岐に分岐し、処理は、1458で呼び出し元のルーチンに戻る。
分析エンジンの処理は、1470で開始するところが示されており、それから、ステップ1475において、分析エンジンは、監視装置から閾値またはボトルネックの違反および監視データを受け取る。ステップ1480において、分析エンジンは、違反に基づいて新しいプロビジョニング要求を生成する。判定のエントリが違反に関して既に存在するかどうかに関して、分析エンジンによって判定がなされる(判定1485)。判定のエントリが既に存在する場合、判定1485は、「はい」の分岐に分岐し、それから、ステップ1490において、分析エンジンは、閾値またはボトルネックの違反および監視データに基づいてプロファイルのエントリを更新する。一方、判定のエントリがまだ存在しない場合、判定1485は、「いいえ」の分岐に分岐し、それから、ステップ1495において、分析エンジンは、所与のボトルネック/閾値の違反に関するそれぞれの特性に関するランク付けを生成し、ワークロードに関するワークロードのスケーリング・プロファイルのプロファイルのエントリを生成する。
図15は、クラウドのコマンドの傍受を使用するフラクショナル・リザーブ高可用性(HA)クラウドを実装する際に使用される構成要素を示すコンポーネント図である。HAクラウド・レプリケーション・サービス(HA Cloud Replication Service)1500は、アクティブ・クラウド環境(Active Cloud Environment)1560およびより小さなわずかなパッシブ・クラウド環境(Passive Cloud Environment)を提供する。ウェブ・アプリケーション1500などのアプリケーションは、ワークロードの中断のない性能を持つためにHAクラウド・レプリケーション・サービスを利用する。ウェブ・アプリケーションなどのアプリケーションは、データベース1520、ユーザ・レジストリ1530、ゲートウェイ1540、および概してアプリケーション・プログラミング・インターフェース(API)を使用してアクセスされるその他のサービスなどのさまざまな構成要素を有する可能性がある。
示されるように、アクティブ・クラウド環境1560は、ワークロードが直面する現在のレベルのトラフィックまたは負荷を処理するために必要とされるリソース(仮想マシン(VM)、コンピューティング・リソースなど)を与えられる。反対に、パッシブ・クラウド環境1570は、アクティブ・クラウド環境よりも少ないリソースを与えられる。アクティブ・クラウド環境1560は、好ましいクラウド・プロバイダなどのクラウド・プロバイダにあり、一方、パッシブ・クラウド環境1570は、二次的なクラウド・プロバイダなどの別のクラウド・プロバイダにある。
図16に示される筋書きにおいては、アクティブ・クラウド環境1560に障害が起こり、それが、パッシブ・クラウド環境にアクティブな役割を引き継がせ、アクティブ・クラウド環境によって前に処理されていたワークロードの処理を開始させる。図17〜19でさらに詳細に説明されるように、アクティブ・クラウド環境にリソースを提供するために使用されるコマンドが傍受され、キューに記憶される。次いで、コマンドのキューが、パッシブ・クラウド環境がアクティブ・クラウド環境によって前に処理されていたワークロードを適切に処理することができるようにパッシブ・クラウド環境を適切にスケーリングするために使用される。
図17は、クラウドのコマンドの傍受を使用するフラクショナル・リザーブ高可用性(HA)クラウドを実装するために使用される論理を示す流れ図を示す。プロセスは、1700で始まり、それから、ステップ1710において、プロセスは、主(アクティブ)クラウド環境のためのクラウド・インフラストラクチャに関する構成要素およびデータを取得する。構成要素およびデータのリストは、1つまたは複数のワークロードに関連するレプリケーション・ポリシーを記憶するために使用されるデータ・ストア1720から取得される。
ステップ1730において、プロセスは、主(アクティブ)クラウド環境1560を初期化し、ワークロードのサービスを開始する。ステップ1740において、プロセスは、アクティブ・クラウド環境よりも少ないリソースを有する副(パッシブ)クラウド環境のためのクラウド・インフラストラクチャに関する構成要素およびデータを取得する。ステップ1750において、プロセスは、アクティブ・クラウド環境と比較してバックアップ/パッシブ/スタンバイの役割を引き継ぐ副(パッシブ)クラウド環境を初期化し、上述のように、アクティブ・クラウド環境によって使用されるよりも少ないリソースを使用する。
アクティブ・クラウド環境とパッシブ・クラウド環境の両方が初期化された後、予め定義されたプロセス1760において、プロセスは、クラウドのコマンドの傍受を実行する(処理の詳細に関しては図18および対応する本文を参照されたい)。クラウドのコマンドの傍受は、傍受されたコマンドをコマンド・キュー1770に記憶する。
アクティブ・クラウド環境がまだ動作しているかどうかに関して、プロセスによって判定がなされる(判定1775)。アクティブ・クラウド環境がまだ動作している場合、判定1775は、図18に詳細に示されるようにクラウドのコマンドの傍受を継続するためにループして戻る「はい」の分岐に分岐する。このループは、アクティブ・クラウド環境のような点がもはや動作していなくなるまで継続し、アクティブ・クラウド環境のような点がもはや動作していなくなる時点で、判定1775は、「いいえ」の分岐に分岐する。
アクティブ・クラウド環境がもはや動作していないとき、予め定義されたプロセス1780において、プロセスは、パッシブ・クラウド環境をアクティブ・クラウド環境になるように切り替え、キュー1770に記憶された傍受されたクラウドのコマンドを利用する(処理の詳細に関しては図19および対応する本文を参照されたい)。示されるように、これは、パッシブ・クラウド環境1570を適切にスケーリングさせ、新しいアクティブ・クラウド環境1790にさせる。
図18は、クラウドのコマンドの傍受で使用される論理を示す流れ図を示す。プロセスは、1800で始まり、それから、ステップ1810において、プロセスは、アクティブ・クラウド環境1560でクラウド・エンティティ(VM、VLAN、イメージなど)を生成するために使用されるコマンドおよびAPIを受け取る(傍受する)。コマンドおよびAPIは、システム管理者などの要求元1820から受け取られる。
ステップ1825において、プロセスは、受け取られたコマンドまたはAPIに従ってアクティブ・クラウド環境でクラウド・エンティティを生成する(例えば、アクティブ・クラウド環境に対して追加のVM、コンピューティング・リソースなどを割り当てるなど)。ステップ1830において、プロセスは、コマンドまたはAPIをコマンド・キュー1770に入れる。ステップ1840において、プロセスは、データ・ストア1720からポリシーを取得することによってパッシブ(バックアップ)クラウド環境のレプリケーション・ポリシーを調べる。例えば、パッシブ・クラウド環境を最小構成のままにするのではなく、ポリシーは、アクティブ・クラウド環境よりも遅い速さでパッシブ・クラウド環境を大きくする(スケーリングする)ことである可能性がある。したがって、5つのVMがアクティブ・クラウド環境に割り当てられるとき、ポリシーは、パッシブ・クラウド環境に追加のVMを割り当てることである可能性がある。
ポリシーがパッシブ・クラウド環境で任意の追加のクラウド・エンティティを生成することであるかどうかに関して、プロセスによって判定がなされる(判定1850)。ポリシーがパッシブ・クラウド環境でクラウド・エンティティを生成することである場合、判定1850は、そのようなエンティティを生成するために「はい」の分岐に分岐する。
ステップ1860において、プロセスは、コマンドまたはAPIの通りにパッシブ・クラウドでクラウド・エンティティのすべてまたは一部を生成する。コマンド/APIは、アクティブ・クラウド環境で使用されるコマンド/APIと異なる場合、パッシブ・クラウド環境に変換される必要がある可能性があることに留意されたい。これは、パッシブ・クラウド環境1570に対する調整(スケール変更)をもたらす。ステップ1870において、プロセスは、アクティブおよびパッシブ・クラウドのオブジェクトをリンクするためにエンティティのペアを作る。ステップ1875において、プロセスは、データ・リポジトリ1880にエンティティ・ペア作成データを記憶する。ステップ1890において、プロセスは、レプリケーション・ポリシーに基づいてパッシブ・クラウド環境で既に生成されたクラウド・エンティティ(ステップ1860)に基づいて最後のコマンドまたはAPIを減ずる/削除することによってコマンド・キュー1770に記憶されたコマンド/APIを調整する。判定1850に戻ると、ポリシーがこのコマンド/APIに基づいてパッシブ・クラウド環境でクラウド・エンティティを生成することでない場合、判定1850は、ステップ1860から1890までを回避する「いいえ」の分岐に分岐する。
ステップ1895において、プロセスは、アクティブ・クラウド環境に向けた次のコマンドまたはAPIが受け取られるのを待ち、アクティブ・クラウド環境に向けた次のコマンドまたはAPIが受け取られる時点で、プロセスは、上述のように、受け取られたコマンドまたはAPIを処理するためにステップ1810にループして戻る。
図19は、パッシブ・クラウドをアクティブ・クラウド環境に切り替えるために使用される論理を示す流れ図を示す。処理は、アクティブ・クラウド環境が障害を起こしたときに1900で始まる。ステップ1910において、プロセスは、切り替えのときのパッシブ・クラウド環境1570の現在の状態(スケール)を保存する。パッシブ・クラウド環境の現在の状態は、データ・ストア1920に記憶される。
ステップ1925において、プロセスは、パッシブ・クラウド環境にすべてのトラフィックを自動的にルーティングし、パッシブ・クラウド環境1570が、新しいアクティブ・クラウド環境1790になる。次に、コマンド・キューが、前のアクティブ・クラウド環境のために実行されたスケーリングに従って新しいアクティブ・クラウド環境をスケーリングするために処理される。
ステップ1930において、プロセスは、コマンド・キュー1770から第1のキューに入れられたコマンドまたはAPIを選択する。ステップ1940において、プロセスは、選択されたコマンドまたはAPIに従って新しいアクティブ・クラウド環境1790でクラウド・エンティティを生成する。コマンド/APIは、アクティブ・クラウド環境で使用されるコマンド/APIと異なる場合、パッシブ・クラウド環境に変換される必要がある可能性があることに留意されたい。処理すべきさらなるキューに入れられたコマンドまたはAPIが存在するかどうかに関して、プロセスによって判定がなされる(判定1950)。処理すべきさらなるキューに入れられたコマンドまたはAPIが存在する場合、判定1950は、上述のように次のキューに入れられたコマンド/APIを選択し、処理するためにステップ1930にループして戻る「はい」の分岐に分岐する。このループは、コマンド・キュー1770からのコマンド/APIのすべてが処理されるまで継続し、コマンド・キュー1770からのコマンド/APIのすべてが処理される時点で、判定1950は、さらなる処理のために「いいえ」の分岐に分岐する。
元のアクティブ・クラウド環境がオンラインに戻るときに元のアクティブ・クラウド環境に切り替えて戻すポリシーが存在するかどうかに関して、プロセスによって判定がなされる(判定1960)。元のアクティブ・クラウド環境がオンラインに戻るときに元のアクティブ・クラウド環境に切り替えて戻すポリシーが存在する場合、判定1960は、「はい」の分岐に分岐し、それから、ステップ1970において、プロセスは、元のアクティブ・クラウド環境がオンラインに戻り、動作するのを待つ。元のアクティブ・クラウド環境がオンラインに戻り、動作するとき、ステップ1975において、プロセスは、すべてのトラフィックを最初のアクティブ・クラウド環境に戻すように自動的にルーティングし、ステップ1980において、新しいアクティブ・クラウド環境が、パッシブ・クラウド環境に戻すようにリセットされ、パッシブ・クラウド環境が、そのような状態情報がデータ・ストア1920から取得されるようにして、切り替えが起こったときのパッシブ・クラウド環境のスケールに戻すようにスケーリングされる。
判定1960に戻ると、元のアクティブ・クラウド環境がオンラインに戻るときに元のアクティブ・クラウド環境に切り替えて戻すポリシーが存在しない場合、判定1960は、「いいえ」の分岐に分岐し、それから、ステップ1990において、コマンド・キュー1770は、新しいアクティブ・クラウド環境でエンティティを生成するために使用されたコマンド/APIを記憶するために使用され得るように消去される。予め定義されたプロセス1995において、プロセスは、このクラウドが(新しい)アクティブ・クラウド環境になり、その他のクラウド(最初のアクティブ・クラウド環境)が今やパッシブ・クラウド環境としての役割を引き継ぐようにしてクラウドのコマンドの傍受を使用するフラクショナル・リザーブ高可用性ルーチンを実行する(処理の詳細に関しては図17および対応する本文を参照されたい)。
図20は、クラウドのワークロードに関する水平スケーリング・パターンを決定する際に使用される構成要素を示すコンポーネント図である。クラウド・ワークロード・ロード・バランサ2000は、プロダクション(production)環境2010および1つまたは複数のミラー環境で実行されるワークロードの性能を監視するための監視構成要素を含む。プロダクション環境の仮想マシン(VM)は、CPUの特性、メモリの特性、ディスクの特性、キャッシュの特性、ファイル・システムの種類の特性、ストレージの種類の特性、オペレーティング・システムの特性、およびその他の特性を含むいくつかの調整可能な特性を有する。ミラー環境は、プロダクション環境と比較されるときに1つまたは複数が調整される同じ特性を含む。クラウド・ワークロード・ロード・バランサは、プロダクション環境とミラー環境の両方からの性能データを監視して、ワークロードを実行するために使用されるVMの特性の調整を最適化する。
図21は、余ったクラウドの能力を使用することによって仮想マシン(VM)の特性をリアルタイムで再構築する際に使用される論理を示す流れ図を示す。プロセスは、2100で始まり、それから、ステップ2110において、プロセスは、データ・ストア2120から取得された1組のプロダクション設定の特性を使用してプロダクション環境のVM2010を設定する。
ステップ2125において、プロセスは、VMの調整がデータ・ストア2130から取得されるようにしてミラー環境2030で使用するためのVMの調整の第1の組を選択する。ミラー環境で実行される追加のVMによって試験されるさらなる調整が存在するかどうかに関して、プロセスによって判定がなされる(判定2140)。示されるように、複数のVMが、VMのそれぞれが1つまたは複数のVMの調整を使用して実行されるようにしてインスタンス化される可能性があり、したがって、ミラー環境のVM(VM2031、2032、および2033)のそれぞれが特性の異なる構成で実行されている。試験すべきさらなる調整が存在する場合、判定2140は、ミラー環境で使用するためのVMの調整の次の組を選択するためにループして戻り、調整の組に基づいて別のVMを設定する「はい」の分岐に分岐する。このループは、試験すべきさらなる調整が存在しなくなるまで継続し、試験すべきさらなる調整が存在しなくなる時点で、判定2140は、さらなる処理のために「いいえ」の分岐に分岐する。
ステップ2145において、プロセスが、要求元2150から要求を受け取る。ステップ2160において、要求は、各VM(プロダクションVMおよびミラー環境のVMのそれぞれ)によって処理され、タイミングが、VMのそれぞれが要求を処理するためにどれだけ時間がかかるかに関して測定される。しかし、プロセスは、プロダクションVMを除くすべてのVMによる結果の返還を抑制することに留意されたい。タイミングの結果は、データ・ストア2170に記憶される。試験を継続すべきかどうかに関して、プロセスによって判定がなされる(判定2175)。さらなる試験が望まれる場合、判定2175は、次の要求を受け取り、処理し、要求を処理するためにVMのそれぞれによってかかる時間を記録するためにループして戻る「はい」の分岐に分岐する。このループは、さらなる試験が望まれなくなるまで継続し、さらなる試験が望まれなくなる時点で、判定2175は、さらなる処理のために「いいえ」の分岐に分岐する。
ミラー環境2030で実行される試験VM(VM2031、2032、または2033)のうちの1つがプロダクションVMよりも高速に実行されるかどうかに関して、プロセスによって判定がなされる(判定2180)。一実施形態において、試験VMは、所与の閾値因子(例えば、20パーセント高速など)の分だけプロダクションVMよりも高速であることが必要である。試験VMのうちの1つがプロダクションVMよりも高速に要求を実行した場合、判定2180は、さらなる処理のために「はい」の分岐に分岐する。
ステップ2185において、プロセスは、最も高速な試験環境のVMをプロダクション環境のVMと入れ替え、したがって、試験VMが今やプロダクションVMとして動作しており、要求元に結果を返す。ステップ2190において、プロセスは、最も高速な試験環境のVMに対してなされた調整を、データ・ストア2120に記憶されるプロダクション設定に保存する。一方、試験VMのいずれもプロダクションVMより高速に実行されない場合、判定2180は、「いいえ」の分岐に分岐し、それから、ステップ2195において、プロセスは、試験VMのいずれとの入れ替えもせずにプロダクション環境のVMをそのまま維持する。
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、(1つまたは複数の)規定された論理的な機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された2つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組合せとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組合せによって実装され得ることも認められるであろう。
本発明の特定の実施形態が示され、説明されたが、本明細書の教示に基づいて、本発明および本発明のより広い態様から逸脱することなく改変および変更がなされ得ることは、当業者に明らかであろう。したがって、添付の特許請求の範囲は、その範囲内に、本発明の真の精神および範囲内にあるすべてのそのような改変および変更を包含することになる。さらに、本発明は、添付の特許請求の範囲によってのみ定義されることを理解されたい。導入される請求項の要素の具体的な数が意図される場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような限定は存在しないことが、当業者にさらに理解されるであろう。非限定的な例に関して、理解の助けとして、添付の特許請求の範囲は、請求項の要素を導入するための導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」の使用を含む。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含むときでさえも、不定冠詞「a」または「an」による請求項の要素の導入が、そのように導入される請求項の要素を含む任意の特定の請求項を、単に1つのそのような要素を含む発明に限定するということを示唆していると解釈されるべきではなく、同じことが、請求項における定冠詞の使用にも当てはまる。
100 情報処理システム
110 プロセッサ
112 プロセッサ・インターフェース・バス
115 ノースブリッジ
118 PCI Expressバス
119 バス
120 システム・メモリ
125 グラフィックス・コントローラ
130 ディスプレイ・デバイス
135 サウスブリッジ
140 USBコントローラ
142 デバイス
144 キーボードおよびトラックパッド
145 不揮発性ストレージ・デバイス
146 Bluetoothデバイス
148 赤外線(IR)受信機
150 ウェブカメラ(カメラ)
155 ExpressCard
158 バス
160 オーディオ回路
162 光デジタルオーディオ入力ポート
164 光デジタル出力およびヘッドフォン・ジャック
166 内蔵スピーカ
168 内蔵マイクロフォン
170 イーサネット・コントローラ
172 PCIまたはPCI Expressバス
175 LANデバイス
184 バス
185 不揮発性ストレージ・デバイス
188 シリアルATA(SATA)バス
190 光ストレージ・デバイス
195 トラステッド・プラットフォーム・モジュール(TPM)
196 ROM
198 「レガシー」I/Oデバイス
200 コンピュータ・ネットワーク
210 ハンドヘルド・コンピュータ/モバイル電話
220 ペンまたはタブレット・コンピュータ
230 ラップトップまたはノートブック・コンピュータ
240 ワークステーション
250 パーソナル・コンピュータ・システム
260 サーバ
265 不揮発性データ・ストア
270 メインフレーム・コンピュータ
275 不揮発性データ・ストア
280 情報処理システム
285 不揮発性データ・ストア
301 人事管理
302 財務
303 ソーシャル・コネクション
311 HRプロファイル
312 財務プロファイル
313 ソーシャル・コネクション・プロファイル
321 クラウド・グループ
322 クラウド・グループ
323 クラウド・グループ
331 ノード
332 ノード
333 ノード
334 ノード
335 ノード
336 ノード
337 ノード
343 IPグループ
344 IPグループ
351 CGプロファイル
352 CGプロファイル
353 CGプロファイル
360 ネットワーク・バックプレーン
362 リンク
363 リンク
364 ネットワーク・リンク
365 ネットワーク・リンク
366 ネットワーク・リンク
367 ネットワーク・リンク
540 データ・ストア
605 データ・ストア
615 メモリ領域
625 メモリ領域
645 メモリ領域
655 メモリ領域
675 メモリ領域
685 メモリ領域
715 メモリ領域
725 メモリ領域
755 メモリ領域
805 データ・ストア
825 メモリ領域
845 メモリ領域
905 メモリ領域
935 メモリ領域
990 メモリ領域
1000 クラウド・グループ
1010 仮想マシン(VM)
1020 スケール「アップ」された変更されたVM
1021 VM
1030 スケール・アウトされた複製されたVM
1031 VM
1032 VM
1033 VM
1040 メモリ領域
1050 メモリ領域
1070 データ・ストア
1211 ワークロード「A」
1212 ワークロード「B」
1340 メモリ領域
1425 メモリ領域
1435 データ・ストア
1500 HAクラウド・レプリケーション・サービス
1520 データベース
1530 ユーザ・レジストリ
1540 ゲートウェイ
1560 アクティブ・クラウド環境
1570 パッシブ・クラウド環境
1720 データ・ストア
1770 コマンド・キュー
1790 アクティブ・クラウド環境
1820 要求元
1880 データ・リポジトリ
1920 データ・ストア
2000 クラウド・ワークロード・ロード・バランサ
2010 プロダクション環境
2030 ミラー環境
2031 VM
2032 VM
2033 VM
2120 データ・ストア
2130 データ・ストア
2150 要求元
2170 データ・ストア

Claims (16)

  1. プロセッサおよびメモリを含む情報処理システムにおいて、クラウド・コンピューティング環境を動的に変更する方法であって、
    複数のクラウド・グループのそれぞれで実行される複数の展開されたワークロードを特定するステップであって、前記クラウド・コンピューティング環境が、前記複数のクラウド・グループのそれぞれを含む、前記特定するステップと、
    前記複数の展開されたワークロードのそれぞれに1組のコンピューティング・リソースを割り振るステップであって、前記1組のコンピューティング・リソースが、前記クラウド・コンピューティング環境で利用可能な複数のコンピューティング・リソースの一部である、前記割り振るステップと、
    前記クラウド・グループのそれぞれで実行される前記ワークロードに割り振られるコンピューティング・リソースの組の合計に基づいて前記複数のクラウド・グループの間に前記複数のコンピューティング・リソースを割り当てるステップとを含む、方法。
  2. 前記ワークロードのそれぞれに対応する優先度を計算するステップであって、コンピューティング・リソースの前記組の割り振りが、前記ワークロードの優先度に基づき、前記優先度が、テナントのサービス品質保証契約(SLA)、およびクラウド・グループ・プロファイルに含まれるワークロードの優先順位付けの要因に基づく、前記計算するステップをさらに含む、請求項1に記載の方法。
  3. 前記複数のコンピューティング・リソースが、前記複数のワークロードのそれぞれに関して設定された1つまたは複数のコンピューティングの要件に対応し、前記コンピューティングの要件のうちの少なくとも1つが、ファイアウォールの設定、1つまたは複数の定義されたロード・バランサのポリシー、アプリケーション・サーバのクラスタに対する更新、更新されたアプリケーションの構成、セキュリティ・トークン、ネットワーク構成、構成管理データベース(CMDB)の設定、システムの監視の閾値の設定、およびアプリケーションの監視の閾値の設定からなる群から選択される、請求項1に記載の方法。
  4. 前記複数のコンピューティング・リソースを割り振る前記ステップが、
    前記クラウド・グループのうちの第1のクラウド・グループから前記クラウド・グループのうちの第2のクラウド・グループに選択されたコンピューティング・リソースを再割り振りするステップをさらに含む、請求項1に記載の方法。
  5. 新しいワークロードが前記クラウド・グループのうちの前記第2のクラウド・グループに入るステップであって、前記第1のクラウド・グループから前記第2のクラウド・グループへの前記選択されたコンピューティング・リソースの再割り振りを引き起こす前記入るステップをさらに含む、請求項4に記載の方法。
  6. 前記複数のコンピューティング・リソースを割り振る前記ステップが、
    1つまたは複数のクラウド・グループ・プロファイルを更新するステップであって、前記クラウド・グループ・プロファイルのそれぞれが、前記クラウド・グループのうちの1つに対応する、前記更新するステップと、
    前記クラウド・グループ・プロファイルに対する更新に基づいて前記クラウド・グループのうちの第1のクラウド・グループから前記クラウド・グループのうちの第2のクラウド・グループに選択されたコンピューティング・リソースを再割り振りするステップであって、前記更新のうちの少なくとも1つが、テナントの使用の変化、実行されるワークロードの変化、ワークロードが前記クラウド・グループのうちの1つに入ること、およびワークロードが前記クラウド・グループのうちの1つを離脱することからなる群から選択される、前記再割り振りするステップとをさらに含む、請求項1に記載の方法。
  7. 前記クラウド・コンピューティング環境が、サービスとしてのソフトウェア(SaaS)、サービスとしてのインフラストラクチャ(IaaS)、およびサービスとしてのプラットフォーム(PaaS)からなる群から選択される、請求項1に記載の方法。
  8. 1つまたは複数のプロセッサと、
    前記プロセッサのうちの少なくとも1つに結合されたメモリと、
    クラウド・コンピューティング環境を動的に変更するための、前記メモリに記憶され、前記プロセッサのうちの少なくとも1つによって実行される1組の命令であって、
    複数のクラウド・グループのそれぞれで実行される複数の展開されたワークロードを特定するアクションであって、前記クラウド・コンピューティング環境が、前記複数のクラウド・グループのそれぞれを含む、前記特定するアクション、
    前記複数の展開されたワークロードのそれぞれに1組のコンピューティング・リソースを割り振るアクションであって、前記1組のコンピューティング・リソースが、前記クラウド・コンピューティング環境で利用可能な複数のコンピューティング・リソースの一部である、前記割り振るアクション、および
    前記クラウド・グループのそれぞれで実行される前記ワークロードに割り振られるコンピューティング・リソースの組の合計に基づいて前記複数のクラウド・グループの間に前記複数のコンピューティング・リソースを割り当てるアクションを実行する、前記1組の命令とを含む情報処理システム。
  9. さらに、前記アクションが、
    前記ワークロードのそれぞれに対応する優先度を計算するアクションであって、コンピューティング・リソースの前記組の割り振りが、前記ワークロードの優先度に基づき、前記優先度が、テナントのサービス品質保証契約(SLA)、およびクラウド・グループ・プロファイルに含まれるワークロードの優先順位付けの要因に基づく、前記計算するアクションをさらに含む、請求項8に記載の情報処理システム。
  10. 前記複数のコンピューティング・リソースが、前記複数のワークロードのそれぞれに関して設定された1つまたは複数のコンピューティングの要件に対応し、前記コンピューティングの要件のうちの少なくとも1つが、ファイアウォールの設定、1つまたは複数の定義されたロード・バランサのポリシー、アプリケーション・サーバのクラスタに対する更新、更新されたアプリケーションの構成、セキュリティ・トークン、ネットワーク構成、構成管理データベース(CMDB)の設定、システムの監視の閾値の設定、およびアプリケーションの監視の閾値の設定からなる群から選択される、請求項8に記載の情報処理システム。
  11. 前記複数のコンピューティング・リソースを割り振る前記アクションが、
    前記クラウド・グループのうちの第1のクラウド・グループから前記クラウド・グループのうちの第2のクラウド・グループに選択されたコンピューティング・リソースを再割り振りするアクションをさらに含む、請求項8に記載の情報処理システム。
  12. さらに、前記アクションが、
    新しいワークロードが前記クラウド・グループのうちの前記第2のクラウド・グループに入るアクションであって、前記第1のクラウド・グループから前記第2のクラウド・グループへの前記選択されたコンピューティング・リソースの再割り振りを引き起こす前記入るアクションをさらに含む、請求項11に記載の情報処理システム。
  13. 前記複数のコンピューティング・リソースを割り振る前記アクションが、
    1つまたは複数のクラウド・グループ・プロファイルを更新するアクションであって、前記クラウド・グループ・プロファイルのそれぞれが、前記クラウド・グループのうちの1つに対応する、前記更新するアクションと、
    前記クラウド・グループ・プロファイルに対する更新に基づいて前記クラウド・グループのうちの第1のクラウド・グループから前記クラウド・グループのうちの第2のクラウド・グループに選択されたコンピューティング・リソースを再割り振りするアクションであって、前記更新のうちの少なくとも1つが、テナントの使用の変化、実行されるワークロードの変化、ワークロードが前記クラウド・グループのうちの1つに入ること、およびワークロードが前記クラウド・グループのうちの1つを離脱することからなる群から選択される、前記再割り振りするアクションとをさらに含む、請求項8に記載の情報処理システム。
  14. 前記クラウド・コンピューティング環境が、サービスとしてのソフトウェア(SaaS)、サービスとしてのインフラストラクチャ(IaaS)、およびサービスとしてのプラットフォーム(PaaS)からなる群から選択される、請求項8に記載の情報処理システム。
  15. 請求項1〜7の何れか1項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
  16. 前記コンピュータ・プログラムをコンピュータ可読ストレージ媒体に記録した、ストレージ媒体。
JP2014220920A 2013-12-13 2014-10-30 クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム Pending JP2015115059A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/106510 2013-12-13
US14/106,510 US20150172204A1 (en) 2013-12-13 2013-12-13 Dynamically Change Cloud Environment Configurations Based on Moving Workloads

Publications (1)

Publication Number Publication Date
JP2015115059A true JP2015115059A (ja) 2015-06-22

Family

ID=53369862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014220920A Pending JP2015115059A (ja) 2013-12-13 2014-10-30 クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US20150172204A1 (ja)
JP (1) JP2015115059A (ja)
CN (1) CN104714847A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714412B1 (ko) 2016-12-28 2017-03-09 주식회사 티맥스클라우드 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치
JP2019533256A (ja) * 2016-11-01 2019-11-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited アプリケーションリンク拡張方法、装置、及びシステム
WO2020158452A1 (ja) * 2019-01-29 2020-08-06 日本電信電話株式会社 仮想化基盤および仮想化基盤のスケーリング管理方法
JP2020126498A (ja) * 2019-02-05 2020-08-20 富士通株式会社 サーバシステム及びサーバ資源割り当てプログラム
JP2021504777A (ja) * 2017-11-21 2021-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分散コンピューティング環境における作業負荷の自動対角スケーリング

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288361B2 (en) 2013-06-06 2016-03-15 Open Text S.A. Systems, methods and computer program products for fax delivery and maintenance
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US9996389B2 (en) * 2014-03-11 2018-06-12 International Business Machines Corporation Dynamic optimization of workload execution based on statistical data collection and updated job profiling
US9871745B2 (en) * 2014-11-12 2018-01-16 International Business Machines Corporation Automatic scaling of at least one user application to external clouds
US10437506B2 (en) * 2015-08-17 2019-10-08 Microsoft Technology Licensing Llc Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems
US10721098B2 (en) 2015-08-28 2020-07-21 Vmware, Inc. Optimizing connectivity between data centers in a hybrid cloud computing system
US10721161B2 (en) 2015-08-28 2020-07-21 Vmware, Inc. Data center WAN aggregation to optimize hybrid cloud connectivity
US10547540B2 (en) * 2015-08-29 2020-01-28 Vmware, Inc. Routing optimization for inter-cloud connectivity
US9424525B1 (en) 2015-11-18 2016-08-23 International Business Machines Corporation Forecasting future states of a multi-active cloud system
US20170171026A1 (en) * 2015-12-14 2017-06-15 Microsoft Technology Licensing, Llc Configuring a cloud from aggregate declarative configuration data
US10250452B2 (en) 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
US10554751B2 (en) * 2016-01-27 2020-02-04 Oracle International Corporation Initial resource provisioning in cloud systems
CN106020933B (zh) * 2016-05-19 2018-12-28 山东大学 基于超轻量虚拟机的云计算动态资源调度系统及方法
GB2551200B (en) * 2016-06-10 2019-12-11 Sophos Ltd Combined security and QOS coordination among devices
CN106131158A (zh) * 2016-06-30 2016-11-16 上海天玑科技股份有限公司 一种云数据中心环境下基于云租户信用度的资源调度装置
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
US10389586B2 (en) * 2017-04-04 2019-08-20 International Business Machines Corporation Configuration and usage pattern of a cloud environment based on iterative learning
CN107861863A (zh) * 2017-08-24 2018-03-30 平安普惠企业管理有限公司 运行环境切换方法、设备及计算机可读存储介质
EP3679704B1 (en) 2017-09-05 2023-10-04 Nokia Solutions and Networks Oy Method and apparatus for sla management in distributed cloud environments
US11663052B2 (en) * 2018-01-08 2023-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive application assignment to distributed cloud resources
US10620934B2 (en) * 2018-01-24 2020-04-14 Citrix Systems, Inc. Systems and methods for versioning a cloud environment for a device
CN111447103B (zh) * 2020-03-09 2022-01-28 杭州海康威视系统技术有限公司 虚拟设备的管理系统及方法、电子设备及介质
WO2022037612A1 (zh) * 2020-08-20 2022-02-24 第四范式(北京)技术有限公司 提供应用构建服务的方法及应用构建平台、应用部署方法和系统
US11907766B2 (en) 2020-11-04 2024-02-20 International Business Machines Corporation Shared enterprise cloud

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827283B2 (en) * 2003-02-19 2010-11-02 International Business Machines Corporation System for managing and controlling storage access requirements
US8205205B2 (en) * 2007-03-16 2012-06-19 Sap Ag Multi-objective allocation of computational jobs in client-server or hosting environments
US8424059B2 (en) * 2008-09-22 2013-04-16 International Business Machines Corporation Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
US20100115095A1 (en) * 2008-10-31 2010-05-06 Xiaoyun Zhu Automatically managing resources among nodes
US20110016473A1 (en) * 2009-07-20 2011-01-20 Srinivasan Kattiganehalli Y Managing services for workloads in virtual computing environments
US8874744B2 (en) * 2010-02-03 2014-10-28 Vmware, Inc. System and method for automatically optimizing capacity between server clusters
US8650299B1 (en) * 2010-02-03 2014-02-11 Citrix Systems, Inc. Scalable cloud computing
US9069610B2 (en) * 2010-10-13 2015-06-30 Microsoft Technology Licensing, Llc Compute cluster with balanced resources
US8429659B2 (en) * 2010-10-19 2013-04-23 International Business Machines Corporation Scheduling jobs within a cloud computing environment
US20120102189A1 (en) * 2010-10-25 2012-04-26 Stephany Burge Dynamic heterogeneous computer network management tool
US8832219B2 (en) * 2011-03-01 2014-09-09 Red Hat, Inc. Generating optimized resource consumption periods for multiple users on combined basis
US9069890B2 (en) * 2011-04-20 2015-06-30 Cisco Technology, Inc. Ranking of computing equipment configurations for satisfying requirements of virtualized computing environments based on an overall performance efficiency
US8832239B2 (en) * 2011-09-26 2014-09-09 International Business Machines Corporation System, method and program product for optimizing virtual machine placement and configuration
DE102012217202B4 (de) * 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US8756609B2 (en) * 2011-12-30 2014-06-17 International Business Machines Corporation Dynamically scaling multi-tier applications vertically and horizontally in a cloud environment
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
CN102681889B (zh) * 2012-04-27 2015-01-07 电子科技大学 一种云计算开放平台的调度方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019533256A (ja) * 2016-11-01 2019-11-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited アプリケーションリンク拡張方法、装置、及びシステム
JP7086065B2 (ja) 2016-11-01 2022-06-17 アリババ・グループ・ホールディング・リミテッド アプリケーションリンク拡張方法、装置、及びシステム
US11698817B2 (en) 2016-11-01 2023-07-11 Alibaba Group Holding Limited Application link resource scaling method, apparatus, and system based on concurrent stress testing of plural application links
KR101714412B1 (ko) 2016-12-28 2017-03-09 주식회사 티맥스클라우드 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치
US10922290B2 (en) 2016-12-28 2021-02-16 Tmax Cloud Co., Ltd. Method and apparatus for organizing database system in a cloud environment
JP2021504777A (ja) * 2017-11-21 2021-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分散コンピューティング環境における作業負荷の自動対角スケーリング
JP7182836B2 (ja) 2017-11-21 2022-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散コンピューティング環境における作業負荷の自動対角スケーリング
WO2020158452A1 (ja) * 2019-01-29 2020-08-06 日本電信電話株式会社 仮想化基盤および仮想化基盤のスケーリング管理方法
JP2020123003A (ja) * 2019-01-29 2020-08-13 日本電信電話株式会社 仮想化基盤および仮想化基盤のスケーリング管理方法
JP7159887B2 (ja) 2019-01-29 2022-10-25 日本電信電話株式会社 仮想化基盤および仮想化基盤のスケーリング管理方法
JP2020126498A (ja) * 2019-02-05 2020-08-20 富士通株式会社 サーバシステム及びサーバ資源割り当てプログラム

Also Published As

Publication number Publication date
CN104714847A (zh) 2015-06-17
US20150172204A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
US9246840B2 (en) Dynamically move heterogeneous cloud resources based on workload analysis
JP2015115059A (ja) クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム
US9760429B2 (en) Fractional reserve high availability using cloud command interception
US11073992B2 (en) Allocation and balancing of storage resources
US10324749B2 (en) Optimizing runtime performance of an application workload by minimizing network input/output communications between virtual machines on different clouds in a hybrid cloud topology during cloud bursting
CN109375872B (zh) 数据访问请求的处理方法、装置和设备及存储介质
US20150169339A1 (en) Determining Horizontal Scaling Pattern for a Workload
US8707383B2 (en) Computer workload management with security policy enforcement
US20180365072A1 (en) Optimizing resource usage in distributed computing environments by dynamically adjusting resource unit size
US8949848B2 (en) Reducing usage of resource utilized by a virtual machine whose resource utilization is adversely affecting neighboring virtual machines
US20180253244A1 (en) Method and system for memory allocation in a disaggregated memory architecture
US9300726B2 (en) Implementing a private network isolated from a user network for virtual machine deployment and migration and for monitoring and managing the cloud environment
US20200004589A1 (en) Policy Based Requesting/Approval System Across Multiple Hybrid Clouds
US20150163285A1 (en) Identifying The Workload Of A Hybrid Cloud Based On Workload Provisioning Delay
US9537780B2 (en) Quality of service agreement and service level agreement enforcement in a cloud computing environment
US20190188032A1 (en) Thread interrupt offload re-prioritization
US10673937B2 (en) Dynamic record-level sharing (RLS) provisioning inside a data-sharing subsystem
US20220417257A1 (en) Protecting accelerators from malicious network functions
US11307889B2 (en) Schedule virtual machines
Thaha et al. Data location aware scheduling for virtual Hadoop cluster deployment on private cloud computing environment