IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7597480ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム
<>
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図1A
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図1B
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図2
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図3
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図4
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図5
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図6
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図7
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図8
  • 特許-ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】ワークロードの操作を管理する方法、コンピューティング・デバイス、プログラム
(51)【国際特許分類】
   G06F 8/60 20180101AFI20241203BHJP
【FI】
G06F8/60
【請求項の数】 16
(21)【出願番号】P 2023507364
(86)(22)【出願日】2021-08-12
(65)【公表番号】
(43)【公表日】2023-08-30
(86)【国際出願番号】 CN2021112280
(87)【国際公開番号】W WO2022037472
(87)【国際公開日】2022-02-24
【審査請求日】2024-01-23
(31)【優先権主張番号】16/994,586
(32)【優先日】2020-08-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ドゥムバ、ブラウリオ ガブリエル
(72)【発明者】
【氏名】ハフェーズ、ユーバイド、ウラー
(72)【発明者】
【氏名】アデバヨ、アブデルハミド
(72)【発明者】
【氏名】ドゥアン、ジュン
(72)【発明者】
【氏名】ケーブ、アレクセイ
(72)【発明者】
【氏名】ズン、サイ
【審査官】松平 英
(56)【参考文献】
【文献】特開2014-182576(JP,A)
【文献】米国特許第10447806(US,B1)
【文献】国際公開第2019/116225(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
11/07
11/28-11/36
18/00-18/40
G06N 3/00-99/00
G06Q10/00-10/10
30/00-30/08
50/00-50/20
50/26-99/00
G16Z99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、プラットフォームにおけるワークロードの1つまたは複数の操作を管理する方法であって、
前記プラットフォーム上の前記ワークロードを管理するためのリソース・タイプを選択することと、
前記選択されたリソース・タイプの管理すべき1つまたは複数の操作を特定することと、
前記特定された1つまたは複数の操作のワークロード次元を決定することと、
前記ワークロードの前記選択されたリソース・タイプの前記特定された操作の所与のセットを管理するための最小数のプロセスを決定することと、
前記ワークロードを管理するための前記決定された最小数のプロセスをデプロイすることと、を含む、方法
【請求項2】
前記ワークロード次元を決定することは、
前記特定された操作の各々を実行するための調整時間を決定することと、
前記特定された操作の各々について2つの連続した調整間の調整期間を決定することと、を含む、請求項1に記載の方法
【請求項3】
前記リソース・タイプを選択することは、前記ワークロードの前記管理のために、ベア・メタル・リソース、コンテナ・リソース、または仮想マシン・リソースのうちの1つまたは複数を選択することを含む、請求項1に記載の方法
【請求項4】
前記1つまたは複数の操作の特定は、パッチング操作、イベント管理操作、またはコンプライアンス操作のうちの少なくとも1つを特定することを含む、請求項1に記載の方法
【請求項5】
前記特定された操作の各々の複数回の実行に対する調整実行時間を決定するために機械学習を使用することを更に含む、請求項1に記載の方法
【請求項6】
前記特定された操作の各々の調整期間を決定するために機械学習を使用することを更に含む、請求項5に記載の方法
【請求項7】
前記ワークロードの前記管理を実行するために前記決定された最小数のプロセスをデプロイすることは、前記特定された操作をオペレータにプログラムでマッピングすることを含む、請求項1に記載の方法
【請求項8】
前記ワークロードの管理を実行するために前記決定された最小数のプロセスをデプロイすることは、前記特定された操作をスケーラブルなKubernetesオペレータにプログラムでマッピングすることを含む、請求項1に記載の方法
【請求項9】
プラットフォームにおけるワークロードの1つまたは複数の操作を管理するためのコンピューティング・デバイスであって、
プロセッサと、
前記プロセッサに結合されているメモリであって、前記プロセッサに、
複数のリソースから前記プラットフォーム上のワークロードを管理するためのリソース・タイプを選択することと、
前記選択されたリソース・タイプの管理すべき1つまたは複数の操作を特定することと、
前記特定された操作の各々を実行するための調整時間を決定することと、
前記特定された操作の各々について2つの連続した調整間の調整期間を決定することと、
前記ワークロードの前記選択されたリソース・タイプの前記特定された操作の所与のセットを管理するための最小数のプロセスを決定することと、
前記ワークロードを管理するための前記決定された最小数のプロセスをデプロイすることと、を含む動作を実行させる命令を格納している、前記メモリと、を備える、コンピューティング・デバイス。
【請求項10】
前記命令は前記プロセッサに、前記特定された操作の各々の複数回の実行に対する調整実行時間を決定するために機械学習を実行することを含む、追加の動作を実行させる、請求項9に記載のコンピューティング・デバイス。
【請求項11】
前記命令は前記プロセッサに、前記特定された操作の各々の調整期間を決定するために機械学習を実行することを含む、追加の動作を実行させる、請求項9に記載のコンピューティング・デバイス。
【請求項12】
前記複数のリソース・タイプは、ベア・メタル、コンテナ、または仮想マシンを含み、
前記プロセッサは選択された前記複数のリソース・タイプの各々に対してワークロード管理を実行するように構成されている、請求項9に記載のコンピューティング・デバイス。
【請求項13】
前記ワークロードの前記管理を実行するために前記決定された最小数のプロセスをデプロイすることは、前記特定された操作をスケーラブルなKubernetesオペレータにプログラムでマッピングすることを含む、請求項9に記載のコンピューティング・デバイス。
【請求項14】
前記特定された操作は、コンプライアンス操作、パッチング操作、イベント管理操作、またはデプロイ操作のうちの1つまたは複数を含む、請求項9に記載のコンピューティング・デバイス。
【請求項15】
請求項1~8の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム
【請求項16】
請求項15に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記憶した、ストレージ媒体
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般にコンピュータ・リソースのデプロイおよび管理に関し、より詳細にはハイブリッド・クラウド環境におけるワークロード管理に関する。
【背景技術】
【0002】
ハイブリッド・クラウド環境にまたがるインフラおよびプラットフォームを利用するコンピュータ・リソースの支持が高まっている。例えば、仮想マシンの使用、ならびにソフトウェア・コードおよびその全ての従属物をパッケージ化またはカプセル化したアプリケーション・コンテナの使用が、発展および増加し続けている。セキュリティ、ライフサイクル管理、およびオペレーション上のニーズの領域では、ハイブリッド・クラウドにおけるリソースの容易なデプロイおよび管理の提供にとって、課題が引き続き存在している。
【0003】
Kubernetesなどのプラットフォームでは、コンポーネントおよびツールの使用によって、パブリックおよびプライベートのクラウドにおけるアプリケーションの実行を容易にすることができる。ハイブリッド・クラウドなどの複合的なインフラ/プラットフォームの複雑さが高まるなか、過剰な時間および資本を消費することなく、そのようなコンピュータ・リソースの機能要件および非機能要件の両方の満足を保証することが必要となっている。これに応じて、コンピュータ・リソースのモニタリングを自動化しそのようなリソースのインストール、更新、および管理を容易にするためのオペレータの使用の支持が高まっているが、その理由はこのアプローチによって、クラウド・サービスにおける基礎となるプラットフォームについての懸念が軽減/排除されるからである。
【0004】
しかしながら、オペレータ(例えばKubernetesオペレータ)の使用によって(複数のリソースのうちの)あるリソースの現在の状態を観察し、そのリソースの所望の状態と実際の状態の間の乖離を修正できるものの、モニタできるリソースの数には限度がある。例えば、各オペレータを管理するべきであるので、ワークロードにおける個別の各リソースごとにオペレータを実装することは、メンテナンスのコストを増大させる。また、ワークロードにおける個別のリソースごとにオペレータを実装することによって、オペレータのアイドル時間が増加する。オペレータによって複数のリソースを管理することができるが、アプリケーション状態調整ジョブの実行の性質がシーケンシャルであることに起因して、各オペレータには、限られた数のリソースをモニタし、リソース要件を満足することしかできない。例えば、ハイブリッド・クラウド環境において、ハイブリッド・ワークロードはオペレータ・アプリケーションにとって能力およびコストの面で課題となる。したがって、特にユーザがコンテナ環境への操作のマイグレーションを進めている現在、ワークロード管理を強化する必要性が存在している。
【発明の概要】
【0005】
一実施形態によれば、ハイブリッド・クラウド環境におけるワークロードの1つまたは複数の操作を管理するためのコンピュータ実装方法は、複数のリソースからプラットフォーム上のワークロードを管理するためのリソース・タイプを選択することを含む。プラットフォーム上で1つまたは複数の管理すべき操作が特定される。管理すべき操作の各々について調整実行時間が決定され、操作ごとに調整期間が決定される。リソースに対する操作の所与のセットの管理のための最小数のプロセスが決定され、ワークロードを管理するためのプロセスがデプロイされる。異質のリソース(例えば異なるタイプのワークロード)の管理を単一のコンピュータ実装方法によって提供することができ、このことによりコンピュータ効率性が向上し、ワークロード管理機能が強化される。
【0006】
一実施形態では、リソース・タイプを選択することは、ワークロードを管理するために、ベア・メタル・リソース、コンテナ・リソース、または仮想マシン・リソースのうちの1つを選択することを含む。ハイブリッド・クラウド環境は様々なタイプのリソースを有することになり、コンテナ操作に向けたマイグレーションの要望が存在するので、様々なタイプのリソースを管理できるコンピュータ実装方法は機能性の改善をもたらす。
【0007】
一実施形態では、1つまたは複数の操作を特定することは、パッチング操作、イベント管理操作、またはコンプライアンス操作のうちの少なくとも1つを特定することを含む。そのような様々な操作を単一のコンピュータ実装方法によって全て管理することができる。
【0008】
一実施形態では、コンピュータ実装方法は、特定された操作の各々の複数回の実行に対する調整実行時間を決定するために機械学習を使用することを含む。
【0009】
一実施形態では、コンピュータ実装方法は、特定された操作の各々の調整期間および調整実行時間を決定するために、機械学習を使用することを含む。
【0010】
一実施形態では、ワークロード管理を実行するための決定された最小数のプロセスをデプロイすることは、操作をオペレータにプログラムでマッピングすることを含み得る。
【0011】
一実施形態では、ハイブリッド・クラウド環境におけるワークロードの1つまたは複数の操作を管理するためのコンピューティング・デバイスは、プロセッサとプロセッサに結合されているメモリとを含む。メモリは、クラウド・ベースのプラットフォーム上のワークロード管理のために複数のリソースからあるリソース・タイプを選択することを含む動作を、プロセッサに実行させる命令を格納する。選択された管理すべきリソース・タイプの1つまたは複数の操作が特定される。特定された操作の各々の実行について調整実行時間が決定される。特定された操作の各々について2つの連続した調整間の調整期間が決定される。選択されたリソース・タイプに対する特定された操作の所与のセットのワークロード管理のための最小数のプロセスが計算され、決定された最小数のプロセスがワークロード管理を実行するためにデプロイされる。
【0012】
一実施形態では、機械可読媒体は、実行されるとコンピュータ・デバイスにハイブリッド・クラウド環境におけるワークロードの1つまたは複数の操作を管理するための方法を実行させるコンピュータ可読命令を有するコンピュータ可読プログラム・コードを有して構成されている。
【0013】
これらのおよび他の特徴は、添付の図面と関連させて読まれることになる、その例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【0014】
図面は例示的な実施形態についてのものである。それらは全ての実施形態を説明しているわけではない。他の実施形態を追加でまたは代替として使用してもよい。明白または不要であり得る詳細は、スペースを節約するためにまたはより効果的に図示するために省略されている場合がある。いくつかの実施形態は、追加の構成要素もしくはステップを有して、または図示されている全ての構成要素もしくはステップを有さずに、あるいはその両方で、実施され得る。異なる図面に同じ数字が現れる場合、それは同じまたは同様の構成要素またはステップを指している。
【図面の簡単な説明】
【0015】
図1A】例示的な実施形態に従う、ハイブリッド・ワークロードのアーキテクチャの概要を提供するダイアグラムである。
図1B】例示的な実施形態に従う、図1Aに示すハイブリッド・ワークロード・リソース・タイプに関して使用されるリソースの構成の更なる詳細を示す図である。
図2】例示的な実施形態に従う、オペレータを使用したリソースの管理の操作を示す図である。
図3】例示的な実施形態に従う、ハイブリッド・クラウド環境におけるワークロードを管理するための設計およびフレームワークを示す図である。
図4】例示的な実施形態に従う、調整期間および実行時間の計算を示す図である。
図5】例示的な実施形態に従う、整数線形計画法を使用する例を示す図である。
図6】例示的な実施形態に従う、ハイブリッド・クラウド環境におけるワークロードの1つまたは複数の操作を管理する方法のフローチャートである。
図7】例示的な実施形態に従う、様々なネットワーク化構成要素と通信し得るコンピュータ・ハードウェア・プラットフォームの機能ブロック・ダイアグラムの図である。
図8】クラウド・コンピューティングを利用する例示的なクラウド・コンピューティング環境を描いた図である。
図9】クラウド・コンピューティング環境が提供する機能抽象化層のセットを描いた図である。
【発明を実施するための形態】
【0016】
概説
以下の詳細な説明には、関連する教示の理解を提供するために多数の具体的な詳細が例として記載されている。ただし、本教示はそれらの詳細がなくとも実施されることが理解されるべきである。他の例では、本教示の態様を不必要に曖昧にすることを避けるために、よく知られている方法、手順、構成要素、または回路、あるいはそれらの組合せについては、詳細を伴わずに比較的高いレベルで記載されている。
【0017】
いくつかの例示的な実施形態では、Kubernetesオペレータが使用される。ただし、本開示はKubernetesオペレータの使用に限定されないことを理解されたい。Kubernetesオペレータは、例えばクォーラム機構およびデータベースを使用する分散型システムなどの複雑なワークロードを管理するためにKubernetesプラットフォームを強化する、アプリケーション・デプロイの方法である。Kubernetesオペレータは、アプリケーションがどのように実行され互いに相互作用するかをエンティティが定義できるように、アプリケーション・コンテナの自動化されたデプロイ、スケーリング、および操作を容易にする。スケーラブルなKubernetesシステムは、例えば、コンテンツの拡張(例えばスケーリング)、および、任意のアイテムをその他の内容に影響を与えずに除去することを可能にするアイテム間の分離を提供し得る。ワークロード管理を実行するための決定された最小数のプロセスは、特定された操作をスケーラブルなKubernetesオペレータにプログラムでマッピングすることを含む。
【0018】
コンピュータ実装システムおよび方法は、コンピュータ操作の効率性の改善をもたらす。例えば、本明細書の教示によれば、ワークロードの管理の改善には、単一の管理ツールがハイブリッド・クラウド環境におけるリソースの異質のグループ(例えば、ベア・ボーン、コンテナ、仮想マシン)を最小数のオペレータ(Kubernetesオペレータを含むがこれに限定されない)で管理することが含まれ、この結果、処理能力の量の減少、およびコンピュータ・メモリの使用の低減がもたらされる。
【0019】
例示のアーキテクチャ
図1Aは、例示的な実施形態に従う、ハイブリッド・ワークロードのアーキテクチャの概要を提供するダイアグラム100Aである。ハイブリッド・ワークロードは複数の次元にまたがることができ、例えば、マルチ・クラウド/マルチOS、1つもしくは複数のタイプのクラウド・デプロイ・モデル(従来型、プライベート、パブリック・クラウド)、またはあるタイプのデプロイ(ベア・メタル、vm、コンテナ、外部サービス)、等、あるいはそれらの組合せを含み得る。ハイブリッド・クラウドは、オン・プレミスのインフラ/プラットフォーム(例えば、プライベート・クラウド)をパブリック・クラウドと組み合わせることを理解されたい。いくつかの実施形態では、Kubernetesオペレータをプライベート・インフラまたはパブリック・クラウド内にデプロイすることが検討されているが、本開示はそのようなデプロイに限定されず、またKubernetesオペレータにも限定されない。
【0020】
例えば図1Aには、従来の情報技術(IT)リソース110とプライベート・リソース120とパブリック・リソース130とを含む、ハイブリッド・ワークロード・リソース・タイプ101が示されている。キー102は、ハイブリッド・ワークロード・リソース・タイプに示されている構成で使用されるシェーディングを示しており、そこにはコンテナ103、仮想マシン(VM)104、および物理マシン(PM)105が含まれ得る。図1Aに示す構成は例示の目的で提供されており、本開示は本明細書に図示され記載されている例示された実施形態に限定されないことを理解されたい。
【0021】
図1Aでキー102によって特定されているシェーディングを参照すると、従来のIT110リソースにおけるハイブリッド・ワークロード・リソース・タイプは、仮想マシン(VM)リソースとして構成されている、アプリケーション111、アプリケーション・サーバ112、およびデータベース113を含み得る。更に、示されている従来のITリソース110はまた、コンテナ・リソースとして構成されているアプリケーション114、アプリケーション・サーバ115、およびデータベース116も含む。図1Aにおける点線は、2つ以上のリソースからのアイテムを含む、アプリケーション、アプリケーション・サーバ、およびデータベースの特定のグループ化を示しており、構成1、構成2、および構成3としてラベル付けされている。例えば、構成1は、プライベート・リソース120からのアプリケーション121およびアプリケーション・サーバ122と、従来のITソース110からのデータベース113と、を含む。構成2は、パブリック・リソース130からのアプリケーション134およびアプリケーション・サーバ135と、プライベート・リソース120からのデータベース123と、を含む。構成3は、パブリック・リソース130からのアプリケーション134およびアプリケーション・サーバ135と、プライベート・リソース120からのデータベース126と、を含む。
【0022】
示されているプライベート・リソース120は、例えば、VMリソースとして構成されているアプリケーション121、アプリケーション・サーバ122、およびデータベース(DB)123を含む。更に、アプリケーション124およびアプリケーション・サーバ125が、データベース126と共に示されている。ロック127、128によってシンボル化されているように、アプリケーション121、124、データベース123、126、およびアプリケーション・サーバ122、125へのアクセスは制限されている。
【0023】
パブリック・リソース130は例えば、VM用に構成されているアプリケーション131、アプリケーション・サーバ132、およびデータベース133を含み、アプリケーション134、アプリケーション・サーバ135、およびデータベース136は、コンテナ・リソース用に構成されている。
【0024】
図1Bは、図1Aに示すハイブリッド・ワークロード・リソース・タイプ101に関して使用されるリソースの異なる構成の、更なる詳細を示す。図1Bに示す構成は、図1Aにおいて点線で特定されている構成1、2、および3に対応している。図1Aのキー102は、図1Bの説明を容易にするために図1Bに再度示されている。例えば、図1Bに示す構成は、VM140のみ、物理マシン(PM)+VM+コンテナ150、またはコンテナ160のみである。図1Bに示す構成は本開示の範囲を網羅したものではないことを理解されたい。
【0025】
図2は、例示的な実施形態に従う、オペレータ205(例えばAnsible(R)オペレータ)を使用してハイブリッド・クラウド241に関するリソース200を管理することを示す。オペレータ205は、リソースに関する観察、分析、および動作を行うように構成されているコントローラ215を含む。オペレータ205およびカスタム・リソース235の両方と通信している、Kubernetes「K8」APIサーバなどのAPIサーバ225が示されている。カスタム・リソース235はカスタム・リソース定義212のオブジェクトである。例えば、オペレータ205は、カスタム・リソース定義212に従ってリソースを処理する。リソースに対する操作の所与のセットの所望の(例えば最適な)管理を提供するように最小数のプロセス(例えばKubernetesオペレータ)が決定されるとき、カスタム・リソース定義212へのおよびカスタム・リソース235への操作タイプのマッピング操作が実行される。操作タイプは、コンプライアンス(例えば、ファイル許可およびパスワード複雑性)、パッチング(例えば、サービス・パッチおよびサービス・パック)、イベント管理(例えば、ディスク領域不足およびメモリ空き領域不足)、およびデプロイ/変化(例えば、DBアップグレード、ファイル・システム拡張)を含み得る。操作タイプをカスタム・リソース235にマッピングするためにテーブルを使用することができる。ワークロードの変化に基づいてカスタム・リソース235の再グループ化を行うことができる。オペレータ205は、オペレータ205がアプリケーションの現在の状態を取得しその現在の状態をカスタム・リソース235における所望の状態と比較できるように、少なくともテーブル255に示す機能性を有して構成されている。乖離が見付かると、アプリケーション状態を修正するためにプレイブック211を呼び出すことができる。本開示は図2に図示され記載されている構成に限定されないことを理解されたい。例えば、APIサーバ225はK8 APIサーバに限定されない。
【0026】
図3は、例示的な実施形態に従う、ハイブリッド・クラウド環境におけるワークロードを管理するための設計およびフレームワーク300を示す図である。ワークロード管理のために選択された特定のリソース・タイプの操作が特定される。特定のリソース・タイプの操作のいくつかの非網羅的な例が、本明細書において以下で検討されている。
【0027】
例えば、図3の非限定的な例に示すように、操作は、コンプライアンス操作305、パッチング操作307、またはイベント管理操作309、あるいはそれらの組合せを含み得る。コンプライアンス操作305は、パスワード複雑性からファイル許可にまでわたる機能およびルールを含み得る。パッチング操作307は、例えば、セキュリティ・パッチの適用からサービス・パックのインストールおよび更新にまでわたる操作を含み得る。イベント管理操作309は、メモリ不足状態、ディスク領域不足等といった、機能のモニタを含み得る。イベント管理操作309は、ワークロード管理のために選択されたリソース・タイプの1つまたは複数の特定された操作のワークロード次元の決定を含み得る。例えば、操作の実行に関する調整時間および調整期間の決定は、ワークロード・ライフサイクル・データ、ユーザ要求、等に基づき得、機械学習によって更新され得る。操作305、307、309は、ワークロード管理を実行するための決定された最小数のプロセス(例えばKubernetesオペレータ)をデプロイするために使用される、対応するパーティション311、313、315として提供されている。
【0028】
図4は、例示的な実施形態に従う、調整期間および調整実行時間の計算の図400である。調整期間は、純粋な経験(empirical experience)などのユーザ要求に基づくことができるか、または、過去のワークロード・ライフサイクル(例えば、実行の履歴(historical execution))からデータ駆動され得る。調整期間は、ある操作をどれくらいの頻度でモニタするべきかに関する情報を提供する。調整期間は、ワークロード管理のために選択された特定された操作の各々について、2つの連続した調整間の期間として決定されてもよい。例えば、図3に示す操作に関して、コンプライアンス操作305は例えば、2時間の調整期間を有し得る。パッチング操作307の調整期間は週単位であってもよく、一方でイベント管理309の調整期間はオン・デマンドであってもよい。上述した調整期間は説明のための例であり、これらの調整期間の例に基づく制限は存在しないことを理解されたい。
【0029】
図4を引き続き参照すると、複数の実行時間t1 410からtn 420までの合計を計算することによる合計操作実行時間405が示されている。図4はパスワード複雑性機能が実行中であることを示すが(例えば、図3に示すコンプライアンス操作305)、図4に示すようなその他の操作のうちのいずれかについて操作実行時間を決定することができる。実行されるアクションの数対時間のグラフ430が示されている。図4に示すように、操作アクション(例えば、パッチングの場合はセキュリティ・パッチ、サービス・パック、コンプライアンスの場合はパスワード複雑性、ファイル許可、およびイベント管理の場合はメモリ不足、ディスク不足)の計算された数は、14(例えば、示されているように4+3+7)である。これに応じて、調整実行時間425は、操作実行時間405を操作アクションの総数で除算したものと等しいものとして決定され得る。
【0030】
調整期間および調整実行時間425の計算に関して、特定された操作の複数回の実行に対して調整実行時間425を決定/予測するために、機械学習を使用してもよい。機械学習はまた、特定された操作の各々の調整期間を決定/予測するためにも使用され得る。ライフサイクル・ワークロード(実行の履歴)などの訓練データを使用し、それを次の実行が行われる際に追加のワークロード情報で更新してもよい。調整期間および調整実行時間の操作の決定は、特定された操作のより高い正確度での複数回の実行について調整実行時間または調整期間あるいはその両方を機械学習によって決定できるように、新しい操作情報が提供される際に、または所定の間隔で、繰り返すことができる。図4は例示の目的で提供されており、調整期間および調整実行時間の決定は図4に示す操作に限定されないことを理解されたい。
【0031】
図5は、例示的な実施形態に従う、整数線形計画法(ILP)を使用するグループ操作500を決定する例を示す。グループ化したオペレータの可能な最も効率的な割り当てを見付けるために、モデリングが行われる。この場合、コストの検討とはコンピュータ操作の効率性を指し得る。グループ操作を決定するための1つのやり方は各操作を単一のエントリとして扱うことであり、そのコストは推定される調整実行時間となる。重要な検討事項は、操作のセットが所与であり、各々が調整コストを有する場合に、操作のセットを最小数のオペレータにわたっていかにグループ化するかである。近似510を使用し分数LPおよび丸め処理520を実行する(ILP)の使用によって、その結果530が、全てのリソースの集合、リソースをスケジューリングできる全ての間隔の集合、調整期間、および1つのオペレータを使用する最大数の並列調整を含む条件の影響を受ける(例えば、条件としてそれらを含むような)、計算された数のオペレータ(最小値z)として示されている。オペレータの最小数を算出するために、貪欲法/GAなどの他の手法が使用され得る。ILPの使用では、問題はオペレータの数に対して整数の解を与える。非決定性多項式時間(NP)クラスの問題は、多項式実行時間で解決されるのではなく、多項式実行時間で解決法が検証される。NP困難性は、NPにおける最も困難な問題と少なくとも同程度困難な問題のクラスを定義付ける特性である。ILP問題はNP困難であり、指数関数的な最悪の複雑さを有する。調整期間(RP)および調整時間/コスト(RC)と関連付けられたr∈R操作の入力を所与とする。このアルゴリズムは、使用されるオペレータの数(z)を最小にしながら、全ての操作をスケジューリングする。操作rが実行されることになる長さRCの時間間隔i∈I(r)が選択される。操作r∈Rごとに、操作rを時間間隔iに対してスケジューリング可能であるかどうかを識別するためのインジケータ変数xが存在する。各操作は少なくとも1つの間隔に対してスケジューリングされ、時間tにおいてスケジューリングされる操作の総数は、最大でzである。オペレータごとに、そこに割り当てられた操作のセットが離散した間隔において実行される。
【0032】
例示のプロセス
例示のアーキテクチャの上記の概要を用いて、ここで例示のプロセスの高レベルの検討を考慮するのが有用であろう。この目的のために、図2図3、および図4と関連させて、図6には、例示的な実施形態に従う、ハイブリッド・クラウド環境におけるワークロードの1つまたは複数の操作を管理するコンピュータ実装方法のフローチャート600が描かれている。
【0033】
操作610において、複数のリソースから、クラウド・ベースのプラットフォーム上のワークロード管理のためのリソース・タイプが選択される。ベア・メタル・リソース、仮想マシン・リソース、またはコンテナ・リソースなどの、選択可能な多くの異なるリソース・タイプが存在する。ハイブリッド・クラウド環境では多くの場合、複数のタイプのリソースが存在し、このコンピュータ実装方法は、複数のリソースに対してワークロード管理を提供し得る。
【0034】
操作620において、選択されたリソース・タイプの管理すべき1つまたは複数の操作が特定される。図3に示すように、操作のいくつかの非限定的な例は、コンプライアンス操作305、パッチング操作307、またはイベント管理操作309を含み得る。本明細書で既に検討したように、図3は、これらの操作が、ワークロード管理を実行するための決定された最小数のプロセス(例えばKubernetesオペレータ)をデプロイするために使用されるパーティションとして提供されることを示す。
【0035】
操作630において、特定された1つまたは複数の操作のワークロード次元が決定される。図4および本明細書で上記したその説明には、調整期間および調整実行時間といったワークロード次元の例が提供されている。調整期間は、純粋な経験、ユーザ要望によって設定すること、または、過去のワークロード・ライフサイクル(実行の履歴)からデータ駆動すること、あるいはその組合せが可能である。調整実行時間は図4に示すように計算され得る。ワークロード次元は機械学習によって学習および更新され得る。例えば、機械学習は教師あり型であっても教師なし型であってもよい。教師あり機械学習の場合、実行の履歴のデータは訓練セットとしてラベル付けされ得る。
【0036】
操作640において、選択されたリソース・タイプの特定された操作の所与のセットのワークロード管理のための最小数のプロセスが決定され得る。図5に示すように、最小数のプロセスを決定するための1つのやり方は、ILPの使用によるものである。本明細書で上記した図2の説明と関連して、カスタム・リソースに適用されるカスタム・リソース定義(CRD)に操作タイプをマッピングすることができる。ワークロードの変化に基づいて、カスタム・リソースを再グループ化してもよい。ILPは問題の定式化であり、操作のより効率的な、または最も効率的なグループ化を計算するためのモデリングを行うことができる。
【0037】
ステップ650において、ワークロード管理を実行するための決定された最小数のプロセスがデプロイされる。ワークロード管理を実行するための決定された最小数のプロセスをデプロイすることは、特定された操作をオペレータにプログラムでマッピングすることを含み得る。オペレータはKubernetesオペレータであってもよく、それらはワークロードに対してスケーラブルであり得る。プロセスは操作650で終了するが、複数の実行ステップについての調整期間および調整実行時間などの、決定されたワークロード次元の学習または更新あるいはその両方を行うために、機械学習を実行することができる。
【0038】
図7は、コンピュータ・ハードウェア・プラットフォームの機能ブロック・ダイアグラムの図700を提供する。特に図7は、図6に示す方法を実施するために使用されるような、特定的に構成されたネットワークまたはホスト・コンピュータ・プラットフォーム700を示す。
【0039】
コンピュータ・プラットフォーム700は、中央処理装置(CPU)704、ハード・ディスク・ドライブ(HDD)706、ランダム・アクセス・メモリ(RAM)または読み出し専用メモリ(ROM)あるいはその両方708、キーボード710、マウス712、ディスプレイ714、および通信インターフェース716を含み得、これらはシステム・バス702に接続される。HDD706はデータ・ストアを含み得る。
【0040】
一実施形態では、HDD706は、例えばワークロード管理モジュール750を実行するためなどの様々なプロセスを、本明細書に記載するような様式で実行できるプログラムを格納することを含む機能を有する。ワークロード管理モジュール750は、選択されたワークロードの全体的な管理を提供する。カスタム・リソース・モジュール748はリソースの状態説明をモニタし、ILPモジュール746は操作のグループを決定するためのモデル化機能を提供する。決定される調整時間および調整期間の正確度を高めるために、機械学習モジュール740および訓練サンプル742を使用することができる。量が様々であり得る異なる機能を実行するように構成されている、様々なモジュールが存在し得る。
【0041】
例えば、訓練サンプル・モジュール742は、本明細書で既に検討したように特定される操作の各々について調整時間および調整期間を決定することを含め、ワークロード管理に関する機械学習を実行するように構成されている機械学習モジュール740を用いてプロセッサを訓練するための、様々なデータを格納する。
【0042】
一実施形態では、システムをWebサーバとして動作させるために、Apache(商標)などのプログラムが格納され得る。一実施形態では、HDD706は、JVM(Java(R)(商標)仮想マシン)を実現するためのJava(R)(商標)Runtime Environmentプログラムに関するものなど、1つまたは複数のライブラリ・ソフトウェア・モジュールを含む、実行アプリケーションを格納し得る。
【0043】
例示のクラウドプラット・フォーム
上で検討したように、環境および生態最適化方法に関連する機能は、クラウドを含み得る。本開示は以下で説明するようなクラウド・コンピューティングの詳細な説明を含むものの、本明細書に記載する教示の実施はクラウド・コンピューティング環境に限定されないことが理解されるべきである。むしろ本開示の実施形態は、現在知られているかまたは今後開発される任意の他のタイプのコンピューティング環境と関連させて実施可能である。
【0044】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースできる、自由に構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの、便利なオン・デマンドのネットワーク・アクセスを可能にするための、サービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの配置モデルを含み得る。
【0045】
特徴は以下の通りである。
オン・デマンド・セルフ・サービス:クラウド利用者は、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を、サービスのプロバイダとの人的対話を要することなく、必要に応じて自動的に、一方的にプロビジョニングすることができる。
【0046】
広範なネットワーク・アクセス:機能はネットワークを介して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する、標準の機構を通じてアクセスされる。
【0047】
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされて、複数の利用者にサービスされるようにプールされる。利用者は、より高い抽象化レベル(例えば、国、州、またはデータセンタ)での位置の特定は可能であり得るものの、一般には提供されるリソースの正確な位置は制御できないかまたは把握していないという点で、位置非依存の感覚がある。
【0048】
迅速なエラスティック性:機能を迅速かつ弾性的に、場合により自動的にプロビジョニングして急速にスケール・アウトする、および迅速にリリースして急速にスケール・インすることができる。利用者には、プロビジョニングのために利用可能な機能は多くの場合見掛け上制限がなく、任意の時点で任意の量で購入可能である。
【0049】
測定サービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適したある程度の抽象化レベルでメータリング機能を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用状況を監視、制御、および報告することができ、利用されているサービスのプロバイダおよび利用者の両方に対して透明性がもたらされる。
【0050】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):利用者に提供される機能は、クラウド・インフラ上で実行されるプロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して、様々なクライアント・デバイスからアクセス可能である。基礎となるクラウド・インフラにはネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能さえも含まれるが、利用者はその管理または制御は行わない。ただし、限定されたユーザ専用のアプリケーション構成設定は例外となり得る。
【0051】
プラットフォーム・アズ・ア・サービス(PaaS):利用者に提供される機能は、利用者が製作または取得した、プロバイダがサポートするプログラミング言語およびツールを使用して製作されたアプリケーションを、クラウド・インフラ上に配置することである。基礎となるクラウド・インフラにはネットワーク、サーバ、オペレーティング・システム、またはストレージが含まれるが、利用者はその管理または制御は行わず、ただし、デプロイされたアプリケーションおよび場合によってはアプリケーションのホスティング環境構成を制御することはできる。
【0052】
インフラ・アズ・ア・サービス(IaaS):利用者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る、利用者が任意のソフトウェアを配置および実行できる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースのプロビジョニングである。利用者は、基礎となるクラウド・インフラを管理または制御することはないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することはでき、場合によっては、選択されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御も行える。
【0053】
デプロイ・モデルは以下の通りである。
プライベート・クラウド:このクラウド・インフラはある組織に対してのみ運用される。これはその組織または第三者によって管理されてもよく、オン・プレミスに存在してもオフ・プレミスに存在してもよい。
【0054】
コミュニティ・クラウド:このクラウド・インフラはいくつかの組織によって共有され、共通の関心(例えばミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。これはそれらの組織または第三者によって管理されてもよく、オン・プレミスに存在してもオフ・プレミスに存在してもよい。
【0055】
パブリック・クラウド:このクラウド・インフラは、一般人または大きな業界グループが利用可能となっており、クラウド・サービスを販売する組織が所有している。
【0056】
ハイブリッド・クラウド:このクラウド・インフラは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、これらのクラウドは独自のエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えばクラウド間のロード・バランシングのためのクラウド・バースティング)を可能にする標準化されたまたは独自の技術によって、1つに結合されている。
【0057】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味相互運用性に焦点を当てたサービス指向型のものである。クラウド・コンピューティングの中心となるのは、相互接続されたノードのネットワークを含むインフラである。
【0058】
ここで図8を参照すると、クラウド・コンピューティングを利用する例示的なクラウド・コンピューティング環境800が描かれている。示されているように、クラウド・コンピューティング環境800は、1つまたは複数のクラウド・コンピューティング・ノード810を有するクラウド800を含み、これを用いて、クラウド利用者が使用するローカルのコンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話854A、デスクトップ・コンピュータ854B、ラップトップ・コンピュータ854C、または自動車コンピュータ・システム854N、あるいはそれらの組合せなどが、通信を行うことができる。ノード810は互いに通信してもよい。これらは、本明細書で上記したような、プライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはこれらの組合せなどの、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化されてもよい(図示せず)。このことにより、クラウド・コンピューティング環境800が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド利用者がローカルのコンピューティング・デバイス上でリソースを保守する必要のないサービスとして提供することが可能になる。図8に示すいくつかのタイプのコンピューティング・デバイス854A~854Nは、単に例示となることを意図していること、ならびに、コンピューティング・ノード810およびクラウド・コンピューティング環境850は、任意のタイプのネットワークまたは(例えばウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能な接続あるいはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。
【0059】
ここで図9を参照すると、クラウド・コンピューティング環境800(図8)が提供する1組の機能抽象化層900が示されている。図9に示すコンポーネント、層、および機能は、単に例示となることを意図しており、本開示の実施形態はこれらに限定されないことが、予め理解されるべきである。描かれているように、以下の層および対応する機能が提供される。
【0060】
ハードウェアおよびソフトウェア層960は、ハードウェアおよびソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム961、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ962、サーバ963、ブレード・サーバ964、ストレージ・デバイス965、ならびにネットワークおよびネットワーキング・コンポーネント966が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア967とデータベース・ソフトウェア968とを含む。
【0061】
仮想化層970は、以下の仮想エンティティの例を提供し得る抽象化層を提供する:仮想サーバ971、仮想ストレージ972、仮想プライベート・ネットワークを含む仮想ネットワーク973、仮想アプリケーションおよびオペレーティング・システム974、ならびに仮想クライアント975。
【0062】
一例では、管理層980は、以下に記載する機能を提供し得る。リソース・プロビジョニング981は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの、動的な調達を提供する。メータリングおよびプライシング982は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求処理またはインボイス処理を行う。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド利用者およびタスクについての身元情報の検証、ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル983は、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理984は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)計画および履行985は、SLAによって将来必要となることが予期されるクラウド・コンピューティング・リソースの、事前調整および調達を提供する。
【0063】
ワークロード層990は、クラウド・コンピューティング環境が利用される機能性の例を提供する。この層から提供されるワークロードおよび機能の例には、マッピングおよびナビゲーション991、ソフトウェア開発およびライフサイクル管理992、仮想教室教育配信993、データ分析処理994、トランザクション処理995、ならびに、本明細書で検討するようなハイブリッドのクラウド・ベース・プラットフォームに対してワークロード管理を実行するためのワークロード管理モジュール996が含まれる。
【0064】
結論
本教示の様々な実施形態の説明を例示の目的で提示してきたが、それらは網羅的であることも開示される実施形態に限定されることも意図していない。当業者には、記載されている実施形態の範囲から逸脱することなく、多くの変更および変形が明らかであろう。本明細書で用いられる専門用語は、実施形態の原理、実際の用途、もしくは市場で見られる技術に対する技術的な改善を最もよく説明するように、または他の当業者が本明細書において開示される実施形態を理解できるように、選択された。
【0065】
上記の内容は最良の状態と考えられるものおよび/または他の例について記載しているが、それらにおいて様々な変形を行い得ること、ならびに本明細書で開示される主題を様々な形態および例で実施し得ること、ならびにそれらの教示を本明細書には一部しか記載されていない多数の用途に適用し得ることが理解される。以下の特許請求の範囲は、本教示の真の範囲内にあるありとあらゆる応用、変更、および変形を特許請求することを意図している。
【0066】
本明細書で検討してきた構成要素、ステップ、特徴、目的、利益、および利点は、単に例示的なものである。それらのうちのいずれも、またそれらに関連する考察のいずれも、保護の範囲を限定することは意図していない。本明細書において様々な利点を検討してきたが、必ずしも全ての実施形態が全ての利点を含むわけではないことが理解されるであろう。別途記載のない限り、本明細書に明記されている全ての測定値、値、定格、位置、大きさ、サイズ、および他の諸元は、続く特許請求の範囲の中のものを含め近似的なものであり、厳密なものではない。それらは、それらが関連している機能と、およびそれらが関係している技術において通例であるものと整合する、妥当な範囲を有することが意図されている。
【0067】
多数の他の実施形態もまた企図される。それらは、より少ない、追加の、または異なる、あるいはこれらの組合せの構成要素、ステップ、特徴、目的、利益、および利点を有する実施形態を含む。それらはまた、構成要素またはステップあるいはその両方が、異なる様式で配置されるまたは順序付けされるあるいはその両方である実施形態を含む。
【0068】
図中のフローチャートおよびダイアグラムは、本開示の様々な実施形態に係るあり得る実装形態のアーキテクチャ、機能、および動作を示す。
【0069】
上記の内容は例示的な実施形態と関連させて記載されているが、用語「例示的な」は最良または最適のものではなく、単なる例として意図されていることが理解される。直前に述べたもの以外には、述べられているかまたは説明されているどのような内容も、それが特許請求の範囲に記載されているかいないかに関わらず、何らかの構成要素、ステップ、特徴、目的、利益、利点、もしくは均等物の公衆への提供となることを意図していないか、またはそれらの公共への提供となると解釈されるべきではない。
【0070】
本明細書で使用される用語および表現は、本明細書において特定の意味が別途明記されている場合を除いて、それらの対応するそれぞれの調査および研究の領域に関してそのような用語および表現に認められているような通常の意味を有することが理解されるであろう。第1のおよび第2のなどの関係を示す用語は、ある実体または動作を別の実体または動作から区別するためだけに使用される場合があり、このとき実体同士または動作同士の間のそのような何らかの実際の関係または順序を必ずしも要求または示唆しない。用語「備える(comprises)」、「備えている(comprising)」、またはこれらの任意の他の変形は非排他的な包含を含むことを意図しており、この場合、列挙された要素を備えるプロセス、方法、物品、または装置は、これらの要素を含むだけでなく、明示的に列挙されていないかまたはそのようなプロセス、方法、物品、もしくは装置に内在している、他の要素を含み得る。「1つの(a)」または「1つの(an)」が前置されている要素は、それ以上制約のない場合、その要素を備えるプロセス、方法、物品、または装置における追加の同一要素の存在を除外しない。
【0071】
要約書は読者が技術的開示の本質を素早く確認できるように提供されている。要約書は、それが特許請求の範囲の範囲または意味を解釈または限定するのに使用されるものではないとの理解のもとで提示される。更に、上記の詳細な説明において、本開示を合理化する目的で様々な特徴が様々な実施形態において1つにまとめられていることを理解できる。この開示の方法は、特許請求される実施形態が各請求項に明示的に記載されているよりも多くの特徴を有するという意図を反映しているものとして解釈されるべきではない。むしろ、続く特許請求の範囲に反映されているように、進歩性を備えた主題は、開示されている単一の実施形態の全特徴よりも少ない特徴で成り立つ。したがって、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれており、各請求項は個別に特許請求される主題としてそれ自体で成立している。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9