JP2014527221A - クラウド上のアプリケーション・リソース・マネージャ - Google Patents
クラウド上のアプリケーション・リソース・マネージャ Download PDFInfo
- Publication number
- JP2014527221A JP2014527221A JP2014520228A JP2014520228A JP2014527221A JP 2014527221 A JP2014527221 A JP 2014527221A JP 2014520228 A JP2014520228 A JP 2014520228A JP 2014520228 A JP2014520228 A JP 2014520228A JP 2014527221 A JP2014527221 A JP 2014527221A
- Authority
- JP
- Japan
- Prior art keywords
- cloud
- application
- module
- resource manager
- computer readable
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】 クラウド上のアプリケーション・リソース・マネージャを提供する。
【解決手段】 アプリケーション・リソース・マネージャが、クラウド上で動作するアプリケーションに対する今後の需要の予測を取得する。クラウドは、infrastructure as a serviceクラウド及びplatform as a serviceクラウドの少なくとも一方を含む。アプリケーション・リソース・マネージャは、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断する。判断に応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行する。
【選択図】 図5
【解決手段】 アプリケーション・リソース・マネージャが、クラウド上で動作するアプリケーションに対する今後の需要の予測を取得する。クラウドは、infrastructure as a serviceクラウド及びplatform as a serviceクラウドの少なくとも一方を含む。アプリケーション・リソース・マネージャは、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断する。判断に応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行する。
【選択図】 図5
Description
本発明は、電気、電子、及びコンピュータ技術に関し、より具体的には、クラウド・コンピューティングなどに関する。
Infrastructure−as−a−Service(IaaS)クラウド及びPlatform−as−a−Service(PaaS)クラウドは、イメージの高速配備(プロビジョニング)、使用されていない間のイメージのスタッシュ(stash)、イメージに割り当てられたリソースに対する潜在的にライブの又は擬似ライブの変更のための基本機能を提供する。しかしながら、これは、アプリケーション層(本明細書では、区別なくワークロード層と呼ばれる)には直接適用されず、すなわち、アプリケーション層上で利用状態を監視し、かつ、アプリケーション用のインフラストラクチャを、いつ、どのように拡張又は縮小することができるかを判断するのに、依然として人間を必要とする。例外は、開発及び試験アプリケーションのような、比較的短い期間だけ配備された後に完全に取り外されるアプリケーションである。実際に、これらは、IaaSクラウド及びPaaSクラウド上で実行するための、現在考えられる明らかに最も一般的なアプリケーションである。
Software−as−a−Service(SaaS)クラウドは、アプリケーション層上で機能するが、IBM LotusLiveソリューション(米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションの商標)、又は米国カリフォルニア州サンフランシスコ所在のSalesforce_dot_com,Inc.(ブラウザ実行可能コードの包含を回避するため、「.」の代わりに「_dot_」を使用)から入手可能なソリューション等の、特定のアプリケーション・タイプ専用に構築される。
Amazon Web Services(米国ワシントン州シアトル所在のAmazon Web Services LLCの商標)、Microsoft Azure(米国ワシントン州Redmond所在のMicrosoft Corporationの商標)、及びHadoop(Apache Software Foundationから入手可能)等の、アプリケーションを特定の新しいプログラミング・モデル及び言語でコード化することを必要とする、高レベルのクラウドも存在する。
クラウド上のアプリケーション・リソース・マネージャを提供する。
本発明の原理は、クラウド上のアプリケーション・リソース・マネージャのための技術を提供する。1つの態様において、例示的な方法は、アプリケーション・リソース・マネージャにより、クラウド上で動作するアプリケーションに対する今後の需要(upcomingdemand)の予測を取得するステップを含む。クラウドは、infrastructure as a Serviceクラウド及びplatform as a serviceクラウドのうちの少なくとも一方を含む。付加的なステップは、アプリケーション・リソース・マネージャにより、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断するステップと、判断するステップに応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行することを含む。
別の態様において、例示的なシステムは、クラウドを含み、このクラウドは、infrastructure as a serviceクラウド及びplatform as a serviceの少なくとも一方を含む。クラウド上で動作する少なくも1つのアプリケーション及びアプリケーション・リソース・マネージャも、システムに含まれる。アプリケーション・リソース・マネージャは、アプリケーションに対する今後の需要の予測を取得し、予測に基づいて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を必要とすると判断し、この判断に応じて、アプリケーション専用であるクラウドのリソースの拡張及び縮小の一方を実行する。
本明細書で用いられる場合、アクションを「容易すること」は、アクションを実行すること、アクションをより容易にすること、アクションの実行を助けること、又はアクションを実行させることを含む。従って、限定ではなく例として、1つのプロセッサ上で実行されている命令が、アクションを実行させる又はその実行を助けるための適切なデータ又はコマンドを送ることにより、遠隔プロセッサ上で実行されている命令により実行されるアクションを容易にすることができる。明確にするために、動作者がアクションの実行以外によりアクションを容易にする場合であっても、アクションは、何らかのエンティティ又はエンティティの組み合わせにより実行される。
本発明の1つ又は複数の実施形態又はその要素は、示される方法ステップを実施するためのコンピュータ使用可能プログラム・コードを有するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品の形で実装することができる。さらに、本発明の1つ又は複数の実施形態又はその要素は、メモリと、メモリに結合されかつ例示的な方法ステップを実施するように動作可能な少なくとも1つのプロセッサとを含むシステム(又は装置)の形で実装することができる。さらに、別の態様において、本発明の1つ又は複数の実施形態又はその要素は、本明細書で説明される1つ又は複数の方法ステップを実行するための手段の形で実装することができ、この手段は、(i)ハードウェア・モジュール、(ii)ソフトウェア・モジュール、又は(iii)ハードウェア・モジュールとソフトウェア・モジュールの組み合わせを含むことができ、(i)−(iii)のいずれも、本明細書に記載される特定の技術を実装し、ソフトウェア・モジュールは、コンピュータ可読ストレージ媒体(又は複数のそうした媒体)内に格納される。
本発明の技術は、非常に有益な技術的効果を提供することができる。例えば、1つ又は複数の実施形態は、次の利点の1つ又は複数を提供することができる。:
・アプリケーションに対する要件及びその基礎をなすITインフラストラクチャの変更時の設定時間を短縮する、
・より高い信頼性、
・リソースの量を容易に増大及び/又は減少できるため、十分活用されていないプロセッサによる電力浪費を回避する。
・アプリケーションに対する要件及びその基礎をなすITインフラストラクチャの変更時の設定時間を短縮する、
・より高い信頼性、
・リソースの量を容易に増大及び/又は減少できるため、十分活用されていないプロセッサによる電力浪費を回避する。
本発明のこれら及び他の特徴並びに利点は、添付図面と併せて読まれる、以下の例示的な実施形態の以下の詳細な説明から明らかになるであろう。
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及びリリースすることができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするサービス配信のモデルである。クラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つの配備モデルを含むことができる。
特徴は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な場所についての制御又は知識を持たないが、より高レベルの抽象化では場所(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、場所とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソース使用を自動的に制御及び最適化する。リソース使用は、監視、制御、報告され、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらす。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な場所についての制御又は知識を持たないが、より高レベルの抽象化では場所(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、場所とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソース使用を自動的に制御及び最適化する。リソース使用は、監視、制御、報告され、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらす。
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び幾つかの場合アプリケーション・ホスティング環境構成に対しては制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び幾つかの場合ネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び幾つかの場合アプリケーション・ホスティング環境構成に対しては制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び幾つかの場合ネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
配備モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の組み合わせである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の組み合わせである。
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図1を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示される。クラウド・コンピューティング・ノード10は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に対するいずれの制限を示唆することを意図するものではない。上記に関係なく、クラウド・コンピューティング・ノード10は、本明細書で上述された機能のいずれかを実装及び/又は実施することができる。
クラウド・コンピューティング・ノード10には、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム/サーバ12が存在する。コンピュータ・システム/サーバ12と共に用いるのに好適な周知のコンピューティング・システム、環境、及び/又は構成の例としては、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上記のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
図1に示されるように、クラウド・コンピューティング・ノード10のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ12のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット16、システム・メモリ28、及びシステム・メモリ28を含む種々のシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができる。
バス18は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnects(PCI)バスを含む。
コンピュータ・システム/サーバ12は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30及び/又はキャッシュ・メモリ32など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム34を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピィ・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによってバス18に接続することができる。以下でさらに示され説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
限定ではなく例として、メモリ28内に、プログラム・モジュール42の組(少なくとも1つ)を有するプログラム/ユーティリティ40、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール42は、一般に、本明細書に説明される本発明の実施形態の機能及び/又は方法を実行する。
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24等の1つ又は複数の外部デバイス14;ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ12が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース22を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ20は、バス18を介して、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ12と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解すべきである。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
ここで図2を参照すると、例示的なクラウド・コンピューティング環境50が示される。示されるように、クラウド・コンピューティング環境50は、例えば携帯情報端末(PDA)又は携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、及び/又は自動車コンピュータ・システム54Nなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらのノードは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくは上述のハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供できる。図2に示されるコンピューティング・デバイス54A−Nのタイプは単に例示であることを意図し、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、いずれのタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続上で(例えば、ウェブ・ブラウザを用いて)、いずれのタイプのコンピュータ化された装置とも通信できることを理解されたい。
ここで図3を参照すると、クラウド・コンピューティング環境50(図2)によって提供される機能抽象化層の組が示される。図3に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、IBM(登録商標)zSeries(登録商標)システムを一例とするメインフレームと、IBM pSeries(登録商標)システムを一例とするRISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバと、IBM xSeries(登録商標)システムと、IBM BladeCenter(登録商標)システムと、ストレージ・デバイスと、ネットワーク及びネットワーク・コンポーネントとが含まれる。ソフトウェア・コンポーネントの例として、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、IBM DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。(IBM、zSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
仮想化層62は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
一例においては、管理層64は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境でリソースが利用される際のコスト追跡と、リソースの消費に対する課金又は請求とを提供する。1つの例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
ワークロード層66は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、及びモバイル・デスクトップが含まれる。
1つ又は複数の実施形態は、例えば、IaaSクラウド又はPaaSクラウドなどのクラウドの上にアプリケーション・リソース・マネージャを実装することが有利である。
上述のように、Infrastructure−as−a−Service(IaaS)クラウド及びPlatform−as−a−Service(PaaS)クラウドは、イメージの高速配備(プロビジョニング)、使用されていない間のイメージのスタッシュ、イメージに割り当てられたリソースに対する潜在的にライブの又は擬似ライブの変更のための基本機能を提供する。しかしながら、これは、アプリケーション層(本明細書では区別なくワークロード層66と呼ばれる)には直接適用されず、すなわち、アプリケーション層66上で利用状態を監視し、かつ、アプリケーション用のインフラストラクチャを、いつ、どのように拡張又は縮小することができるかを判断するために、依然として人間を必要とする。例外は、開発及び試験アプリケーションのように、比較的短い期間だけ配備された後に完全に取り外されるアプリケーションである。実際に、これらは、IaaSクラウド及びPaaSクラウド上で実行するための、現在考えられる明らかに最も一般的なアプリケーションである。
IaaSクラウド及びPaaSクラウドにおける仮想化層62及び管理層64は、ハードウェア、及び幾つかの場合基本ソフトウェアのみを管理するが、ワークロードを管理しないことに留意されたい。従って、今日に至るまで、これは、別個に、典型的には人間の介入により行われてきた。
同じく上述のように、Software−as−a−Service(SaaS)クラウドは、アプリケーション層上で機能するが、IBMのLotusLiveソリューション(米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションの商標)、又は米国カリフォルニア州サンフランシスコ所在のSalesforce_dot_com,Inc.(ブラウザ実行可能コードの包含を回避するために、「.」の代わりに「_dot_」を使用)から入手可能なソリューション等の、特定のアプリケーション・タイプ専用に構築される。
同じく上述したように、Amazon Web Services(米国ワシントン州シアトル所在のAmazon Web Services LLC社の商標)、Microsoft Azure(米国ワシントン州レッドモンド所在のMicrosoft Corporation社の商標)、及びHadoop(Apache Software Foundationより入手可能)等の、アプリケーションを特定の新しいプログラミング・モデル及び言語でコード化することを必要とする、高レベルのクラウドも存在する。
1つ又は複数の実施形態は、リソース要求が変動している又は単純に増加している、通常の、ほとんど変更されていないアプリケーションが、IaaS又はPaaSプラットフォーム機能を容易に利用するのを可能にする点が有利である。
グリッドの文脈における動的インフラストラクチャに関する従来の技術も存在することに留意する価値があるが、グリッドは、イメージをプロビジョニング及び管理するための、IaaS及びPaaSクラウドが有するのと同じ種類のインターフェースを有しておらず、従って、グリッドに関するアプリケーション管理の問題は、クラウドとは異なる。同様に、IBMのOceanoコンピューティング・ユーティリティ・パワープラント・プロジェクト等の、古い大規模分散型インフラストラクチャ・プロジェクトは、クラウドにおけるような基礎をなす別個の層60、62、64とは動作しなかった。
ここで図4の単純なシステム概観を参照すると、1つ又は複数の実施形態は、IaaS又はPaaSクラウド10の通常のシステムに付加されたアプリケーション・リソース・マネージャ・コンポーネント401と、アプリケーション・コンポーネント403とを採用する。このアプリケーション・リソース・マネージャは、アプリケーションのニーズに応じて、クラウドのリソースを拡張及び縮小する。
これらのタスクを実行するために、アプリケーション・リソース・マネージャは、基礎をなすIaaS又はPaaSクラウドの管理インターフェース、すなわち、管理層64の上位インターフェースと対話し、一方、アプリケーションは、クラウドにより提供されるイメージ及び他のリソースを使用する。ここで「イメージ」という語は、IaaSクラウドが提供する純粋なオペレーティング・システムのイメージ、及びPaaSクラウドが提供する、ミドルウェアを含むイメージの両方に対して使用される。図3においては、IaaSイメージは仮想サーバであり、典型的には、利用可能な、プロビジョニングが容易なイメージのカタログ、このカタログに対応するイメージ・ファイル、及びプロビジョニングされ、実行されている実際のインスタンス・イメージが存在する。管理層64のリソース・プロビジョニング・コンポーネントは、カタログを、層66の潜在的ワークロードに提供し、イメージ・ファイルを収容し、仮想化層62においてインスタンス・イメージ(仮想サーバ)を確立させる。このプロセスを理解すると、「イメージ」についてしか述べないことも多い。アプリケーションにプロビジョニングされるイメージの上に、通常のアプリケーション・コンポーネントのコード、データ、構成などが存在する。言い換えれば、クラウド管理層を介してプロビジョニングされなかったワークロードの部分が、アプリケーション・コンポーネントを構成する。
アプリケーション・リソース・マネージャが使用する管理インターフェースは、OSSの態様(オペレーション・サポート・システム、例えば、リソース・プロビジョニング・コンポーネントへの直接インターフェース)、及びBSSの態様(ビジネス・サポート・システム、例えば、追加のプロビジョニング時に追加の支払い契約が必要な、価格決定コンポーネントへのインターフェース)を含むことができる。これらの全ては、ユーザ・ポータルを通してフィルタリングされるが、ここでは、いずれも、ワークロード層66からの自動化プログラムにより使用するためのAPI(アプリケーション・プログラミング・インターフェース)、ウェブ・サービス・インターフェース等、又は、ワークロード層66のプログラムに直接アクセスできるリソース・プロビジョニング等の個々のコンポーネントへのインターフェースを含むと仮定する。
アプリケーション・リソース・マネージャ401は、アプリケーション所有者513(本明細書では、役割を通常のユーザ515と区別するために、アプリケーション需要を予測する権限が与えられた人間に対して使用される名称−図5を参照されたい)からの今後の需要を学習すること、又は、クラウド管理から得られる報告並びにアプリケーションの観察により、現在の利用及び傾向を導き出すことができる。アプリケーション・リソース・マネージャ401は、インフラストラクチャの故障について学習し、故障に反応して特定の可用性ターゲットに到達することもできる。
少なくとも幾つかの実施形態において、最低でも需要の変更があると、アプリケーション・リソース・マネージャは、イメージをプロビジョニング若しくはスタッシュするか、又は、仮想ストレージ若しくは仮想ネットワーク帯域幅の割り当てなど、リソースの属性を変更する。随意的に、プロビジョニングの場合、アプリケーション・リソース・マネージャは、アプリケーション・レベルのソフトウェア及び/又はデータも新しいイメージにプロビジョニングする。
このように、1つ又は複数の実施形態は、クラウド10、少なくとも1つのアプリケーション・コンポーネント403、及びアプリケーション・リソース・マネージャ401を含むシステムを提供し、アプリケーション・リソース・マネージャは、アプリケーション・リソースのニーズを満たすために、アプリケーション・コンポーネント用のクラウドのリソースを拡張及び/又は縮小する。
1つ又は複数の実施形態において、アプリケーション・リソース・マネージャは、IaaS又はPaaSクラウドのサービスを使用する。これらのコンポーネント及びその対話についての更なる詳細は、より詳細なシステム概観を提供する図5に示される。
アプリケーション・リソース・マネージャ401は、それ自体が、クラウド10上で動作しても又はしなくてもよいことに留意されたい。アプリケーション・ボックス511は仮想であり、これは、アプリケーション・リソース・マネージャが特定のアプリケーションに属していること、及び、アプリケーション構造を認識する必要があることを示す。
引き続き図5を参照すると、アプリケーション所有者513は、アプリケーション管理インターフェース(図3において、これは、ワークロード層66の上位インターフェースであり、すなわち、そこで、アプリケーション/ワークロードがユーザと対話する)を介して、アプリケーション・リソース・マネージャ410と対話する。アプリケーション・リソース・マネージャ401は、アプリケーション511と関連付けられ、通常のアプリケーション・ユーザ515により使用されるアプリケーション・ソフトウェア517の設定、並びに、アプリケーション・ソフトウェア517及び対応するイメージ519を監視する。イメージは、クラウド・ランタイム環境521の一部となる。ブロック521は、図3の仮想化層62(又は、層60及び62を合わせたもの)と本質的に類似し、一方、クラウド管理プラットフォーム523は、層64と類似している。クラウド管理プラットフォーム523は、適切なプロビジョニング・インターフェース(即ち、直接、又は、BSSインターフェース及び/又はユーザ・ポータルを通して仲介される、リソース・プロビジョニング・コンポーネントへのインターフェース)を介して、アプリケーション・リソース・マネージャ401と対話するクラウド・ランタイム環境521を管理し、クラウド管理プラットフォーム523も、使用及び故障報告をアプリケーション・リソース・マネージャ401に提供する(これらは、例えば、図3の計量コンポーネント又はサービス・レベル管理コンポーネントによってもたらされ得る)。
1つ又は複数の実施形態において、401のようなアプリケーション・リソース・マネージャを、図6に示されるように構築することができ、コンポーネントは、以下の例示的な機能を提供する。
ポリシー631は、例えば、(クラウドのものとは対照的な)アプリケーションのサービス・レベルの目標として与えることができる性能及び可用性目標などの長期目標を決定する。言い換えれば、これらは、層66に対する目標であって、その層のサービス・レベル管理コンポーネント及びSLAプランニング・コンポーネントが満たすような層64の目標ではない。性能向上のニーズに対する短期予測に関連するもの等の、アプリケーション所有者からの短期目標もポリシーと呼ぶことができる。
管理コンポーネント633は、ポリシー並びにアプリケーション及びクラウドから学習したものを利用し、アクションを決定する。具体的には、これらのアクションは、クラウドへの要求のプロビジョニング、スタッシング、又はプロビジョニング解除、及び、例えばイメージ・リソースの拡張及び縮小、異なるサーバへのライブ・マイグレーション、又はクラウドからのより上位のサービス・レベルの選択(これは、例えば、より良い性能保証、並びにより高い可用性又は信頼性保証を含むことができる)など、クラウド管理プラットフォームが許容する他の任意のアクションをも含む。
制御コンポーネント635は、管理コンポーネントからの抽象的要求を、例えば、アプリケーション・プログラミング・インターフェース(API)又はウェブ・サービス・インターフェースを介して、クラウド管理プラットフォームとの具体的な対話に変換する。こうした対話は、マルチ・ステップのシーケンスであり、イメージ・サイズの選択、及び支払い方法又は既存の口座番号の選択等の、OSS及びBSSレベルのステップを含むことができる。
解釈コンポーネント637は、制御コンポーネントとは逆に、アプリケーション自体の及び他の仮想リソースのイメージ、並びにクラウド全体の両方の利用情報又は故障報告などの、クラウドからの報告を解釈する。
ポリシー631は、例えば、(クラウドのものとは対照的な)アプリケーションのサービス・レベルの目標として与えることができる性能及び可用性目標などの長期目標を決定する。言い換えれば、これらは、層66に対する目標であって、その層のサービス・レベル管理コンポーネント及びSLAプランニング・コンポーネントが満たすような層64の目標ではない。性能向上のニーズに対する短期予測に関連するもの等の、アプリケーション所有者からの短期目標もポリシーと呼ぶことができる。
管理コンポーネント633は、ポリシー並びにアプリケーション及びクラウドから学習したものを利用し、アクションを決定する。具体的には、これらのアクションは、クラウドへの要求のプロビジョニング、スタッシング、又はプロビジョニング解除、及び、例えばイメージ・リソースの拡張及び縮小、異なるサーバへのライブ・マイグレーション、又はクラウドからのより上位のサービス・レベルの選択(これは、例えば、より良い性能保証、並びにより高い可用性又は信頼性保証を含むことができる)など、クラウド管理プラットフォームが許容する他の任意のアクションをも含む。
制御コンポーネント635は、管理コンポーネントからの抽象的要求を、例えば、アプリケーション・プログラミング・インターフェース(API)又はウェブ・サービス・インターフェースを介して、クラウド管理プラットフォームとの具体的な対話に変換する。こうした対話は、マルチ・ステップのシーケンスであり、イメージ・サイズの選択、及び支払い方法又は既存の口座番号の選択等の、OSS及びBSSレベルのステップを含むことができる。
解釈コンポーネント637は、制御コンポーネントとは逆に、アプリケーション自体の及び他の仮想リソースのイメージ、並びにクラウド全体の両方の利用情報又は故障報告などの、クラウドからの報告を解釈する。
管理コンポーネントから制御コンポーネント及び解釈コンポーネントを別体とすることの利点は、アプリケーション・リソース・マネージャが、異なるクラウドに適合することがより容易になることである。しかしながら、図6の例において、アプリケーション・リソース・マネージャは、このアプリケーションに特有のものであるので、アプリケーション・コンポーネントと直接対話することができる。
ここで、アプリケーション・マネージャの幾つかの考え得る機能に関して、限定されない付加的な例示的詳細を提供する。
監視に関しては、幾つかの場合、アプリケーション・マネージャは、アプリケーションのユーザ・インターフェース(例えば、アプリケーションのサービス・レベル・アグリーメント(SLA)が適用できる場合)のいずれか又は両方において、及び、個々のコンポーネント(517、519など)、具体的には異なるイメージ上に配備されたものについて、アプリケーション・コンポーネント403及びその利用を監視することができる。アプリケーション・マネージャはまた、クラウド・インターフェースを介して(すなわち、523から)、そのクラウド・イメージの現在の使用についての情報を取得する、及び/又は、クラウド・インターフェースを介して、クラウドの現在の使用全体についての情報も取得することができ、これは、リソースが共有される場合、より多くのリソースを得る効果を予測するのに有益であり得る。
さらに、同じく監視に関して、幾つかの場合、アプリケーション・マネージャは、それ自体のイメージの故障(523からの)及びクラウドの一般的な信頼性についての情報を取得することができ、利用傾向に基づいて予測を使用して、将来の需要を推定することができ(例えば、月ごとのピークを予測する、又は需要の全体的な緩やかな増加を予測する)、及び/又は、場合によって、発見ツールによりアプリケーション構造を再検証することができる(さらに本明細書の他の場所でも論じられ、区別なく「再発見」とも呼ばれる)。アプリケーション・ユーザ515も変更を行う特定の権利を有する場合があるため、発見ツールは、アプリケーションのイメージ519及びアプリケーション・ソフトウェア517にも適用される。発見ツールはまた、現在のデータベース・サイズ等のアプリケーション・レベルの性能パラメータを見つけるのを助けることもできる。
目標に関して、幾つかの場合、アプリケーション・マネージャは、アプリケーション所有者から、現在の性能に関して絶対的又は相対的な短期目標を取得することができる。この目標は、典型的には、個々のイメージ上の個々のアプリケーション・ソフトウェア・コンポーネントの性能よりも、むしろアプリケーション全体(例えば、トランザクション・スループット又はエンド・ユーザへの応答時間)を指す。さらに、アプリケーション・マネージャは、高レベルの目標(長期ポリシー)をアプリケーション所有者から取得して、例えば、常に特定のSLAを提供する又は突然の変更に備えて常に特定の量の空きを有することができ、及び/又は、例えば、コスト目標又は限度を取得して、所望のSLAを提供するために常に合計が最も安価なリソースの組を選ぶこと、又は特定のコスト限度に至るまでは常に考え得る最良の性能を提供することができる。
考え得る決定に関して、幾つかの場合、アプリケーション・マネージャは、アプリケーションに割り当てられた個々のクラウド・イメージに割り当てられたリソースの拡張及び/又は縮小を決定することができる。クラウドに応じて、これは、所定の位置で、又は、対応するアプリケーション・コンポーネント517をより大きいイメージ519にマイグレートすることによって行われることもある。さらに、アプリケーション・マネージャは、アプリケーションを使用するために、クラウド・イメージ全体をプロビジョニング、削除、又はスタッシュすることを決定することができる。この場合、アプリケーション・マネージャは、適切なアプリケーション・ソフトウェアを配備する必要もある。この点に関して、アプリケーション・マネージャは、この目的のために、1つ又は複数のゴールド・イメージ、すなわち、アプリケーションの全ての反復可能な部分を既に含んでいる休眠中のイメージを保持すること、及び/又は、マイグレーション・ツールを用いて、現在の全体のアプリケーション状態に対応するソフトウェア構成を配備することもできる。
さらに、同じく考え得る決定に関して、幾つかの場合、アプリケーション・マネージャは、クラウドが付加的なストレージ及び/又はネットワーク・リソースという選択肢を別個に提供する場合、付加的なストレージ及び/又はネットワーク・リソースを要求すると決定することができ、アプリケーション・マネージャが現在のポリシー又は要求を満たすことができない場合、ユーザに警告すると決定することができ、及び/又は、ユーザ・プロファイルに、定期的に又は要求に応じて、アプリケーション・レベルの状況を通知することができる。
意思決定に関して、幾つかの場合、アプリケーション・マネージャは、最適化ソルバ・ツールを用いることにより決定を行うことができ、又は、直接、意思決定コードを含むことができる。クラウドが動的な価格決定スキーマ(例えば、週末のコストが低い)を有する場合、アプリケーション・マネージャは、動的クラウド・コストに基づいて決定を行うことができる。動的クラウド・コストの使用は、アプリケーションがスピード重視ではない側面を含み、かつ、より安いリソースの時に実施できる場合に、特に有用である。
少なくとも幾つかの場合、データ・ファイル等におけるパラメータによりポリシーを実装することができ、許容可能な値又は他の変数は、基礎をなすコーディング、すなわち、許容可能な値又は値の範囲を指定するデータ構造を変更する必要なしに指定することができることに留意されたい。
ポリシー・ブロック631に関して、1つ又は複数の場合において、ポリシー・ブロック631は、目標又は要件、又は時として特定の状況で起こるべきことを決定する。具体的に、アプリケーション・マネージャは、例えば、アプリケーション・レベルのトランザクションに対してどれだけの待ち時間が許容可能であるか、幾つの長期間実行ジョブが遂行されないままでどれだけデッドライン近くまで我慢できるか、又は、例えば月末にどれだけの負荷が予測されるか等のアプリケーション・レベルのポリシー(すなわち、形式化された目標又は要件)を含むことができる。アプリケーション・マネージャは、時として、例えば、どれだけの量の空きストレージを常に利用可能にする必要があるか、仮想マシン(VM)が、どれだけの使用レベルを長期にわたり有することを許可するかなど、インフラストラクチャ・レベルのポリシーを含むこともできる。
管理ブロック633は、ポリシー631から値を読み出し、システム内で何が起きているかについてのデータ入力を取得し(例えば、アプリケーション・レベルのプローブ等並びに解釈ブロック637から、クラウドの報告又はイメージ・レベルの監視から)、ポリシー631を実行に移す論理を含む。例として、VMを割り当てる、スタッシュする、又は他のVM上でサービスを開始する必要があると判断すること、VMのメモリ及び/又はCPU割り当てを増加させる必要があるかを判断すること、ストレージを増加及び/又は減少させる必要があるかどうかを判断すること等が含まれる。
制御ブロック635は、異なるアーキテクチャへのインターフェースを提供し、例えば、クラウドが単にVMwareであった場合、制御ブロック635は、VMを制御するのに、vmrunインターフェースと対話する。つまり、制御モジュール635は、管理モジュール633からの命令を、クラウドのリソースを管理しているリソース・プロビジョニング・モジュール(図3の層64を参照されたい)等により理解できるように変換する。
解釈ブロック637に関して、解釈ブロック637は、異なるクラウド・アーキテクチャへのインターフェースを提供し、例えば、クラウドが単にVMwareであった場合、解釈ブロック637は、vmwareインターフェースからの性能報告、及び/又は、VM内部で実行できるプローブに対する抽象化を解釈することができる。幾つかの場合、クラウドは、イメージのCPU利用を提供することができる(例えば、図3の層64における計量及び価格決定を参照されたい)。管理ブロック633は、解釈ブロック637に、全てのイメージのCPU利用を必要としていることを知らせ、解釈ブロック637は、これを変換して、必要なコマンドを計量及び価格決定ブロックに与え、クラウド固有の結果を共通フォーマットに解釈する。幾つかの場合、ARM401は、例えば、アプリケーション・レベルの待ち時間(すなわち、通常のアプリケーション・ユーザ515がどれくらい結果を待たなければならないか)を監視するため又は長時間動作しているアプリケーションの状態について知るために、クラウド・インターフェースに加えて、又はその代わりに、自らの層上で管理しているイメージに対する接続を行う。このような場合、アプリケーション・ソフトウェア517により、管理のためのIPリスニング・サービス又はウェブ・インターフェースを提供することができ、アプリケーション・マネージャは、対応する接続を構築し、対応する管理照会を送信する。
幾つかの場合、ARM401は、通常のイメージ上にアカウントをもち、そのアカウントを用いて、通常のイメージにログインし、適切なコマンドを実行して、イメージからCPU利用を直接読み出すことができる。幾つかの場合、アプリケーションを、直近の10分間に幾つのトランザクションが実行されたかなど、適切な照会に応答するように、プログラミングすることができる。
明確にするために、この文脈における「アプリケーション」とは、最終的な所望の機能を実行する(かつ、クラウドにより提供されていない)コード、例えば、WEBSPHEREソフトウェア内のJAVAコード、又は、DB2ソフトウェア内の特定のデータベース・スキーマ、又は典型的には、例えば、ショッピング・カート・アプリケーション又は旅行報告アプリケーションを提供するのに必要とされる全てのコード片などの、コード・タイプの組み合わせを指す。プローブとは、熱電対などの物理的プローブとは対照的に、他のソフトウェアと通信して所望の値を取得する幾つかのソフトウェアである。
詳細ではあるが限定されない例として、(典型的には1つより多い)ウェブ・サーバ、アプリケーション・サーバ、及びデータベースを有する3層アーキテクチャ(three-tier architecture)を考える。エンド・ユーザの要求に対する平均待ち時間を特定の閾値より少なく保持することが所望される。待ち時間は、要素のいずれかに過負荷がかかることにより発生し得る。要求に応答するまでの待ち時間(アプリケーション特有である、例えば、httpサーバが要求に応答するのにかかる時間)を測定することが所望される。
この例では、ポリシー・ブロック631は、着信する要求に応答するのにどれだけの待ち時間を利用可能にする必要があるか、及び幾つかの場合、システムの通常の状態をどのようにする必要があるかを定める。解釈ブロック637は、個々のコンポーネントについての情報を提供するプローブとインターフェース接続する。管理ブロック633は、ポリシー・ブロック631及び解釈ブロック637からのデータ、並びにアプリケーション・ソフトウェアとの直接通信を用いて、例えば、待ち時間が多すぎる場合に、待ち時間を少なくするために、着信する要求を取り扱うVMの数を増やすなどの判断を行い、幾つかの場合、3つの層のどれがボトルネックであり、増やす必要があるかを判断する。管理ブロック633は、制御ブロック635とインターフェース接続して、クラウドに、既存のマスター・テンプレートVMのクローンを作成し、オンラインにするように命令し、次いで、適切なデータをクローンに置き、アプリケーションにバインドし、負荷を分担できるようにさせる。
逆に、待ち時間が限度をはるかに下回り、通常より多い数の(ポリシー631当たりの)定常状態のVMが存在する場合、管理ブロック633は、制御ブロック635に、VMをゆっくりと停止するように命令することができ、例えば、アプリケーション・レベルの負荷分散装置(load balancer)ポリシーを修正することなどにより、全てのワークロードが残りのVMによって処理されるように、アプリケーションをリセットさせる。
この限定されない例の更なる詳細として、ポリシー631は、着信する要求に応答するのにどれだけの待ち時間を利用可能にする必要があるか、及び、システムの通常状態がどのようである必要があるかを定める。:
average_latency{
period = 1min
max_latency = 500ms
}
average_latency{
period = 1min
max_latency = 500ms
}
これにより、1分間における平均待ち時間が500msを超えてはならないというポリシーが設定される。典型的には、500msを超える待ち時間が起こり始めた場合には、より多くのマシンを割り当てる必要がある。上述のように、管理モジュール633の論理は、プローブからデータを取得し、ポリシー631を調査し、いずれかのポリシーに違反する場合には、適切なアクションを取る。それを実施するための命令は制御ブロック635に送信され、そこで上述のように変換される。
管理ブロック633はまた、個々のアプリケーション・ソフトウェア・コンポーネント517に対してマイクロ・テストを実行することもできる。
管理ブロック633は、次いで、随意的に論理を実行して、どの層が待ち時間を生じさせているかを判断しようとする。管理ブロック633は、各層に対して、他のいずれの層にも影響を与えないマイクロ・ベンチマークを実施する能力を有する。例えば、管理ブロック633は、静的ウェブページをウェブ・サーバからフェッチして、ウェブ・サーバの待ち時間だけを測定することができる。管理ブロック633は、データベースにヒットしないappサーバに対する単純な照会、並びに、単純なデータベース照会を行うことができる。これらにより、解釈ブロック637が提供するVMレベルの測定値と併せて、どのコンポーネントに過負荷がかかるか、従って、どのコンポーネントのサイズを増大させる必要があるかを正確に示すことが可能になる。この点で、測定値を単独で使用できること、マイクロ・ベンチマークを単独で使用できること、又は、その両方を一緒に使用できることに留意されたい。さらに、マイクロ・ベンチマークは、所望の値を知るために、例えば、良好に動作しているシステムの予備テストに基づくことができる。
例えば、管理ブロック633が、ウェブ・サーバのフロントエンドに過負荷がかかり、最良の決定は、もっと多くのフロントエンドを追加することであると判断した場合、管理ブロック633は、制御ブロック635に対して、新しいVMを割り当てるように命令し、次いで、制御ブロック633に必要な任意のソフトウェア及びアプリケーション・データを置き、アプリケーションに統合する。
クラウドが単なるVMwareである場合、制御ブロック635は、ウェブ・サーバのフロントエンドのゴールド・マスターVMを、新しいVMにコピーする。制御ブロック635は、次いで、VMware APIのRegisterVm()機能を用いて、VMをVMインフラストラクチャに追加する。ひとたび追加されると、制御ブロック635は、APIを用いて新しいVMに接続し、新しいVMのStart()メソッドを用いて、マシンを起動する。管理ブロック633は、次いで、新しいVMを、フロントエンドのデューティを処理するマシンのクラスタに追加する。より単純な例では、マシンのサイズを増大させることができる。
別の限定されない例において、ストレージ使用の監視を考える。ポリシー631は、どれだけの量の空きストレージを利用可能にする必要があるか、並びに、多すぎる空きストレージとはどれだけを定める。解釈ブロック637は、空き領域の量を判断するために、通常のインターフェース(du、df、quota、...)とインターフェース接続する。管理ブロック633は、これらの情報の両方を用いて、利用可能な空き領域が十分か(又は多すぎるか)を判断する。管理ブロック633は、ポリシーに従ってより多くの空き領域を割り当てる(又は空き領域を減らす)よう、制御ブロック635に命令する。適切なコマンドは、"increase-disk <image id> <disk id><size>"の形とすることができる。
例えば、幾つかのVMは、VMの負荷に応じて、1又は複数のサービスを実行できる場合もある。幾つかの場合、(VMインフラストラクチャから)VMの負荷を監視すること、及び、各々のVM内にプローブを有して、個々のサービスのリソース使用(CPU、I/O)を監視し、どれだけ個々のサービスが使用中であるかを知ることが可能である。
ポリシー631は、どのような持続的負荷の下でVMの動作を許容する必要があるか、及び、VM上で実行されている個々のサービスにどのような持続的負荷を許容する必要があるかを決定することができる。解釈ブロック637は、VMインフラストラクチャの負荷監視(VM負荷全体)及びVM内部のプローブとインターフェース接続する(個々のサービスに対するOSレベルの負荷測定値を監視するために)。管理ブロック633は、個々のVM上の負荷が大きすぎる場合、個々のサービスが独立したVM上で実行され得るようにVMを分割する、又は負荷が減少した場合、それらを組み合わせて元に戻すための判断を行うことができる。管理ブロック633は、制御ブロック635とインターフェース接続し、必要に応じて、新しいVMを起動し又は既存のVMを停止し、並びに個々のVM上で実行されているサービスを停止又は開始する。
さらに別の限定されない例において、VMのメモリ及びCPU使用の増大を考える。ポリシー631は、単一のマシン上で、どのような持続的なメモリ及びCPUの負荷を許容する必要があるかを決定する。解釈ブロック637は、CPU使用及び空きメモリの報告を取得し、これを管理ブロック633に与える。管理ブロック633は、個々のVMのCPU及びメモリ割り当てを増加(又は減少)させる決定を行うことができる。管理ブロック633は、制御ブロック635に命令して、増加/減少を行わせる。制御ブロック635は、VMを停止し(必要な場合、一部のVMはホットプラグCPUをサポートする)、CPUの数及び割り当てメモリを増やすようにVMを再構成し、VMアーキテクチャのインターフェースを用いてVMを再始動させることができる(例えば、VMware、vmrun上で;手作業で又はAPIを介して、VM構成ファイルを編集する)。
さらに限定されない例において、月ごとの許容されるダウンタイムが指定されている場合を考える。アプリケーション・マネージャは、その月のそれまでの合計ダウンタイムを追跡することができ、アプリケーション・マネージャが、許容限界値に接近していることを感知すると、制御コンポーネント635を用いて付加的なリソースを発注する。
以下は、サーバをプロビジョニングし、ストレージを増大させるための、限定されない例示的な実際のコマンドである。:
provision<template/base id name> <new id name>>
increase-disk<id name> <size>
provision<template/base id name> <new id name>>
increase-disk<id name> <size>
ここまでの議論から、一般的に、本発明の一態様による例示的な方法は、アプリケーション・リソース・マネージャ401により、クラウド10上で動作するアプリケーション403、511に対する今後の需要の予測を取得するステップを含むことが認識されるであろう。クラウドは、infrastructure as a serviceクラウド及び/又はplatform as a serviceクラウドである。付加的なステップは、アプリケーション・リソース・マネージャ401により、予測に基づいて、アプリケーション専用であるクラウド10のリソースを拡張又は縮小する必要があることを判断するステップを含む。更なるステップは、判断するステップに応じて、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行する(又は、少なくとも実行の方法を指定する)ステップを含む。
今後の需要の予測は、例えば、アプリケーション所有者513から取得することができる。他の例では、今後の需要の予測は、アプリケーション403、511及びクラウド10のクラウド管理インターフェースからのデータの観察に基づいて、それ自体が予測を導き出すアプリケーション・リソース・マネージャ401により、取得することができる。
アプリケーション専用であるクラウドのリソースを縮小する必要があると判断された場合、アプリケーション・リソース・マネージャ401は、クラウドにおいて未使用のイメージをスタッシュすることができる。この点で、こうしたイメージは、決定の時点では、全てが未使用とはいえないことに留意されたい。例えば、5つのイメージのクラスタが存在し、現時点で各々が50%しか使用されていないとすると、4つ、更には3つに減らすことが決定される。スタッシングの時点で、問題のイメージは、そのイメージに対する要求が今や他に向けられているという意味で、実際に使用されていないはずである。例えば、所定のクラスタに対して使用される負荷分散装置の場合、アプリケーション・リソース・マネージャ401は、要求が残りの3つ又は4つのイメージ(のアプリケーション・コンポーネント)にのみ送られるように、負荷分散装置のポリシーを変更する。
アプリケーション専用であるクラウドのリソースを拡張する必要があると判断した場合、アプリケーション・リソース・マネージャ401は、クラウドにおいて新しいイメージをプロビジョニングすることができる。幾つかの場合、このことは、アプリケーション・リソース・マネージャが、新しいイメージの上に、アプリケーション・レベルのソフトウェア及び/又はデータをプロビジョニングすることを含み得る。
前述のように、幾つかの場合、アプリケーション・リソース・マネージャ401は、クラウド10上で動作する。他の例においては、アプリケーション・リソース・マネージャは、クラウド以外のコンピューティング・リソース上で動作する。
幾つかの場合、判断するステップは、予測される今後の需要を満たすのに最も費用効果の高い方法を見出すステップを含む。
予測される今後の需要を、性能及び/又は可用性に関して特定できることに留意されたい。
幾つかの場合、アプリケーション・マネージャは、時として、アプリケーションを再発見する、すなわち、アプリケーション・ソフトウェア517及び/又は基礎をなすイメージ519に対して、サーバ管理者が直接行った変更(本発明の1つ又は複数の実施形態によるアプリケーション・マネージャ・ツールを用いて行われた変更とは対照的に)を、(例えば、発見ツールを用いて)発見することにも留意されたい。
さらに、ここまでの議論から、一般的に、本発明の一態様による例示的なシステムは、クラウド10を含むことが認識されるであろう。クラウドは、infrastructure as a serviceクラウド及び/又はplatform as a serviceクラウドである。同じく、クラウド上で動作する少なくとも1つのアプリケーション403、511、及びアプリケーション・リソース・マネージャ401も含まれる。アプリケーション・リソース・マネージャ401は、アプリケーション403、511に対する今後の需要の予測を取得し、予測に基づいて、アプリケーション403、511専用であるクラウド10のリソースを拡張又は縮小する必要があると判断し、この判断に応じて、状況により、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行する。
今後の需要の予測は、例えば、アプリケーション所有者513から取得することができる。別の例では、クラウド10は、クラウド管理インターフェースを含むことができ、アプリケーション・リソース・マネージャは、アプリケーション及びクラウドのクラウド管理インターフェースからのデータの観察に基づいて予測を導き出すことにより、予測を取得する。この点で、クラウド管理プラットフォーム523がクラウド管理インターフェースを提供する、すなわち、プラットフォームはコード等を含むが、クラウドのユーザは、典型的には、コードにアクセスすることができず、例えばウェブページにアクセスし、そこで現在のイメージを確認し、「もう1つイメージをプロビジョニングしてください」又は「このイメージのリソースをXだけ拡張してください」と指示するだけであることに留意されたい。ウェブページはインターフェースであり、1つ又は複数の実施形態においては、同じ入力をするための、プログラムのためのプログラム・バージョンを有する。
アプリケーション専用であるクラウドのリソースは、例えば、イメージを含むことができる。幾つかの場合、アプリケーション・リソース・マネージャが、アプリケーション専用であるクラウドのリソースを圧縮する必要があると判断すると、アプリケーション・リソース・マネージャは、未使用のイメージをスタッシュすることにより縮小を実行する。
幾つかの場合、アプリケーション・リソース・マネージャは、アプリケーション専用であるクラウドのリソースを拡張する必要があると判断し、クラウドにおいて新しいイメージをプロビジョニングすることにより拡張を実行する。前述のように、幾つかの場合、このことは、アプリケーション・リソース・マネージャが、新しいイメージの上に、アプリケーション・レベルのソフトウェア及び/又はデータをプロビジョニングすることを含み得る。
同じく前述のように、アプリケーション・リソース・マネージャは、クラウド上、又はクラウド以外の付加的なコンピューティング・リソース上で動作することができ、幾つかの場合、こうしたリソースもシステムの一部を形成する。サーバ12は、クラウド10のクラウド・リソースとして示されるが、アプリケーション・リソース・マネージャ401を実装することができる非クラウド・コンピューティング・リソースも等しく表すことが認識されるであろう。さらに、クラウド以外の付加的なコンピューティング・リソースも、マネージャ401が、それが管理するクラウドとは異なるクラウド上で動作する場合も含むことができる。
図6に見られるように、アプリケーション・リソース・マネージャは、幾つかの場合、管理部分633及び制御部分635を含む。こうした場合、アプリケーション・リソース・マネージャの管理部分は、予測に基づいて、アプリケーション専用であるクラウドのリソースが、拡張及び縮小の一方を必要とすると判断するコンポーネントとすることができ、アプリケーション・リソース・マネージャの制御部分は、その判断に応じて、アプリケーション専用であるクラウドのリソースの拡張又は縮小を実行するコンポーネントとすることができる。
例示的なシステム及び製造物品の詳細
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形をとることができ、これらは全て本明細書において一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを内部に有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形をとることができる。
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形をとることができ、これらは全て本明細書において一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを内部に有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形をとることができる。
本発明の1つ又は複数の実施形態、又はその要素は、メモリと、メモリに結合され、例示的な方法ステップを実行するように動作可能な少なくとも1つのプロセッサとを含む装置の形で実施することができる。
1つ又は複数の実施形態は、汎用コンピュータ又はワークステーション上で実行されるソフトウェアを利用することができる。図1を参照すると、こうした実装は、例えば、プロセッサ16と、メモリ28と、ディスプレイ24及びキーボード、ポインティング・デバイス等などの外部装置14への入力/出力インターフェース22を用いることができる。本明細書で用いられる「プロセッサ」という用語は、例えば、CPU(中央処理ユニット)及び/又は他の処理回路を含むものなどの、任意の処理デバイスを含むことが意図される。さらに、「プロセッサ」という用語は、1つより多い個々のプロセッサを指し得る。本明細書で用いられる「メモリ」という用語は、例えば、RAM(ランダム・アクセス・メモリ)、ROM(読み出し専用メモリ)、固定メモリ・デバイス(例えばハード・ドライブ34)、取り外し可能メモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリ等のような、プロセッサ又はCPUと関連したメモリを含むことが意図される。さらに、本明細書で用いられる「入力/出力デバイス」という語句は、例えば、データを処理ユニットに入力するための1つ又は複数の機構(例えば、マウス)、及び、処理ユニットと関連した結果を提示するための1つ又は複数の機構(例えば、プリンタ)へのインターフェースを考えるよう意図される。プロセッサ16、メモリ28、及び/又は入力/出力インターフェース22は、例えば、データ処理ユニット12の一部としてバス18を介して相互接続することができる。例えばバス18を介した適切な相互接続を、コンピュータ・ネットワークとインターフェース接続するために提供することができる、ネットワーク・カードなどのネットワーク・インターフェース20、及び、適切な媒体とインターフェース接続することができる、ディスケット又はCD−ROMドライブのような媒体インターフェースに与えることもできる。
従って、本発明の方法をここで説明されたように行うための命令又はコードを含むコンピュータ・ソフトウェアを、1つ又は複数の関連付けられたメモリ・デバイス(例えば、ROM、固定又は取り外し可能なメモリ)内に格納し、利用準備ができたときに一部又は全部を(例えば、RAM内に)ロードし、CPUによって実施することができる。このようなソフトウェアは、これらに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むことができる。
プログラム・コードを格納及び/又は実行するのに適したデータ処理システムは、システム・バスを通じてメモリ要素に直接又は間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実施中に用いられるローカル・メモリ、大容量記憶装置、及び、実施中に大容量記憶装置からコードを読み出さなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含むことができる。
入力/出力デバイスすなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス等を含むがこれらに限定されない)は、直接又は介在するI/Oコントローラを通じてシステムに結合することもできる。
ネットワーク・アダプタ20をシステムに結合させて、データ処理システムが、介在する私設ネットワーク又は公衆ネットワークを通じて他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスに結合できるようにすることもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現在入手可能なネットワーク・アダプタのタイプのうちのほんの数例である。
特許請求の範囲を含めた本明細書で用いられる場合、「サーバ」は、サーバ・プログラムを実行する物理的データ処理システム(例えば、図1に示されるようなシステム12)を含む。そのような物理的サーバは、ディスプレイ及びキーボードを含む場合も又は含まない場合もあることが理解されるであろう。
前述のように、本発明の態様は、具体化されたコンピュータ可読プログラム・コードをその中に有する1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。1つ又は複数のコンピュータ可読媒体のあらゆる組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもよく、又はコンピュータ可読ストレージ媒体であってもよい。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子的、磁気的、光学的、電磁的、赤外線若しくは半導体のシステム、装置若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)は、以下もの、すなわち、1つ又は複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、又は上記のいずれかの適切な組み合わせを含む。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって用いられる又はそれらに関連して用いられるプログラムを収容又は格納することができる、いずれかの有形媒体とすることができる。
コンピュータ可読信号媒体は、具体化されたコンピュータ可読プログラム・コードを、例えばベースバンド内に又は搬送波の一部としてその中に有する、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁的形態、光学的形態又はこれらのいずれかの適切な組み合わせを含む種々の形態のうちのいずれかをとることもできる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって用いられる又はそれらに関連して用いられるプログラムを伝達、伝搬又伝送することができる、いずれかのコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は上記のいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。本発明の態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語のような従来の手続き型プログラミング言語、又は同様のプログラミング言語、又はPerlのようなスクリプト言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。幾つかの場合、最適化ソルバー(optimizing solver)を、例えば、ILOG CPLEXなどのサブコンポーネント(米国ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な、線形計画法(linear programming)、混合整数計画法(mixed integerprogramming)及び二次計画法(quadratic programming)のための高性能の数理計画ソルバー)として用いることができる。一般的に言うと、プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの(例えば、インターネット・サービス・プロバイダを用いるインターネットを通じた)接続がなされる場合もある。1つ又は複数の実施形態において、コードのかなりの部分は、アプリケーション・リソース・マネージャと関連付けられたものであり、これは、クラウド又は外部で実行され得る。少なくとも幾つかの場合において、エンド・ユーザ・マシン上ではなく、サーバ上にある可能性が高い(たとえ、そうであったとしても、アプリケーション所有者のエンド・ユーザ・マシン)が、アプリケーション所有者がラップトップ等からこれを実行することは不可能ではない。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して以下で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようにすることができる。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスに特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で、コンピュータ実装プロセスを生成するための一連の動作ステップを実施させて、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示す。これに関して、フローチャート又はブロック図中の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含むコードの、モジュール、セグメント、又は部分を表すことができる。さらに、幾つかの代替的実施形態において、ブロック内に記述された機能は、図中に示したのとは別の順序で実行することができることに留意されたい。例えば、連続して示した2つのブロックは、実際には、実質的に並列に実行することができ、又はブロックは場合により、関与する機能性に応じて逆の順序で実行することができる。さらに、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアをベースとするシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施できることにも留意されたい。
本明細書で説明される方法のいずれも、コンピュータ可読ストレージ媒体上で具体化される別個のソフトウェア・モジュールを含むシステムを提供する付加的なステップを含むことができ、これらのモジュールは、例えば、限定ではなく例示として、図6に示されるようなポリシー・サブ・モジュール、管理サブ・モジュール、制御サブ・モジュール及び解釈サブ・モジュールといった1つ又は複数のサブ・モジュールを有するアプリケーション・リソース・マネージャ・モジュールなどの、ブロック図及び/又は本明細書で説明される要素のいずれか又は全てを含むことができる。次に、16個など、1つ又は複数のハードウェア・プロセッサ上で実行されている、上述のようなシステムの別個のソフトウェア・モジュール及び/又はサブ・モジュールを用いて、方法ステップを実行することができる。さらに、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムを設けることを含む、本明細書で説明される1つ又は複数の方法ステップの実行のために実装されるように適合されたコードを有するコンピュータ可読ストレージ媒体を含むことができる。幾つかの場合、判断するステップは、少なくとも1つのハードウェア・プロセッサ上で実行されている管理サブ・モジュールにより実行され、拡張又は縮小は、少なくとも1つのハードウェア・プロセッサ上で実行されている制御サブ・モジュールにより実行される。取得するステップは、通常、アプリケーション・リソース・マネージャ・モジュールにより実行されるものと考えることができ、予測がアプリケーション所有者から取得される場合、ポリシー・サブ・モジュールを用いることができるが、アプリケーション・リソース・マネージャ自体が、アプリケーション及び/又はクラウド管理インターフェースからのデータから予測を導き出す場合には、解釈サブ・モジュールを用いることができる。
いずれの場合でも、本明細書で示されるコンポーネントは、例えば、特定用途向け集積回路(ASICS)、機能回路、関連したメモリを有する1つ又は複数の適切にプログラムされた汎用デジタル・コンピュータ等など、ハードウェア、ソフトウェア、又はそれらの組み合わせの種々の形で実装できることを理解されたい。本明細書で与えられる本発明の教示が与えられると、当業者は、本明細書のコンポーネントの他の実装を考えることができるであろう。
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的とし、本発明を限定することを意図したものではない。ここで用いられる単数形の「1つの(a)」、「1つの(an)」及び「その(the)」という用語は、文脈が明確に他の場合を指示していない限り、複数形も含む。「含む(comprise)」及び/又は「含んでいる(comprising)」という用語は、本明細書で用いられるとき、記述された特徴、整数、ステップ、操作、要素、及び/又はコンポーネントの存在を指定するが、1つ又は複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、及び/又はその群の存在又は付加を除外するものではないことが、さらに理解されるであろう。
下記の特許請求の範囲におけるすべての機能付き手段(ミーンズ・プラス・ファンクション)又は機能付き工程(ステップ・プラス・ファンクション)の対応する構造、材料、動作、及び均等物は、該当する場合には、具体的に請求される他の請求要素と組み合わせて本機能を実施するためのいずれかの構造、材料、又は動作を含むことを意図している。本発明の記載は、例示及び説明目的で提示されたが、網羅的であることを意図するものでも、開示された形態の発明に限定されることを意図するものでものでもない。当業者であれば、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明し、その他の当業者が企図される特定の使用に適した種々の修正を伴う種々の実施形態について本発明を理解できるように、選択され、説明された。
10:クラウド・コンピューティング・ノード
12:コンピュータ・システム/サーバ
14:外部デバイス
16:処理ユニット(プロセッサ)
18:バス
20:ネットワーク・アダプタ
22:入力/出力(I/O)インターフェース
24:ディスプレイ
28:システム・メモリ
30:ランダム・アクセス・メモリ(RAM)
32:キャッシュ・メモリ
34:ストレージ・システム
40:プログラム/ユーティリティ
42:プログラム・モジュール
50:クラウド・コンピューティング環境
54A:携帯情報端末(PDA)又は携帯電話
54B:デスクトップ・コンピュータ
54C:ラップトップ・コンピュータ
54N:自動車コンピュータ・システム
60:ハードウェア及びソフトウェア層
62:仮想化層
64:管理層
66:ワークロード層
401:アプリケーション・リソース・マネージャ・コンポーネント
403:アプリケーション・コンポーネント
511:アプリケーション・ボックス
513:アプリケーション所有者
515:通常のアプリケーション・ユーザ
517:アプリケーション・ソフトウェア
519:イメージ
521:クラウド・ランタイム環境
523:クラウド管理プラットフォーム
631:ポリシー
633:管理コンポーネント
635:制御コンポーネント
637:解釈コンポーネント
12:コンピュータ・システム/サーバ
14:外部デバイス
16:処理ユニット(プロセッサ)
18:バス
20:ネットワーク・アダプタ
22:入力/出力(I/O)インターフェース
24:ディスプレイ
28:システム・メモリ
30:ランダム・アクセス・メモリ(RAM)
32:キャッシュ・メモリ
34:ストレージ・システム
40:プログラム/ユーティリティ
42:プログラム・モジュール
50:クラウド・コンピューティング環境
54A:携帯情報端末(PDA)又は携帯電話
54B:デスクトップ・コンピュータ
54C:ラップトップ・コンピュータ
54N:自動車コンピュータ・システム
60:ハードウェア及びソフトウェア層
62:仮想化層
64:管理層
66:ワークロード層
401:アプリケーション・リソース・マネージャ・コンポーネント
403:アプリケーション・コンポーネント
511:アプリケーション・ボックス
513:アプリケーション所有者
515:通常のアプリケーション・ユーザ
517:アプリケーション・ソフトウェア
519:イメージ
521:クラウド・ランタイム環境
523:クラウド管理プラットフォーム
631:ポリシー
633:管理コンポーネント
635:制御コンポーネント
637:解釈コンポーネント
Claims (25)
- アプリケーション・リソース・マネージャにより、infrastructure as a serviceクラウド及びplatform as a serviceクラウドの少なくとも一方を含むクラウド上で動作するアプリケーションに対する今後の需要の予測を取得するステップと、
前記アプリケーション・リソース・マネージャにより、前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断するステップと、
前記判断するステップに応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行するステップと、
を含む方法。 - 前記取得するステップは、アプリケーション所有者から前記予測を取得するステップを含む、請求項1に記載の方法。
- 前記取得するステップは、前記アプリケーション・リソース・マネージャが、
前記アプリケーション、及び前記クラウドのクラウド管理インターフェースからのデータのうちの少なくとも一方の観察に基づいて、前記予測を導き出すステップを含む、請求項1に記載の方法。 - 前記判断するステップは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて未使用のイメージをスタッシュすることにより、前記縮小を実行するステップを含む、請求項1に記載の方法。
- 前記判断するステップは、前記アプリケーション専用である前記クラウドのリソースを拡張する必要があると判断するステップを含み、前記実行するステップは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行するステップを含む、請求項1に記載の方法。
- 前記アプリケーション・リソース・マネージャが、アプリケーション・レベルのソフトウェア及びデータの少なくとも一方を前記新しいイメージにプロビジョニングするステップをさらに含む、請求項5に記載の方法。
- 前記クラウド上で前記アプリケーション・リソース・マネージャを動作させること、及び、
前記クラウド以外のコンピューティング・リソース上で前記アプリケーション・リソース・マネージャを動作させること、
の少なくとも一方をさらに含む、請求項1に記載の方法。 - 前記判断するステップは、前記予測される今後の需要を満たすのに最も費用効果の高い方法を見出すステップを含む、請求項1に記載の方法。
- 前記取得するステップにおいて、前記予測される今後の需要は、性能及び可用性の少なくとも一方に関して特定される、請求項1に記載の方法。
- 前記アプリケーション・リソース・マネージャは、
前記アプリケーション、及び 前記アプリケーション専用である前記クラウドの前記リソースの少なくとも一方を検出するために、発見ツールを周期的に動作させるステップをさらに含む、請求項1に記載の方法。 - システムを提供するステップをさらに含み、前記システムは別個のソフトウェア・モジュールを含み、前記別個のソフトウェア・モジュールの各々はコンピュータ可読ストレージ媒体上に具体化され、前記別個のソフトウェア・モジュールは、アプリケーション・リソース・マネージャ・モジュールと、管理サブ・モジュールと、制御サブ・モジュールとを含み、
前記取得するステップは、少なくとも1つのハードウェア・プロセッサ上で実行されている前記アプリケーション・リソース・マネージャ・モジュールにより実行され、
前記判断するステップは、前記少なくとも1つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより実行され、
前記拡張するステップ及び縮小するステップの前記一方は、前記少なくとも1つのハードウェア・プロセッサ上で実行されている前記制御サブ・モジュールにより実行される、請求項1に記載の方法。 - 前記別個のソフトウェア・モジュールは、ポリシー・サブ・モジュール及び解釈サブ・モジュールをさらに含み、
前記判断するステップは、前記少なくとも1つのハードウェア・プロセッサ上で実行されている前記管理サブ・モジュールにより、前記ポリシー・サブ・モジュールの少なくとも1つのポリシーを実装することによって、及び、前記解釈サブ・モジュールからの利用情報及び故障報告の少なくとも1つに基づいて、実行される、
請求項11に記載の方法。 - infrastructure as a serviceクラウド及びplatform as a serviceクラウドの少なくとも1つを含むクラウドと、
前記クラウド上で動作する少なくも1つのアプリケーションと、
アプリケーション・リソース・マネージャと、
を含み、
前記アプリケーション・リソース・マネージャは、
前記アプリケーションに対する今後の需要の予測を取得し、
前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断し、
前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、
システム。 - 前記アプリケーション・リソース・マネージャは、アプリケーション所有者から前記予測を取得する、請求項13に記載のシステム。
- 前記クラウドはクラウド管理インターフェースを含み、前記アプリケーション・リソース・マネージャは、前記アプリケーション及び前記クラウドのクラウド管理インターフェースからのデータの観察に基づいて前記予測を導き出すことにより、前記予測を取得する、請求項13に記載のシステム。
- 前記アプリケーション専用である前記クラウドの前記リソースの少なくとも幾つかはイメージを含み、
前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断し、
前記アプリケーション・リソース・マネージャは、前記イメージのうちの未使用のものをスタッシュすることにより、前記縮小を実行する、
請求項13に記載のシステム。 - 前記アプリケーション・リソース・マネージャは、前記アプリケーション専用である前記クラウドの前記リソースを拡張する必要があると判断し、前記アプリケーション・リソース・マネージャは、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行する、請求項13に記載のシステム。
- 前記アプリケーション・リソース・マネージャは、管理部分及び制御部分を含み、
前記アプリケーション・リソース・マネージャの前記管理部分は、前記予測に基づいて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を必要とすると判断し、
前記アプリケーション・リソース・マネージャの前記制御部分は、前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行する、請求項13に記載のシステム。 - コンピュータ可読プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を含むアプリケーション・リソース・マネージャのコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードは、
infrastructure as a serviceクラウド及びplatform as a serviceクラウドの少なくとも一方を含むクラウド上で実行されるアプリケーションに対する今後の需要の予測を取得するように構成されたコンピュータ可読プログラム・コードと、
前記予測に基づいて、前記アプリケーション専用である前記クラウドのリソースの拡張及び縮小の一方を必要とすると判断するように構成されたコンピュータ可読プログラム・コードと、
前記判断に応じて、前記アプリケーション専用である前記クラウドの前記リソースの拡張及び縮小の一方を実行するための命令を指定するように構成されたコンピュータ可読プログラム・コードと、
を含む、コンピュータ・プログラム製品。 - 前記予測を取得するように構成された前記コンピュータ可読プログラム・コードは、アプリケーション所有者から前記予測を取得するように構成されたコンピュータ可読プログラム・コードを含む、請求項19に記載のコンピュータ・プログラム製品。
- 前記予測を取得するように構成された前記コンピュータ可読プログラム・コードは、
前記アプリケーション、及び前記クラウドのクラウド管理インターフェースからのデータのうちの少なくとも一方の観察に基づいて、前記予測を導き出すように構成されたコンピュータ可読プログラム・コードを含む、請求項19に記載のコンピュータ・プログラム製品。 - 前記判断するように構成されたコンピュータ可読プログラム・コードは、前記アプリケーション専用である前記クラウドの前記リソースを縮小する必要があると判断するように構成されたコンピュータ可読プログラム・コードを含み、前記命令は、前記クラウドにおいて未使用のイメージをスタッシュすることにより、前記縮小を実行することを指定する、請求項19に記載のコンピュータ・プログラム製品。
- 前記判断するように構成されたコンピュータ可読プログラム・コードは、前記アプリケーション専用である前記クラウドの前記リソースを拡張する必要があると判断するように構成されたコンピュータ可読プログラム・コードを含み、前記命令は、前記クラウドにおいて新しいイメージをプロビジョニングすることにより、前記拡張を実行することを指定する、請求項19に記載のコンピュータ・プログラム製品。
- 前記コンピュータ可読プログラム・コードは別個のソフトウェア・モジュールを含み、前記別個のソフトウェア・モジュールは、アプリケーション・リソース・マネージャ・モジュールと、管理サブ・モジュールと、制御サブ・モジュールとを含み、
前記アプリケーション・リソース・マネージャ・モジュールは、取得するように構成された前記コンピュータ可読プログラム・コードを含み、
前記管理サブ・モジュールは、判断するように構成された前記コンピュータ可読プログラム・コードを含み、
前記制御サブ・モジュールは、指定するように構成された前記コンピュータ可読プログラム・コードを含む、請求項19に記載のコンピュータ・プログラム製品。 - 前記別個のソフトウェア・モジュールは、ポリシー・サブ・モジュール及び解釈サブ・モジュールをさらに含み、
前記管理サブ・モジュールは、前記ポリシー・サブ・モジュールの少なくとも1つのポリシーを実装することによって、かつ、前記解釈サブ・モジュールからの利用情報及び故障報告の少なくとも1つに基づいて、前記判断を実行する、請求項24に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/180,858 | 2011-07-12 | ||
US13/180,858 US20130019015A1 (en) | 2011-07-12 | 2011-07-12 | Application Resource Manager over a Cloud |
PCT/US2012/045882 WO2013009665A1 (en) | 2011-07-12 | 2012-07-08 | Application resource manager over a cloud |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014527221A true JP2014527221A (ja) | 2014-10-09 |
Family
ID=47506432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014520228A Pending JP2014527221A (ja) | 2011-07-12 | 2012-07-08 | クラウド上のアプリケーション・リソース・マネージャ |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130019015A1 (ja) |
JP (1) | JP2014527221A (ja) |
CN (1) | CN103649941A (ja) |
DE (1) | DE112012002941T5 (ja) |
GB (1) | GB2506325A (ja) |
WO (1) | WO2013009665A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016192660A (ja) * | 2015-03-31 | 2016-11-10 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御方法、制御装置および運用管理装置 |
JP2016192661A (ja) * | 2015-03-31 | 2016-11-10 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御方法および制御装置 |
CN110603522A (zh) * | 2017-05-02 | 2019-12-20 | 纳木技术株式会社 | 在云平台上将应用程序容器化的方法 |
JP2020030604A (ja) * | 2018-08-22 | 2020-02-27 | 富士通株式会社 | プラン提示プログラム、プラン提示方法、及び情報処理装置 |
Families Citing this family (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715457B2 (en) | 2010-06-15 | 2020-07-14 | Oracle International Corporation | Coordination of processes in cloud computing environments |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US20130030857A1 (en) * | 2011-07-28 | 2013-01-31 | International Business Machines Corporation | Methods and systems for dynamically facilitating project assembly |
US8913611B2 (en) * | 2011-11-15 | 2014-12-16 | Nicira, Inc. | Connection identifier assignment and source network address translation |
US20130159494A1 (en) * | 2011-12-15 | 2013-06-20 | Cisco Technology, Inc. | Method for streamlining dynamic bandwidth allocation in service control appliances based on heuristic techniques |
CN104303175B (zh) * | 2012-02-10 | 2018-06-12 | 甲骨文国际公司 | 云计算服务框架 |
US9311119B2 (en) * | 2012-05-30 | 2016-04-12 | Red Hat, Inc. | Reconfiguring virtual machines |
US8959513B1 (en) * | 2012-09-27 | 2015-02-17 | Juniper Networks, Inc. | Controlling virtualization resource utilization based on network state |
JP2014171211A (ja) * | 2013-02-06 | 2014-09-18 | Ricoh Co Ltd | 情報処理システム |
US9817699B2 (en) | 2013-03-13 | 2017-11-14 | Elasticbox Inc. | Adaptive autoscaling for virtualized applications |
US9473355B2 (en) * | 2013-03-14 | 2016-10-18 | Amazon Technologies, Inc. | Inferring application inventory |
US10454999B2 (en) * | 2013-03-14 | 2019-10-22 | Red Hat, Inc. | Coordination of inter-operable infrastructure as a service (IAAS) and platform as a service (PAAS) |
CN103167037B (zh) * | 2013-03-15 | 2016-12-28 | 苏州九光信息科技有限公司 | 基于模块化的云计算系统 |
US9519653B2 (en) | 2013-04-01 | 2016-12-13 | Ctera Networks, Ltd. | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system |
US9729465B2 (en) | 2013-05-01 | 2017-08-08 | Red Hat, Inc. | Policy based application elasticity across heterogeneous computing infrastructure |
US20140351441A1 (en) * | 2013-05-26 | 2014-11-27 | Connectloud, Inc. | Method and Apparatus for SLA-aware System to Recommend Best Match for Cloud Resource Provisioning |
US20140351391A1 (en) * | 2013-05-26 | 2014-11-27 | Connectloud, Inc. | Method and Apparatus to Recommend a Workload Distribution Path Based on Resource Usage Pattern |
US20140351430A1 (en) * | 2013-05-26 | 2014-11-27 | Connectloud, Inc. | Method and Apparatus for Capacity-Aware System to Recommend Capacity Management Suggestions |
US20140351429A1 (en) * | 2013-05-26 | 2014-11-27 | Connectloud, Inc. | Method and Apparatus to Elastically Modify Size of a Resource Pool |
US9547835B2 (en) | 2013-08-20 | 2017-01-17 | International Business Machines Corporation | Modularly managed service platform |
CN105593835B (zh) * | 2013-10-03 | 2019-03-08 | 慧与发展有限责任合伙企业 | 通过主云服务管理器管理多个二级云 |
US9639817B2 (en) * | 2013-11-13 | 2017-05-02 | Google, Inc. | Remote metering for panelist web usage |
US9544385B1 (en) * | 2014-02-24 | 2017-01-10 | Google Inc. | Providing second content items in association with first content items |
US20150264117A1 (en) * | 2014-03-14 | 2015-09-17 | Avni Networks Inc. | Processes for a highly scalable, distributed, multi-cloud application deployment, orchestration and delivery fabric |
US9680708B2 (en) | 2014-03-14 | 2017-06-13 | Veritas Technologies | Method and apparatus for cloud resource delivery |
US20150355927A1 (en) * | 2014-06-04 | 2015-12-10 | Yahoo! Inc. | Automatic virtual machine resizing to optimize resource availability |
US9760952B2 (en) | 2014-06-12 | 2017-09-12 | International Business Machines Corporation | Application service aggregation and management |
US9426034B2 (en) | 2014-06-16 | 2016-08-23 | International Business Machines Corporation | Usage policy for resource management |
CN104102543B (zh) * | 2014-06-27 | 2018-09-11 | 北京奇艺世纪科技有限公司 | 一种云计算环境中负载调整的方法和装置 |
US10671508B2 (en) | 2014-09-25 | 2020-06-02 | Hewlett Packard Enterprise Development Lp | Testing a cloud service |
US10009292B2 (en) * | 2014-10-03 | 2018-06-26 | International Business Machines Corporation | Cloud independent tuning service for autonomously managed workloads |
US11182280B2 (en) | 2014-10-13 | 2021-11-23 | Microsoft Technology Licensing, Llc | Application testing |
US10284664B2 (en) | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Application testing |
US9886267B2 (en) | 2014-10-30 | 2018-02-06 | Equinix, Inc. | Interconnection platform for real-time configuration and management of a cloud-based services exchange |
CN105991687B (zh) * | 2015-02-03 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种服务管理方法和装置 |
US10275749B2 (en) | 2015-03-20 | 2019-04-30 | International Business Machines Corporation | Tracking use of a virtualization service according to globalization characteristic based usage |
US9942331B2 (en) | 2015-06-12 | 2018-04-10 | International Business Machines Corporation | Utilization of computing services |
US10243815B2 (en) * | 2015-06-29 | 2019-03-26 | Vmware, Inc. | Methods and systems to evaluate data center resource allocation costs |
CN105183820A (zh) * | 2015-08-28 | 2015-12-23 | 广东创我科技发展有限公司 | 一种支持多租户的大数据平台及租户访问方法 |
US10387209B2 (en) | 2015-09-28 | 2019-08-20 | International Business Machines Corporation | Dynamic transparent provisioning of resources for application specific resources |
US10200387B2 (en) * | 2015-11-30 | 2019-02-05 | International Business Machines Corporation | User state tracking and anomaly detection in software-as-a-service environments |
US10938665B2 (en) * | 2015-12-15 | 2021-03-02 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
US10394587B2 (en) | 2016-01-06 | 2019-08-27 | International Business Machines Corporation | Self-terminating or self-shelving virtual machines and workloads |
US10395195B2 (en) | 2016-01-08 | 2019-08-27 | International Business Machines Corporation | Provisioning virtual machines to optimize application licensing costs |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US9838376B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Microservices based multi-tenant identity and data security management cloud service |
US10425386B2 (en) | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US9781122B1 (en) | 2016-05-11 | 2017-10-03 | Oracle International Corporation | Multi-tenant identity and data security management cloud service |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US10581820B2 (en) | 2016-05-11 | 2020-03-03 | Oracle International Corporation | Key generation and rollover |
CN106022615B (zh) * | 2016-05-23 | 2020-05-19 | 上海中传网络技术股份有限公司 | 基于云计算的企业资源管理方法 |
US10313261B1 (en) * | 2016-06-15 | 2019-06-04 | Workday, Inc. | Tenant assignment system |
US10263947B2 (en) | 2016-08-05 | 2019-04-16 | Oracle International Corporation | LDAP to SCIM proxy service |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US10735394B2 (en) | 2016-08-05 | 2020-08-04 | Oracle International Corporation | Caching framework for a multi-tenant identity and data security management cloud service |
US10255061B2 (en) | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
US10585682B2 (en) | 2016-08-05 | 2020-03-10 | Oracle International Corporation | Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service |
US10505941B2 (en) | 2016-08-05 | 2019-12-10 | Oracle International Corporation | Virtual directory system for LDAP to SCIM proxy service |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
WO2018053258A1 (en) | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
CN106887166A (zh) * | 2017-02-20 | 2017-06-23 | 管斌彬 | 一种基于云平台的智慧学习系统 |
US10261836B2 (en) | 2017-03-21 | 2019-04-16 | Oracle International Corporation | Dynamic dispatching of workloads spanning heterogeneous services |
US10454915B2 (en) | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
US10838840B2 (en) * | 2017-09-15 | 2020-11-17 | Hewlett Packard Enterprise Development Lp | Generating different workload types for cloud service testing |
US10348858B2 (en) | 2017-09-15 | 2019-07-09 | Oracle International Corporation | Dynamic message queues for a microservice based cloud service |
US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | Oracle International Corporation | Rest-based declarative policy management |
US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
CN108062225B (zh) * | 2017-11-27 | 2021-08-27 | 国云科技股份有限公司 | 一种多模板组合发布应用集群的方法 |
CN107888706B (zh) * | 2017-12-08 | 2020-04-17 | 平安科技(深圳)有限公司 | 云产品故障处理方法、装置、设备及计算机可读存储介质 |
US11099964B2 (en) * | 2017-12-20 | 2021-08-24 | Pivotal Software, Inc. | Framework actuator integration |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
US11140096B2 (en) * | 2018-02-07 | 2021-10-05 | Cisco Technology, Inc. | Optimizing fog orchestration through edge compute resource reservation |
US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust for a multi-tenant identity cloud service |
US10798165B2 (en) | 2018-04-02 | 2020-10-06 | Oracle International Corporation | Tenant data comparison for a multi-tenant identity cloud service |
US11165634B2 (en) | 2018-04-02 | 2021-11-02 | Oracle International Corporation | Data replication conflict detection and resolution for a multi-tenant identity cloud service |
US11258775B2 (en) | 2018-04-04 | 2022-02-22 | Oracle International Corporation | Local write for a multi-tenant identity cloud service |
CN110389817B (zh) * | 2018-04-20 | 2023-05-23 | 伊姆西Ip控股有限责任公司 | 多云系统的调度方法、装置和计算机可读介质 |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
US10764273B2 (en) | 2018-06-28 | 2020-09-01 | Oracle International Corporation | Session synchronization across multiple devices in an identity cloud service |
US10824413B2 (en) * | 2018-07-23 | 2020-11-03 | International Business Machines Corporation | Maintenance of computing nodes concurrently in a number updated dynamically |
US11693835B2 (en) | 2018-10-17 | 2023-07-04 | Oracle International Corporation | Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service |
US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
US11010336B2 (en) * | 2018-12-27 | 2021-05-18 | Nutanix, Inc. | System and method for provisioning databases in a hyperconverged infrastructure system |
US11651357B2 (en) | 2019-02-01 | 2023-05-16 | Oracle International Corporation | Multifactor authentication without a user footprint |
US11061929B2 (en) | 2019-02-08 | 2021-07-13 | Oracle International Corporation | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
EP3832464A1 (en) * | 2019-12-06 | 2021-06-09 | Tata Consultancy Services Limited | System and method for selection of cloud service providers in a multi-cloud |
US11316954B2 (en) * | 2020-02-07 | 2022-04-26 | Shopify Inc. | System and method for offloading application extension script execution from application hosting infrastructure |
US11222035B2 (en) * | 2020-03-03 | 2022-01-11 | Sap Se | Centralized multi-tenancy as a service in cloud-based computing environment |
CN111475295B (zh) * | 2020-04-03 | 2024-02-20 | 上海依图网络科技有限公司 | 软硬件分层管理方法、装置及计算机可读存储介质 |
CN112948091B (zh) * | 2021-03-24 | 2024-01-30 | 国网上海市电力公司 | 应用系统的迁移方法、装置、电子设备及存储介质 |
DE102022201291A1 (de) | 2022-02-08 | 2023-08-10 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie |
ES2957182A1 (es) * | 2022-05-31 | 2024-01-12 | Pronoide S L | Sistema y metodo para la creacion de videos instructivos mediante el empleo de secuencias de comandos |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0213073D0 (en) * | 2002-06-07 | 2002-07-17 | Hewlett Packard Co | Method of maintaining availability of requested network resources |
US20110016214A1 (en) * | 2009-07-15 | 2011-01-20 | Cluster Resources, Inc. | System and method of brokering cloud computing resources |
US20110110568A1 (en) * | 2005-04-08 | 2011-05-12 | Gregory Vesper | Web enabled medical image repository |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
EP1934794B1 (en) * | 2005-09-15 | 2017-08-02 | CA, Inc. | Apparatus, method and system for rapid delivery of distributed applications |
US8250215B2 (en) * | 2008-08-12 | 2012-08-21 | Sap Ag | Method and system for intelligently leveraging cloud computing resources |
US7996525B2 (en) * | 2008-12-31 | 2011-08-09 | Sap Ag | Systems and methods for dynamically provisioning cloud computing resources |
US8117317B2 (en) * | 2008-12-31 | 2012-02-14 | Sap Ag | Systems and methods for integrating local systems with cloud computing resources |
US9485117B2 (en) * | 2009-02-23 | 2016-11-01 | Red Hat, Inc. | Providing user-controlled resources for cloud computing environments |
CN102460393B (zh) * | 2009-05-01 | 2014-05-07 | 思杰系统有限公司 | 用于在虚拟存储资源之间建立云桥的系统和方法 |
US20100293147A1 (en) * | 2009-05-12 | 2010-11-18 | Harvey Snow | System and method for providing automated electronic information backup, storage and recovery |
US9703609B2 (en) * | 2009-05-29 | 2017-07-11 | Red Hat, Inc. | Matching resources associated with a virtual machine to offered resources |
US8121618B2 (en) * | 2009-10-28 | 2012-02-21 | Digimarc Corporation | Intuitive computing methods and systems |
US8615584B2 (en) * | 2009-12-03 | 2013-12-24 | International Business Machines Corporation | Reserving services within a cloud computing environment |
WO2011091056A1 (en) * | 2010-01-19 | 2011-07-28 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer |
US8433802B2 (en) * | 2010-01-26 | 2013-04-30 | International Business Machines Corporation | System and method for fair and economical resource partitioning using virtual hypervisor |
US8660355B2 (en) * | 2010-03-19 | 2014-02-25 | Digimarc Corporation | Methods and systems for determining image processing operations relevant to particular imagery |
US20110313902A1 (en) * | 2010-06-18 | 2011-12-22 | International Business Machines Corporation | Budget Management in a Compute Cloud |
CN101968859A (zh) * | 2010-09-29 | 2011-02-09 | 用友软件股份有限公司 | 基于云计算环境的业务流程管理方法和系统 |
CN102004671B (zh) * | 2010-11-15 | 2013-03-13 | 北京航空航天大学 | 一种云计算环境下数据中心基于统计模型的资源管理方法 |
US7991632B1 (en) * | 2011-01-28 | 2011-08-02 | Fmr Llc | Method and system for allocation of resources in a project portfolio |
CN102111337B (zh) * | 2011-03-14 | 2013-05-15 | 浪潮(北京)电子信息产业有限公司 | 任务调度方法和系统 |
US20120265881A1 (en) * | 2011-04-14 | 2012-10-18 | Yuan Chen | Provisioning data center resources |
US8914513B2 (en) * | 2011-06-23 | 2014-12-16 | Cisco Technology, Inc. | Hierarchical defragmentation of resources in data centers |
-
2011
- 2011-07-12 US US13/180,858 patent/US20130019015A1/en not_active Abandoned
-
2012
- 2012-07-08 DE DE112012002941.0T patent/DE112012002941T5/de not_active Withdrawn
- 2012-07-08 JP JP2014520228A patent/JP2014527221A/ja active Pending
- 2012-07-08 WO PCT/US2012/045882 patent/WO2013009665A1/en active Application Filing
- 2012-07-08 GB GB1400744.7A patent/GB2506325A/en not_active Withdrawn
- 2012-07-08 CN CN201280033898.1A patent/CN103649941A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016192660A (ja) * | 2015-03-31 | 2016-11-10 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御方法、制御装置および運用管理装置 |
JP2016192661A (ja) * | 2015-03-31 | 2016-11-10 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御方法および制御装置 |
CN110603522A (zh) * | 2017-05-02 | 2019-12-20 | 纳木技术株式会社 | 在云平台上将应用程序容器化的方法 |
JP2020520528A (ja) * | 2017-05-02 | 2020-07-09 | ナム テク カンパニー リミテッドNamu Tech Co., Ltd. | クラウドプラットフォームでアプリケーションをコンテナ化する方法 |
JP7011127B2 (ja) | 2017-05-02 | 2022-01-26 | ナム テク カンパニー リミテッド | クラウドプラットフォームでアプリケーションをコンテナ化する方法 |
CN110603522B (zh) * | 2017-05-02 | 2023-04-18 | 纳木技术株式会社 | 在云平台上将应用程序容器化的方法 |
JP2020030604A (ja) * | 2018-08-22 | 2020-02-27 | 富士通株式会社 | プラン提示プログラム、プラン提示方法、及び情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103649941A (zh) | 2014-03-19 |
US20130019015A1 (en) | 2013-01-17 |
GB201400744D0 (en) | 2014-03-05 |
WO2013009665A1 (en) | 2013-01-17 |
GB2506325A (en) | 2014-03-26 |
DE112012002941T5 (de) | 2014-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014527221A (ja) | クラウド上のアプリケーション・リソース・マネージャ | |
US10969967B2 (en) | Allocation and balancing of storage resources based on anticipated workload levels | |
US11204793B2 (en) | Determining an optimal computing environment for running an image | |
US10514960B2 (en) | Iterative rebalancing of virtual resources among VMs to allocate a second resource capacity by migrating to servers based on resource allocations and priorities of VMs | |
US10228984B2 (en) | Management of virtual machine migration in an operating environment | |
US8825863B2 (en) | Virtual machine placement within a server farm | |
US10387209B2 (en) | Dynamic transparent provisioning of resources for application specific resources | |
JP2014532247A (ja) | 容易にクラウド化可能なアプリケーションの発見型の識別および移行 | |
US9665154B2 (en) | Subsystem-level power management in a multi-node virtual machine environment | |
US9619293B1 (en) | Event response for a shared pool of configurable computing resources which uses a set of dynamically-assigned resources | |
US10764158B2 (en) | Dynamic system level agreement provisioning | |
US9229777B2 (en) | Dynamically relocating workloads in a networked computing environment | |
US20150355926A1 (en) | Selecting a host for a virtual machine using a hardware multithreading parameter | |
JP2023544192A (ja) | ファンクション実行のためのコンピューティング・リソースのタグ・ドリブン・スケジューリング | |
US20230056965A1 (en) | Dynamic multi-stream deployment planner |