JP5948451B2 - 専用実装リソースを用いる仮想リソース費用追跡 - Google Patents

専用実装リソースを用いる仮想リソース費用追跡 Download PDF

Info

Publication number
JP5948451B2
JP5948451B2 JP2015036886A JP2015036886A JP5948451B2 JP 5948451 B2 JP5948451 B2 JP 5948451B2 JP 2015036886 A JP2015036886 A JP 2015036886A JP 2015036886 A JP2015036886 A JP 2015036886A JP 5948451 B2 JP5948451 B2 JP 5948451B2
Authority
JP
Japan
Prior art keywords
resource
implementation
dedicated
server
virtual
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.)
Active
Application number
JP2015036886A
Other languages
English (en)
Other versions
JP2015135691A (ja
Inventor
ジェイソン ブランドワイン エリック
ジェイソン ブランドワイン エリック
エム.テイマー マーヴィン
エム.テイマー マーヴィン
デサンティス ピーター
デサンティス ピーター
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US12/894,883 external-priority patent/US10013662B2/en
Priority claimed from US12/894,496 external-priority patent/US11106479B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2015135691A publication Critical patent/JP2015135691A/ja
Application granted granted Critical
Publication of JP5948451B2 publication Critical patent/JP5948451B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Description

多種多様のタスクを実行および/または支援するためにコンピュータを使用することが、個人や様々な種類の組織にとって一般的になっている。物理的なコンピュータを購入することや維持することよりも、仮想コンピュータシステム、および他の様々な種類の仮想コンピューティングリソースを、そのような仮想リソースの専門のプロバイダで、プロビジョニングすることがますます一般的になってきた。仮想リソースプロバイダの顧客の観点からすれば、仮想コンピューティングリソースの使用は、費用効率や変化するコンピューティングニーズに対する時宜を得た応答などの様々な利点を有し得る。しかしながら、従来の仮想リソースプロバイダは様々な欠点を有する。
仮想リソースプロバイダは、複数の仮想コンピュータシステムをホストすることがそれぞれ可能な比較的大容量のコンピュータを含む大規模の物理的なコンピュータを管理してもよい。仮想リソースプロバイダは、仮想コンピュータシステムを物理的なホストコンピュータに割り当てる様々な方法を使用することができる。従来のいくつかの仮想リソースプロバイダでは、1人の顧客用にプロビジョニングされた特定の仮想コンピュータシステムは、複数の他の顧客に関連付けられた仮想コンピュータシステムと共に大容量コンピュータを共有してもよい。そのような共有は、規制要件、組織の方針および/または認識されるデータ安全リスクを含む様々な理由のために1人以上の顧客に受け入れ難いかもしれない。従来のいくつかの仮想リソースプロバイダは、顧客の観点からおよび/またはプロバイダの観点から、仮想リソースプロバイダの有効性に対し、効率(費用効率を含む)に対しおよび/または他の仮想リソースプロバイダの利点に対して有害な方法での受け入れ難い共有を阻止することを試みている。
本開示による様々な実施形態は、図面を参照にして説明される。
類似の構成要素および特徴を参照するために同一の番号が本開示および図面の全体を通して使用されるが、そのような番号の繰り返しは、説明および理解を簡単にするためであり、様々な実施形態を制限するものとして見なされるべきではない。
少なくとも1つの実施形態による態様を実施する環境例を図示する概略図である。 少なくとも1つの実施形態による仮想リソースプロビジョニングアーキテクチャ例の態様を描写する概略図である。 少なくとも1つの実施形態による地理的領域例の態様を描写する地理的図である。 少なくとも1つの実施形態によるデータセンタ例の態様を描写する概略図である。 少なくとも1つの実施形態によるデータセンタ例の別の態様を描写する概略図である。 少なくとも1つの実施形態による仮想コンピューティングシステムサーバ例の態様を描写する概略図である。 少なくとも1つの実施形態による実装リソースプール例の態様を描写する概略図である。 少なくとも1つの実施形態による専用実装リソースプールの遷移プロシージャのタイミング例の態様を描写するタイミング図である。 少なくとも1つの実施形態による実装リソース利用アカウンティング方式例の態様を描写するグラフである。 少なくとも1つの実施形態による仮想リソースプロバイダの制御プレーン例の態様を描写する概略図である。 少なくとも1つの実施形態による仮想プロビジョニングのためのステップ例を描写するフローチャートである。 少なくとも1つの実施形態による実装リソース利用可能性を決定するステップ例を描写するフローチャートである。 少なくとも1つの実施形態による実装リソースを割り当てるおよび/または割り当てることを試みるステップ例を描写するフローチャートである。 少なくとも1つの実施形態による専用実装リソースプールを確立するステップ例を描写するフローチャートである。 少なくとも1つの実施形態による非アクティブな専用実装リソースバッファを維持するステップ例を描写するフローチャートである。 少なくとも1つの実施形態による費用を追跡するステップ例を描写するフローチャートである。 少なくとも1つの実施形態によるワークフローのためのステップ例を描写するフローチャートである。
以下の記載において、様々な実施形態が記載される。説明のために、具体的な構成および詳細が、実施形態の十分な理解をもたらすために記載される。しかしながら、実施形態が具体的な詳細無しに実施され得ることは、当業者にとって明らかでもあろう。更に、周知の特徴は、記載されている実施形態を不明瞭にしないために省略されまたは簡単にされることがある。
少なくとも1つの実施形態において、仮想リソースは、潜在的な実装リソース境界を認識し、考慮した方法でプロビジョニングされることができる。仮想リソースプロバイダは、特定の組の実装リソース(例えば、データセンタ空間、物理的なサーバコンピュータ、ネットワーキングハードウェア)で様々な種類の仮想リソース(例えば、仮想コンピュータシステム、仮想データストア、仮想ネットワーク接続)のそれぞれをプロビジョニングすることができる。少なくともいくつかの実装リソースは、仮想リソースプロバイダの異なる顧客にそれぞれ潜在的に関連付けられた複数の仮想リソースインスタンスの実施に参加可能であってもよい。少なくとも1つの実施形態において、仮想リソースプロバイダの1組の顧客(すなわち、1人以上の顧客)は、特定の仮想リソースがその組の顧客に専用である実装リソースで実装される(すなわち、「専用実装リソース」で実装される)こと、および/またはその組の顧客の仮想リソースを実施するために利用される特定の実装リソースが専用実装リソースになることを指定することができる。
実装リソース境界(例えば、物理的な分離境界)は、情報バリア(例えば、意図されていない情報転送および/または認証されていないデータ修正に対するバリア)に対応することができる。したがって、実装リソースを仮想リソースプロバイダの特定の組の顧客に専用にすること(それによって、その実装リソースから他の顧客を除外すること)は、仮想リソースプロバイダの特定の組の顧客と他の顧客との間に1つ以上の情報バリアを確立し得る(すなわち、特定の組の顧客を1つ以上の情報バリアの「後に」配置し得る)。あるいは、またはそれに加えて、実装リソースを専用にすると、例えば、予期しない実装リソースの競合を減らすことによって少なくとも部分的に、仮想リソース性能を向上することができる。別の代替案として、または更にそれに加えて、実装リソースを専用にすると、例えば他の実装リソースで生じる操作障害から仮想リソースを分離することによって、仮想リソースの耐障害性を向上することができる。
仮想リソースプロバイダは、仮想リソースプロバイダのどの顧客も除外されない実装リソースを含む一般的な実装リソースプールを維持してもよい。仮想リソースプロバイダは、仮想リソースプロバイダの1つ以上の組の顧客に専用の実装リソースを含む1つ以上の専用実装リソースプールを更に維持してもよい。専用実装リソースプールのそれぞれは、関連付けられた組の入口および/または出口プロシージャ(集合的には「遷移プロシージャ」)、例えばアクセス構成を含む実装リソース構成、記憶媒体フォーマッティング、および安全なデータ消去など、を有してもよい。専用プール内の実装リソースは、アクティブまたは非アクティブ(すなわち、1つ以上の仮想リソースの実装にアクティブに参加することまたはアイドル状態であること)であってもよい。仮想リソースプロバイダは、アクティブな実装リソースに対する非アクティブな実装リソースの目標割合、および/またはアクティビティレベルにおける予測変化(例えば、変化のレート)に少なくとも部分的に基づくサイズを有する非アクティブな実装リソース「バッファ」を維持するために、専用実装リソースプールにおけるアクティビティレベル、ならびに実装リソースが一般的な実装リソースプールからおよび一般的な実装リソースプールに遷移することを監視してもよい。
仮想リソースを顧客に提供することに関連付けられ、財務上の費用を含む、様々な費用が存在し得る。そのような費用は、仮想リソースプロバイダの顧客に提示されることができる。費用は、仮想リソースの単位時間当たりの利用可能性(例えば、顧客にプロビジョニングされる各仮想コンピュータシステムのための毎月のまたは毎時間の費用)に関して、処理され、記憶され、および/または転送されるデータの単位(例えば、ギガバイト)に関して、ならびに/あるいは仮想リソースを実装するためにアクティブに利用され、および/または他に利用不可能とされる実装リソースの単位に関して、提示されてもよい。特定の組の顧客に関連付けられた特定の専用プール内のアクティブなおよび非アクティブな実装リソースに対応する費用は、費用明細において別個のアクティブなおよび非アクティブな量としてこれらの顧客に提示されることができる。あるいは、個々の量は、特定の専用プール内のアクティブなおよび非アクティブな実装リソースを維持することに対応する費用に少なくとも部分的に基づいて顧客に提示されてもよい。別の代替案として、個々の量は、仮想リソースプロバイダ全体についてアクティブなおよび非アクティブな実装リソースを維持することに対応する費用に少なくとも部分的に基づいて顧客に提示されてもよい。少なくとも1つの実施形態において、仮想リソースプロバイダの顧客は、仮想リソースインスタンスおよび/または関連付けられた専用実装リソースを予約することによって専用プール内の実装リソースに関連付けられた費用を削減してもよい。
様々なアプローチが、様々な環境において様々なアプリケーションのために実施されてもよい。例えば、図1は、様々な実施形態による態様を実施する環境例100の態様を図示する。理解されるように、ウェブベースの環境は、説明の目的で使用され得るが、様々な実施形態を実施するために、適切な異なる環境が使用されてもよい。示される環境100は、テストまたは開発部分(もしくは側)と製造部分の両方を含む。製造部分は、電子クライアントデバイス102を含み、このデバイスは、適切なネットワーク104上で要求、メッセージ、または情報を送信および受信するように、ならびにデバイス102のユーザへ情報を伝達し戻すように操作可能な任意の適切なデバイスを含んでもよい。そのようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、携帯用メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、個人用情報端末、および電子ブックリーダ等が挙げられる。
ネットワーク104は、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ワイヤレスデータネットワーク、または任意の他のこのようなネットワークもしくはその組み合わせを含む、任意の適切なネットワークを含むことができる。このようなシステムに利用される構成要素は、ネットワークの種類および/または選択される環境に少なくとも部分的に依存してもよい。このようなネットワークを介する通信のためのプロトコルおよび構成要素は、周知であり、本明細書において詳細は説明されない。ネットワーク上の通信は、有線または無線接続、およびその組み合わせによって可能であってもよい。この例において、ネットワーク104は、環境が、要求の受信をするための、およびそれに応答してコンテンツをサービスするためのウェブサーバ106を含むため、インターネットを含むが、他のネットワークについては、当業者には明らかなように、同様の目的をサービスする代替のデバイスが使用されてもよい。
例示的な環境100は、少なくとも1つのアプリケーションサーバ108およびデータストア110を含む。連鎖しているか、あるいはそうでなければ構成されていてもよく、適切なデータストアからデータを入手する等のタスクを実行するために相互作用可能な、複数のアプリケーションサーバ、層、または他の要素、プロセス、もしくは構成要素が存在してもよいことを理解されたい。本明細書に使用される際、用語「データストア」は、データの記憶、アクセス、および/または読み出し能力のある、任意のデバイスまたはデバイスの組み合わせを指し、それは、任意の標準、分散、またはクラスタ化された環境における、データサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体の任意の組み合わせ、ならびに任意の数のそれらを含んでもよい。
アプリケーションサーバ108は、クライアントデバイス102に対する1つ以上のアプリケーションの態様を実行するために、必要に応じて、データストアと統合するための任意の適切なハードウェアおよびソフトウェアを含み、アプリケーションのためのデータアクセスとビジネスロジックの大半に対処することができる。アプリケーションサーバ108は、データストア110と連携して、アクセス制御サービスを提供し、ユーザに転送される、文字、図、音声、および/または映像等のコンテンツを生成することができ、そのコンテンツは、この例においては、ウェブサーバ106によって、HTML、XML、または別の適切な構造化言語の形態で、ユーザにサービスすることが可能である。
全ての要求および応答の対処、ならびにクライアントデバイス102とアプリケーションサーバ108との間のコンテンツ送達は、ウェブサーバ106によって対処することができる。ウェブサーバおよびアプリケーションサーバ106、108は、本明細書に記載の構造化コードが、本明細書の別の部分に記載されるように、任意の適切なデバイスまたはホストマシン上で実行可能であるため、必要ではなく、単なる構成要素例である。更に、環境100は、テスト自動化フレームワークが、ユーザまたはアプリケーションが登録可能なサービスとして提供することができるような方法で、設計することができる。テスト自動化フレームワークは、本明細書に記載の様々なテストパターンのいずれかの実装として提供されてもよいが、様々な他の実装も、本明細書に記載または提案されるように、同様に使用可能である。
環境100はまた、開発者、データ管理者、またはテスター等のユーザがシステムにアクセスすることを可能にする、ユーザデバイス118を含む、開発側および/またはテスト側を含むことができる。ユーザデバイス118は、クライアントデバイス102に関して上記されたような、任意の適切なデバイスまたはマシンであってもよい。環境100はまた、例えば、アプリケーションサーバ108と同じように機能するが、典型的に、コードが製造側で展開され実行されて、外部ユーザにアクセス可能になる前に、開発およびテストの間にコードを走らせる、開発サーバ120を含むことができる。いくつかの実施形態において、アプリケーションサーバは、開発サーバとして機能することができ、別個の製造およびテスト記憶が使用されなくてもよい。
データストア110は、特定の態様に関連するデータを記憶するために、複数の別個のデータテーブル、データベース、または他のデータ記憶機構および媒体を含むことができる。例えば、図示されるデータストア110は、製造側にコンテンツを供給するために使用可能である、製造データ112およびユーザ情報116を記憶するための機構を含む。データストア110はまた、テスト側のユーザ情報とともに使用可能である、テストデータ114を記憶するための機構を含むことが示される。例えば、ページイメージ情報およびアクセス権情報については、データストア110内に記憶される多数の他の態様があってもよく、これらの態様は、適切として上に挙げられた機構のいずれか、またはデータストア110内の追加の機構内に記憶してもよいことを理解されたい。
データストア110は、それに関連するロジックを通じて、アプリケーションサーバ108または開発サーバ120から命令を受信し、それに応答してデータを入手、更新、またはそうでなければ処理するように、操作可能である。一実施例において、ユーザは、特定の種類のアイテムに対する検索要求を提示する場合がある。この場合において、データストア110は、ユーザの識別を検証するために、ユーザ情報116にアクセスすることができ、その種類のアイテムについての情報を入手するために、カタログの詳細情報にアクセスすることができる。情報は、次いで、例えば、ユーザが、ユーザデバイス102上のブラウザを介して閲覧可能なウェブページ上の、結果一覧において、ユーザに返却することが可能である。関心のある特定のアイテムについての情報は、ブラウザの専用ページまたはウィンドウで閲覧可能である。
それぞれのサーバは、典型的に、そのサーバの一般的な管理および操作に、実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的に、サーバのプロセッサによって実行される際に、サーバが目的の機能を実行することを可能にする、命令を記憶したコンピュータ可読媒体を含む。オペレーティングシステムの好適な実装およびサーバの一般的な機能性は、既知または市販により入手可能であり、特に、本明細書の開示の観点からは、当業者によって容易に実装される。
一実施形態における環境100は、1つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続される、いくつかのコンピュータシステムおよび構成要素を利用する、分散コンピューティング環境である。しかしながら、このようなシステムが、図1に図示されるものよりも、少ないかまたは多い数の構成要素を有するシステムにおいても、同様に良好に作動可能であることは、当業者には認識されるであろう。したがって、図1のシステム100の描写は、事実上例示としてとらえられるべきであり、本開示の範囲を制限するべきものではない。
少なくとも1つの実施形態において、環境100の1つ以上の態様は、仮想リソースプロビジョニングアーキテクチャを組み込む、および/またはそのアーキテクチャ内に組み込まれることができる。図2は、少なくとも1つの実施形態による仮想リソースプロビジョニングアーキテクチャ例200の態様を描写する。仮想リソースプロビジョニングアーキテクチャ例200は、ネットワーク208上で仮想リソースプロバイダ206に通信接続される複数のクライアント202〜204を含む。例えば、クライアント202〜204は、図1のコンピューティングデバイス102などのコンピューティングデバイスおよび/またはこのようなコンピューティングデバイスに組み込まれるクライアントプログラムに対応することができる。クライアント202とクライアント204との間の省略記号は、仮想リソースプロビジョニングアーキテクチャ200が、任意の適切な数(例えば、数千、数百万、およびそれ以上)のクライアントを含み得ることを示すが、明瞭さのため、図2には2つだけを示す。
クライアント202〜204のうちの1つ以上は、仮想リソースプロバイダ206の制御プレーン210と相互作用し、それによって1つ以上の仮想リソース212をプロビジョニングするために、仮想リソースプロバイダ206の1人以上の顧客によって利用されることができる。あるいは、またはそれに加えて、クライアント202〜204のうちの1つ以上は、プロビジョニングされる仮想リソース212と相互作用するために(必ずしも仮想リソースプロバイダ206の顧客によってではなく)利用されてもよい。プロビジョニングされる仮想リソース212は、任意の適切な仮想リソースを含んでもよい。適切な仮想リソース212の例は、仮想コンピュータシステム214、仮想ネットワーク接続216、および仮想データストア218、ならびに図2に示されていない仮想リソース、例えば専門のデータ処理エージェント、音声および映像ストリーミングエージェントを含むメディアストリーミングエージェント、メッセージ待ち行列、登録している登録者に一致するイベントが公開登録トピックに公開されたことを通知するように構成された公開登録トピック、監視エージェント、負荷分散エージェント、およびこれらの適切な組み合わせなどを含む。
仮想リソースプロバイダ206は、任意の適切な実装リソース220を含んでもよい。仮想リソース212のそれぞれは、1組の実装リソース220によって実装されてもよい。少なくとも1つの実施形態において、実装リソース220のうちの様々な実装リソースは、仮想リソース212のうちの複数の仮想リソースを、少なくとも部分的に、実装することに参加するように構成されてもよい。適切な実装リソース220の例は、仮想コンピュータシステム(VCS)サーバ222、ネットワークハードウェア224、およびデータストアサーバ226、ならびに図2に示されていない実装リソースおよび/または図3、図4、図5、および図6を参照にしてより詳細に以下に記載されるものを含む。制御プレーン210は、仮想リソースプロビジョニング要求を処理し、実装リソース220に対する仮想リソース212の割り当てを管理し、および/または仮想リソース212に対する実装リソース220の割り当てを管理し、ならびに、関連付けられた費用アカウンティングサービスを提供することができる。少なくとも1つの実施形態による仮想リソースプロバイダの制御プレーン例は、図10を参照にしてより詳細に以下に記載される。
実装リソース220の特定の実装リソースが仮想リソース212のうちの複数の仮想リソースの実装に参加すると、実装リソースが競合することがあり、例えば、実装リソースは、サービス時間の増加を要求する複数の仮想リソースから十分なサービスの要求を受信することがある。競合する実装リソースは、例えば、要求のサービス時間の変化に少なくとも部分的に基づいて、仮想リソース間の意図されていないおよび/または認証されていない情報転送の原因になり得る。少なくとも1つの実施形態において、1組の顧客は、その組の顧客に関連付けられた仮想リソースが専用実装リソースでプロビジョニングされることを要求することによって少なくとも部分的に、仮想リソースプロバイダ206の他の顧客へのこのような情報転送に対するバリアを確立してもよい。そのようなバリアは、仮想リソースプロバイダの他の顧客のうちの1人以上が、その組の顧客の仮想リソースに関する情報(未発表情報を含む)に対する認証されていない読み取りおよび/または書き込みアクセス権を得るという可能性を低くすることができる。実装リソース専用単位(unit)を規定する実装リソース専用境界は、物理的なバリアおよび/または物理的な分離による境界を含む物理的なならびに/あるいはハードウェア構成要素間の境界に、更には、ハード(例えば、ハードウェアが実施する)スケジューリングおよび/またはタイミング境界、ならびにそれらの適切な組み合わせに対応することができる。
実装リソース専用境界はまた、少なくともいくつかの実施形態において地理的境界に対応することもできる。図3は、少なくとも1つの実施形態による地理的領域例300の態様を描写する。地理的領域300は、地続きのアメリカ合衆国およびいくつかのデータセンタ302〜318を含む。少なくとも1つの実施形態において、仮想リソースプロバイダ206の実装リソース220(図2)は、データセンタ302〜318および/または対応する地理的領域を含む。データセンタ302〜318の物理的な分離は、実装リソース専用境界に対応しており、対応する地理的領域を規定してもよい。仮想リソースプロバイダ206の特定の組の顧客は、その組の顧客に関連付けられる仮想リソースが1組の専用のデータセンタでおよび/または1組の専用の地理的領域内でプロビジョニングされることを指定してもよい。図3に示されてはいないが、1つ以上のそのようなデータセンタおよび/または対応する地理的領域は、国際的に配置されてもよい。
実装リソース専用境界および/または単位はまた、少なくともいくつかの実施形態においてデータセンタの部分に対応してもよい。図4は、少なくとも1つの実施形態によるデータセンタ例402、404の態様を描写する。データセンタ例402には、図2のVCSサーバ222およびデータストアサーバ226などのサーバコンピュータを含む複数のサーバラック406〜408、ならびに、図2のネットワークハードウェア224などのネットワークハードウェアを含む複数のネットワークラック410が含まれる。そのようなサーバラック406〜408および/またはネットワークラック410のそれぞれは、実装リソース専用単位に対応してもよく、これにより、仮想リソースプロバイダ206の特定の組の顧客は、その組の顧客の仮想リソースが、1組の専用サーバラック、1組のネットワークラック、および/またはそれらの適切な組み合わせでプロビジョニングされることを指定してもよい。
データセンタ402は、データセンタ402に対する物理的なアクセス権を得るために(例えば、暗号で)確実に認証されることが可能な1つ以上の種類の識別および/またはアクセスデバイス(例えば、写真付き身分証明カード、生体認証、物理的な鍵、目的に合うように符号化されたRFIDカード)を要求してもよい。したがって、データセンタ402は、(例えば、公的にアクセス可能な空間に関する)セキュリティレベルおよび/またはセキュリティゾーンに関連付けられてもよい。更に、データセンタ402は、1つ以上のより高いレベルおよび/または異なるセキュリティゾーンを組み込んでもよい。データセンタ402は、例えばデータセンタ402内の鍵の掛った部屋に対応する、複数のアクセス制御されたエリア412〜418を含んでもよい。例えば、選択され、および/または特別に検査されたデータセンタ402のスタッフのみがアクセス制御されたエリア412〜418に対するアクセス権を有することができる。データセンタ402のスタッフのそのような選択および/または特別な検査は、アクセス制御されたエリア412〜418に対する専用実装リソースプールへの遷移プロシージャの一部であり得る。
データセンタ402は、物理的なアクセスに対して必ずしも更に安全ではない複数のアクセス監視されたエリア420〜426を更に含んでもよい。例えば、アクセス監視されたエリア420〜426は、データセンタ402のスタッフが物理的に入ることおよび/または出ること、ならびに/あるいは、その他の場合には、音声および/または映像レコーディングを含むアクセス監視されたエリア420〜426におけるドキュメントスタッフの存在を記録してもよい。各アクセス制御されたエリア412〜418および各アクセス監視されたエリア420〜426を含むセキュリティゾーンのそれぞれは、実装リソース専用単位に対応してもよく、これによって、仮想リソースプロバイダ206(図2)の特定の組の顧客は、その組の顧客の仮想リソースが、1組の専用のセキュリティゾーンでプロビジョニングされることを指定してもよい。
図4のデータセンタ404は移動式であり得る。例えば、データセンタ404は、輸送用コンテナ内に組み立てられ、図示されたセミトレーラートラックを含む様々な手段によって移動式に製造されてもよい。移動式データセンタ404は、不動式データセンタ402のサーバラック406〜408、ネットワークラック410、アクセス制御されたエリア412〜418、および/またはアクセス監視されたエリア420〜426に対応するサーバラック、ネットワークラック、アクセス制御されたエリアおよび/またはアクセス監視されたエリアを含んでもよい。移動式データセンタ404にはまた、適切な移動式発電ハードウェア、ならびに1つ以上のインターネットリンクを含む適切な無線および/または有線高速デジタルデータリンクが含まれてもよい。
図5は、少なくとも1つの実施形態によるデータセンタの別の態様を描写する。データセンタ502は、複数のサーバラック504〜506を含んでもよい。データセンタ502は図4のデータセンタ402、404の一例である。サーバラック504とサーバラック506との間の省略記号は、データセンタ502が任意の適切な数のサーバラックを含むことを示すが、明瞭さのため、図5には2つだけが示される。各サーバラック504〜506は、電力などのサービスならびに複数のサーバコンピュータ508〜514および516〜522に対するデータ通信を維持することに参加してもよい。また、省略記号は、サーバラック504〜506が任意の適切な数のサーバコンピュータを含んでもよいことを示す。例えば、サーバコンピュータ508〜522は、1つ以上のVCSサーバ222(図2)および/または1つ以上のデータストアサーバ226を含んでもよい。各サーバ508〜522は、実装リソース専用単位に対応してもよい。
図5において、各サーバラック504〜506は、ラックスイッチ524〜526を含むように描写されている。ラックスイッチ524および526は、デジタルデータのパケットをそれらの個々の組のサーバコンピュータ508〜514および516〜522に、またそのサーバコンピュータからスイッチングすることに関与してもよい。各ラックスイッチ524〜526は、実装リソース専用単位に対応してもよい。しかしながら、(図5に描写された)サーバラック504〜506が1つのラックスイッチ524〜526を含む場合において、ラックスイッチ524〜526を仮想リソースプロバイダ206(図2)の特定の組の顧客に専用にすることは、それぞれのサーバラック504〜506の専用をもたらす。このことは、少なくとも1つの実施形態による含有専用単位(「含有単位専用(containing unit dedication)」)の専用をもたらす実装リソース専用単位の構成要素(実装リソース専用サブ単位)の専用の一例である。実装リソース専用単位は、それらのサブ単位のどれ(もしあれば)が、含有単位専用をもたらすかを示してもよい。
ラックスイッチ524〜526は、データセンタスイッチング構造528に通信でリンクされ、更にまた、インターネットを含む1つ以上の他のコンピュータネットワークにデータセンタ502を接続する1組のエッジルータ530に通信でリンクされてもよい。スイッチング構造は、1つ以上のスイッチング層に配置される1つ以上のスイッチ種類の複数の相互に接続されるスイッチ532〜538(明瞭さのために、図5には4つしか示されていない)を含む任意の適切な組のネットワーキング構成要素、ならびに、ルータ、ゲートウェイ、ブリッジ、ハブ、リピータ、ファイアウォール、コンピュータ、およびそれらの適切な組み合わせを含んでもよい。少なくとも1つの実施形態において、ラックスイッチ524〜526およびエッジルータ530は、スイッチング構造528の一部と見なされる。ラックスイッチ524〜526、エッジルータ530、およびスイッチング構造528の構成要素は、図2のネットワークハードウェア224の一例である。
スイッチング構造528の一部、スイッチ532〜538の組などのスイッチング構造528の組、および/またはエッジルータ530は、実装リソース専用単位に対応してもよい。あるいは、またはそれに加えて、仮想リソースプロバイダ206(図2)の特定の組の顧客は、その組の顧客の仮想リソースが、スイッチング構造528および/またはエッジルータ530を経由して1組の専用データパスおよび/またはチャネル(集合的に、「データパス」)でプロビジョニングされることを指定してもよい。専用データパスに関して、実装リソース専用単位は、ワイヤおよび/またはケーブルの組などの物理的なデータパスに対応してもよい。あるいは、またはそれに加えて、実装リソース専用単位は、同時通信方式においてハードにスケジュールされた通信時間スロットに対応してもよい。
実装リソース専用境界および/または単位はまた、少なくともいくつかの実施形態においてサーバコンピュータの一部に対応してもよい。図6は、少なくとも1つの実施形態によるVCSサーバ例602の態様を描写する。図6のVCSサーバ602は、図2のVCSサーバ222の一例である。VCSサーバ602によって実装される仮想リソース604は、様々な種類の複数の仮想コンピュータシステム(VCS)606〜614を含んでもよい。仮想リソース604は、VCSサーバ602の任意の適切な実装リソース616で実装されてもよい。適切な実装リソース616の例は、1つ以上の、例えば中央処理装置(CPU)およびマルチコアCPUなどのプロセッサ618、1つ以上の、例えばランダムアクセスメモリ(RAM)などの揮発性記憶デバイス620、1つ以上の、例えばフラッシュメモリおよびハードディスクドライブ(HDD)などの不揮発性記憶デバイス622、ならびに/あるいは、1つ以上の、例えばネットワークインタフェースカード(NIC)などのネットワークインタフェース624を含む。プロセッサ618、揮発性記憶デバイス620、不揮発性記憶デバイス622、および/またはネットワークインタフェース624のそれぞれは、実装リソース専用単位に対応してもよい。
仮想コンピュータシステム606〜614のそれぞれは、1組の実装リソース616で実装されてもよい。異なる種類の仮想コンピュータシステム606〜614が、異なる組の実装リソース616で実装されてもよい。例えば、「大型」の種類の仮想コンピュータシステムは、「小型」の種類の仮想コンピュータシステムより多くの実装リソースを必要としてもよい。「メモリ集約型」の種類の仮想コンピュータシステムは、揮発性記憶デバイス620(複数可)の実装リソースの追加部分を必要としてもよい。「処理集約型」の種類の仮想コンピュータは、プロセッサ618(複数可)の実装リソースの追加部分を必要としてもよい。図6に描写された例は、4つの「小型」の仮想コンピュータシステム606〜612および1つの「大型」の仮想コンピュータシステム614を維持するVCSサーバ602を示す。これは、VCSサーバ602の仮想リソース実装容量の一例である。もちろん、他の構成は可能である。例えば、VCSサーバ602は、「大型」の仮想コンピュータシステム614無しで8つの「小型」の仮想コンピュータシステムを維持するなどの可能性がある。
「小型」の種類の仮想コンピュータシステムは、VCSサーバ602によって維持される最小の仮想リソースにおよび/または単位仮想コンピュータシステム費用に対応してもよい。仮想リソースプロバイダ206(図2)は、その種類で置き換えられた「小型」の種類の仮想コンピュータシステムの数に関して、専用実装リソースで実装される仮想コンピュータシステムを含む、他の種類の仮想コンピュータシステムについての費用を測定し、見積り、および/または決定してもよい。例えば、仮想リソースプロバイダの特定の組の顧客は、その組の顧客の仮想コンピュータシステムが、専用ハードディスクドライブで実装されることを指定してもよい。VCSサーバ602が2つの「小型」の仮想コンピュータシステムと共に各ハードディスクドライブを共有するように典型的に構成される場合には、専用ハードディスクドライブで実装される仮想コンピュータシステムは、少なくとも2つのそのような「小型」の仮想コンピュータシステムを置き換える。
少なくとも1つの実施形態において、専用実装リソースは、専用実装リソースプールから引き出される(すなわち、割り当てられる)。例えば、専用実装リソースプールは、専用実装リソースによる仮想リソース212のプロビジョニングを要求する仮想リソースプロバイダ206(図2)の各組の顧客に対応して確立されてもよいし、更にまた、要求された仮想リソースを実装する専用実装リソースは、その組の顧客に関連付けられた専用実装リソースプールから引き出されてもよい。図7は、少なくとも1つの実施形態による実装リソースプール例の態様を描写する。図7は、一般的な実装リソースプール702および3つの専用実装リソースプール704、706、710を描写する。
この例において、実装リソース220(図2)は、一般的な実装リソースプール702で始まる。3つの専用実装リソースプール704、706、710は、仮想リソースプロバイダ206の3つの異なる組の顧客のために確立されてもよい。専用実装リソースプール704および専用実装リソースプール710は、重複部分712を有する。重複部分712における実装リソースは、専用実装リソースプール704または専用実装リソースプール710に関連付けられた組の顧客の仮想リソースを実装するために利用されてもよい。あるいは、またはそれに加えて、重複部分712は、専用実装リソースプール704と専用実装リソースプール710の両方に関連付けられた結合組の顧客の、結合仮想リソースを含む、仮想リソースに関連付けられた別個の専用実装リソースプール712として構成されてもよい。
実装リソース220は、少なくとも1つのそれぞれの組の顧客によって指定される実装リソース遷移プロシージャにしたがって、一般的な実装リソースプール702から専用実装リソースプール704、706、710、712に遷移されてもよく、その結果、遷移された実装リソースをその組の顧客に専用にする。実装リソース220は、仮想リソースプロビジョニング要求に応答して専用実装リソースプール704、706、710、712に遷移されてもよい。そのような要求は、一般的な実装リソースプール702が、要求を実現するために必要とされる種類(複数可)の実装リソースを不十分に含む場合には、実現を果たせないおよび/または遅らすかもしれない。そのような問題を避けるために、仮想リソースプロバイダ206の顧客は、予約された実装リソースプールを確立してもよい。
図7に描写される例において、専用実装リソースプール706に関連付けられた組の顧客は、(例えば、図2の制御プレーン210によって)予約された実装リソースプール708を確立している。少なくとも1つの実施形態において、予約された実装リソースプール708内の実装リソース220は、仮想リソースプロビジョニング要求を実現するために必要とされるまで一般的な実装リソースプール702内に残る。しかしながら、必要とされると、その時点で、それらの実装リソースが1人以上の他の顧客の仮想リソースの実装に参加している場合でさえ、予約された実装リソースプール708内の実装リソース220は、専用実装リソースプール706に遷移される。すなわち、予約された実装リソースプール708に関連付けられた組の顧客は、予約された実装リソースプール708内の実装リソース220に対する優先権を与えられる。優先された顧客の仮想リソースは、一般的な実装リソースプール702内の実装リソースに移動されてもよいし、あるいは、一般的な実装リソースプール702が適切な種類(複数可)の十分な実装リソースを含まない場合には、その仮想リソースは、非プロビジョニング化されてもよい。
いくつかの専用実装リソースプール遷移プロシージャは速い(例えば、約ミリ秒の)ものであり得るが、いくつかの遷移プロシージャ、特に仮想リソースプロバイダ206の少なくとも1人の顧客によって指定された特注の遷移プロシージャは、完了するためにかなりの量の時間(例えば、数秒、数分、数時間以上)を必要とする。図8は、少なくとも1つの実施形態による専用実装リソースプールの遷移プロシージャのタイミング例の態様を描写する。
時間t0では、実装リソース802が一般的な実装リソースプール804で始まる。例えば、実装リソース802は、図2の実装リソース220のうちの1つであってもよいし、一般的な実装リソースプール804は、図7の一般的な実装リソースプール702に対応してもよい。時間t1では、実装リソース802の専用実装リソースプール806への遷移を必要とする仮想リソースプロバイダ206のイベントが発生する。例えば、そのイベントは、予測プロビジョニング要求に応じるための自動化された遷移、または仮想リソース212のプロビジョニング要求であってもよいし、専用実装リソースプール806は、図7の専用実装リソースプール704に対応してもよい。
時間t2では、専用実装リソースプール入口プロシージャ808が開始することができる。入口プロシージャ808は、任意の適切な実装リソース802の(再)構成プロシージャであってもよい。適切な入口プロシージャの例には、データ記憶媒体フォーマッティング、安全なデータ消去プロシージャを含むデータ記憶媒体消去、ソフトウェアインストール、構成要素の構成、構成要素の再割り当て、アクセス制御構成、ファイアウォール再構成、(例えば、実装リソースを交替するための)仮想リソース移動、認証証明の生成および発行、移動式データセンタ404(図4)の再配置、顧客による実装リソース遷移の手動再調査、顧客が提供したコンピュータ実行可能な命令を含む顧客が提供した入口プロシージャおよび/またはそれらの任意の適切な組み合わせが含まれる。少なくとも1つの実施形態において、顧客は、仮想リソースプロバイダ206(図2)によって提供された1組のそのようなプロシージャから専用実装リソースプール入口プロシージャ808を選択する。1組の提供されたプロシージャは、特定の組の顧客のための仮想リソースプロバイダ206によってあらかじめ定義されおよび/または動的に生成されてもよい。
時間t3までは、入口プロシージャ808が完了すると、実装リソース802は遷移状態810にあってもよい。遷移状態810にある間、実装リソース802は仮想リソース212(図2)の実装に参加しない。時間t3では、入口プロシージャ808が812を完了し、実装リソース802は専用実装リソースプール806に入る。専用実装リソースプール806にある間、実装リソース802は、関連付けられた組の顧客の仮想リソース212の実装に参加してもよい。
時間t4では、専用実装リソースプール806から一般的な実装リソースプール804に戻る実装リソース802の遷移を必要とする別の仮想リソースプロバイダ206(図2)のイベントが発生してもよい。例えば、そのイベントは、仮想リソース212の非プロビジョニング化要求、または専用実装リソースプール806におけるアイドル状態の実装リソース220の比率を最適化するための自動化された遷移であってもよい。時間t5では、専用実装リソースプール出口プロシージャ814が開始することができる。出口プロシージャ814は、入口プロシージャ808について上記したものを含む任意の適切な実装リソース802の(再)構成プロシージャならびにそれらの論理的なおよび/または手順上の補完物とすることができる。また、少なくとも1つの実施形態において、顧客は、あらかじめ定義された組のそのようなプロシージャから専用実装リソースプール出口プロシージャ814を選択する。
時間t6までは、出口プロシージャ814が完了すると、実装リソース802が遷移状態810に再びあってもよい。時間t6では、出口プロシージャ814が816を完了し、実装リソース802は専用実装リソースプール806を出て、一般的な実装リソースプール804に再び入る。時間t6の後、実装リソース802は、実装リソース802がそのサービス有効期間の終了に達する時間t7まで、専用実装リソースプール806および/または図8に示されていない他の専用実装リソースプールに繰り返し出入りしてもよい。
図6に関して上記したように、いくつかの実装リソースは、複数の仮想リソースを実装してもよい(すなわち、「分配可能な」実装リソースであり得る)。例えば、VCSサーバ602は、複数の仮想コンピューティングシステムを実装してもよい。そのような場合において、分配可能な実装リソースの一部分が、(「割り当て」られる)1つ以上の仮想リソースの実装に割り当てられる一方で、別の部分は割り当てられないままでいることが起こり得る。分配可能な実装リソースが仮想リソースプロバイダ206(図2)の特定の組の顧客に専用である場合、割り当てられていない部分は、仮想リソースプロバイダの他の顧客に対する割り当てのために更に利用不可能であり、このことは、分配可能な専用実装リソースが100%の利用を達成するという可能性を低めることに対応し得る。仮想リソースプロバイダ206の観点からすれば、これは、機会費用である。そのような費用は、様々な手法で明細を明らかにされ得る。図9は、少なくとも1つの実施形態による実装リソース利用アカウンティング方式例の態様を描写する。
図9は、1つ以上の仮想リソース212(図2)の実装に独立して参加することがそれぞれ可能な4つのリソース割り当ての単位(または「リソース割り当て単位(resource allocation unit)」)を組み込んでいる、分配可能な実装リソース例の利用を描写する。例えば、分配可能な実装リソース例は、4つの「小型」の種類の仮想コンピュータシステム、または1つの「大型」の種類の仮想コンピュータシステムを実装することが可能なVCSサーバ222のうちの1つであってもよい。分配可能な実装リソースの仮想リソース実装容量は、リソース割り当て単位で測定されることができる。例えば、VCSサーバ222の実装容量は、「小型」の種類の仮想コンピュータシステムなどの標準仮想コンピュータシステム単位に換算して測定されてもよい。
図9は、8つの時間の単位(または「時間単位(time unit)」、例えば、数秒、数時間、数か月など)にわたる分配可能な実装リソース例の利用を更に描写する。最初の2つの時間単位の間には、(斜線を用いて陰影を付けた四角形によって示されるように)4つのリソース割り当て単位のうちの1つが割り当てられていて、アクティブ(すなわち、少なくとも1つの仮想リソースの実装にアクティブに参加すること)であってもよいのに対して、(陰影の付いていない四角形によって示されるように)4つのリソース割り当て単位のうちの3つは割り当てられていなくて、非アクティブである。少なくとも1つの実施形態において、アイドル状態である割り当てられたリソース割り当て単位もまた、非アクティブであると見なされる。第3の時間単位の間には、4つのリソース割り当て単位のそれぞれが割り当てられる。第4の時間単位の間には、4つのリソース割り当て単位のうちの2つが割り当てられる。残りの4つの時間単位の間には、4つのリソース割り当て単位のうちの1つが割り当てられる。
陰影を付けたまたは陰影の付いていない、図9における四角形のそれぞれは、リソース利用量、すなわちリソース割り当て単位と時間単位との乗法的な積(本明細書中において明瞭さのために「リソース時間」と呼ばれる)に対応する。例えば、VCSサーバの利用は、「小型」のVCS時間で測定され得る。分配可能な実装リソース例が一般的な実装リソースプール702(図7)内にあった場合、4×8=32リソース時間が割り当てのために利用可能であろう。図9に描写された利用例では、12リソース時間が8「時間」の期間にわたって実際に割り当てられ、分配可能な実装リソース例が特定の顧客に専用である場合には20リソース時間の機会費用が仮想リソースプロバイダ206(図2)に生じることになる。
仮想リソースのプロビジョニング、構成、再構成、および/または非プロビジョニング化(集合的に、「プロビジョニング」)は、仮想リソースプロバイダ206の制御プレーン210(図2)によって制御されてもよい。図10は、少なくとも1つの実施形態による制御プレーン例1002の態様を描写する。図10の制御プレーン1002は、図2の制御プレーン210の一例である。制御プレーン1002は、仮想リソース212のプロビジョニング要求をクライアント202〜204のうちの1つ以上から受信するように少なくとも構成されたプロビジョニングインタフェース1004、1つ以上のプロビジョニングワークフローに従うプロビジョニング要求に対する応答を導くように少なくとも構成されたワークフロー構成要素1006、仮想リソース212に対する実装リソース220の割り当てを管理するように少なくとも構成されたリソース割り当て構成要素1008、ならびに、仮想リソース212および/または実装リソース220に関連付けられた費用を追跡し提示するように少なくとも構成されたアカウンティング構成要素1010を含むことができる。
プロビジョニングインタフェース1004は、任意の適切なプロビジョニングインタフェース要素を含んでもよい。適切なプロビジョニングインタフェース要素の例は、仮想リソース212(図2)をプロビジョニングし、構成し、再構成し、および/または非プロビジョニング化するための要求に対応するインタフェース要素、更には、仮想リソース212の構成情報に対するアクセス権を提供するインタフェース要素、ならびに、そのようなプロビジョニングに関する操作に対する権限を確立するための認証が可能な1つ以上のインタフェース要素を含む。プロビジョニングインタフェース1004は、例えばグラフィカルユーザインタフェース(GUI)などのユーザインタフェース(UI)、ウェブベースのインタフェース、例えばアプリケーションプログラミングインタフェース(API)および/またはプロビジョニングインタフェース要素に対応する1組のリモートプロシージャコール(RPC)などのプログラム的なインタフェース、例えばプロビジョニングインタフェース1004のインタフェース要素が通信プロトコルのメッセージに対応しているメッセージングインタフェースなどのメッセージングインタフェース、ならびに/あるいは、それらの任意の適切な組み合わせを組み込む、および/またはこれらに組み込まれることができる。
少なくとも1つの実施形態において、プロビジョニングインタフェース1004、リソース割り当て構成要素1008、およびアカウンティング構成要素1010は、ワークフロー構成要素1006によってその後維持される1つ以上のワークフローを生成するためにワークフロー構成要素1006を生成する、および/または生じさせてもよい。例えばプロビジョニングワークフローおよびポリシー実施ワークフローなどのワークフローは、例えばプロビジョニングまたはポリシー実施などのジョブを行うために実行されるタスクの1つ以上のシーケンスを含んでもよい。ワークフローは、その用語が本明細書中で使用される際には、タスク自体ではなくて、タスクに対するおよびタスクからの情報の流れを制御し得るタスク制御構造、ならびに、そのタスク制御構造が制御するタスクの実行の順序である。例えば、ワークフローは、実行中の任意の時間でのプロセスの状態を管理して戻すことができる状態機械と見なされてもよい。ワークフローはワークフローテンプレートから生成されてもよい。例えば、プロビジョニングワークフローは、リソース割り当て構成要素1008によってパラメータを用いて構成されるプロビジョニングワークフローテンプレートから生成されてもよい。別の例として、ポリシー実施ワークフローは、リソース割り当て構成要素1008によってパラメータを用いて構成されるポリシー実施ワークフローテンプレートから生成されてもよい。
ワークフロー構成要素1006は、確立されたワークフローを修正し、更に指定し、および/または更に構成してもよい。例えば、ワークフロー構成要素1006は、特定のタスクを実行するおよび/または特定のタスクに割り当てられるために仮想リソースプロバイダ206の特定の実装リソース220(図2)を選択してもよい。そのような選択は、ワークフロー構成要素1006によって評価されるような特定のタスクのコンピューティングリソースニーズに少なくとも部分的に基づくことができる。別の例として、ワークフロー構成要素1006は、確立されたワークフローに追加のおよび/または重複するタスクを追加してもよいし、ならびに/あるいは確立されたワークフロー内のタスク間の情報フローを再構成してもよい。確立されたワークフローのそのような修正は、ワークフロー構成要素1006による実行効率分析に少なくとも部分的に基づくことができる。例えば、いくつかのタスクは、他のタスクが前のタスクの成功裏の完了に依存する一方で、並行して効率的に実行されてもよい。
仮想リソースをプロビジョニングすることの一部として、プロビジョニングインタフェース1004および/またはワークフロー構成要素1006は、リソース割り当て構成要素1008が、仮想リソースを実装するために必要とされる適切な組の実装リソース220(図2)を決定し、必要とされた実装リソースが利用可能である、および/または仮想リソースプロバイダ206の割り当てポリシーに従うかどうかを決定し、ならびに/あるいは必要とされた実装リソースを割り当てることを要求してもよい。リソース割り当て構成要素1008は、任意の適切なリソース割り当ておよび/またはリソーススケジューリングアルゴリズムを組み込んでいてもよい。そのようなアルゴリズムは当業者に周知であり、本明細書に詳細に記載される必要はない。リソース割り当て構成要素1008は、図7の専用実装リソースプール704、706などの専用実装リソースプールの確立および維持を管理するように少なくとも構成された専用リソースプール構成要素1012を含んでもよい。
専用リソースプール構成要素1012は、1組のリソース割り当てビジネスポリシーに関する割り当て要求を分析し、割り当て要求がその組のリソース割り当てビジネスポリシーに従うかどうかに関する評価(例えば、許可または拒否)を提供するように少なくとも構成されたビジネスポリシー実施構成要素1014を含んでもよい。あるいは、またはそれに加えて、ビジネスポリシー実施構成要素1014は、その組のリソース割り当てビジネスポリシーを実施するために、実装リソース220(図2)の仮想リソース212に対するおよび/または仮想リソース212の実装リソース220に対する割り当てに参加してもよい。その1組のリソース割り当てビジネスポリシーは、任意の適切なリソース割り当てポリシーを含んでもよい。適切なリソース割り当てポリシーの例には、例えば、要求された専用仮想リソースの種類および/または数、専用実装リソースの対応する種類および/または数、要求している顧客の費用プラン、割り当てられていない実装リソースの現行レベルおよび/または比率、(例えば、要求している顧客の専用実装リソースプールにおける)非アクティブな専用実装リソースの予測レベルおよび/または比率、ならびに、それらの適切な組み合わせなどのパラメータに基づく条件を有するポリシーが含まれる。リソース割り当てポリシーは、例えば、ブール演算子を用いて指定される複合条件や、特定の数、レベルおよび/または比率が最小値より上である、最大値より下である、および/または指定された範囲の値以内であることを指定する条件などの任意の適切な条件を含んでもよい。
複数の仮想リソースを実装する実装リソースに関しては、仮想リソース密度または仮想リソース分布(spread)は、単位実装リソースごとの仮想リソースの数(例えば、VCSサーバ602ごとの仮想コンピューティングシステムの数)に対応する。仮想リソースプロバイダ206(図2)の顧客は、例えば、顧客の仮想リソースのうちの複数が実装リソースの障害によって影響を及ぼされるという可能性を減らすために、プロビジョニングされた仮想リソースが指定された密度または分布を有するという要求をしてもよい。専用実装リソースで実装された仮想リソースに関する分布が広い(密度が低い)と、実装リソース利用効率の悪さ(例えば、アクティブな実装リソースの利用に対する非アクティブな実装リソースの利用の割合が比較的高く、例えば20%を超える利用割合など)を招くことがある。少なくとも1つの実施形態において、1組のリソース割り当てビジネスポリシーは、仮想リソース密度および/または分布レベルに基づく条件(例えば、1つ以上の密度および/または分布限界を設定すること)を有する1つ以上のポリシーを含んでもよい。専用リソースプール構成要素1012は、許可された密度および/または分布レベルに従って専用実装リソースを割り当てるように少なくとも構成された分布構成要素1016を更に含んでもよい。あるいは、またはそれに加えて、分布構成要素1016は、許可されたおよび/または指定された仮想リソースの最高密度を達成するために、ならびに/あるいはフリーの(すなわち、0%割り当てられた)実装リソース専用単位の数を最大にするために、専用実装リソースを割り当てるおよび/または再び割り当てるように少なくとも構成されてもよい。
専用リソースプール構成要素1012は、実装リソース220が専用実装リソースプール704、706(図7)に対しておよびそのプールから遷移するおよび/または遷移することを管理するように少なくとも構成されたプール遷移構成要素1018を更に含んでもよい。実装リソース220(図2)は、1組の専用プール遷移プロシージャに関連付けられてもよい。例えば、各種類の実装リソースは、関連付けられた遷移プロシージャを有してもよい。あるいは、またはそれに加えて、仮想リソースプロバイダ206の顧客は、特定の種類の仮想リソースおよび/または実装リソースのために専用プール遷移プロシージャを指定してもよい。プール遷移構成要素1018は、1つ以上の専用実装リソースを含む実装リソースでプロビジョニングされる特定の組の仮想リソースに関連付けられた1組の適切な遷移プロシージャを識別してもよい。プール遷移構成要素1018は、そのような遷移プロシージャを実行してもよい。あるいは、またはそれに加えて、プール遷移構成要素1018は、識別された組の専用プール遷移プロシージャに対応する1つ以上の専用プール遷移ワークフローを生成し(または生成するためにワークフロー構成要素1006を生じさせ)てもよい。
専用リソースプール構成要素1012は、専用実装リソースプール704〜706(図7)におけるアクティビティおよび/または非アクティビティレベルを監視し、専用実装リソースプール704〜706におけるアクティビティおよび/または非アクティビティレベルを予測し、専用実装リソースプール704〜706に対するおよびそのプールからの実装リソース遷移を開始するように少なくとも構成されたプール利用構成要素1020を更に備えてもよい。専用実装リソースプール704〜706における実装リソースは、様々な理由のために非アクティブであり得る。例えば、実装リソースは、まだ発生していない仮想リソースプロビジョニング要求を予期して、または非プロビジョニング化されている仮想リソースの実装に参加するために、専用プール704〜706に遷移されていてもよい。そのような非アクティブな実装リソースは、責任を負う顧客にとって不必要な出費および/または仮想リソースプロバイダ206(図2)に対する機会費用であり得る。
しかしながら、実装リソースが一般的な実装リソースプール702(図7)から遷移する時間はかなり長いものであり得るので、専用実装リソースプール704〜706におけるいくつかのレベルの非アクティビティ(すなわち、非アクティブな専用実装リソース「バッファ」)が望ましいことがある。責任を負う顧客および/または仮想リソースプロバイダ206(図2)の管理者は、各専用実装リソースプール704〜706について1つ以上の目標レベルのアクティビティおよび/または非アクティビティを指定してもよい。少なくとも1つの実施形態において、アクティビティおよび/または非アクティビティ目標は、各種類の実装リソースに対して設定されてもよい。アクティビティおよび/または非アクティビティ目標は、リソース割り当て単位数、実装リソース専用単位数、それらの比率、および/または変化のレートを含むそれらの導関数、変化速度、変化加速度、一次導関数、二次導関数、三次導関数、ならびに任意の適切なレベルの導関数に関して指定されてもよい。プール利用構成要素1020は、監視されたアクティビティおよび/または非アクティビティレベルに少なくとも部分的に基づくアクティビティおよび/または非アクティビティ目標に対応する値を予測し、予測値に少なくとも部分的に基づく対応するアクティビティおよび/または非アクティビティ目標を達成するために専用実装リソースプール704〜706に対するならびにそのプールからの実装リソースの遷移をスケジュールしてもよい。
アカウンティング構成要素1010は、仮想リソースプロバイダ206(図2)の各顧客のためのアカウントを維持してもよい。顧客によってプロビジョニングされた仮想リソース212に関連付けられた利用および/または費用、ならびに/あるいは関連付けられた実装リソース220は、顧客のアカウント内に記録されてもよい。アカウンティング構成要素1010は、どのように費用が顧客のアカウントに割り当てられるかを指定する1つ以上の費用プラン1022を維持してもよい。アカウンティング構成要素1010は、顧客のアカウント内に記録された利用および/または費用の1つ以上の提示を顧客に提供するように少なくとも構成されたアカウントユーザインタフェース(UI)構成要素1024と、費用のうちの1つ以上が仮想リソースプロバイダ206に支払う義務のある財務バランスに対応する場合、アカウントバランス(例えば、支払器具処理)を設定する1つ以上の機構と、を含んでもよい。アカウントUI1024は、アカウント生成、アカウント構成および再構成、アカウント詳細参照および更新、ならびにアカウント削除を更に提供してもよい。アカウント(再)構成は、複数のそのような費用プラン1022が利用可能である場合、費用プラン1022の認定リストからの選択を含むことができる。
費用プラン(複数可)1022は、仮想リソース212および/または実装リソース220(図2)のそれぞれの種類に対応するリソース時間ごとの費用を指定してもよい。費用は、例えばアクティブな実装リソース費用レートで、割り当てられたおよび/またはアクティブなリソース時間(「アクティビティ費用」)に関して顧客によって負担され得る。少なくとも1つの実施形態において、費用はまた、例えば非アクティブな実装リソース費用レートで、顧客に専用のプール704〜706(図7)において実装リソースに関連付けられ割り当てられていないおよび/または非アクティブなリソース時間(「専用リソース費用」または「非アクティビティ費用」)に関して顧客によって負担されることもある。少なくとも1つの実施形態において、アクティビティ費用および専用リソース費用は、顧客のアカウント内に別個に維持され、対応する費用明細内に別個のアイテムとして明確に提示される。あるいは、費用明細が専用リソース費用を明確に記すアイテムを含む必要がないように、アクティビティ費用および/またはレートは、専用リソース費用に関して明細を明らかにするよう調整されてもよい。費用プラン(複数可)1022は、適切な線形関数および適切な非線形関数を含む、割り当てられた、割り当てられていない、アクティブなおよび/または非アクティブなリソース時間の任意の適切な関数を含んでもよい。
例えば、アクティビティ費用および/またはレートは、顧客ごとに調整されてもよい。費用明細は、定期的に生成され、先に生成された費用明細から経過した期間(「費用明細期間」)の間に負担される費用をそれぞれ明細に記すことができる。特定の顧客によって負担されるアクティビティ費用および専用リソース費用は、その期間について決定されてもよく、アクティビティ費用および/またはレートはその期間について専用リソース費用を含むように調整される(例えば、増加される)。例えば、顧客が50個の仮想コンピュータシステム214(図2)をプロビジョニングし、その50個のそれぞれが専用実装リソースで実装されることを指定すると仮定する。それに応答して、リソース割り当て構成要素1008は、顧客によって要求される仮想コンピュータシステムのうちの16個を実装することがそれぞれ可能である、4個のVCSサーバ222を顧客に専用にし、よって、一般的な実装リソースプール702(図7)から64個のそのような仮想コンピュータシステムを実装する可能性が取り除かれる。更に、顧客のアカウント用の費用プラン(複数可)1022が、アクティブな専用リソース時間につき$0.10および非アクティブな専用リソース時間につき$0.05のベースレートを指定すると仮定する。1000時間を超える期間、顧客は、アクティブな費用について50x1000x$0.10=$5000および専用リソース費用について14x1000x$0.05=$700、合計$5700の費用を負担する。アクティブな費用および専用リソース費用について別個のアイテムを提示することに代えて、その期間についての費用明細は、50x1000x$0.114=$5700に対応する単一のアイテムを提示してもよい。すなわち、この例では、アクティブなリソース時間ごとの顧客のベースレートが、その期間についての合計費用をカバーするように調整される。
別の例として、アクティビティ費用および/またはレートは、仮想リソースの種類および/または専用実装リソースの種類ごとに調整されることができる。特定の種類の仮想リソースおよび/または専用実装リソースに対応するアクティビティ費用および専用リソース費用は、費用明細期間について決定され、アクティビティ費用および/またはレートはその期間についての専用リソース費用を含むように調整されることができる。例えば、仮想リソースプロバイダ206(図2)の顧客が、1つ以上の専用プール704、706(図7)内の専用実装リソースで実装される特定の種類の100万個のリソース割り当て単位に対応する仮想リソースを集合的にプロビジョニングし、更に、専用プロセスの一部として、その種類の他の2万個のリソース割り当て単位が、一般的な実装リソースプール702から遷移されたものの非アクティブのままであると仮定する。集合的には、仮想リソースプロバイダは、アクティブな専用リソース割り当て単位に対する非アクティブな専用リソース割り当て単位の割合(記号αを用いて本明細書中に示される「非アクティブな専用の割合」)、この例では2%を有する。非アクティブな専用の割合はまた、実装リソース利用量から決定されてもよい。更に、顧客が、アクティブな専用リソース時間(Cactive)につき$0.10および非アクティブな専用リソース時間(Cinactive)につき$0.05のベースレートを再び指定する共通の費用プランに従って費用を割り当てられると仮定する。アクティブな専用リソース時間(C’active)ごとの調整されたレートは、式:
C’active=Cactive+αCinactive
を用いて決定されることができ、すなわち、この例では、$0.10+2%x$0.05=$0.101である。
専用リソース費用に関して明細を明らかにするための調整は、例えば、1つ以上の前の期間および/または1つ以上の後の期間内の予測リソース割り当て単位利用を含む、1組の期間に関して決定されてもよい。異なる顧客および/またはプロビジョニングされたリソース割り当て単位が異なる費用プランに関連付けられると、費用プランに対応する調整は異なってもよく、例えば、費用プランの種類、関連付けられた顧客の種類、利益性および/または異なるベースレートなどの費用プラン属性に少なくとも部分的に基づいて重み付けされてもよい。それに加えて、アクティビティ費用および/または専用リソース費用は、例えば図7の予約された実装リソースプール708などの予約された実装リソースプール内の実装リソースに対応するリソース割り当て単位に少なくとも部分的に基づいて修正されてもよい。例えば、アクティブなおよび/または非アクティブな専用リソース時間は、予約されたリソース時間によってオフセットされてもよいし、予約されたリソース時間に関連付けられた費用は、責任を負う顧客の費用明細上に別個のアイテムとして提示されてもよい。更にそれに加えて、費用プラン(複数可)1022は、段階的な費用および/またはリソース時間レート、例えば、(例えば、同じ種類の仮想リソースに関して)1組の増加する仮想リソース量閾値に対応する1組の減少する費用および/または1組の増加するリソース時間量閾値に対応する1組の減少するレート、を指定してもよい。なお更にそれに加えて、費用プラン(複数可)1022は、専用実装リソースプール704〜706の遷移プロシージャに関連付けられた費用を指定してもよい。
ここで、少なくとも1つの実施形態によって実施され得るステップおよび/またはプロシージャ例に本記載を変える。図11は、少なくとも1つの実施形態による仮想プロビジョニングのためのステップ例を描写する。ステップ1102では、実装リソースプールは維持されることができる。例えば、リソース割り当て構成要素1008(図10)は、図7の一般的な実装リソースプール702(ステップ1104)および1つ以上の専用実装リソースプール704〜706(ステップ1106)を維持することができる。少なくとも1つの実施形態において、専用実装リソースプール704〜706の維持(maintenance)は、実装リソースに関する仮想リソース密度を最大にするような、および/または仮想リソース分布目標に向けて進むような、特定の専用プール内の実装リソース間の仮想リソースの移動を含む。しかしながら、専用実装リソースプール704〜706は、専用実装リソースを必要とする少なくとも1つの仮想リソースをプロビジョニングする前に確立され、および/または維持されることを必要としない。
ステップ1108では、仮想リソースプロビジョニング要求が受信されることができる。例えば、プロビジョニングインタフェース1004(図10)は、仮想リソースプロバイダ206の顧客のクライアントとの相互作用に応答するクライアント202〜204(図2)のうちの1つから仮想リソースプロビジョニング要求を受信することができる。仮想リソースプロビジョニング要求は、1組の実装リソース制約を組み込むおよび/または参照することができる。例えば、その組の実装リソース制約は、仮想リソース密度および/または仮想リソース分布に関する制約、特定の種類の実装リソースが顧客の仮想リソースに専用になることを含む専用実装リソースに関する制約、ならびに地理的配置などの実装リソース属性に関する制約を含んでもよい。ステップ1110では、ステップ1108で要求された仮想リソースを実装するために必要とされた1組の実装リソースが、決定されることができる。例えば、リソース割り当て構成要素1008は、その組の実装リソース制約を含む仮想リソースプロビジョニング要求の1つ以上のパラメータおよび/または属性に少なくとも部分的に基づいて、必要とされた組の実装リソースを決定してもよい。
ステップ1112では、ステップ1110で決定されたその組の必要とされた実装リソースが利用可能であるかどうかを決定することができる。例えば、リソース割り当て構成要素1008は、一般的なプール702(図7)および専用プール704、706内の実装リソースの利用可能性を追跡し、その組の必要とされた実装リソースを利用可能な実装リソースインベントリと比較してもよい。その組の必要とされた実装リソースのそれぞれが利用可能である場合、ステップ1112を組み込んでいるプロシージャは、ステップ1114に進むことができる。それ以外の場合、プロシージャはステップ1116に進むことができ、そのステップでは、利用可能性の問題が、ステップ1108で受信されたプロビジョニング要求を送信した相手方に報告され得る。
ステップ1114では、その1組の必要とされた実装リソースが割り当てられることができる。例えば、リソース割り当て構成要素1008(図10)は、必要に応じて、利用可能な実装リソースインベントリおよびプール702〜706(図7)間の遷移実装リソースを更新することができる。リソース割り当て構成要素1008は、その組の実装リソース制約に従って利用可能な実装リソースの中から選択することができる。例えば、リソース割り当て構成要素1008は、目標地理的分離を指定する制約を満たす地理的分離を伴う実装リソースを選択することができる。その組の実装リソース制約が仮想リソース分布目標を指定し、および/または参照する制約を含む場合、リソース割り当て構成要素1008は、仮想リソース分布目標に従って分布構成要素1016の選択を呼び出しおよび/または実装リソースを再割り当てすることができる。その組の必要とされた実装リソースが専用実装リソースを含む場合、分布構成要素1016は、実装リソース仮想リソース容量および/または仮想リソース分布目標を考慮しながら、仮想リソース密度を最大にするように更に試みてもよい。
ステップ1118では、要求された仮想リソースが、ステップ1114で割り当てられたその組の必要とされた実装リソースでプロビジョニングされることができる。例えば、ステップ1114のリソース割り当てが成功したという通知をリソース割り当て構成要素1008から受信すると、プロビジョニングインタフェース1004は、適切なプロビジョニングワークフローを生成することができる。
図12は、少なくとも1つの実施形態による実装リソースの利用可能性を決定するステップ例を描写する。ステップ1202では、利用可能性についてチェックされる次の(例えば、第1の)実装リソースが、1組の必要とされた実装リソースから選択されることができる。例えば、リソース割り当て構成要素1008(図10)は、図11のステップ1110で決定されたその組の必要とされた実装リソースから次の実装リソースを選択することができる。ステップ1204では、選択された実装リソースの割り当てが仮想リソースプロバイダ206(図2)の1つ以上のリソース割り当てビジネスポリシーに違反するかどうかについて決定されることができる。例えば、ビジネスポリシー実施構成要素1014は、その組のリソース割り当てビジネスポリシーに関して選択された実装リソース割り当てを評価することができる。図12を参照にして記載されたこの例では、ステップ1204が、その組の必要とされた実装リソース内の各実装リソースのために実行される。あるいは、またはそれに加えて、ステップ1204の決定は、その組の必要とされた実装リソース全体のために1度実行されることができる。
ステップ1206では、ステップ1202で選択された実装リソースを割り当てる試みが行われてもよい(「事前割り当てチェック」)。例えば、リソース割り当て構成要素1008(図10)は、選択された実装リソースに一致する種類の割り当てられていない実装リソースを求めて適切な実装リソースプール702〜706(図7)を検索してもよい。実際の割り当ては、(データベース理論の意味での)アトミックな割り当てトランザクションを保証するために(例えば、図11のステップ1114に)遅らされてもよい。あるいは、可能であれば部分的な割り当てが許可されることができ、および/またはステップ1206は選択された実装リソースを割り当てることができる。ステップ1208では、ステップ1206の割り当ての試みが成功したかどうかについて決定されることができる。成功した場合、ステップ1208を組み込んでいるプロシージャは、ステップ1210に進むことができる。そうではない場合、プロシージャは、少なくとも1つの実装リソースが利用可能ではないことを示す状態1212を伴う図12に示されていない1つ以上のステップ(例えば、図11のステップ1116)に進むことができる。
ステップ1210では、その組の必要とされた実装リソースにおいてチェックされる実装リソースが更にあるかどうかについて決定されることができる。そうである場合、プロシージャは、ステップ1202に進むことができる。そうではない場合、プロシージャは、その組の必要とされた実装リソースのそれぞれが利用可能であることを示す状態1214を伴う図12に示されていない1つ以上のステップ(例えば、図11のステップ1114)に進むことができる。
図13は、少なくとも1つの実施形態による実装リソースを割り当てるおよび/または割り当てることを試みるステップ例を描写する。例えば、図13のステップは、図11のステップ1112またはステップ1114および/または図12のステップ1206に組み込まれることができる。ステップ1302では、割り当てられる実装リソース(「割り当て候補」)が、特定の専用実装リソースプールから割り当てられるかどうかについて決定されることができる。例えば、図11のステップ1110で決定されたその組の実装リソースは、図7の専用実装リソースプール706から割り当てられる1組の実装リソースを含むことができ、および、割り当て候補はそれらの実装リソースのうちの1つであることができ、ならびに/あるいはリソース割り当て構成要素1008(図10)は、図11のステップ1108で受信された仮想リソースプロビジョニング要求に関連付けられた1つ以上の専用実装リソース制約を識別することができる。割り当て候補が、専用実装リソースプール704〜706のうちの1つから割り当てられる場合、ステップ1302を組み込んでいるプロシージャは、ステップ1304に進むことができる。そうではない場合、プロシージャは、ステップ1306に進むことができる。
ステップ1306では、割り当て候補に一致する実装リソースが、一般的な実装リソースプール702(図7)において利用可能であるか(例えば、割り当てられていないか)どうかについて決定されることができる。例えば、リソース割り当て構成要素1008(図10)は、割り当て候補に一致する種類の割り当てられていない実装リソースを求めて一般的な実装リソースプール702を検索することができる。割り当て候補が一般的な実装リソースプール702内で利用可能である場合、プロシージャは、ステップ1308に進むことができる。そうではない場合、プロシージャは、割り当て候補が割り当てられなかったことを示す状態1310を伴う図13に示されていない1つ以上のステップ、例えば図11のステップ1116、に進むことができる。ステップ1308では、割り当て候補は、一般的な実装リソースプール702から割り当てられることができる。例えば、リソース割り当て構成要素1008(図10)は、ステップ1306で見つけられた一般的なプール702実装リソースを関連付けられた仮想リソース(例えば、図11のステップ1108のプロビジョニング要求に関連付けられた仮想リソース)に割り当てられたとして記録することができる。
ステップ1304では、割り当て候補に一致する実装リソースが、ステップ1302で決定された特定の専用実装リソースプール(「候補専用プール」)において利用可能であるかどうかについて決定されることができる。例えば、リソース割り当て構成要素1008(図10)は、割り当て候補に一致する種類の割り当てられていない実装リソースを求めて専用実装リソースプール706(図7)を検索することができる。割り当て候補が候補専用プールにおいて利用可能である場合、プロシージャはステップ1312に進むことができる。そうではない場合、プロシージャは、ステップ1314に進むことができる。ステップ1312では、割り当て候補は、候補専用プールから割り当てられることができる。例えば、リソース割り当て構成要素1008は、ステップ1304で見つけられた専用プール706実装リソースを関連付けられた仮想リソースに割り当てられたとして記録することができる。
割り当て候補が候補専用プールにおいて現在利用可能ではないことが決定された場合、ステップ1314では、候補専用プールが拡張可能であるかどうかについて更に決定されることができる。例えば、専用リソースプール構成要素1012(図10)は、関連付けられた費用プラン(複数可)1022をチェックし、および/またはビジネスポリシー実施構成要素1014による候補専用プールの拡張の評価を要求することができる。候補専用プールが拡張可能である場合、プロシージャはステップ1316に進むことができ、そうではない場合、プロシージャは、割り当て候補が割り当てられなかったことを示す状態1310を伴う図13に示されていない1つ以上のステップ、例えば図11のステップ1116に進むことができる。
ステップ1316では、例えばステップ1306について上記したように、割り当て候補に一致する実装リソースが、一般的な実装リソースプール702(図7)において利用可能であるかどうかについて決定されることができる。そうである場合、プロシージャはステップ1318に進むことができる。そうではない場合、プロシージャは、割り当て候補が割り当てられなかったことを示す状態1310を伴う図13に示されていない1つ以上のステップ、例えば図11のステップ1116、に進むことができる。ステップ1318では、ステップ1316で見つけられた実装リソースが、候補専用プールに遷移されることができる(および/または遷移が開始されることができる)。例えば、専用リソースプール構成要素1012は、プール遷移構成要素1018にステップ1316で見つけられた一般的なプール702実装リソースを遷移させることを要求してもよい。遷移された実装リソースは、ステップ1312について上記したように割り当てられることができる。図13のステップが事前割り当てチェックの一部として実行されると、ステップ1308、ステップ1312およびステップ1318が省略され、および/または「リソース利用可能」状態に対応することができる。
図11のステップ1110で決定されたその組の実装リソースが、その時点でまだ存在していない専用実装リソースプールから割り当てられる1組の実装リソースを含む可能性がある。この場合、専用リソースプール構成要素1012(図10)は、割り当てられるその組の実装リソースを含む新たな専用実装リソースプールを確立することができる。図14は、少なくとも1つの実施形態による専用実装リソースプールを確立するステップ例を描写する。ステップ1402では、新たな専用実装リソースプールを確立するための要求(「新たな専用プール要求」)が受信されることができる。例えば、専用リソースプール構成要素1012は、図11のステップ1108の仮想リソースプロビジョニング要求に応答する要求を受信することができる。
ステップ1404では、新たな専用プール要求が、1組の実装リソースにマップされることができる。新たな専用プール要求は、新たな専用実装リソースプールに追加される1組の実装リソースを明確に指定することができる。あるいは、またはそれに加えて、新たな専用プール要求は、専用実装リソースで実装される1組の仮想リソースを指定することができ、および専用リソースプール構成要素1012(図10)は、その組の仮想リソースをその組の実装リソースにマップすることができる。
ステップ1406では、新たな専用プール要求が、その組のリソース割り当てビジネスポリシーに関して、例えばビジネスポリシー実施構成要素1014(図10)によって、評価されることができる。ステップ1408では、新たな専用プール要求が、ステップ1406の評価に少なくとも部分的に基づくその組のリソース割り当てビジネスポリシーに従うかどうかについて決定されることができる。そうである場合、ステップ1408を組み込んでいるプロシージャは、ステップ1410に進むことができる。そうではない場合、ステップ1412では、その問題が要求元に報告されることができる。
ステップ1410では、例えば図13のステップ1316について上記したように、ステップ1404で取得されたその組の実装リソースが一般的な実装リソースプール702(図2)において利用可能であるかどうかについて決定されることができる。そうである場合、プロシージャは、ステップ1414に進むことができる。そうではない場合、プロシージャは、その問題を要求元に報告するためにステップ1412に進むことができる。ステップ1414では、新たな専用実装リソースプールが、例えば専用リソースプール構成要素1012(図10)によって、その組の専用実装リソースプール704〜706(図7)に追加されることができる。ステップ1416では、一般的な実装リソースプール702において利用可能として識別されたその組の実装リソースが、新たな専用実装リソースプールに遷移されることができる。
図10を参照にして上記したように、専用実装リソースプールは、非アクティブな専用実装リソースバッファで確立されることができる。図15は、少なくとも1つの実施形態による非アクティブな専用実装リソースバッファを維持するステップ例を描写する。ステップ1502では、専用プール利用データが収集されることができる。例えば、プール利用構成要素1020は、専用実装リソースプール706(図7)におけるアクティビティおよび/または非アクティビティのレベルを監視することができる。ステップ1504では、例えばプール利用構成要素1020によって、ステップ1502で収集された専用プール利用データに少なくとも部分的に基づいてこの後の専用プールの利用が予測されることができる。
ステップ1506では、現行の非アクティブな専用実装リソースバッファが十分であるかどうかについて決定されることができる。例えば、プール利用構成要素1020は、専用実装リソースプール706(図7)における非アクティビティの予測レベルを専用実装リソースプール706についての非アクティビティの目標レベルおよび/または最小の非アクティビティバッファ閾値と比較することができる。現行のバッファが十分である場合(例えば、非アクティビティの予測レベルが最小の非アクティビティバッファ閾値を満たすまたは超える)、ステップ1506を組み込んでいるプロシージャは、ステップ1508に進むことができる。そうではない場合、プロシージャは、ステップ1510に進むことができる。ステップ1510では、1つ以上の実装リソースが、一般的な実装リソースプール702から(例えば、一般的な実装リソースプール702の予約された部分708から)専用実装リソースプール706に遷移されることができる。例えば、プール利用構成要素1020は、予測バッファが十分であるように、プール遷移構成要素1018に十分な実装リソースを専用実装リソースプール706に遷移することを要求することができる。
ステップ1508では、現行の非アクティブな専用実装リソースバッファが過度であるかどうかについて決定されることができる。例えば、プール利用構成要素1020は、専用実装リソースプール706(図7)における非アクティビティの予測レベルを専用実装リソースプール706についての非アクティビティの目標レベルおよび/または最大の非アクティビティバッファ閾値と比較することができる。現行のバッファが過度である(例えば、非アクティビティの予測レベルが最大の非アクティビティバッファ閾値を超える)場合、プロシージャは、ステップ1512に進むことができる。そうではない場合、プロシージャは、より多くのデータを収集するためにステップ1502に進むことができる。ステップ1512では、1つ以上の実装リソースが、専用実装リソースプール706から一般的な実装リソースプール702に(例えば、一般的な実装リソースプール702の予約された部分708に)遷移されることができる。例えば、プール利用構成要素1020は、非アクティビティの予測レベルが専用実装リソースプール706についての非アクティビティの目標レベルに対応するように、プール遷移構成要素1018に十分な実装リソースを一般的な実装リソースプール706に遷移することを要求することができる。
プロビジョニングされた仮想リソースを維持することに関連付けられた費用は、仮想リソースプロバイダ206の管理者および/または顧客によって指定される費用提示スケジュールに従って仮想リソースプロバイダ206(図2)の責任を負う顧客に提示されることができる。図16は、少なくとも1つの実施形態による費用を追跡するステップ例を描写する。ステップ1602では、1組の仮想リソースが、ある期間に維持されることができる。例えば、仮想リソースプロバイダ206は、特定の顧客のための1組の仮想リソース212をその期間に維持することができる。
ステップ1604では、ステップ1602で維持されたその組の仮想リソースに対応する1つ以上のアクティブな実装リソース利用量が、決定されることができる。例えば、図10のアカウンティング構成要素1010は、その期間にその組の仮想リソースのそれぞれに関連付けられたアクティブなリソース時間の数を決定することができる。ステップ1606では、ステップ1602で維持されたその組の仮想リソースに対応する1つ以上の非アクティブな実装リソース利用量が、決定されることができる。例えば、アカウンティング構成要素1010は、その期間にその組の仮想リソースのそれぞれに関連付けられた非アクティブなリソース時間の数を決定することができる。
ステップ1608では、その組の仮想リソースが、1組の予約された仮想リソースに関連付けられているかどうかについて決定されることができる。例えば、顧客は、プロビジョニングインタフェース1004(図10)でその組の予約された仮想リソースをプロビジョニングし、および/またはその組の予約された仮想リソースをステップ1602で維持され、以前にプロビジョニングされた組の仮想リソースに関連付けることができる。費用が決定されているその組の仮想リソースに関連付けられた予約された仮想リソースがある場合、ステップ1608を組み込んでいるプロシージャは、ステップ1610に進むことができる。そうではない場合、プロシージャはステップ1612に進むことができる。ステップ1610では、その組の予約された仮想リソースが、1つ以上の予約された実装リソース利用量に対してマップされることができる。例えば、図10のアカウンティング構成要素1010は、その組の予約された仮想リソースのそれぞれに関連付けられた予約されたリソース時間の数を決定することができる。
ステップ1612では、1つ以上の費用が、顧客および/またはその組の仮想リソースに関連付けられた1つ以上の費用プランに従って決定されることができる。例えば、アカウンティング構成要素1010(図10)は、費用プラン(複数可)1022ならびに/あるいはステップ1604、ステップ1606および/またはステップ1610でそれぞれ決定されたアクティブな、非アクティブなおよび/または予約された実装リソース利用量に少なくとも部分的に基づいて費用(複数可)を決定することができる。ステップ1614では、ステップ1612で決定された費用(複数可)が、顧客に提示されることができる。例えば、アカウンティング構成要素1010は、アカウントUI1024でアクセス可能な1つ以上の費用の提示を生成することができる。
図10を参照にして上記したように、制御プレーン1002は、ワークフロー構成要素1006によって維持された1つ以上のワークフローにより容易にされることができる。図17は、少なくとも1つの実施形態によるワークフローのためのステップ例を描写する。ステップ1702では、要求が、制御プレーン1002(図10)のインタフェースによって受信されることができる。例えば、制御プレーン1002のプロビジョニングインタフェース1004および/またはアカウントUI1024は、仮想リソースプロバイダ206の顧客および/または管理者から要求を受信することができる。要求は、例えばシンプルオブジェクトアクセスプロトコル(SOAP)呼び出しを利用する、アプリケーションプログラミングインタフェース(API)またはウェブサービスインタフェースなどのプログラム的なインタフェースに対する呼び出しであることができる。あるいは、またはそれに加えて、要求は、ウェブベースGUIなどのグラフィカルユーザインタフェース(GUI)経由で受信されることができる。ステップ1704では、要求を成功裏に完了するために必要とされる1つ以上のアクションを決定するように要求が分析されることができる。例えば、プロビジョニングインタフェース208は、要求を分析し、1組の仮想リソースをプロビジョニングするために必要とされる1組のアクションを決定することができる。要求を受信するインタフェース要素が、実行される特定のアクションに対応する場合、インタフェースは、実行されるアクションの態様および/またはパラメータの決定に利用される要求から情報を引き出すことができる。
ステップ1706では、要求が、ステップ1704で決定された1つ以上のアクションに少なくとも部分的に基づいてワークフローを生成するために送信されることができる。例えば、プロビジョニングインタフェース1004(図10)は、要求をワークフロー構成要素1006に送信することができる。ワークフローを生成するための要求は、アクション(複数可)、アクションの種類などのアクションメタデータ、および/またはアクションパラメータを含むことができる。少なくとも1つの実施形態において、制御プレーン1002および/またはワークフロー構成要素1006はそのような要求に対するジョブ待ち行列を維持し、ジョブ待ち行列に対する新たな追加に応答するワークフローが生成される。ステップ1708では、ワークフローおよび1つ以上の構成要素タスクが生成されることができる。例えば、ワークフロー構成要素1006は、生成する適切なワークフローおよび構成要素タスクを決定するためにステップ1706の要求を分析することができる。
ステップ1710では、構成要素タスク(複数可)の実行が、ワークフローに従って導かれることができる。例えば、ワークフロー構成要素1006(図10)は、その組の仮想リソースをプロビジョニングするために実装リソース220(図2)のインタフェースの要素をアクティブにすることができる。あるいは、またはそれに加えて、ワークフロー構成要素1006は、仮想リソースプロバイダ206の構成要素によって構成要素タスク(複数可)の実行のためのビッド(bid)を管理することができる。ステップ1712では、ワークフローが終了しているかどうかについて決定されることができる。例えば、ワークフロー構成要素1006は、ワークフローによって管理されるタスクのシーケンス内の最後のタスクが完了しているかどうかについて決定することができる。そうである場合、ステップ1712を組み込んでいるプロシージャは、ステップ1714に進むことができる。そうではない場合、プロシージャは、次のタスクおよび/またはタスクシーケンスのためにステップ1710に戻ることができる。ワークフローは、並行して実行される複数のタスクシーケンスを導くことができる。この場合において、ワークフローは、複数のタスクシーケンスのそれぞれが完了するおよび/または明確なワークフロー終了フラグが構成要素タスクのうちの1つによって設定されるまで終了していない可能性がある。ステップ1714では、ステップ1702の要求の送信元が、アクション(複数可)の結果(複数可)について通知されることができる。
本明細書中に記載された様々な実施形態は、ある場合においては、任意のいくつかのアプリケーションを操作するために利用され得る1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る多種多様の操作環境において実施されてもよい。ユーザデバイスまたはクライアントデバイスは、標準のオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを実行し、多数のネットワークおよびメッセージプロトコルをサポートする能力のある、セルラー、無線、およびハンドヘルドデバイス等の、多数の汎用パーソナルコンピュータのいずれかを含んでもよい。このようなシステムはまた、開発およびデータベース管理等の目的で、様々な市販のオペレーティングシステムおよび他の既知のアプリケーションを実行する、いくつかのワークステーションを含んでもよい。これらのデバイスはまた、ネットワークを介して通信する能力のある、ダミー端末、シンクライアント、ゲーム機、および他のデバイス等、他の電子デバイスを含んでもよい。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の様々な市販のプロトコルのいずれかを使用する通信をサポートすることで当業者によく知られている、少なくとも1つのネットワークを利用する。そのようなネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、およびこれらの組み合わせを含んでもよい。ネットワークはさらに、任意の適切なネットワークトポロジを組み込んでもよい。適切なネットワークトポロジの例としては、単純なポイントツーポイント、スター型トポロジ、自己編成式のピアツーピアトポロジ、およびそれらの組み合わせが挙げられるが、これらに限定されない。
ウェブサーバを利用する実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、ジャバサーバ、およびビジネスアプリケーションサーバを含む、様々なサーバまたは中間層アプリケーションのいずれかを実行してもよい。サーバ(複数可)はまた、例えば、Java(登録商標)、C、C#、またはC++等の任意のプログラム言語、あるいはPerl、Python、またはTCL等の任意のスクリプト言語、ならびにこれらの組み合わせで書かれた、1つ以上のスクリプトまたはプログラムとして実装可能な1つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行する能力があってもよい。サーバ(複数可)はまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)からの市販のものを含むが、これらに限定されないデータベースサーバを含んでもよい。
環境は、上述のように、様々なデータストアならびに他のメモリおよび記憶媒体を含んでもよい。これらは、様々な位置、例えば、コンピュータの1つ以上にローカル(および/またはその中に存在する)か、あるいはネットワークにわたるコンピュータのいくつかまたは全てからリモートの記憶媒体上に、存在してもよい。特定のセットの実施形態において、情報は、当業者によく知られているストレージエリアネットワーク(「SAN」)内に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実行するためのいずれの必要なファイルも、必要に応じて、ローカルおよび/またはリモートに記憶されてもよい。システムが、コンピュータ化されたデバイスを含む場合、それぞれのこのようなデバイスは、バスを介して電気的に連結されてもよいハードウェア要素を含んでもよく、その要素には、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド)、ならびに少なくとも1つの出力デバイス(例えば、画面デバイス、プリンタ、またはスピーカ)が挙げられる。このようなシステムはまた、1つ以上の記憶デバイス、例えば、ディスクドライブ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)または読み込み専用メモリ(「ROM」)等のソリッドステート記憶デバイス、ならびに取り外し可能メディアデバイス、メモリカード、フラッシュカード等を含んでもよい。
このようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、および作業メモリを含んでもよい。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定、および/または取り外し可能記憶デバイス、ならびに一時的および/またはより恒久的にコンピュータ可読情報を収容、記憶、伝送、および読み出すための記憶媒体を代表する、コンピュータ可読記憶媒体に接続されるか、それを受信するように構成されてもよい。システムおよび様々なデバイスはまた、典型的に、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステムおよびアプリケーションプログラムを含む、少なくとも1つの作業メモリデバイス内に配置される、プログラムモジュール、サービス、または他の要素を含む多数のソフトウェアアプリケーションモジュールを含むだろう。代替の実施形態が、多数の上述のものからの変形を有してもよいことを理解されたい。例えば、カスタマイズされたハードウェアもまた利用可能であり、および/または特定の要素がハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、または両方において実装されてもよい。さらに、ネットワーク入力/出力デバイス等の、他のコンピューティングデバイスへの接続も、採用可能である。
コードまたはコードの部分を収容するための記憶媒体およびコンピュータ可読媒体は、例えば、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、あるいは所望の情報を記憶するために利用されてもよい、システムデバイス内でアクセス可能な任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の、情報の記憶および/または伝送のための任意の方法または技術で実装される、揮発性および不揮発性媒体、取り外し可能または取り外し不可媒体であるが、これらに限定はされない、記憶媒体および通信媒体を含む、当該技術分野で既知か、または使用されている任意の適切な媒体を含んでもよい。プログラムモジュール、プログラム構成要素、および/またはプログラムオブジェクトは、任意の適切なコンピュータプログラミング言語の、および/またはそれに対応するコンピュータ可読命令および/またはコンピュータ実行可能な命令を含んでもよい。少なくとも1つの実施形態において、それぞれのコンピュータ可読媒体は有形であってもよい。少なくとも1つの実施形態において、それぞれのコンピュータ可読媒体は、時間的に非一時的なものであってもよい。本明細書に提供される開示および教示に基づき、当業者は様々な実施形態を実装するための他の様式および/または方法を認識するであろう。
本明細書および図面は、したがって、限定的な意味ではなく、むしろ例示的な意味と見なされるべきである。しかしながら、様々な修正および変更が、請求項に記載の本発明の広い精神および範囲から逸脱することなく、そこへなされてもよいことは明白であろう。
実施形態を記載する文脈における(特に以下の特許請求の範囲の文脈における)「1つの(a)」および「1つの(a)」および「その(the)」という用語ならびに類似の指示語の使用は、本明細書中に特に示されない限りまたは文脈により明らかに矛盾しない限り、単数形および複数形の両方を含むと解釈される。「備える(含む)(comprising)」、「有する(having)」、「含む(including)」および「含む(containing)」という用語は、言及されない限り、制限のない用語(すなわち、「を含むが、限定されない」という意味)として解釈される。「接続される(connected)」という用語は、たとえ間に何かがある場合でも、部分的にまたは完全に、(〜)内に含まれる(contained within)、(〜)に取り付けられる(attached to)、あるいは互いに接合される(joined together)として解釈される。本明細書中における値の範囲の列挙は、単に範囲内に属する各別個の値をそれぞれ示す簡単な方法としての機能を果たすことを意図するにすぎず、本明細書中に示されない限り、各別個の値は、本明細書中に個別に列挙されたものとして本明細書中に組み込まれる。本明細書中に記載した全ての方法は、本明細書中に示されない限りまたは文脈により明らかに矛盾しない限り、任意の適切な順序で実行可能である。任意のおよび全ての例、または本明細書中に提供された例示的な言い回し(例えば「など(such as)」)の使用は、単に実施形態をより良く説明することを意図し、特許請求されない限り、本発明の範囲を限定するものではない。本明細書中のいかなる言い回しも、任意の特許請求されていない要素を少なくとも1つの実施形態の実施に不可欠なものとして示すものと解釈されるべきではない。
好適な実施形態は、本発明者らに知られる最良の様式を含んで本明細書中に記載される。それらの好適な実施形態の変形は、前の記載を読めば当業者に明らかとなり得る。本発明者らは当業者がそのような変形を適宜用いることを予期し、本発明者らは実施形態が本明細書中に具体的に記載されたのとは別の方法で構成されることを意図する。したがって、適切な実施形態は、準拠法で許されているように、本明細書に添付された特許請求の範囲に記載された内容の全ての改変および均等物を含む。更に、その全ての可能な変形における上記要素の任意の組み合わせは、本明細書中で特に示されない限りまたは文脈により明らかに矛盾しない限り、いくつかの適切な実施形態に組み込まれるものとして意図される。
本明細書中に引用される刊行物、特許出願、および特許を含む全ての文献は、各文献を個々に具体的に示し、参照して組み込むのと、また、その内容の全てを本明細書中に記載するのと同じ程度まで、ここで参照して組み込まれる。
付記1. 仮想リソースの費用を追跡するコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、複数の顧客に関連付けられた複数の仮想リソースに複数の実装リソース割り当て単位として割り当てられることが可能な少なくとも1つの実装リソースであって、前記複数の顧客のうちの1組の顧客の仮想リソースに専用である、少なくとも1つの実装リソースを含む1組の実装リソースによって実装される仮想リソースを、前記複数の顧客を有する仮想リソースプロバイダで、維持することと、前記仮想リソースの実装に割り当てられる前記少なくとも1つの実装リソースのうち少なくとも第1の実装リソース割り当て単位に対応するアクティブなリソース利用量を決定することと、少なくとも部分的に前記の組の顧客の仮想リソースに専用であるために割り当てられていない前記少なくとも1つの実装リソースのうち少なくとも第2の実装リソース割り当て単位に対応する非アクティブなリソース利用量を決定することと、前記アクティブなリソース利用量および前記非アクティブなリソース利用量に少なくとも部分的に基づいて前記仮想リソースの少なくとも1つの費用を決定することと、前記の組の顧客に対して前記仮想リソースの前記少なくとも1つの費用の提示を提供することと、を含む、コンピュータ実装された方法。
付記2. 前記少なくとも1つの実装リソースを一般的な実装リソースプールから前記の組の顧客に関連付けられた専用実装リソースプールに遷移することによって少なくとも部分的に前記少なくとも1つの実装リソースを専用にすることを更に含む、付記1に記載のコンピュータ実装された方法。
付記3. 前記一般的な実装リソースプール内の実装リソースは、前記仮想リソースプロバイダの前記複数の顧客の複数の仮想リソースを少なくとも部分的に実装する、請求項2に記載のコンピュータ実装された方法。
付記4. 前記仮想リソースは、仮想コンピュータシステム、仮想データストア、および仮想プライベートネットワークのうちの少なくとも1つを含む、付記1に記載のコンピュータ実装された方法。
付記5. 前記少なくとも1つの実装リソースは、記憶デバイス、物理的なサーバ、サーバラック、データセンタ、前記データセンタの物理的に安全な部分、物理的なアクセスに関して監視される前記データセンタの部分、移動式データセンタ、ネットワークスイッチ、ネットワーク接続、無線ネットワーク送信器、および無線ネットワーク受信器のうちの少なくとも1つを含む、付記1に記載のコンピュータ実装された方法。
付記6. 実装リソース割り当て単位のそれぞれは、前記記憶デバイス、前記物理的なサーバ、前記サーバラック、前記データセンタ、前記データセンタの前記物理的に安全な部分、物理的なアクセスに関して監視される前記データセンタの前記部分、前記移動式データセンタ、前記ネットワークスイッチ、前記ネットワーク接続、前記無線ネットワーク送信器、および前記無線ネットワーク受信器のうちの、少なくとも1つの容量の単位に対応する、付記5に記載のコンピュータ実装された方法。
付記7. 前記物理的なサーバの前記容量の単位は標準仮想コンピュータシステム単位に対応し、前記物理的なサーバは1つの標準仮想コンピュータシステム単位よりも大きな容量を有する、付記6に記載のコンピュータ実装された方法。
付記8. リソース利用量は、実装リソース割り当て単位と時間単位との乗法的な積に対応する、付記1に記載のコンピュータ実装された方法。
付記9. 仮想リソースの費用を追跡するコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、複数の顧客に関連付けられた複数の仮想リソースを実装することが可能な少なくとも1つの実装リソースであって、仮想リソースプロバイダの複数の顧客のうちの1組の顧客の仮想リソースに専用である、少なくとも1つの実装リソースによって、少なくとも部分的に実装される仮想リソースを維持することと、前記少なくとも1つの実装リソースの少なくとも1つの割り当てられていない部分に対応する非アクティブなリソース利用量を決定することと、前記非アクティブなリソース利用量に少なくとも部分的に基づいて前記仮想リソースの少なくとも1つの費用を決定することと、前記仮想リソースの前記少なくとも1つの費用の提示を前記の組の顧客に提供することと、を含む、コンピュータ実装された方法。
付記10. 前記仮想リソースの前記少なくとも1つの費用を決定することは、前記少なくとも1つの実装リソースの少なくとも1つの割り当てられた部分に対応するアクティブなリソース利用量に少なくとも部分的に基づいて第1の費用を決定することと、前記非アクティブなリソース利用量に少なくとも部分的に基づいて第2の費用を決定することと、を含む、付記9に記載のコンピュータ実装された方法。
付記11. 前記第1の費用は、アクティブな実装リソース費用レートと前記アクティブなリソース利用量との乗法的な積であり、前記第2の費用は、非アクティブな実装リソース費用レートと前記非アクティブなリソース利用量との乗法的な積である、付記10に記載のコンピュータ実装された方法。
付記12. 前記の組の顧客の前記仮想リソースの前記少なくとも1つの費用を決定することは、前記非アクティブなリソース利用量、および、前記少なくとも1つの実装リソースの少なくとも1つの割り当てられた部分に対応するアクティブなリソース利用量、に少なくとも部分的に基づいて費用を決定することを含む、付記9に記載のコンピュータ実装された方法。
付記13. 前記費用を決定することは、対応する期間に関して調整されるアクティブな実装リソース費用レートを決定することを含む、付記12に記載のコンピュータ実装された方法。
付記14. 前記仮想リソースの前記少なくとも1つの費用を決定することは、前記仮想リソースプロバイダの複数の実装リソースに対応するアクティブなおよび非アクティブなリソース利用量に少なくとも部分的に基づいて調整されるアクティブな実装リソース費用レートを決定することを含む、付記9に記載のコンピュータ実装された方法。
付記15. 前記調整されるアクティブな実装リソース費用レートは、前記複数の実装リソースに関する平均のアクティブなリソース利用量に対する平均の非アクティブなリソース利用量の割合に少なくとも部分的に基づくものである、付記14に記載のコンピュータ実装された方法。
付記16. 仮想リソースの費用を追跡するコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、仮想リソースプロバイダの顧客に専用である実装リソースにおいてアクティブな実装リソースの利用に対する非アクティブな実装リソースの利用の割合が高いことを抑制する少なくとも1つのリソース割り当てビジネスポリシーを含む1組のリソース割り当てビジネスポリシーに関連付けられた少なくとも1つの費用プランに関連付けられた要求であって、仮想リソースをプロビジョニングするために、前記仮想リソースが前記仮想リソースプロバイダの1組の顧客に専用である少なくとも1つの実装リソースで少なくとも部分的に実装されることを示す要求を受信することと、前記仮想リソースが、前記少なくとも1つの実装リソースを含む1組の実装リソースによって実装されるとき、前記の組のリソース割り当てビジネスポリシーを満たすことをチェックすることと、前記の組の実装リソースを前記仮想リソースに割り当てることによって少なくとも部分的に前記の組の実装リソースで前記仮想リソースをプロビジョニングすることと、前記少なくとも1つの費用プランに従って前記仮想リソースの少なくとも1つの費用を決定することと、前記仮想リソースの前記少なくとも1つの費用を前記の組の顧客に提示することと、を含む、コンピュータ実装された方法。
付記17. 前記要求は、前記の組の顧客に専用である複数の実装リソースにわたる複数の仮想リソースの目標分布を指定し、前記複数の仮想リソースは前記仮想リソースを含み、および、前記少なくとも1つのリソース割り当てビジネスポリシーは、実装の前記目標分布が対象である少なくとも1つの分布限界を指定する、付記16に記載のコンピュータ実装された方法。
付記18. 前記少なくとも1つの費用プランは、前記仮想リソースの前記少なくとも1つの費用が、前記の組の顧客に専用の1つ以上の実装リソースで少なくとも部分的に実装される同じ種類のプロビジョニングされる仮想リソースの数に少なくとも部分的に基づくことを指定する、付記16に記載のコンピュータ実装された方法。
付記19. 仮想リソース費用を追跡するコンピュータ化されたシステムであって、仮想リソースプロバイダの複数の顧客に関連付けられた複数の仮想リソースを集合的に実装することが可能な、複数の実装リソースと、前記複数の顧客が、前記仮想リソースが前記複数の顧客のうちの1組の顧客に専用である実装リソースで実装されることを示す要求を含む、前記仮想リソースをプロビジョニングする要求をすることを可能にするように少なくとも構成された、プロビジョニングインタフェースと、実装リソース割り当て構成要素であって、少なくとも、前記複数の顧客のうちの少なくとも前記の組の顧客に専用の前記複数の実装リソースのうちの少なくとも1つを含む、少なくとも1つの専用実装リソースプールを維持し、ならびに、前記要求によって示されるように前記少なくとも1つの専用実装リソースプールから実装リソースを選択することを含めて要求された仮想リソースを実装するために、前記複数の実装リソースにおける実装リソースの少なくとも一部を割り当てるように構成された、実装リソース割り当て構成要素と、費用追跡構成要素であって、少なくとも、前記少なくとも1つの専用実装リソースプールから選択される少なくとも1つの実装リソースの少なくとも1つの割り当てられた部分に対応するアクティブなリソース利用量を決定し、前記少なくとも1つの専用実装リソースプールから選択される前記少なくとも1つの実装リソースの少なくとも1つの割り当てられていない部分に対応する非アクティブなリソース利用量を決定し、ならびに前記少なくとも1つの専用実装リソースプールから選択される前記少なくとも1つの実装リソースで少なくとも部分的に実装される少なくとも1つの仮想リソースの少なくとも1つの費用であって、前記アクティブなリソース利用量および前記非アクティブなリソース利用量に少なくとも部分的に基づく前記少なくとも1つの費用を決定するように構成された、費用追跡構成要素と、前記少なくとも1つの仮想リソースの前記少なくとも1つの費用を前記の組の顧客に提示するように少なくとも構成されたユーザインタフェース構成要素と、を備える、コンピュータ化されたシステム。
付記20. 前記実装リソース割り当て構成要素は、優先権を有する前記の組の顧客を含む前記複数の顧客の仮想リソースに割り当てるために利用可能な前記複数の実装リソースの少なくとも1つを含む少なくとも1つの予約された実装リソースプールを維持するように少なくとも更に構成され、前記費用追跡構成要素は、前記の組の顧客のために、前記少なくとも1つの予約された実装リソースプール内の前記複数の実装リソースのうちの前記少なくとも1つに対応する予約されたリソース利用量を決定するように少なくとも更に構成され、前記少なくとも1つの費用は、前記予約されたリソース利用量に少なくとも部分的に更に基づくものである、付記19に記載のコンピュータ化されたシステム。
付記21. 前記少なくとも1つの仮想リソースの前記少なくとも1つの費用を決定することは、前記予約されたリソース利用量に少なくとも部分的に基づいて第1の費用を決定することと、前記予約されたリソース利用量に少なくとも部分的に基づいて前記アクティブなおよび非アクティブなリソース利用量を修正することと、前記修正されたアクティブなおよび非アクティブなリソース利用量に少なくとも部分的に基づいて第2の費用を少なくとも決定することと、を含む、付記20に記載のコンピュータ化されたシステム。
付記22. コンピュータ実行可能な命令を当該コンピュータ可読媒体上に集合的に有する1つ以上のコンピュータ可読媒体であって、前記コンピュータ実行可能な命令は1つ以上のコンピュータを集合的に、少なくとも、仮想リソースプロバイダの複数の顧客に関連付けられた複数の仮想リソースのそれぞれを少なくとも部分的に実装することが可能な少なくとも1つの実装リソースを含む1組の実装リソースによって実装される仮想リソースであって、専用実装リソースにおけるアクティブな実装リソースの利用に対する非アクティブな実装リソースの利用の割合が高いことを抑制するように構成された少なくとも1つのリソース割り当てビジネスポリシーを含む1組のリソース割り当てビジネスポリシーに関連付けられた少なくとも1つの費用プランに関してプロビジョニングされる、仮想リソースをプロビジョニングするための要求であって、前記仮想リソースの1つ以上が、前記複数の顧客のうちの1組の顧客に専用である少なくとも1つの専用実装リソースで少なくとも部分的に実装されることを示すことが可能な要求を受信するように、前記の組のリソース割り当てビジネスポリシーが満たされるとき、要求された仮想リソースをプロビジョニングするように、プロビジョニングされた仮想リソースの費用を前記少なくとも1つの費用プランに従って決定するように、および前記プロビジョニングされた仮想リソースの前記費用の提示を提供するように構成する、1つ以上のコンピュータ可読媒体。
付記23. 前記少なくとも1つのリソース割り当てビジネスポリシーは、前記要求された仮想リソースが前記少なくとも1つの専用実装リソースで少なくとも部分的に実装されるとき、要求された仮想リソースの数が、要求された仮想リソースの最小数よりも少なくないことを指定する、付記22に記載の1つ以上のコンピュータ可読媒体。
付記24. 前記少なくとも1つの費用プランは、前記少なくとも1つの専用実装リソースを専用にすることに対応する少なくとも1つの費用を指定する、付記22に記載の1つ以上のコンピュータ可読媒体。
付記25. 前記少なくとも1つの費用プランは、前記少なくとも1つの専用実装リソースを一般的な実装リソースプールに戻すことに対応する少なくとも1つの費用を指定する、付記22に記載の1つ以上のコンピュータ可読媒体。
付記26. 仮想リソースをプロビジョニングするコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、少なくとも1つの情報バリアを組み込んでおり、および複数の顧客に関連付けられた複数の仮想リソースを前記少なくとも1つの情報バリアの後に実装することが可能な少なくとも1つの実装リソースを含む関連付けられた組の実装リソースを有し要求される仮想リソースをプロビジョニングする要求であって、前記少なくとも1つの実装リソースが前記の組の顧客の仮想リソースの専用になることを指定する少なくとも1つの専用実装リソース制約を含む関連付けられた組の実装リソース制約を有する要求を、前記仮想リソースプロバイダの1組の顧客のうちの少なくとも1人から、前記複数の顧客を有する仮想リソースプロバイダの制御プレーンで、受信することと、前記少なくとも1つの専用実装リソース制約に従って前記少なくとも1つの実装リソースを前記の組の顧客の仮想リソースに専用にすることによって少なくとも部分的に前記仮想リソースプロバイダの前記の組の顧客と他の顧客との間に前記少なくとも1つの情報バリアを確立することと、前記少なくとも1つの実装リソースを含んで割り当てられる前記の組の実装リソースを前記仮想リソースに割り当てることによって少なくとも部分的に前記要求された仮想リソースをプロビジョニングすることと、を含む、コンピュータ実装された方法。
付記27. 前記少なくとも1つの実装リソースを専用にすることは、前記少なくとも1つの実装リソースを一般的な実装リソースプールから前記の組の顧客に関連付けられた専用実装リソースプールに遷移することを含む、付記26に記載のコンピュータ実装された方法。
付記28. 前記少なくとも1つの情報バリアは、前記仮想リソースプロバイダの他の実装リソースからの前記少なくとも1つの実装リソースの物理的な分離に少なくとも部分的に対応する、付記26に記載のコンピュータ実装された方法。
付記29. 仮想リソースをプロビジョニングするコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、仮想リソースプロバイダの1組の顧客に専用である少なくとも1つの実装リソースであって、少なくとも1つの情報バリアを組み込んでおり、および前記仮想リソースプロバイダの複数の顧客に関連付けられた複数の仮想リソースを前記少なくとも1つの情報バリアの後に少なくとも部分的に実装することが可能な、少なくとも1つの実装リソースで仮想リソースが少なくとも部分的に実装されることを示す要求であって、前記仮想リソースをプロビジョニングする要求を受信することと、前記の組の顧客に専用の1組の割り当てられていない実装リソースを識別し、前記の組の割り当てられていない実装リソースが前記少なくとも1つの実装リソースを含むことをチェックすることと、前記少なくとも1つの実装リソースを前記の組の顧客に専用の前記の組の実装リソースから前記仮想リソースに割り当てることによって少なくとも部分的に前記仮想リソースをプロビジョニングし、その結果、少なくとも部分的に、前記少なくとも1つの情報バリアを前記仮想リソースプロバイダの前記の組の顧客と他の顧客との間に確立することと、を含む、コンピュータ実装された方法。
付記30. 前記少なくとも1つの情報バリアを確立することは、前記仮想リソースプロバイダの前記他の顧客のうちの少なくとも1人が、前記仮想リソースに関する未発表情報に対するアクセス権を得る可能性を低くする、付記29に記載のコンピュータ実装された方法。
付記31. 前記少なくとも1つの実装リソースを前記仮想リソースプロバイダの一般的な実装リソースプールから前記の組の顧客に関連付けられた専用実装リソースプールに遷移することによって少なくとも部分的に前記少なくとも1つの実装リソースを前記の組の顧客に専用にすることを更に含む、付記29に記載のコンピュータ実装された方法。
付記32. 前記専用にすることは、前記の組の顧客による前記仮想リソースに対する予測要求に少なくとも部分的に基づく予測的なものである、付記31に記載のコンピュータ実装された方法。
付記33. 前記少なくとも1つの実装リソースを前記一般的な実装リソースプールから専用実装リソースプールに遷移することは、前記の組の顧客のうちの少なくとも1人によって指定される実装リソース遷移プロシージャを実行することを含む、付記31に記載のコンピュータ実装された方法。
付記34. 前記の組の顧客のうちの少なくとも1人は、前記仮想リソースプロバイダによって提供された複数の実装リソース遷移プロシージャから前記実装リソース遷移プロシージャを選択する、付記33に記載のコンピュータ実装された方法。
付記35. 前記実装リソース遷移プロシージャは、前記一般的な実装リソースプール内の間には前記少なくとも1つの実装リソースのアクティビティに関連付けられた残りの情報の量を減少する、付記33に記載のコンピュータ実装された方法。
付記36. 前記の組の顧客のうちの少なくとも1人は、前記仮想リソースプロバイダのウェブベースのインタフェースで前記要求をする、付記29に記載のコンピュータ実装された方法。
付記37. 前記仮想リソースは、仮想コンピュータシステム、仮想データストア、および仮想プライベートネットワークのうちの少なくとも1つを含む、付記29に記載のコンピュータ実装された方法。
付記38. 前記少なくとも1つの実装リソースは、記憶デバイス、物理的なサーバ、サーバラック、データセンタの物理的に安全な部分、物理的なアクセスに関して監視されるデータセンタの部分、データセンタ、移動式データセンタ、ネットワークスイッチ、ネットワーク接続、無線ネットワーク送信器、および無線ネットワーク受信器のうちの少なくとも1つを含む、付記29に記載のコンピュータ実装された方法。
付記39. 仮想リソースをプロビジョニングするコンピュータ実装された方法であって、実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、仮想リソースプロバイダの複数の顧客に関連付けられた複数の仮想リソースを少なくとも部分的に実装するように構成された少なくとも1つの一般的な実装リソースを含む一般的な実装リソースプールを維持することと、前記仮想リソースプロバイダの前記複数の顧客のサブの組に専用の少なくとも1つの専用実装リソースを含む専用実装リソースプールを維持することと、前記専用実装リソースプールから引き出される少なくとも1つの実装リソースで前記仮想リソースが少なくとも部分的に実装されることを指定する実装制約に関連付けられた要求であって、前記仮想リソースをプロビジョニングする要求を受信することと、前記要求に応答して、前記少なくとも1つの専用実装リソースを前記仮想リソースに割り当てることによって少なくとも部分的に前記仮想リソースをプロビジョニングすることと、を含む、コンピュータ実装された方法。
付記40. 前記専用実装リソースプールを維持することは、前記専用実装リソースプールの非アクティビティレベルが第1の閾値よりも少ないとき、実装リソースを前記一般的な実装リソースプールから前記専用実装リソースプールに遷移することを含む、付記39に記載のコンピュータ実装された方法。
付記41. 前記専用実装リソースプールを維持することは、前記専用実装リソースプールの前記非アクティビティレベルが第2の閾値よりも大きいとき、実装リソースを前記専用実装リソースプールから前記一般的な実装リソースプールに遷移することを更に含む、付記40に記載のコンピュータ実装された方法。
付記42. 前記専用実装リソースプールを維持することは、前記専用実装リソースプールに関連付けられたアクティビティレベルの導関数に少なくとも部分的に基づいて実装リソースを遷移することを含む、付記39に記載のコンピュータ実装された方法。
付記43. 前記少なくとも1つの専用実装リソースで前記仮想リソースをプロビジョニングすることは、前記仮想リソースプロバイダの前記サブの組の前記複数の顧客と他の顧客との間に情報バリアを、少なくとも部分的に、確立する、付記39に記載のコンピュータ実装された方法。
付記44. 前記少なくとも1つの専用実装リソースで前記仮想リソースをプロビジョニングすることは、前記仮想リソースプロバイダの前記他の顧客のうちの少なくとも1人が前記仮想リソースに関連付けられたデータに認証された修正をすることができるという可能性を低くする、付記43に記載のコンピュータ実装された方法。
付記45. 前記仮想リソースを前記少なくとも1つの専用実装リソースでプロビジョニングすることは、前記少なくとも1つの一般的な実装リソースでプロビジョニングされた少なくとも1つの仮想リソースに関連する前記仮想リソースに関連付けられた性能基準(performance metric)を増加させる、付記39に記載のコンピュータ実装された方法。
付記46. 前記専用実装リソースで前記仮想リソースをプロビジョニングすることは、前記少なくとも1つの一般的な実装リソースで生じる少なくとも1つの操作上の障害から、少なくとも部分的に、前記仮想リソースを分離する、付記39に記載のコンピュータ実装された方法。
付記47. 仮想リソースをプロビジョニングするコンピュータ化されたシステムであって、仮想リソースプロバイダの複数の顧客に関連付けられた複数の仮想リソースを集合的に実装することが可能な複数の実装リソースと、前記複数の顧客が仮想リソースをプロビジョニングする要求をすることを可能にするように少なくとも構成されたプロビジョニングインタフェースと、前記複数の仮想リソースに対する前記複数の実装リソースの割り当てを追跡し、前記要求に応答する前記割り当てを修正するように少なくとも構成された実装リソース割り当て構成要素であって、前記要求が、前記複数の実装リソースのうち少なくとも1つの情報バリアを組み込んでいる少なくとも1つを前記複数の顧客のうちの少なくとも1人の顧客に専用にすることと、少なくとも1つの仮想リソースが前記少なくとも1人の顧客に専用の実装リソースで少なくとも部分的に実装されることを前記要求が示すとき、前記少なくとも1人の顧客によって要求された前記少なくとも1つの仮想リソースに前記複数の実装リソースのうちの前記少なくとも1つを割り当てることによって少なくとも部分的に前記仮想リソースプロバイダの前記少なくとも1人の顧客と他の顧客との間に前記少なくとも1つの情報バリアを確立することと、を含む、実装リソース割り当て構成要素と、を備える、コンピュータ化されたシステム。
付記48. 前記実装リソース割り当て構成要素は、少なくとも、前記少なくとも1人の顧客に専用の前記複数の実装リソースであって、各実装リソースが仮想リソース実装容量および仮想リソース実装に対する割り当ての現行レベルを有する前記複数の実装リソースのうちの少なくとも2つを含む専用実装リソースプールを維持するように、および前記割り当てが前記実装リソースの前記仮想リソース実装容量を超えないとき、前記割り当ての最大現行レベルを有する前記専用実装リソースプール内の実装リソースに前記少なくとも1人の顧客によって要求された前記少なくとも1つの仮想リソースを割り当てるように、
更に構成される、付記47に記載のコンピュータ化されたシステム。
付記49. 前記実装リソース割り当て構成要素は、移動が、割り当てのより高い現行レベルを有する前記専用実装リソースプール内の前記実装リソースの前記仮想リソース実装容量を超えないとき、割り当てのより低い現行レベルを有する前記専用実装リソースプール内の実装リソースから割り当てのより高い現行レベルを有する前記専用実装リソースプール内の実装リソースに仮想リソースを移動させるように少なくとも更に構成される、付記48に記載のコンピュータ化されたシステム。
付記50. コンピュータ実行可能な命令を当該コンピュータ可読媒体上に集合的に有する1つ以上のコンピュータ可読媒体であって、前記コンピュータ実行可能な命令は1つ以上のコンピュータを集合的に、少なくとも、仮想リソースプロバイダの複数の顧客のうちの少なくとも1人の顧客に専用である少なくとも1つの実装リソースであって、少なくとも1つの情報バリアを組み込んでいる少なくとも1つの実装リソースを含む、少なくとも1つの専用実装リソースプールを含む複数の実装リソースプールを維持するように、少なくとも1つの仮想リソースをプロビジョニングする要求であって、前記少なくとも1つの仮想リソースが前記少なくとも1つの専用実装リソースプール内の前記少なくとも1つの実装リソースで少なくとも部分的に実装されることを指定する第1の実装制約に少なくとも関連付けられた要求を受信するように、および前記要求に応答して、前記少なくとも1つの実装リソースを前記少なくとも1つの仮想リソースに割り当てることによって少なくとも部分的に前記少なくとも1つの仮想リソースをプロビジョニングし、その結果、少なくとも部分的に、前記仮想リソースプロバイダの前記少なくとも1人の顧客と他の顧客との間に前記少なくとも1つの情報バリアを確立するように、構成する、1つ以上のコンピュータ可読媒体。
付記51. 前記少なくとも1つの仮想リソースは複数の仮想リソースを含み、前記要求は、前記少なくとも1つの専用実装リソースプールにおける複数の実装リソースにわたって前記複数の仮想リソースの目標実装分布を指定する第2の実装制約に少なくとも更に関連付けられており、および前記プロビジョニングは、割り当てられた仮想リソースの実装リソースに対する割合が前記目標実装分布を超えないように、前記複数の仮想リソースを前記複数の実装リソースに割り当てることを含む、付記50に記載の1つ以上のコンピュータ可読媒体。
付記52. 前記要求は、前記複数の実装リソースの目標地理的分離を指定する第3の実装制約に少なくとも更に関連付けられており、および前記プロビジョニングは、少なくとも2つの前記複数の実装リソースが少なくとも前記目標地理的分離の地理的距離によって分離されるように、前記複数の仮想リソースを前記複数の実装リソースに割り当てることを更に含む、付記51に記載の1つ以上のコンピュータ可読媒体。

Claims (14)

  1. 仮想マシンを起動するコンピュータ実装された方法であって、
    実行可能な命令を備えて構成される1つ以上のコンピュータシステムの制御下で、
    仮想マシンプロバイダの複数の顧客に関連付けられた複数の仮想マシンを少なくとも部分的に実装するように構成された少なくとも1つの一般的なサーバを含む一般的なサーバプールを維持するステップと、
    前記仮想マシンプロバイダの前記複数の顧客のサブの組に専用の少なくとも1つの専用サーバを含む専用サーバプールを維持するステップと、
    前記仮想マシンプロバイダの顧客から仮想マシンを起動する要求を受信するステップであって、前記要求は、前記専用サーバプールから引き出される少なくとも1つのサーバによって前記仮想マシンがホストされることを指定するサーバ制約に関連付けられる、ステップと、
    前記要求に応答して、前記少なくとも1つの専用サーバを前記仮想マシンに割り当てることによって少なくとも部分的に前記仮想マシンを起動するステップであって、前記少なくとも1つの専用サーバは1組のハードウェアリソースを備える、ステップと、
    前記仮想マシンプロバイダに関連付けられたデータストアに、前記少なくとも1つの専用サーバが前記顧客の前記仮想マシンをホストすることに専用であることを示すステップと
    を含むことを特徴とするコンピュータ実装された方法。
  2. 前記少なくとも1つの専用サーバに関連付けられたリソースを前記仮想マシンに専用にするステップをさらに含ことを特徴とする請求項1に記載のコンピュータ実装された方法。
  3. 前記一般的なサーバプールは複数の一般的なサーバを含み、
    前記専用サーバプールを維持するステップは、前記複数の一般的なサーバの少なくとも1つのサーバを前記一般的なサーバプールから前記専用サーバプールに遷移することによって少なくとも部分的に、前記少なくとも1つのサーバを前記複数の顧客の前記サブの組に専用にするステップを含むことを特徴とする請求項1に記載のコンピュータ実装された方法。
  4. 前記専用にするステップは、前記複数の顧客の前記サブの組による前記仮想マシンに対する予測要求に少なくとも部分的に基づく予測的なものであることを特徴とする請求項3に記載のコンピュータ実装された方法。
  5. 前記少なくとも1つのサーバを前記一般的なサーバプールから前記専用サーバプールに遷移することは、前記複数の顧客の前記サブの組の少なくとも1人によって指定されるサーバ遷移プロシージャを実行することを含むことを特徴とする請求項3に記載のコンピュータ実装された方法。
  6. 前記複数の顧客の前記サブの組の少なくとも1人は、前記仮想マシンプロバイダによって提供される複数のサーバ遷移プロシージャから前記サーバ遷移プロシージャを選択することを特徴とする請求項5に記載のコンピュータ実装された方法。
  7. 前記専用サーバプールを維持するステップは、前記複数の顧客の前記サブの組によるサーバに対する予想される需要に少なくとも部分的に基づいて、サーバを前記専用サーバプールに遷移するステップを含むことを特徴とする請求項1に記載のコンピュータ実装された方法。
  8. 前記サーバ制約はさらに、前記専用サーバプールからの少なくとも1つのサーバによって実装される前記仮想マシンの第1のコンポーネントと、前記一般的なサーバプールからの少なくとも1つのサーバによって実装される前記仮想マシンの第2のコンポーネントとを指定することを特徴とする請求項1に記載のコンピュータ実装された方法。
  9. 前記仮想マシンを起動する前記要求は、前記仮想マシンに関連付けられた顧客から受信されことを特徴とする請求項1に記載のコンピュータ実装された方法。
  10. 仮想マシンを起動するコンピュータ化されたシステムであって、
    仮想マシンプロバイダの複数の顧客に関連付けられた複数の仮想マシンを集合的に実装することが可能な、複数のサーバと、
    少なくとも
    前記仮想マシンプロバイダの前記複数の顧客のうちの顧客から仮想マシンを起動する要求を受信し、前記要求は、少なくとも1つの専用サーバによってホストされる前記仮想マシンを示す情報に関連付けられる、
    前記要求に応答して、少なくとも1つの利用可能なサーバを選択して、前記顧客に専用にし、
    前記少なくとも1つの利用可能なサーバが、前記顧客の仮想マシンをホストすることのみに専用であることを示す情報をデータストアに格納させ、
    前記少なくとも1つの利用可能なサーバを前記顧客に専用にさせた後、前記少なくとも1つの利用可能なサーバを用いて前記仮想マシンを起動させるよう構成された起動インタフェースであって、前記仮想マシンを起動することは、仮想ネットワークに前記仮想マシンをプロビジョニングすることを含み、前記仮想ネットワークは、前記仮想マシンプロバイダによって運営されるハードウェアリソースを用いて少なくとも一部実装される、起動インタフェースと
    を備えることを特徴とするコンピュータ化されたシステム。
  11. 前記仮想ネットワークに前記仮想マシンをプロビジョニングすることは、前記仮想マシンプロバイダの他の顧客のうちの少なくとも1人が、前記仮想マシンに関する未発表情報に対するアクセス権を得る可能性を低くすることを特徴とする請求項10に記載のコンピュータ化されたシステム。
  12. 前記情報は、前記顧客の仮想マシンが同一の専用サーバによってホストされることを示す少なくとも1つのサーバ制約を含む1組のサーバ制約を含ことを特徴とする請求項10に記載のコンピュータ化されたシステム。
  13. 前記起動インタフェースは、前記少なくとも1つの利用可能なサーバを、一般的なサーバプールから専用サーバプールに遷移するようさらに構成され、
    前記遷移することは、
    前記少なくとも1つの利用可能なサーバが前記一般的なサーバプール内であるときに、前記少なくとも1つの利用可能なサーバに関連付けられた仮想マシンプロバイダイベントを識別することであって、前記少なくとも1つの利用可能なサーバは、1組のハードウェアリソースを備える、ことと、
    1組の入口プロシージャから選択された入口プロシージャを開始することであって、前記入口プロシージャは、前記複数の顧客のうちの前記顧客に特有であり、前記少なくとも1つの利用可能なサーバに対する遷移時間を少なくとも示し、前記少なくとも1つの利用可能なサーバは前記入口プロシージャの少なくとも一部の間遷移状態にある、ことと、
    前記少なくとも1つの利用可能なサーバが前記専用サーバプールに入るとき、前記入口プロシージャを終了すること
    を含むことを特徴とする請求項10に記載のコンピュータ化されたシステム。
  14. 前記入口プロシージャは、データ記憶媒体フォーマッティング、安全なデータ消去プロシージャを含むデータ記憶媒体消去、ソフトウェアインストール、構成要素の構成、構成要素の再割り当て、アクセス制御構成、ファイアウォール再構成、仮想マシン移動、認証証明の生成および発行、移動式データセンタの再配置、顧客によるサーバ遷移の手動再調査、または顧客が提供したコンピュータ実行可能な命令を含む顧客が提供した入口プロシージャを含むことを特徴とする請求項13に記載のコンピュータ化されたシステム。
JP2015036886A 2010-09-30 2015-02-26 専用実装リソースを用いる仮想リソース費用追跡 Active JP5948451B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/894,496 2010-09-30
US12/894,883 2010-09-30
US12/894,883 US10013662B2 (en) 2010-09-30 2010-09-30 Virtual resource cost tracking with dedicated implementation resources
US12/894,496 US11106479B2 (en) 2010-09-30 2010-09-30 Virtual provisioning with implementation resource boundary awareness

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013529433A Division JP5706529B2 (ja) 2010-09-30 2011-09-21 専用実装リソースを用いる仮想リソース費用追跡

Publications (2)

Publication Number Publication Date
JP2015135691A JP2015135691A (ja) 2015-07-27
JP5948451B2 true JP5948451B2 (ja) 2016-07-06

Family

ID=45938614

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013529433A Active JP5706529B2 (ja) 2010-09-30 2011-09-21 専用実装リソースを用いる仮想リソース費用追跡
JP2015036886A Active JP5948451B2 (ja) 2010-09-30 2015-02-26 専用実装リソースを用いる仮想リソース費用追跡

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013529433A Active JP5706529B2 (ja) 2010-09-30 2011-09-21 専用実装リソースを用いる仮想リソース費用追跡

Country Status (7)

Country Link
EP (1) EP2622504A4 (ja)
JP (2) JP5706529B2 (ja)
CN (2) CN103154926B (ja)
AU (1) AU2011314183B2 (ja)
CA (1) CA2811020C (ja)
SG (2) SG10201508046QA (ja)
WO (1) WO2012050772A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210097591A (ko) * 2020-01-30 2021-08-09 쿠팡 주식회사 구성 관리 데이터베이스에 대한 비용 효율성 추적

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106479B2 (en) 2010-09-30 2021-08-31 Amazon Technologies, Inc. Virtual provisioning with implementation resource boundary awareness
EP2622504A4 (en) * 2010-09-30 2018-01-17 Amazon Technologies, Inc. Virtual resource cost tracking with dedicated implementation resources
US8639595B1 (en) 2011-03-10 2014-01-28 Amazon Technologies, Inc. Statistically cost-following accounting model for dedicated resources
US9722866B1 (en) 2011-09-23 2017-08-01 Amazon Technologies, Inc. Resource allocation to reduce correlated failures
EP3296871B1 (en) * 2012-08-31 2019-01-09 Huawei Technologies Co., Ltd. Central processing unit resource allocation method and computing node
CN104348881B (zh) * 2013-08-08 2018-11-30 中国电信股份有限公司 云管理平台中的用户资源划分方法与装置
US10649796B2 (en) * 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9471775B1 (en) * 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US10007556B2 (en) 2015-12-07 2018-06-26 International Business Machines Corporation Reducing utilization speed of disk storage based on rate of resource provisioning
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10248459B2 (en) * 2016-03-15 2019-04-02 Microsoft Technology Licensing, Llc Operating system support for game mode
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
JP6461224B2 (ja) * 2017-04-06 2019-01-30 華為技術有限公司Huawei Technologies Co.,Ltd. 中央処理装置のリソース割当方法及び計算ノード
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002003220A2 (en) * 2000-07-05 2002-01-10 Ernst & Young Llp Method and apparatus for providing computer services
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US6968323B1 (en) * 2000-10-05 2005-11-22 International Business Machines Corporation Dynamic allocation and pricing of resources of web server farm
JP2002241923A (ja) * 2001-02-19 2002-08-28 Sony Corp 処理ユニット、処理装置、処理方法、表示素子の製造装置および表示素子の製造方法
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
JP3879471B2 (ja) * 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7720968B2 (en) * 2003-04-30 2010-05-18 International Business Machines Corporation Method and system of configuring elements of a distributed computing system for optimized value
AU2004280976A1 (en) * 2003-10-08 2005-04-21 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US8655997B2 (en) * 2004-01-30 2014-02-18 International Business Machines Corporation Hierarchical resource management for a computing utility
CN100547585C (zh) * 2004-01-30 2009-10-07 国际商业机器公司 包括为实体提供至少一个域的层级式管理的方法和装置
JP4197303B2 (ja) * 2004-02-17 2008-12-17 株式会社日立製作所 計算機リソース管理方法及び実施装置並びに処理プログラム
US20090019137A1 (en) * 2007-07-10 2009-01-15 Ragingwire Enterprise Solutions, Inc. Method and remote system for creating a customized server infrastructure in real time
JP5000456B2 (ja) * 2007-10-31 2012-08-15 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 資源管理システム、資源管理装置およびその方法
JP4523965B2 (ja) * 2007-11-30 2010-08-11 株式会社日立製作所 リソース割当方法、リソース割当プログラム、および、運用管理装置
KR100944912B1 (ko) * 2007-12-14 2010-03-03 한국전자통신연구원 서버 가상화 환경을 위한 디스크 입출력 스케쥴러 및 그의스케쥴링 방법
US8903983B2 (en) * 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US7886021B2 (en) * 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US8583781B2 (en) * 2009-01-28 2013-11-12 Headwater Partners I Llc Simplified service network architecture
US20090307705A1 (en) * 2008-06-05 2009-12-10 Neocleus Israel Ltd Secure multi-purpose computing client
US20100036957A1 (en) * 2008-08-08 2010-02-11 Oracle International Corporation Method and System for Implementing Transfer of a Network Session
JP2010205209A (ja) * 2009-03-06 2010-09-16 Hitachi Ltd 管理計算機、計算機システム、物理リソース割り当て方法
EP2622504A4 (en) * 2010-09-30 2018-01-17 Amazon Technologies, Inc. Virtual resource cost tracking with dedicated implementation resources

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210097591A (ko) * 2020-01-30 2021-08-09 쿠팡 주식회사 구성 관리 데이터베이스에 대한 비용 효율성 추적
KR102324086B1 (ko) 2020-01-30 2021-11-09 쿠팡 주식회사 구성 관리 데이터베이스에 대한 비용 효율성 추적

Also Published As

Publication number Publication date
CA2811020A1 (en) 2012-04-19
CN106020928B (zh) 2019-06-14
EP2622504A4 (en) 2018-01-17
SG188455A1 (en) 2013-04-30
JP5706529B2 (ja) 2015-04-22
AU2011314183B2 (en) 2014-09-04
JP2015135691A (ja) 2015-07-27
WO2012050772A1 (en) 2012-04-19
EP2622504A1 (en) 2013-08-07
CA2811020C (en) 2019-01-15
JP2013541093A (ja) 2013-11-07
SG10201508046QA (en) 2015-10-29
CN106020928A (zh) 2016-10-12
CN103154926A (zh) 2013-06-12
AU2011314183A1 (en) 2013-03-28
CN103154926B (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
JP5948451B2 (ja) 専用実装リソースを用いる仮想リソース費用追跡
US11842208B2 (en) Virtual provisioning with implementation resource boundary awareness
US10013662B2 (en) Virtual resource cost tracking with dedicated implementation resources
Yousafzai et al. Cloud resource allocation schemes: review, taxonomy, and opportunities
US10198297B1 (en) Provisioning virtual resource on a server based on label associated with virtual resource and servers
US9319286B2 (en) Apparatus and methods for managing applications in multi-cloud environments
US8868766B1 (en) Optimizing communication among collections of computing resources
Deshpande et al. Security and service assurance issues in Cloud environment
US11086648B1 (en) Trust-based resource allocation
US10367914B2 (en) Attaching service level agreements to application containers and enabling service assurance
US8924539B2 (en) Combinatorial optimization of multiple resources across a set of cloud-based networks
US9767445B1 (en) Statistically cost-following accounting model
EP3646226B1 (en) Access control manager configuration based on log files mining
JP2020536299A (ja) 改善されたパフォーマンスのためのユーザ・プロファイルの動的かつ自動的な変更を実施するための方法、コンピュータ・システム及びプログラム
Labes et al. Standardization approaches within cloud computing: Evaluation of infrastructure as a service architecture
US11101997B2 (en) Cryptographic key management
AU2014265092B2 (en) Virtual resource cost tracking with dedicated implementation resources
Mury et al. Task distribution models in grids: towards a profile‐based approach
US11973666B1 (en) Systems and methods for using blockchain to manage service-level agreements between multiple service providers
US11556385B2 (en) Cognitive processing resource allocation
US20230418634A1 (en) Method and system for provisioning and management of dynamic desktops
Jiang Three Essays on Availability-Aware Optimal Resource Allocation and Pricing Strategy in Cloud Computing
Shukla et al. Review on Various Energy-Aware and SLA Violation Reduction Techniques
Mahmood et al. Autonomous real-time navigation for service level agreement in distributed information service system
Deshpande et al. Service and Service Assurance Issues in a Cloud Environment

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5948451

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250