(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-12
(54)【発明の名称】コストおよびサービスレベルに基づくサービスとしての複数のプラットフォーム上へのワークロード配置の最適化
(51)【国際特許分類】
G06F 9/50 20060101AFI20231205BHJP
【FI】
G06F9/50 150Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023532844
(86)(22)【出願日】2021-10-26
(85)【翻訳文提出日】2023-05-30
(86)【国際出願番号】 CN2021126243
(87)【国際公開番号】W WO2022116738
(87)【国際公開日】2022-06-09
(32)【優先日】2020-12-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】アロノヴィッチ、リオール
(57)【要約】
サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータ実装方法、コンピュータプログラム製品、およびコンピュータシステム。コンピュータはまず、それぞれのワークロードのためのコストが最も低いプラットフォーム上のそれぞれのワークロードを設定する。コンピュータは、必須制約が満たされているか否かを判定する。コンピュータは、必須制約を満たしていると判定した場合、ベストエフォート制約を確認する。コンピュータは、ベストエフォート制約を満たしていないワークロード群を決定し、コストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定する。コンピュータは、ワークロード群から、アップグレード後コストが最も低いワークロードを選択し、アップグレード後プラットフォームインデックスを設定することにより、アップグレード後コストが最も低いワークロードを更新する。
【特許請求の範囲】
【請求項1】
サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータ実装方法であって、
それぞれのワークロードについて、当該それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、
前記それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、
前記必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、
前記ベストエフォート制約を満たしていないワークロード群を決定することと、
前記ワークロード群が空ではないと判定した場合、当該ワークロード群について、生じるコストが最も低くかつ前記ベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、
前記ワークロード群について、それぞれの前記候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、
前記ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、
前記アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該アップグレード後コストが最も低いワークロードをアップグレードすることと、
前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、
を含む、コンピュータ実装方法。
【請求項2】
前記必須制約が満たされていないと判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの、以前の反復における最適化問題の解である以前の配置が当該必須制約を満たすか否かを判定することと、
前記以前の配置が前記必須制約を満たすと判定した場合、前記最適配置として当該以前の配置を出力することと、
前記以前の配置が前記必須制約を満たさないと判定した場合、最適配置を出力しないことと、をさらに含む、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ワークロード群が空であると判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として、現在の反復における前記最適化問題の解である現在の配置を出力することをさらに含む、
請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ワークロード群に含まれるワークロードに前記ベストエフォート制約を満たすプラットフォームが存在しない場合、当該ワークロードはアップグレード不可能であると示すことをさらに含む、
請求項1に記載のコンピュータ実装方法。
【請求項5】
更新が可能なワークロードを前記ワークロード群が少なくとも1つ含んでいるか否かを判定することと、
アップグレードが可能なワークロードを前記ワークロード群が1つも含んでいないと判定した場合、現在の反復における前記最適化問題の解である現在の配置を前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として設定することと、をさらに含む、
請求項1に記載のコンピュータ実装方法。
【請求項6】
前記最適化問題の目的は、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するための総コストを最小限にすることである、
請求項1に記載のコンピュータ実装方法。
【請求項7】
前記必須制約の一つ目は、ワークロードを実行するためのコストが残り金銭的予算を超えないことを必要とするものであり、前記必須制約の二つ目は、前記それぞれのワークロードを前記それぞれのプラットフォーム上で実行するための総コストが全体金銭的予算を超えないことを必要とするものであり、前記必須制約の三つ目は、一のワークロードを実行するために選択されたプラットフォームが当該ワークロードを実行する資格のあることを必要とするものであり、前記必須制約の四つ目は、いずれかのプラットフォームのリソース消費上限を超えないことを必要とするものであり、前記ベストエフォート制約のうちの1つは、いずれのワークロードについても推定完了時間が要求完了時間を超えないことを必要とするものである、
請求項1に記載のコンピュータ実装方法。
【請求項8】
サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータプログラム製品であって、当該コンピュータプログラム製品は、プログラム命令を具備するコンピュータ可読記憶媒体を含み、当該プログラム命令は1つ以上のプロセッサによって実行可能であり、当該プログラム命令は、
それぞれのワークロードについて、当該それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、
前記それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、
前記必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、
前記ベストエフォート制約を満たしていないワークロード群を決定することと、
前記ワークロード群が空ではないと判定した場合、当該ワークロード群について、生じるコストが最も低くかつ前記ベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、
前記ワークロード群について、それぞれの前記候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、
前記ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、
前記アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該アップグレード後コストが最も低いワークロードをアップグレードすることと、
前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、
を実行可能である、コンピュータプログラム製品。
【請求項9】
前記必須制約が満たされていないと判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの、以前の反復における最適化問題の解である以前の配置が当該必須制約を満たすか否かを判定することと、
前記以前の配置が前記必須制約を満たすと判定した場合、前記最適配置として当該以前の配置を出力することと、
前記以前の配置が前記必須制約を満たさないと判定した場合、最適配置を出力しないことと、を実行可能なプログラム命令をさらに含む、
請求項8に記載のコンピュータプログラム製品。
【請求項10】
前記ワークロード群が空であると判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として、現在の反復における前記最適化問題の解である現在の配置を出力することを実行可能なプログラム命令をさらに含む、
請求項8に記載のコンピュータプログラム製品。
【請求項11】
前記ワークロード群に含まれるワークロードに前記ベストエフォート制約を満たすプラットフォームが存在しない場合、当該ワークロードはアップグレード不可能であると示すことを実行可能なプログラム命令をさらに含む、
請求項8に記載のコンピュータプログラム製品。
【請求項12】
更新が可能なワークロードを前記ワークロード群が少なくとも1つ含んでいるか否かを判定することと、
更新が可能なワークロードを前記ワークロード群が1つも含んでいないと判定した場合、現在の反復における前記最適化問題の解である現在の配置を前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として設定することと、を実行可能なプログラム命令をさらに含む、
請求項8に記載のコンピュータプログラム製品。
【請求項13】
前記最適化問題の目的は、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するための総コストを最小限にすることであり、前記必須制約の一つ目は、ワークロードを実行するためのコストが残り金銭的予算を超えないことを必要とするものであり、前記必須制約の二つ目は、前記それぞれのワークロードを前記それぞれのプラットフォーム上で実行するための総コストが全体金銭的予算を超えないことを必要とするものであり、前記必須制約の三つ目は、一のワークロードを実行するために選択されたプラットフォームが当該ワークロードを実行する資格のあることを必要とするものであり、前記必須制約の四つ目は、いずれかのプラットフォームのリソース消費上限を超えないことを必要とするものであり、前記ベストエフォート制約のうちの1つは、いずれのワークロードについても推定完了時間が要求完了時間を超えないことを必要とするものである、
請求項8に記載のコンピュータプログラム製品。
【請求項14】
サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータシステムであって、当該コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読有形記憶装置と、当該1つ以上のプロセッサの少なくとも1つによる実行のために当該1つ以上のコンピュータ可読有形記憶装置の少なくとも1つに記憶されるプログラム命令とを備え、当該プログラム命令は、
それぞれのワークロードについて、当該それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、
前記それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、
前記必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、
前記ベストエフォート制約を満たしていないワークロード群を決定することと、
前記ワークロード群が空ではないと判定した場合、当該ワークロード群について、生じるコストが最も低くかつ前記ベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、
前記ワークロード群について、それぞれの前記候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、
前記ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、
前記アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該アップグレード後コストが最も低いワークロードをアップグレードすることと、
前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、
を実行可能である、コンピュータシステム。
【請求項15】
前記必須制約が満たされていないと判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの、以前の反復における最適化問題の解である以前の配置が当該必須制約を満たすか否かを判定することと、
前記以前の配置が前記必須制約を満たすと判定した場合、前記最適配置として当該以前の配置を出力することと、
前記以前の配置が前記必須制約を満たさないと判定した場合、最適配置を出力しないことと、を実行可能なプログラム命令をさらに含む、
請求項14に記載のコンピュータシステム。
【請求項16】
前記ワークロード群が空であると判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として、現在の反復における前記最適化問題の解である現在の配置を出力することを実行可能なプログラム命令をさらに含む、
請求項14に記載のコンピュータシステム。
【請求項17】
前記ワークロード群に含まれるワークロードに前記ベストエフォート制約を満たすプラットフォームが存在しない場合、当該ワークロードはアップグレード不可能であると示すことを実行可能なプログラム命令をさらに含む、
請求項14に記載のコンピュータシステム。
【請求項18】
更新が可能なワークロードを前記ワークロード群が少なくとも1つ含んでいるか否かを判定することと、
更新が可能なワークロードを前記ワークロード群が1つも含んでいないと判定した場合、現在の反復における前記最適化問題の解である現在の配置を前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として設定することと、を実行可能なプログラム命令をさらに含む、
請求項14に記載のコンピュータシステム。
【請求項19】
前記最適化問題の目的は、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するための総コストを最小限にすることであり、前記必須制約の一つ目は、ワークロードを実行するためのコストが残り金銭的予算を超えないことを必要とするものであり、前記必須制約の二つ目は、前記それぞれのワークロードを前記それぞれのプラットフォーム上で実行するための総コストが全体金銭的予算を超えないことを必要とするものであり、前記必須制約の三つ目は、一のワークロードを実行するために選択されたプラットフォームが当該ワークロードを実行する資格のあることを必要とするものであり、前記必須制約の四つ目は、いずれかのプラットフォームのリソース消費上限を超えないことを必要とするものであり、前記ベストエフォート制約のうちの1つは、いずれのワークロードについても推定完了時間が要求完了時間を超えないことを必要とするものである、
請求項14に記載のコンピュータシステム。
【請求項20】
待機中ワークロードと実行中ワークロードを含むそれぞれのワークロードと、
リモートプラットフォームとローカルプラットフォームを含むそれぞれのプラットフォームと、
前記それぞれのワークロードと前記それぞれのプラットフォームをマッピングするためのシステムと、を含み、
前記それぞれのワークロードと前記それぞれのプラットフォームをマッピングするための前記システムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読有形記憶装置と、当該1つ以上のプロセッサの少なくとも1つによる実行のために当該1つ以上のコンピュータ可読有形記憶装置の少なくとも1つに記憶されるプログラム命令とを備え、当該プログラム命令は、
前記それぞれのワークロードについて、当該それぞれのワークロードを実行するためのコストが最も低い前記それぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、
前記それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、
前記必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、
前記ベストエフォート制約を満たしていないワークロード群を決定することと、
前記ワークロード群が空ではないと判定した場合、当該ワークロード群について、生じるコストが最も低くかつ前記ベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、
前記ワークロード群について、それぞれの前記候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、
前記ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、
前記アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該アップグレード後コストが最も低いワークロードをアップグレードすることと、
前記それぞれのプラットフォーム上への前記それぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、
を実行可能である、サービスとしての複数のプラットフォームのシステム。
【請求項21】
前記必須制約が満たされていないと判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの、以前の反復における最適化問題の解である以前の配置が当該必須制約を満たすか否かを判定することと、
前記以前の配置が前記必須制約を満たすと判定した場合、前記最適配置として当該以前の配置を出力することと、
前記以前の配置が前記必須制約を満たさないと判定した場合、最適配置を出力しないことと、を実行可能なプログラム命令をさらに含む、
請求項20に記載のサービスとしての複数のプラットフォームのシステム。
【請求項22】
前記ワークロード群が空であると判定した場合、前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として、現在の反復における前記最適化問題の解である現在の配置を出力することを実行可能なプログラム命令をさらに含む、
請求項20に記載のサービスとしての複数のプラットフォームのシステム。
【請求項23】
前記ワークロード群に含まれるワークロードに前記ベストエフォート制約を満たすプラットフォームが存在しない場合、当該ワークロードはアップグレード不可能であると示すことを実行可能なプログラム命令をさらに含む、
請求項20に記載のサービスとしての複数のプラットフォームのシステム。
【請求項24】
更新が可能なワークロードを前記ワークロード群が少なくとも1つ含んでいるか否かを判定することと、
更新が可能なワークロードを前記ワークロード群が1つも含んでいないと判定した場合、現在の反復における前記最適化問題の解である現在の配置を前記それぞれのプラットフォーム上の前記それぞれのワークロードの前記最適配置として設定することと、を実行可能なプログラム命令をさらに含む、
請求項20に記載のサービスとしての複数のプラットフォームのシステム。
【請求項25】
前記最適化問題の目的は、前記それぞれのプラットフォーム上で前記それぞれのワークロードを実行するための総コストを最小限にすることであり、前記必須制約の一つ目は、ワークロードを実行するためのコストが残り金銭的予算を超えないことを必要とするものであり、前記必須制約の二つ目は、前記それぞれのワークロードを前記それぞれのプラットフォーム上で実行するための総コストが全体金銭的予算を超えないことを必要とするものであり、前記必須制約の三つ目は、一のワークロードを実行するために選択されたプラットフォームが当該ワークロードを実行する資格のあることを必要とするものであり、前記必須制約の四つ目は、いずれかのプラットフォームのリソース消費上限を超えないことを必要とするものであり、前記ベストエフォート制約のうちの1つは、いずれのワークロードについても推定完了時間が要求完了時間を超えないことを必要とするものである、
請求項20に記載のサービスとしての複数のプラットフォームのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービスとしてのプラットフォーム(PaaS)モデル全般に関し、より具体的には、コストおよびサービスレベルに基づくサービスとしての複数のプラットフォーム上へのワークロード配置の最適化に関する。
【背景技術】
【0002】
サービスとしてのプラットフォーム(PaaS)モデルにおいて、ワークロードは、仮想マシンや物理マシンではなく、プラットフォーム上で実行されるように配置(place)される。プラットフォームは、基礎となるリソースの任意の組み合わせを含むことができるが、これは通常、プラットフォームのユーザには公開されない。プラットフォームは通常、プラットフォーム上へのワークロードの配置、実行、監視、制御を可能にするインタフェースを公開する。
【0003】
仮想マシン(VM)種類の選択、VMイメージの作成と管理、VMとクラスタとの接続と切断、VMの返却(return)、VMの準備(provision)待ち、VMの追跡など、サービスとしてのインフラストラクチャ(IaaS)プラットフォームでの作業では通常必要となるいくつかの処理要素が、PaaSプラットフォームでの作業では不要になる。PaaSでは、ワークロードと、ワークロードを実行するプラットフォームという2つの主要な概念がある。
【0004】
PaaSプラットフォームはローカルでもよいし、リモートでもよい。ユーザは、PaaSプラットフォーム上にアカウントを作成する。そして、作成したアカウントを介して、これらのPaaSプラットフォーム上にワークロードをアップロードして実行することができる。ローカルとリモートの両方のプラットフォーム上でワークロードを実行できることで、いくつかのメリットが得られる。コスト削減がその代表である。たまにしか発生しないリソース使用量の急増に対応するために費用をかけてリソースの構築や維持を行うことなく、ハイブリッドクラウドの仕組みを利用することで、ローカルプラットフォームからリモートプラットフォームにワークロードをオフロード(offload)することができるため、必要なときにだけ追加リソースの支払いを行えばよく、総所有コストを削減することができる。他のメリットとして、ワークロードの要件やコストなどを考慮して、属性の異なる複数のクラウドプロバイダやプラットフォームを柔軟に利用できることが挙げられる。また、セキュリティの向上もメリットである。クラウドプロバイダは、セキュリティの強化、隔離(isolation)、プライベートネットワークを介した通信を提供できるので、セキュリティやコンプライアンスの側面に対応できる。ハイブリッドクラウドの仕組みは、ワークロードをクラウドプラットフォーム上に動的に配置することで、スケーラビリティを提供できる。また、クラウドプロバイダのリソースを活用することで、障害やダウンタイムのリスクを最小限にできる。
【発明の概要】
【0005】
一態様によれば、サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータ実装方法が提供される。コンピュータ実装方法は、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、ベストエフォート制約を満たしていないワークロード群を決定することと、ワークロード群が空ではないと判定した場合、ワークロード群について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、ワークロード群について、それぞれの候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、アップグレード後コストが最も低いワークロードをアップグレードすることと、それぞれのプラットフォーム上へのそれぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、を含む。
【0006】
他の態様によれば、サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、プログラム命令を具備するコンピュータ可読記憶媒体を含み、プログラム命令は1つ以上のプロセッサによって実行可能である。プログラム命令は、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、ベストエフォート制約を満たしていないワークロード群を決定することと、ワークロード群が空ではないと判定した場合、ワークロード群について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、ワークロード群について、それぞれの候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、アップグレード後コストが最も低いワークロードをアップグレードすることと、それぞれのプラットフォーム上へのそれぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、を実行可能である。
【0007】
さらに他の態様によれば、サービスとしての複数のプラットフォーム上へのワークロード配置を最適化するためのコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読有形記憶装置と、1つ以上のプロセッサの少なくとも1つによる実行のために1つ以上のコンピュータ可読有形記憶装置の少なくとも1つに記憶されるプログラム命令とを備える。プログラム命令は、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、ベストエフォート制約を満たしていないワークロード群を決定することと、ワークロード群が空ではないと判定した場合、ワークロード群について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、ワークロード群について、それぞれの候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、アップグレード後コストが最も低いワークロードをアップグレードすることと、それぞれのプラットフォーム上へのそれぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、を実行可能である。
【0008】
さらに他の態様によれば、サービスとしての複数のプラットフォームのシステムが提供される。サービスとしての複数のプラットフォームのシステムは、待機中ワークロードと実行中ワークロードを含むそれぞれのワークロードを含む。サービスとしての複数のプラットフォームのシステムはさらに、リモートプラットフォームとローカルプラットフォームを含むそれぞれのプラットフォームを含む。サービスとしての複数のプラットフォームのシステムはさらに、それぞれのワークロードとそれぞれのプラットフォームをマッピングするためのシステムを含む。それぞれのワークロードとそれぞれのプラットフォームをマッピングするためのシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読有形記憶装置と、1つ以上のプロセッサの少なくとも1つによる実行のために1つ以上のコンピュータ可読有形記憶装置の少なくとも1つに記憶されるプログラム命令とを備える。プログラム命令は、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いそれぞれのプラットフォームを特定するプラットフォームインデックスを設定することと、それぞれのワークロードについて、必須制約が満たされているか否かを判定することと、必須制約を満たしていると判定した場合、ベストエフォート制約を確認することと、ベストエフォート制約を満たしていないワークロード群を決定することと、ワークロード群が空ではないと判定した場合、ワークロード群について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群を決定することと、ワークロード群について、それぞれの候補プラットフォームを特定するアップグレード後プラットフォームインデックスを決定し、アップグレード後コストを計算することと、ワークロード群から、アップグレード後コストが最も低いワークロードを選択することと、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、アップグレード後コストが最も低いワークロードをアップグレードすることと、それぞれのプラットフォーム上へのそれぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行することと、を実行可能である。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の一実施形態による、サービスとしての複数のプラットフォームを含むシステムを示す図である。
【
図2】
図2は、本発明の一実施形態による、複数のプラットフォーム上にワークロードを配置する動作ステップを示すフローチャートである。
【
図3A】
図3Aは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。
【
図3B】
図3Bは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。
【
図4】
図4は、本発明の一実施形態による、コンピュータ装置のコンポーネントを示す図である。
【
図5】
図5は、本発明の一実施形態による、クラウドコンピューティング環境を示す図である。
【
図6】
図6は、本発明の一実施形態による、クラウドコンピューティング環境における抽象化モデルレイヤを示す図である。
【発明を実施するための形態】
【0010】
本開示において検討される課題は、以下の通り定義される。複数のワークロードが実行可能であるか、または既に実行中である。複数のプラットフォームが、これら複数のワークロードの実行に利用可能である。複数のプラットフォームのうち一部は、ワークロードを実行中の場合がある。各ワークロードは、その処理を完了するための要求時間が設けられている場合がある。各ワークロードは、リソースの消費量および完了までの時間の点で、各プラットフォーム上で異なるパフォーマンスを示す場合がある。各プラットフォームでは異なるコストが発生し、これらは時間の経過とともに変化する場合がある。プラットフォームごとのコストは、指定されたリソースの使用状況、時間間隔、およびその他の要素によって異なる場合がある。各プラットフォームは、異なる容量限界(capacity limits)を有している場合がある。複数のプラットフォームのうち一部はローカルで、他の一部はリモートである場合がある。本技術の目的は、複数のワークロードと複数のプラットフォームとの間のマッピングを発見することであり、当該マッピングは、ワークロードの完了までの時間および、プラットフォームを使用することで発生する総コストを最小化するものである。
【0011】
クラウドバースティング(cloud bursting)を実行するための既存の商用システムには、いくつかの制限がある。サービスとしてのプラットフォーム(PaaS)モデルにおいては、システムは通常、監視ツールを介したリソースの過不足状況の特定、どのアプリケーションを移動させるかの監視および決定、予算(budget)の利用の監視および規制、ならびにクラウドリソースの準備およびリリースの管理を行う上で、システム管理者に依存している。PaaSクラウドは比較的新しいモデルであり、現在のPaaSクラウドのシステムでは、サービスレベルや予算の管理の面でのサポートが限られているか、または全くない。
【0012】
上記の制限を克服するために、本発明の実施形態は、PaaSクラウドモデルに焦点を当てている。本発明の実施形態は、任意の種類のワークロードおよびワークロード環境をサポートし、仮想化環境(virtualized environment)に関していかなる仮定も行わない。本発明の実施形態は、サービスレベル、予算、コスト、リソース、ワークロード、およびプラットフォームについて併せて考慮する。本発明の実施形態は、異なる属性を有する複数のローカルおよびリモートクラウドをサポートする。本発明の実施形態は、予算、リソース、およびプラットフォームに関する制約がある中で、ワークロードのサービスレベルおよびクラウドの利用コストを自動的に最適化する。本発明の実施形態は、スケーラブルなソリューションを提供する。
【0013】
図1は、本発明の一実施形態による、サービスとしての複数のプラットフォームを含むシステム100を示す図である。サービスとしての複数のプラットフォームを含むシステム100は、ワークロード120、プラットフォーム130、およびワークロード120とプラットフォーム130をマッピングするためのシステム110で構成される。ワークロード120は、M個の待機中(pending)ワークロード(待機中ワークロード1(121-1)、待機中ワークロード2(121-2)、・・・、待機中ワークロードM(121-M))を含む。待機中ワークロードは、プラットフォーム上に配置されるのを待機している。ワークロード120はさらに、N個の実行中(running)ワークロード(実行中ワークロード1(122-1)、実行中ワークロード2(122-2)、・・・、実行中ワークロードN(122-N))を含む。実行中ワークロードは、プラットフォーム上で現在実行中のワークロードである。プラットフォーム130は、K個のローカルプラットフォーム(ローカルプラットフォーム1(131-1)、ローカルプラットフォーム2(131-2)、・・・、ローカルプラットフォームK(131-K))と、L個のリモートプラットフォーム(リモートプラットフォーム1(132-1)、リモートプラットフォーム2(132-2)、・・・、リモートプラットフォームL(131-L))とを含む。プラットフォーム130は、1つ以上のクラウドプロバイダによって提供することができる。
【0014】
ユーザは、待機中ワークロードをプラットフォーム上で実行することを要求する。そして、マッピング用システム110は、待機中ワークロードのプラットフォームへの最適配置を計算し、その最適配置に従って、待機中ワークロードをプラットフォーム上に配置する。何らかの変更(例えば、システム100への新たなワークロードの追加や、ワークロードの要件の変更など。詳細な説明は後述)に応じて、マッピング用システム110は、実行中ワークロードのプラットフォームへの最適配置を再計算する。実行中ワークロードの最適配置に従って、マッピング用システム110は、現在のプラットフォームが計算された最適なプラットフォームではない場合に、実行中ワークロードのうちの1つまたは複数を、現在のプラットフォームから、当該ワークロードについて計算された最適なプラットフォームに移動または移行させる。
【0015】
マッピング用システム110は、コンピュータ装置上に存在してもよいし、サーバ上に存在してもよい。コンピュータ装置またはサーバの詳細は、
図4を参照して後述する。ワークロード120とプラットフォーム130とのマッピング用システム110は、クラウドコンピューティング環境で実装される。クラウドコンピューティング環境の詳細は、
図5および
図6を参照して後述する。
【0016】
<ワークロードとプラットフォームの、実行属性へのマッピング>
【0017】
マッピング用システム110は、複数のワークロードの定義と、当該複数のワークロードを実行する資格のある複数のプラットフォームの定義とを受信する。マッピング用システム110は、以下のように、一のワークロードと一のプラットフォームの各ペアを、当該プラットフォーム上で当該ワークロードを実行する際の属性(attributes)にマッピングするマッピング関数を用いて、特定のプラットフォーム上で特定のワークロードを実行する際の属性をモデリングする。
ここで、Costは、特定のプラットフォーム上で特定のワークロードを実行する際の推定コストである。Estimated Duration to Complete(EDC)は、当該特定のプラットフォーム上で実行される当該特定のワークロードの推定完了時間であり、プラットフォーム上でワークロードが実行開始する時点から測定され、実行開始までのワークロードの待機時間は含まれない。プラットフォームに関するResource Requirements(RR)は、当該特定のプラットフォーム上で実行される当該特定のワークロードの推定リソース要件であり、当該特定のプラットフォームによって課金(charge)されるメインリソースに関する。各プラットフォームでは、使用料(usage charge)の計算の元となるリソースが定義されている。CostはおよびEDCは、マッピング用システム110によって学習され、推定される。RRは、プラットフォームが提供するインタフェースに応じて、マッピング用システム110によって推定されるか、またはユーザ入力によって提供することができる。
【0018】
<プラットフォーム上でワークロードを実行する際の属性を含む行列WkPl>
【0019】
それぞれのワークロードとそれぞれのプラットフォームの各ペアと、それぞれのプラットフォーム上でそれぞれのワークロードを実行する際の属性とのマッピングは、行列(matrix)に格納することができる。例えば、各ワークロードは行列の行で表され、各プラットフォームは行列の列で表され、特定のワークロードを特定のプラットフォーム上で実行する際の属性は、行列のセルに格納される。この行列を、WkPlと表記する。行列WkPlの例を表1に示す。
【表1】
【0020】
行列WkPlのセルには、特定のプラットフォームPLj上で特定のワークロードWKiを実行する際の属性が格納されている。このセルを、WkPl[WKi,PLj]と表記する。属性Cost、EDC、RRのうち、特定のプラットフォームPLj上で特定のワークロードWKiを実行することに関連する一の属性を、Attribute(WkPl[WKi,PLj])と表記する(例えば、Cost(WkPl[WKi,PLj]))。
【0021】
<行列WkPlの更新>
【0022】
マッピング用システム110は、以下のトリガーイベントが発生した場合、行列WkPlを更新する。
【0023】
(1)新たなワークロードがシステム100に追加される。この場合、新たな行が行列WkPlに追加される。
【0024】
(2)ワークロードの1つ以上の要件が変更される。この場合、当該ワークロードに関連する行の各セルが変更される。
【0025】
(3)ワークロードが特定のプラットフォーム上で処理を完了する。この場合、プラットフォーム上のワークロードの実際の実行属性(running attributes)を、当該ワークロードおよびプラットフォームに関連するセル内で更新してもよい。プラットフォーム上のワークロードの実際の実行属性は、Cost、EDC、RRの各指標の推定メカニズム(estimation mechanism)にも追加される。同じプラットフォーム上で実行中の可能性のある他のワークロードの属性も更新してよい。
【0026】
(4)プラットフォーム上でのワークロードの処理が完了したことにより、当該ワークロードが行列WkPlから定期的に、または即時に削除される。この場合、削除対象のワークロードに関連する行が、行列WkPlから削除される。削除が定期的に行われる場合、削除基準(例えば、ワークロードの時間属性に基づく基準)に基づいて削除が適用される。
【0027】
(5)新たなプラットフォームが追加される。この場合、行列WkPlに新たな列が追加され、それぞれのワークロードの属性の推定値が格納される。
【0028】
(6)プラットフォームが課金するコストが変更される。この場合、当該プラットフォームに関連する行列の列に格納された情報が更新される。
【0029】
(7)プラットフォームで利用できるリソースの量もしくは種類またはその両方が変更される。この場合、当該プラットフォームに関連する行列の列に格納されている情報が更新される。
【0030】
(8)プラットフォームが削除される。この場合、削除されたプラットフォームに関連する列が削除される。
【0031】
上記のトリガーイベントのいずれかを発見するために、行列WkPlを保持するマッピング用システム110は、ワークロードを定期的にスキャンおよび監視してワークロードの現在の状態を特定すると共に、プラットフォームを定期的にスキャンおよび監視してプラットフォームの現在の状態を特定する。
【0032】
マッピング用システム110は、利用可能なプラットフォームを定義する列を含むが、行を含まない行列WkPlの構築を開始する。ワークロードが追加されると、マッピング用システム110は、行列に行を追加する。そして、マッピング用システム110はこの行の各セルに、利用可能なプラットフォーム上でのワークロードの属性の推定値を追加する。
【0033】
<Cost、EDC、RRの推定>
【0034】
ワークロードとプラットフォームの各ペアについて、Cost、EDC、RRの各指標を推定するために、システム110は、以前に記録された情報、すなわち、特定のプラットフォーム上で実行された同種の他のワークロードの実行属性に基づく推定値を使用する。一のワークロードが現在実行中であり、当該ワークロードについてこれらの指標の推定が行われている場合、システム110は、当該ワークロードの処理における現在の状態を考慮することも可能である。
【0035】
Cost、EDC、RRの各指標を推定する際、以下の要素が考慮される。
【0036】
(1)ワークロード種類(workload type):各ワークロードは、一のワークロード種類に関連付けることができる。各ワークロード種類は、実行特性(running characteristics)およびリソース要件の点で類似するワークロードをグループ化したものである。所与のワークロードと一の種類との関連付けは、当該所与のワークロードの属性の一部として、システム110に対するユーザ入力によって指定することができる。システム110が用いるCost、EDC、RRの推定メカニズムは、各ワークロードに対する種類属性(type attribute)の使用可能性に基づいており、所与のワークロードを同種の以前のワークロードに関連付けることができる。推定指標は、各ワークロード種類について計算される。ワークロード種類ごとに、プラットフォーム上でワークロードを実行する際の指標または属性に関する集約的な(aggregated)もしくは詳細なまたはその両方の情報が決定され、格納される。これにより、ワークロード種類に関連付けられたワークロードについての推定が容易になる。完了したワークロードの実際の実行属性を用いて、当該ワークロードが関連付けられたワークロード種類について格納されている集約的なもしくは詳細なまたはその両方の情報が更新される。
【0037】
(2)指標値の加法性(additivity):収集したCost、EDC、RRの各指標は、各ワークロードを独立して表し、加法性を有する必要がある。
【0038】
(3)PaaSクラウドの課金モデル:PaaSクラウドプラットフォームは通常、使用量および料金が計算される1つ以上のリソースを有する。例えば、メモリの使用量またはワークロードの処理数を用いて、使用量および料金を計算することができる。これらのリソースは通常、(ハードウェアではなく)ソフトウェアで定義される。コスト料金は通常、これらのリソースの消費量に比例しており、ユーザの時間単位あたりのリソース消費量に対して計算される。また、ユーザごとにリソース最大使用量に上限がある場合もある。PaaSクラウドプラットフォームは、複数のサービス種類を提供している場合がある。これらのサービス種類について、コスト料金の計算方法に応じて、使用コストを別々に計算してもよいし、まとめて計算してもよい。また、サービス種類は、ユーザごとのリソース最大使用量の上限と関連している場合もある。
【0039】
(4)実行中または完了したワークロードに関するリソース消費量およびコストの計算:一のプラットフォームから、特定のワークロードを実行するためのリソース消費量およびコストに関する情報の報告があった場合、システム110は、この報告されたリソース消費量およびコストに関する情報を用いて、当該ワークロードに対応するワークロード種類のリソース要件およびコスト情報を更新する(または、当該ワークロード種類について格納された集約的なもしくは詳細なまたはその両方の情報を更新する)。一のプラットフォームから、ユーザの時間単位ごとのリソース使用量に基づくコスト情報の報告があった場合、または、リソース消費量およびコストがワークロードごとに報告されなかった場合、特定のワークロードを実行するためのリソース消費量およびコストは、いくつかの方法で計算することができる。1 1つ目の方法は、特定のプラットフォーム上で特定のユーザのためにワークロードを独自に実行しながら、プラットフォームから報告されるリソース消費量およびコストの情報を収集する方法である。2 2つ目の方法は、例えばオペレーティングシステムの監視情報を用いて、特定のワークロードを実行した場合の他のワークロードに対するリソース消費割合を抽出し、この割合を適用して、ユーザが実行する複数のワークロードについてプラットフォームから報告されたリソース消費量およびコストのうち、特定のワークロードのリソース消費量およびコストを計算する方法である。3 ワークロードごとのリソース要件およびコストを得るための3つ目の方法は、自動推定ができない場合に、ユーザ入力を介してこの情報を受信するか、またはユーザ入力を用いる方法である。これらの方法で得られた、報告されたリソース消費量およびコストの情報を用いて、ワークロード種類について格納された集約的なもしくは詳細なまたはその両方の情報を更新する。
【0040】
(5)ワークロードの移行コスト(migration cost):このコストを、実行中のワークロードに対して追加することができる。これは、推定コスト、推定完了時間、および推定リソース要件に対する追加要素であり、移行を考慮していない推定値の上に追加される。この追加のコスト要素は、実行中のワークロードの現在の状態およびワークロード環境の移行コストに応じて、正または負のいずれかになる。移行コストが追加された場合、プラットフォームごとの推定値は、各ワークロードの移行なしの場合の推定値と比較して異なる可能性がある。移行コストは、1つの実行中のワークロードを、現在のプラットフォームから、マッピング用システム110が決定した最適なプラットフォームに移行するためのコストである。
【0041】
<全体属性>
【0042】
全体属性(overall attributes)は、OverallBudgetを含む。OverallBudgetは、ユーザ/組織単位(organizational unit)ごとに割り当てられる金銭的な全体予算であり、ユーザ/組織単位が実行するワークロードに用いられる。
【0043】
<ワークロード属性>
【0044】
ワークロード(WKi)は、以下の属性を有する。(1)OriginalBudget(WKi):これは、ワークロードWKiに割り当てられた金銭的な予算である。(2)RemainingBudget(WKi):これは、ワークロードWKiに割り当てられている現在の金銭的な残り予算(支出後)である。(3)RDC(WKi):これは、プラットフォーム上でワークロードWKiを完了するまでの要求完了時間であり、ワークロードの投入時刻(submission time)から指定される。RDC(WKi)は、ベストエフォート(ソフト)制約と見なされる。(4)SubmissionTime(WKi):これは、ワークロードWKiの投入時刻である。(5)Priority(WKi):これは、ワークロードWKiに割り当てられた優先度である。優先度は、他のワークロードの優先度に対する相対的なものである。(6)EligiblePlatforms(WKi):これは、行列WkPl内のプラットフォームインデックス(platform indexes)として指定されるプラットフォームのリストであり、リスト内のプラットフォームは、ワークロードWKiを実行する資格がある。特定のワークロードに関する適格なプラットフォームのリストは、例えばプラットフォームの種類やプラットフォームへのユーザアクセスに基づいて選択される、プラットフォームのサブセットとすることができる。
【0045】
<プラットフォーム属性>
【0046】
一のプラットフォーム(PLj)のプラットフォーム属性は、MaxResource(PLj)を含む。属性MaxResource(PLj)は、プラットフォームPLjによって課金されるメインリソースの消費についての、一のユーザに対する最大上限である。メインリソースは例えば、メモリサイズやワークロードの処理数とすることができる。
【0047】
<サービスとしての複数のプラットフォームに関するコストおよびサービスレベルを考慮したワークロードの配置>
【0048】
図2は、本発明の一実施形態による、複数のプラットフォーム上にワークロードを配置する動作ステップを示すフローチャートである。ステップ201にて、ワークロードとプラットフォームをマッピングするシステム(例えば、
図1に示すシステム110)が、行列を修正するトリガーイベントを検出する。行列は、ワークロードとプラットフォームをそれぞれペアにすると共に、プラットフォーム上でワークロードを実行する際の属性を含むものである。例えば、行列は、上述した行列WkPlである。行列を修正するトリガーイベントを検出するために、マッピング用システムは、ワークロードおよびプラットフォームを定期的にスキャンおよび監視して、ワークロードおよびプラットフォームの現在の状態を決定する。トリガーイベントは、以下のイベントの少なくとも1つである。(1)新たなワークロードがサービスとしての複数のプラットフォームを含むシステムに追加される、(2)それぞれのワークロードの1つ以上の要件(予算、要求完了期間、優先度、適格プラットフォーム)が変更される、(3)ワークロードが複数のプラットフォームの1つにおいて処理を完了する、(4)新たなプラットフォームがサービスとしての複数のプラットフォームを含むシステムに追加される、(5)複数のプラットフォームの1つのコストが変更される、(6)複数のプラットフォームの1つが利用可能なリソースの可用性、量、または種類が変更される、(7)複数のプラットフォームの1つについて、ユーザあたりの最大リソース利用率が変更される、(8)複数のプラットフォームの1つが、サービスとしての複数のプラットフォームを含むシステムから削除される、(9)全体予算が変更される。
【0049】
ステップ202にて、マッピング用システムは、トリガーイベントが検出されると、行列を再計算する。例えば、マトリクスWkPlが再計算される。そして、行列内では、プラットフォーム上でワークロードを実行する際の属性が更新される。
【0050】
ステップ203にて、マッピング用システムは、プラットフォーム上へのワークロードの最適配置を計算する。マッピング用システムは、最適化問題を解くアルゴリズムを使用する。最適化問題およびそれを解くアルゴリズムについては、
図3を参照して詳細に後述する。
【0051】
ステップ204にて、マッピング用システムは、それぞれのワークロードが、それぞれのプラットフォーム上で未実行であるか否かを判定する。例えば、それぞれのワークロードが未実行である場合、当該ワークロードは待機中ワークロードであり(例えば、
図1に示すように、待機中ワークロード1(121-1)、待機中ワークロード2(121-2)、・・・、待機中ワークロードM(121-M))、あるプラットフォームに(マッピング用システムによって)マッピングされるのを待機している状態である。それぞれのワークロードが実行中である場合、当該ワークロードは実行中ワークロードである(例えば、
図1に示すように、実行中ワークロード1(122-1)、実行中ワークロード2(122-2)、・・・、実行中ワークロードN(122-N))。
【0052】
それぞれのワークロードが未実行であると判定した場合(ステップ204にてYES)、ステップ205にて、マッピング用システムは、それぞれのワークロードを、当該ワークロードについての計算された最適なプラットフォームに配置する。最適なプラットフォームは、ステップ203で計算される。
【0053】
それぞれのワークロードが実行中であると判定した場合(ステップ204にてNO)、ステップ206にて、マッピング用システムは、それぞれのワークロードが(ステップ203で計算された)最適なプラットフォーム上で現在実行されているか否かを判定する。言い換えれば、マッピング用システムは、それぞれのワークロードが実行されている現在のプラットフォームが、当該ワークロードについての計算された最適なプラットフォームであるか否かを判定する。
【0054】
それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていないと判定した場合(ステップ206にてNO)、すなわち、現在のプラットフォームが、それぞれのワークロードについての計算された最適なプラットフォームではない場合、ステップ207にて、マッピング用システムは、当該ワークロードを現在のプラットフォームから、計算された最適なプラットフォームに移動または移行する。
【0055】
それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていると判定した場合(ステップ206にてYES)、すなわち、現在のプラットフォームが、それぞれのワークロードについての計算された最適なプラットフォームである場合、マッピング用システムは、当該ワークロードを現在のプラットフォームから別のプラットフォームに移動または移行することなく、現在のプラットフォーム(当該ワークロードの最適なプラットフォーム)上に保持する。
【0056】
それぞれのワークロードが、計算された最適なプラットフォーム上で現在実行されていると判定した場合(ステップ206にてYES)、ステップ205の後、またはステップ207の後に、マッピング用システムは、ステップ208を実行する。ステップ208にて、マッピング用システムは、すべてのワークロードが(ステップ203で算出された)最適配置に従って配置されているか否かを判定する。
【0057】
すべてのワークロードが最適配置に従って配置されていると判定した場合(ステップ208にてYES)、マッピング用システムは、サービスとしての複数のプラットフォームに関するコストおよびサービスレベルを考慮した、または最適配置に従った、ワークロードの配置を完了する。ワークロードのすべてが最適配置に従って配置されてはいないと判定した場合(ステップ208にてNO)、マッピング用システムは、ワークロードのすべてが最適配置に従って配置されるまで、ステップ204~208を繰り返す。
【0058】
<最適化問題の定式化>
【0059】
ここで、プラットフォームインデックスP
iは、ワークロードWK
iに最適なプラットフォームを特定し、複数のプラットフォームインデックス{P
i}は、ワークロードのそれぞれに最適なプラットフォームを特定する。WKNはワークロードの数、PLNはプラットフォームの数を表す。目的関数には以下の制約(constraints)がある。
【0060】
第1の制約は以下の通りである。
これは、ベストエフォート(またはソフト)制約である。この制約は、各ワークロードについて、選択されたプラットフォーム上での推定完了時間(EDC)が、要求完了時間(RDC)を超えないことを必要とするものである。
【0061】
第2の制約は以下の通りである。
これは、必須(またはハード)制約である。第2の制約は、各ワークロードについて、選択されたプラットフォーム上で実行するためのコスト(Cost)が、残り予算(RemainingBudget)を超えないことを必要とするものである。
【0062】
第3の制約は以下の通りである。
これは、必須(またはハード)制約である。第3の制約は、すべてのワークロードを各々の選択されたプラットフォーム上で実行するための総コストが、全体予算(OverallBudget)を超えないことを必要とするものである。
【0063】
第4の制約は以下の通りである。
これは、必須(またはハード)制約である。第4の制約は、一のワークロードについて選択されたプラットフォームが、当該ワークロードを実行する資格のある複数のプラットフォームの1つであることを必要とするものである。
【0064】
第5の制約は以下の通りである。
これは、必須(またはハード)制約である。第5の制約は、一のプラットフォーム上で実行されるワークロードによって当該プラットフォームから消費されるリソースが、ユーザに対する当該プラットフォームのリソース消費上限を超えないこと、または、いずれかのプラットフォームのリソース容量またはリソース消費上限を超えないことを必要とするものである。
【0065】
<最適化問題のアルゴリズム>
【0066】
最適化問題は、P1、P2、...、PWKN(プラットフォームインデックス)を変数とする、目的コスト関数(objective cost function)および制約関数(constraint functions)を含む。目的関数と制約関数のそれぞれが変数P1、P2、...、PWKNに依存する数学的な方法は、定式化(formulation)によって定義できないため(ただし、これは上述の推定方法に基づいて行列WkPlに格納された値に依存する)、数理計画ソルバー(mathematical programming solvers)はこの最適化問題には適用できない。ここで定義される最適化問題に対しては、局所的に最適な選択を用いて、段階的に大域的最適解(global optimum)へと進んでいく貪欲アルゴリズム(greedy algorithm)のパラダイムが適用可能である。
【0067】
ワークロードとプラットフォームをマッピングするためのシステム(例えば、
図1に示すシステム110)はまず、各ワークロードを、当該ワークロードに関して生じるコストが最も低いプラットフォーム上に配置する。次に、推定完了時間(EDC)が要求完了時間(RDC)を超えるワークロードについて、システムはコストを段階的にインクリメントする。各段階において、マッピング用システムは、アップグレードコスト(upgrade cost)が最も低いワークロードを選択する。ここで、ワークロードのアップグレードは、ワークロードの推定完了時間(EDC)が要求完了時間(RDC)以下になることを可能にするものでなければならない。その後、マッピング用システムは、選択されたワークロードをアップグレードする。各段階において、必須制約およびベストエフォート制約がチェックされる。
【0068】
最適化問題を解く際には、最新の行列WkPlを入力とし、最適化問題を解いた結果は次の通りである。すなわち、各ワークロードWKiに関して、行列WkPlにおける関連プラットフォームインデックスPiが算出される。関連プラットフォームインデックスPiは、ワークロードWKiの実行に最適なプラットフォームを特定する。
【0069】
図3Aおよび
図3Bは、本発明の一実施形態による、複数のプラットフォーム上へのワークロード配置を最適化する動作ステップを示すフローチャートである。
【0070】
図3(A)を参照すると、ステップ301にて、ワークロードとプラットフォームをマッピングするためのシステム(例えば、
図1に示すシステム110)が、それぞれのワークロードについて、それぞれのワークロードを実行するためのコストが最も低いプラットフォームをそれぞれ特定するプラットフォームインデックスを設定する。各ワークロードWK
iについて、マッピング用システムは、行列WkPl内に関連プラットフォームインデックスP
iの値を設定する。かかるプラットフォームインデックスP
iの値によって特定されるプラットフォームは、ワークロードWK
iを実行するために生じるコストが最も低い。プラットフォームインデックスP
iは、以下を満たす。
【0071】
図3(A)を参照すると、ステップ302にて、マッピング用システムは、予算、プラットフォームの適格性、およびプラットフォームのリソース容量に関する必須制約が満たされているか否かを判定する。マッピング用システムは、必須(またはハード)制約が満たされているか否かをチェックする。必須(またはハード)制約とは、上述した第2~第5の制約である。
【0072】
必須制約が満たされていないと判定した場合(ステップ302にてNO)、マッピング用システムは、
図3(B)に示すステップ310を実行する。
図3(B)を参照すると、ステップ310にて、マッピング用システムは、それぞれのワークロードの以前の配置(previous placements)が必須制約を満たすか否かを判定する。以前の配置とは、以前の反復(previous iteration)における最適化問題の解である。
【0073】
引き続き
図3(B)を参照すると、それぞれのワークロードの以前の配置が必須制約を満たすと判定した場合(ステップ310にてYES)、ステップ311にて、マッピング用システムは、それぞれのワークロードの最適配置として以前の配置を出力する。マッピング用システムは、アルゴリズムの結果として以前の解を使用する。そして、システムはアルゴリズムのステップを完了する。
【0074】
引き続き
図3(B)を参照すると、それぞれのワークロードの以前の配置が必須制約を満たさないと判定した場合(ステップ310にてNO)、ステップ312にて、マッピング用システムは、それぞれのワークロードに関する最適配置を出力しない。最適化問題の実現可能な解がないということであるが、その理由は以下の通りである。アルゴリズムは、最もコストの低いマッピングから開始する。このマッピングにおいて予算の制約に違反する場合、所与の制約の下では実現可能なソリューションが存在しないことになる。かかるシナリオは、アルゴリズムに対する無効なユーザ入力であると分類できる。このようにして、システムはアルゴリズムのステップを完了する。
【0075】
ここで
図3(A)に戻ると、必須制約を満たしていると判定した場合(ステップ302にてYES)、ステップ303にて、マッピング用システムは、それぞれのワークロードの要求完了時間に関するベストエフォート制約を確認し、ベストエフォート制約を満たしていないワークロード群(set of workloads)を決定する。ベストエフォート制約とは、上述した第1の制約である。ワークロード群の各ワークロードは、行列WkPl内のインデックスを用いて特定される。ワークロード群を、WKSと表記する。
【0076】
図3(A)を参照すると、ステップ304にて、マッピング用システムは、ワークロード群(WKS)が空(empty)であるか否かを判定する。ワークロード群(WKS)が空であることは、要求完了時間(RDC)に関するベストエフォート制約が満たされていることを示す。ワークロード群(WKS)が空であると判定した場合(ステップ304にてYES)、マッピング用システムは、
図3(B)に示すステップ313を実行する。
図3(B)を参照すると、ステップ313にて、マッピング用システムは、それぞれのワークロードの最適配置として、現在の配置を出力する。現在の配置は、現在の反復(current iteration)における最適化問題の解である。システムは、アルゴリズムの結果として、現在の解を使用する。そして、システムはアルゴリズムのステップを完了する。
【0077】
図3(A)に戻り、ワークロード群(WKS)が空ではないと判定した場合(ステップ304にてNO)、ステップ305にて、マッピング用システムは、ワークロード群(WKS)について、生じるコストが最も低くかつベストエフォート制約を満たすことが可能な候補プラットフォーム群(set of candidate platforms)を決定する。ワークロード群内の各ワークロード(WKS内のWK
i)について、マッピング用システムは最低コストのプラットフォームを決定する。このプラットフォームにより、ベストエフォート制約が満たされる。候補プラットフォーム群{PC
i}は以下の通りである。
【0078】
図3(A)を参照すると、ステップ306にて、マッピング用システムは、ワークロード群(WKS)について、候補プラットフォームを特定するアップグレード後プラットフォームインデックス(upgraded platform indexes)を決定し、アップグレード後コスト(upgraded costs)を計算する。ワークロード群内の各ワークロードWK
iについて、アップグレード後プラットフォームインデックスPU
iを以下のように計算する。
ワークロード群WKSに含まれるワークロードWK
iに関するアップグレード後コストは、以下のように示すことができる。
【0079】
ワークロード群WKSに含まれる一のワークロードについて、候補プラットフォーム群の中にベストエフォート制約を満たすことが可能なプラットフォームが存在せず、候補プラットフォーム群のいずれのプラットフォームも利用できない場合、システムは、当該ワークロードのアップグレードは不可能であると判断し、当該ワークロードのアップグレード後コストを無効または無限に設定する(例えば、UpgradeCost(WKi)=∞)。このようにして、システムは、次回のアルゴリズムの反復において、当該ワークロードがワークロード群WKSに追加されることを回避する。当該ワークロードのアップグレードは、最適化問題を解決するための次回の反復において考慮されない。
【0080】
図3(A)を参照すると、ステップ307にて、マッピング用システムは、ワークロード群(WKS)が、アップグレード後コストが有効なワークロードを少なくとも1つ含んでいるか否かを判定する。ワークロード群が、アップグレード後コストが有効なワークロードを1つも含んでいないと判定した場合(ステップ307にてNO)、システムは、
図3(B)に示すステップ313を実行する。
図3(B)を参照すると、ステップ313にて、システムは、現在の配置をそれぞれのワークロードの最適配置として設定する。現在の配置は、現在の反復における最適化問題の解である。システムは、アルゴリズムの結果として、現在の解を使用する。この場合、最適化問題の解をアップグレードする方法はこれ以上存在しない。そして、システムはアルゴリズムのステップを完了する。
【0081】
図3(A)に戻り、ワークロード群が、アップグレード後コストが有効なワークロードを少なくとも1つ含んでいると判定した場合(ステップ307にてYES)、ステップ308にて、マッピング用システムは、アップグレード後コストが有効な1つ以上のワークロードから、アップグレード後コストが最も低いワークロードを選択する。ワークロード群(WKS)から、アップグレード後コストが最も低いワークロードが選択される。アップグレード後コストが最も低いワークロードを、WK
tと表記する。WK
tは、以下の式を満たす。
WK
tは、最適化問題を解く今回の反復で発見された最も費用対効果の高いワークロードである。
【0082】
図3(A)を参照すると、ステップ309にて、マッピング用システムは、アップグレード後コストが最も低いワークロードに対してアップグレード後プラットフォームインデックスを設定することにより、当該ワークロードをアップグレードする。システムは、P
t=PU
tを設定することにより、WK
tをアップグレードする。ここで、PU
tはアップグレード後プラットフォームインデックスであり、P
tはWK
tについて選択された最新のプラットフォームインデックスである。
【0083】
ステップ309の後、マッピング用システムは、アルゴリズムの次回の反復としてステップ302を繰り返し、別の最も費用対効果の高いワークロードを発見する。マッピング用システムは、それぞれのプラットフォーム上へのそれぞれのワークロードの最適配置が見つかるまで、最適化問題を解く次回の反復を実行する。
【0084】
一のワークロードのアップグレードは、最適化問題のアルゴリズムにおいて一度だけ行うことができ、アップグレード後のワークロードは、アルゴリズムの次回の反復において再検討されない。したがって、アルゴリズムの反復回数は、ワークロードの数に限られる。各反復において、ワークロードの線形スキャン(linear scan)を行うことができる。次に、最適化問題のアルゴリズムは、アップグレードするワークロードを選択し、次回の反復に進む。ワークロードごとのすべての計算は一度で済み、すべてのワークロードを考慮した制約条件のみが、反復ごとに再計算される必要がある。
【0085】
最適化問題のアルゴリズムは、ワークロードごとのすべての独立した計算を、関連するすべてのワークロードについて同時に実行することで、並行して行うことができる。アルゴリズムをさらに最適化する方法として、ワークロードおよびプラットフォームの両方について、種々の制約に関するすべての基本データおよびカウンタを維持し、変更が行われた際にこのデータおよびカウンタをインクリメンタルに更新することができる。これにより、制約の計算をより速く行うことができる。
【0086】
図4は、本発明の一実施形態による、コンピュータ装置またはサーバ400のコンポーネントを示す図である。なお、
図4は、1つの実施形態の例示に過ぎず、異なる実施形態を実施可能な環境に対するいかなる制限も意味しない。
【0087】
図4を参照すると、コンピュータ装置またはサーバ400は、1つ以上のプロセッサ420、メモリ410、および1つ以上の有形記憶装置430を含む。
図4では、コンピュータ装置またはサーバ400の上述のコンポーネント間の通信を、符号490で示す。メモリ410は、1つ以上のROM411、1つ以上のRAM413、および1つ以上のキャッシュ415を含む。1つ以上のオペレーティングシステム431および1つ以上のコンピュータプログラム433は、コンピュータ可読有形記憶装置430上に存在する。
【0088】
コンピュータ装置またはサーバ400はさらに、1つ以上のI/Oインタフェース450を含む。I/Oインタフェース450は、コンピュータ装置またはサーバ400に接続可能な1つ以上の外部装置460とのデータの入出力を可能にする。コンピュータ装置またはサーバ400はさらに、コンピュータ装置またはサーバ400とコンピュータネットワークとの間の通信のための1つ以上のネットワークインタフェース440を含む。
【0089】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0090】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0091】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロードすることができる。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
【0092】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、およびCプログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0093】
本発明の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行することができる。
【0094】
上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を形成する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行する命令を含む製品を構成する。
【0095】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行することにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0096】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行することができる。
【0097】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
【0098】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0099】
特性は以下の通りである。
【0100】
オンデマンド・セルフサービス:クラウドのコンシューマは、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0101】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0102】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数のコンシューマに提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般にコンシューマは、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただしコンシューマは、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0103】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。コンシューマにとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0104】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【0105】
サービスモデルは以下の通りである。
【0106】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0107】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、コンシューマが作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0108】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアをコンシューマが展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。コンシューマは、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0109】
展開モデルは以下の通りである。
【0110】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織またはサードパーティーによって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0111】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0112】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0113】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0114】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0115】
図5に、例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウドコンシューマが使用するローカルコンピュータ装置(モバイル装置54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウドコンシューマはこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、コンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0116】
次に、クラウドコンピューティング環境50(
図5)によって提供される機能的抽象化レイヤのセットを
図6に示す。なお、
図6に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0117】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0118】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
【0119】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含むことができる。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0120】
ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、機能96が含まれる。機能96は、サービスとしての複数のプラットフォーム上にワークロードを配置するための機能である。
【国際調査報告】