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

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

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

特表2022-554079セキュアなワークロード構成方法、システム、プログラム
<>
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図1
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図2
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図3
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図4
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図5
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図6
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図7
  • 特表-セキュアなワークロード構成方法、システム、プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-28
(54)【発明の名称】セキュアなワークロード構成方法、システム、プログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20221221BHJP
   G06F 21/62 20130101ALI20221221BHJP
【FI】
G06F21/55
G06F21/62 309
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022522716
(86)(22)【出願日】2020-10-15
(85)【翻訳文提出日】2022-04-14
(86)【国際出願番号】 EP2020079094
(87)【国際公開番号】W WO2021083684
(87)【国際公開日】2021-05-06
(31)【優先権主張番号】16/668,047
(32)【優先日】2019-10-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【復代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】バナルジー、プラディプタ
(72)【発明者】
【氏名】パティル、ハーシャル
(57)【要約】
セキュアなワークロード構成方法であって、マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信し、ここでワークロード定義ファイルは暗号化された不変定義と事前定義された値の範囲およびマスタ・ノードにより変更される第1の値を含む一部不変定義であり、マスタ・ノードにより変更される第2の値を含む可変定義を含み、ワーカ・ノードによって暗号化された不変定義を解読して解読された不変定義を生成し、ワーカ・ノードによって事前定義された値の範囲を第1の値が満たすことを確認し、暗号化された不変定義を解読し事前定義された値の範囲を第1の値が満たすことを確認したことに応答して仮想コンピューティング環境においてワークロード定義ファイルに基づきワークロードを実行する。
【特許請求の範囲】
【請求項1】
方法であって、
マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することであって、前記ワークロード定義ファイルが、
暗号化された不変定義と、
事前定義された値の範囲、および前記マスタ・ノードにより変更される第1の値、を含む一部不変定義と、
前記マスタ・ノードにより変更される第2の値を含む可変定義と
を含む、前記受信することと、
前記ワーカ・ノードによって、前記暗号化された不変定義を解読して、解読された不変定義を生成することと、
前記ワーカ・ノードによって、前記事前定義された値の範囲を前記第1の値が満たすことを確認することと、
前記暗号化された不変定義を解読し、前記事前定義された値の範囲を前記第1の値が満たすことを確認したことに応答して、仮想コンピューティング環境において前記ワークロード定義ファイルに基づくワークロードを実行することと
を含む、方法。
【請求項2】
前記ワーカ・ノードが仮想プライベート・クラウド(VPC)に常駐し、前記マスタ・ノードが、複数の仮想プライベート・クラウドを管理するコントロール・プレーンに常駐する、請求項1に記載の方法。
【請求項3】
前記暗号化された不変定義が、前記マスタ・ノードによって変えることができない、請求項1に記載の方法。
【請求項4】
前記暗号化された不変定義がコンテナ・イメージ名を含む、請求項1に記載の方法。
【請求項5】
前記暗号化された不変定義が、前記ワーカ・ノードをリースしている顧客の公開鍵を使用して暗号化される、請求項1に記載の方法。
【請求項6】
前記一部不変定義がメモリ割り当てを含む、請求項1に記載の方法。
【請求項7】
前記可変定義がコンテナ・インスタンス識別子を含む、請求項1に記載の方法。
【請求項8】
システムであって、
プロセッサと、
前記プロセッサによって実行されると前記プロセッサに方法を行わせるように構成されているプログラム命令を格納するコンピュータ可読記憶媒体と
を備え、前記方法が、
マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することであって、前記ワークロード定義ファイルが、
暗号化された不変定義と、
事前定義された値の範囲、および前記マスタ・ノードにより変更される第1の値、を含む一部不変定義と、
前記マスタ・ノードにより変更される第2の値を含む可変定義と
を含む、前記受信することと、
前記ワーカ・ノードによって、前記暗号化された不変定義を解読して、解読された不変定義を生成することと、
前記ワーカ・ノードによって、前記事前定義された値の範囲を前記第1の値が満たすことを確認することと、
前記暗号化された不変定義を解読し、前記事前定義された値の範囲を前記第1の値が満たすことを確認したことに応答して、仮想コンピューティング環境において前記ワークロード定義ファイルに基づくワークロードを実行することと
を含む、システム。
【請求項9】
前記ワーカ・ノードが仮想プライベート・クラウド(VPC)に常駐し、前記マスタ・ノードが、複数の仮想プライベート・クラウドを管理するコントロール・プレーンに常駐する、請求項8に記載のシステム。
【請求項10】
前記暗号化された不変定義が、前記マスタ・ノードによって変えることができない、請求項8に記載のシステム。
【請求項11】
前記暗号化された不変定義が、コンテナ・イメージ名を含む、請求項8に記載のシステム。
【請求項12】
前記暗号化された不変定義が、前記ワーカ・ノードをリースしている顧客の公開鍵を使用して暗号化される、請求項8に記載のシステム。
【請求項13】
前記一部不変定義がメモリ割り当てを含む、請求項8に記載のシステム。
【請求項14】
前記可変定義がコンテナ・インスタンス識別子を含む、請求項8に記載のシステム。
【請求項15】
プログラム命令を具現化しているコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、プロセッサに方法を行わせるように前記プロセッサによって実行可能であり、前記方法が、
マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することであって、前記ワークロード定義ファイルが、
暗号化された不変定義と、
事前定義された値の範囲、および前記マスタ・ノードにより変更される第1の値、を含む一部不変定義と、
前記マスタ・ノードにより変更される第2の値を含む可変定義と
を含む、前記受信することと、
前記ワーカ・ノードによって、前記暗号化された不変定義を解読して、解読された不変定義を生成することと、
前記ワーカ・ノードによって、前記事前定義された値の範囲を前記第1の値が満たすことを確認することと、
前記暗号化された不変定義を解読し、前記事前定義された値の範囲を前記第1の値が満たすことを確認したことに応答して、前記仮想コンピューティング環境において前記ワークロード定義ファイルに基づくワークロードを実行することと
を含む、コンピュータ・プログラム製品。
【請求項16】
前記ワーカ・ノードが仮想プライベート・クラウド(VPC)に常駐し、前記マスタ・ノードが、複数の仮想プライベート・クラウドを管理するコントロール・プレーンに常駐する、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記暗号化された不変定義が、前記マスタ・ノードによって変えることができない、請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
前記暗号化された不変定義がコンテナ・イメージ名を含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記暗号化された不変定義が、前記ワーカ・ノードをリースしている顧客の公開鍵を使用して暗号化される、請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記一部不変定義がメモリ割り当てを含み、前記可変定義がコンテナ・インスタンス識別子を含む、請求項15に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ワークロード構成に関し、より詳細には、ワークロード構成のセキュリティを高めることに関する。
【背景技術】
【0002】
計算ワークロードは、仮想コンピューティング環境において展開され得る。仮想コンピューティング環境とは、コンピュータ機能のエミュレーションおよびプロビジョニングのことであると言うことができる。コンピュータ機能は、ハードウェアの単一のセットまたは多くの異なるハードウェア・セットから1つまたは複数の仮想マシン(VM)またはコンテナを生成することによって、エミュレートされ得る。また、エミュレートされたコンピュータ機能は、必要に応じて、エミュレートされたコンピュータ機能を生成するのに使用されたハードウェアの1つまたは複数の場所から地理的に離れたエンティティにプロビジョニングされ得る。
【発明の概要】
【0003】
本開示の態様は、方法を対象とし、方法は、マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することを含み、ワークロード定義ファイルが、暗号化された不変定義と、事前定義された値の範囲、およびマスタ・ノードにより変更される第1の値、を含む一部不変定義と、マスタ・ノードにより変更される第2の値を含む可変定義とを含む。方法は、ワーカ・ノードによって、暗号化された不変定義を解読して、解読された不変定義を生成することをさらに含む。方法は、ワーカ・ノードによって、事前定義された値の範囲を第1の値が満たすことを確認することをさらに含む。方法は、暗号化された不変定義を解読し、事前定義された値の範囲を第1の値が満たすことを確認したことに応答して、仮想コンピューティング環境においてワークロード定義ファイルに基づくワークロードを実行することをさらに含む。
【0004】
本開示のさらなる態様は、上記の方法を行うように構成されたシステムおよびコンピュータ・プログラム製品を対象とする。この発明の概要では、本開示の各態様、あらゆる実装形態またはあらゆる実施形態あるいはその組合せを説明することを意図していない。
【0005】
本明細書に含まれる図面は、本明細書に組み込まれ、本明細書の一部を成している。図面は、本開示の実施形態を示し、発明を実施するための形態とともに、本開示の原理を説明するのに役立つものである。図面は、特定の実施形態を反映するものに過ぎず、本開示を限定するものではない。
【図面の簡単な説明】
【0006】
図1】本開示のいくつかの実施形態による、コンピューティング環境例のブロック図である。
図2】本開示のいくつかの実施形態による、ワークロード定義(WD)ファイル例を示す図である。
図3】本開示のいくつかの実施形態による、WDファイルを生成する方法例のフローチャートである。
図4】本開示のいくつかの実施形態による、マスタ・ノードにおいてWDファイルを変更する方法例のフローチャートである。
図5】本開示のいくつかの実施形態による、ワーカ・ノードにおいて変更されたWDファイルに従ってワークロードを展開させる方法例のフローチャートである。
図6】本開示のいくつかの実施形態による、コンピュータ例のブロック図である。
図7】本開示のいくつかの実施形態による、クラウド・コンピューティング環境を描写するものである。
図8】本開示のいくつかの実施形態による、抽象化モデル層を描写するものである。
【発明を実施するための形態】
【0007】
本開示は、様々な変更形態および代替形態に修正可能であるが、その特定のものが、図面に例として示されており、詳細に述べられる。しかし、記載されている特定の実施形態に本開示を限定することは意図していない、ということを理解すべきである。反対に、本開示の思想および範囲に含まれるすべての変更形態、均等物、および代替形態に及ぶことを意図している。
【0008】
本開示の態様は、ワークロード構成を対象とし、より詳細には、ワークロード構成のセキュリティを高めることを対象とする。このような用途に限定はされないが、本開示の実施形態は、これまで述べた背景に照らしてみるとより良く理解することができる。
【0009】
仮想コンピューティング環境において、カスタマイズ型アプリケーションまたはワークロードあるいはその両方が展開され得る。このようなワークロードとしては、例えば、ステートレス・アプリケーション、ステートフル・アプリケーション、バッチ・ジョブ、デーモンまたは他のワークロードあるいはその組合せを挙げることができる。顧客は、JavaScript(R)Object Notation(JSON)またはYAML(「YAML Ain’t Markup Language」の再帰的頭字語)などであるがそれに限定されるわけではないプログラミング言語を使用したワークロード定義(WD)ファイルにおいてワークロードを定義することができる。WDファイルは、顧客が所有する仮想プライベート・クラウド(VPC)にあるワーカ・ノードにおいて具体化され得る。ただし、VPCをホストするコントロール・プレーン(例えば、クラウド・プロバイダ)が、展開をスケジューリングし、展開効率を高め、または展開確実性を高めるあるいはその組合せを実施するために、WDファイルを変更することができる。Kubernetes(R)(k8s)は、クラウド・プロバイダの仮想リソースおよび顧客のワークロードのインターフェースで働くコンテナ-オーケストレーション・システムの1つの例である。Kubernetes(R)は、ワークロードの展開、スケーリング、および管理を自動化するオープン-ソース・コンテナ・オーケストレーション・システムである。Kubernetes(R)は、例えばDocker(R)などのコンテナ・ツールと併用することができる。
【0010】
不都合なことには、WDファイルを変更するコントロール・プレーンの能力によって、悪意ある者が、侵入する、邪魔する、盗む、損なう、改ざんするなど、コントロール・プレーンを介してワーカ・ノードに悪影響を及ぼす可能性がある限り、顧客にセキュリティ・リスクが持ち込まれる(例えば、悪意ある者が、クラウド・プロバイダのセキュリティ基盤に侵入し、コントロール・プレーンにおけるアクセスまたは権限あるいはその両方を手に入れる場合)。1つの例として、顧客がコンテナ・イメージAを展開するよう求めるが、コントロール・プレーンのマスタ・ノード(例えば、オーケストレータ・ノード)における管理者権限を持つ悪意ある者が、ワーカ・ノードが侵害されたコンテナ・イメージBを展開するように、ワークロード構成を変更するという仮想上の状況を考えてみる。
【0011】
コントロール・プレーンによるWDファイルへの悪意あるアクセスを防ぐ考えられる解決策の1つは、コントロール・プレーンで侵入されないようにWDファイル全体を暗号化することである。しかし、コントロール・プレーンが、効率良くかつ有効にワークロードをスケジューリングするように、WDファイルにあるデータ点のうちのいくつかを利用する限り(WDファイルにあるデータ点のうちのいくつかを変更することでさえ)、これは問題の多いものである。そのため、WDファイルの全体を暗号化することで、性能低下がもたらされる可能性がある。
【0012】
これまで述べた課題に鑑みて、本開示の態様は、選択的暗号化WDファイルを対象とし、ここで、選択的暗号化WDファイルは、不変定義、一部不変定義、および可変定義を含む。不変定義は、暗号化されており、ワークロードをスケジューリングする間にマスタ・ノードによって変えることができない。一部不変定義には、事前定義された範囲が関連付けられているので、マスタ・ノードが、効率的かつ有効にワークロードをスケジューリングするように一部不変定義に相応の理に適った調整を行うことができる。最後に、可変定義は、必要に応じてマスタ・ノードによって調整されると、顧客に対するセキュリティ・リスクを比較的少なくすることができ、ワークロード処理を高めることもできるため、マスタ・ノードによって完全に構成可能である。
【0013】
このように、本開示の態様が、十分なスケジューリング効率または展開性能あるいはその両方を維持するのに相応な柔軟性を保ちながら、VPC環境において実行されるワークロードのセキュリティを高めるのが好都合である。マスタ・ノードによって変えることができないWDファイルの不変部分または事前定義された範囲でマスタ・ノードによって変えることができるWDファイルの一部不変部分あるいはその両方によってセキュリティを高めることができる。マスタ・ノードに、WDファイルの可変部分および事前定義された範囲内でWDファイルの一部不変部分を変更させることによって、向上した性能が保たれる。
【0014】
ここで図1を参照すると、本開示のいくつかの実施形態による、コンピューティング環境100例が示されている。コンピューティング環境100には、互いに通信可能につながれた顧客102、クラウド・ホスト型マスタ・ノード104、および顧客ホスト型ワーカ・ノード106が含まれる。クラウド・ホスト型マスタ・ノード104は、仮想計算プロバイダ114に関連付けられ得る。仮想計算プロバイダ114は、仮想コンピューティングのベンダとすることができる(例えば、パブリック・クラウド・プロバイダ、プライベート・クラウド・プロバイダ、またはハイブリッド・クラウド・プロバイダ、あるいはその組合せ)。クラウド・ホスト型マスタ・ノード104は、仮想計算プロバイダ114(例えば、顧客ホスト型ワーカ・ノード106)に関連付けられた計算リソースにおいて顧客(例えば、顧客102)によって与えられたワークロードをモニタし、管理し、またはスケジューリングし、あるいはその組合せを実行するように構成され得る。
【0015】
顧客ホスト型ワーカ・ノード106は、仮想プライベート・クラウド(VPC)112内に常駐し得る。VPC112とは、それぞれの顧客102に対して用意され、仮想計算プロバイダ114に関連付けられた他の共有リソースから独立している共有コンピューティング・リソースのオンデマンド・プールのことであると言うことができる。したがって、VPC112により、顧客102は、プロビジョニングされたコンピューティング・リソースを比較的高いレベルのセキュリティで利用することができる。顧客ホスト型ワーカ・ノード106(ワーカまたはミニオンともされる)とは、ワークロード(例えば、コンテナ)を展開させる物理マシンであっても仮想マシンであってもよい。VPC112には顧客ホスト型ワーカ・ノード106が1つしか示していないが、これは、単に図示の便宜上で、VPC112内に多くの顧客ホスト型ワーカ・ノード106があってもよい。同じように、VPC112を1つしか示していないが、これも単に図示の便宜上で、それぞれがそれぞれの顧客102に関連付けられている多くのVPCが仮想計算プロバイダ114によってホストされてもよい。
【0016】
顧客102とは、仮想プライベート・ネットワーク(VPN)接続などのセキュアな接続を使用してネットワーク108(例えば、インターネット)を通してVPC112にアクセスすることができるユーザのことでも管理者のことであってもよい。1つの例として、様々なハードウェアリソースが第1の場所にあるイントラネット・ネットワークを備える企業があり得る。この企業は、仮想計算プロバイダ114からVPC112の形態の計算リソースをさらに購入することができる。この企業は、ネットワーク108を介してVPC112と接続することによってVPC112を利用することができる。したがって、顧客102は、仮想計算プロバイダ114から、例えば、VPC112や顧客ホスト型ワーカ・ノード106などの計算リソースをリースすることができる。
【0017】
顧客102は、最初にWDファイル110-1(総称してWDファイル110ともされる)を定義することができる。WDファイル110-1は、顧客102がVPC112上で展開したいと思うワークロードまたはアプリケーションを定義することができる。WDファイル110-1は、例えば、JSON、YAMLなどのコンピュータ可読言語でも書き込まれ得る。WDファイル110-1には、1つまたは複数の不変定義、1つまたは複数の一部不変定義、および1つまたは複数の可変定義が含まれ得る。1つまたは複数の不変定義は、暗号化スキームが関連付けられ、暗号化スキームに従って暗号化され得る。1つまたは複数の一部不変定義は、事前定義された範囲に関連付けられ得る。事前定義された範囲は、顧客ホスト型ワーカ・ノード106におけるWDファイル110の効率的なスケジューリングの際にクラウド・ホスト型マスタ・ノード104によってなされ得る、一部不変定義における受け入れ可能な変更を定義することができる。1つまたは複数の可変定義は、顧客102によって何の制限も課されることなく、クラウド・ホスト型マスタ・ノード104によって変えることができる。
【0018】
顧客102は、WDファイル110-1をクラウド・ホスト型マスタ・ノード104に提供する。これまで述べた通り、クラウド・ホスト型マスタ・ノード104は、これらの定義が暗号化されており、クラウド・ホスト型マスタ・ノード104がこの暗号化された不変定義を解読することができない限り、WDファイル110-1内の1つまたは複数の不変定義を変えることはできない。また、実施形態によっては、不変定義が暗号化された後に不変定義が不変定義のハッシュに取って代わられる限り、クラウド・ホスト型マスタ・ノード104が不変定義を読み取ることはできない。それ故、様々な実施形態において、不変定義は、(1)クラウド・ホスト型マスタ・ノード104によって変えることができないか、または(2)クラウド・ホスト型マスタ・ノード104によって変えることも読み取ることもできない。第1および第2の例のそれぞれは、悪意あるクラウド・ホスト型マスタ・ノード104がWDファイル110-1内の不変定義を破損させるのを防ぐのに好都合である。第2の例は、悪意あるクラウド・ホスト型マスタ・ノード104が不変定義に保存された個人情報、機密情報、または極秘情報、あるいはその組合せを読み取るのを防ぐのにさらに好都合である。
【0019】
クラウド・ホスト型マスタ・ノード104は、事前定義された範囲内で一部不変定義を変えることができ、または可変定義を変えることができ、あるいはその両方ができる。事前定義された範囲内で一部不変定義を変えること、または可変定義を変えること、あるいはその両方は、VPC112においてワークロードをスケジューリングするのに関わる効率、確実性、可用性などの性能特性を高めるのに、クラウド・ホスト型マスタ・ノード104によってなされ得る。
【0020】
クラウド・ホスト型ワーカ・ノード104がWDファイル110-1に必要な調整を行うと、クラウド・ホスト型ノード104は、WDファイル110-2を保存し、このWDファイル110-2は、事前定義された範囲内で変えられた一部不変定義、またはWDファイル110-1に対して変えられた可変定義、あるいはその両方を呈し得る。その一方、WDファイル110-2内の1つまたは複数の不変定義は、暗号化状態のままである。
【0021】
クラウド・ホスト型マスタ・ノード104は、顧客ホスト型ワーカ・ノード106に、顧客ホスト型ワーカ・ノード106による実行対象のWDファイル110-2に関連付けられたワークロードをスケジューリングする一貫として、WDファイル110-2を提供することができる。顧客ホスト型ワーカ・ノード106は、WDファイル110-2を受信し、WDファイル110-2の1つまたは複数の不変部分を解読する。また、顧客ホスト型ワーカ・ノード106は、一部不変定義のそれぞれが事前定義された範囲内にあるか確認することができる。解読および確認を受けて、顧客ホスト型マスタ・ノード106は、WDファイル110-3を保存することができ、このWDファイル110-3は、1つまたは複数の不変定義が解読され、1つまたは複数の一部不変定義が事前定義された範囲内にあると確認される限り、WDファイル110-2とは異なるものとすることができる。それにより、顧客ホスト型ワーカ・ノード106は、顧客ホスト型ワーカ・ノード106に関連付けられている計算リソースを使用してWDファイル110-3を実行することによって、ワークロードを展開することができる。
【0022】
明示していないが、顧客102、クラウド・ホスト型マスタ・ノード104、および顧客ホスト型ワーカ・ノード106のそれぞれは、様々なさらなる構成要素を含むことができる。例えば、クラウド・ホスト型マスタ・ノード104は、動的構成レジストリを与えるのに、クラスタ内のすべてのコンピュータにわたって実行するように構成されたデーモン(例えば、ectd)を含むことができる。クラウド・ホスト型マスタ・ノード104は、ectdにおける様々なAPIオブジェクトのリプレゼンテーショナル・ステート・トランスファ(REST)リクエスト状態および更新状態を処理し、確認するアプリケーション・プログラミング・インターフェース(API)サーバをさらに含むことができる。クラウド・ホスト型マスタ・ノード104は、様々なワーカ・ノードに対してリソース供給をモニタし、使用可能なリソースを保留になっているワークロードに適合させるスケジューラをさらに含むことができる。
【0023】
顧客ホスト型ワーカ・ノード106は、顧客ホスト型ワーカ・ノード106において実行するワークロードを開始させ、止め、維持するKubeletを含むことができる。顧客ホスト型ワーカ・ノード106は、顧客ホスト型ワーカ・ノード106の中への、からの、内でのトラフィックを経路指定するKube-proxyをさらに含むことができる。顧客ホスト型ワーカ・ノード106は、実行中のアプリケーション、関連付けられたライブラリ、およびそれらの依存性を保つマイクロサービスとして働くことができるコンテナ・ランタイムを含むことができる。
【0024】
顧客102は、仮想計算プロバイダ114、VPC112、顧客ホスト型ワーカ・ノード106、またはクラウド・ホスト型マスタ・ノード104、あるいはその組合せと相互作用するユーザ・インターフェースとして働くユーザ端末を含むことができる。顧客102は、ネットワーク108を介したVPC112とのセキュアな通信を確立する、仮想プライベート・ゲートウェイなどのゲートウェイをさらに含むことができる。
【0025】
図2には、本開示のいくつかの実施形態による、WDファイル110例を示す。WDファイル110には、1つまたは複数の不変定義200、1つまたは複数の一部不変定義204、および1つまたは複数の可変定義208が含まれる。本明細書では定義としているが、これまででは、宣言、ステートメント、メタデータ、パラメータなどともしていることがある。WDファイル110は、JSON、YAMLなどのコンピュータ・プログラミング言語を使用して定義され得る。
【0026】
不変定義200には、不変定義200を暗号化する際の暗号化スキーム202に関連している。不変定義200とは、コントロール・プレーンによって変えることができないWDファイル110の部分であると言うことができる。言い換えれば、WDファイル110の展開時に顧客102によって定義されると、不変定義200は、不変定義200を解読するのに情報が十分なければ変えることができない。それ故、クラウド・ホスト型マスタ・ノード104などの仲介役が、不変定義を変えることができないので、WDファイルのセキュリティが上がる。不変定義200の1つの例には、コンテナ・イメージ名がある。しかし、多くの不変定義200の代替例も考えられ、本開示の思想および範囲に収まる。通常、不変定義200とは、悪意を持ってアクセスされるかつ/または変えられると、展開時のWDファイル110のセキュリティ、プライバシ、安全性、効率、有効性、または正確さ、あるいはその組合せを損なう可能性があるWDファイル110の特性のことである。
【0027】
暗号化スキーム202とは、現在分かっているか後で開発される如何なる暗号化スキームでもあると言える。暗号化スキーム202としては、対称鍵暗号化スキーム、非対称鍵暗号化スキーム、公開鍵暗号化スキームなどの暗号化スキームを挙げることができるがこれらに限定されるわけではない。暗号化スキーム202では、Base64、トリプル・データ暗号化標準(DES)、RSA(Rivest Shamir Adelman)、Blowfish、Twofish、先進暗号化標準(AES)などのアルゴリズムを利用するが、これらに限定されるわけではない。
【0028】
一部不変定義204のそれぞれには、それぞれの事前定義された範囲206が関連付けられており、各事前定義された範囲206は、顧客102によって定義され、クラウド・ホスト型マスタ・ノード104による1つまたは複数の一部不変定義204への受け入れ可能な変更時のパラメータを提供する。一部不変定義204の1つの非限定的例としては、メモリ割り当てがあり、特定のワークロードへのメモリ割り当て量は、適切な範囲内になければならないが、顧客ホスト型ワーカ・ノード106に関連付けられた計算リソースの可用性および能力に依って変わってくることがあり得る。同様に、一部不変定義204の他の非限定的例としては、事前定義された範囲内で変更されると、展開時のWDファイル110のセキュリティ、効率、または有効性を損なうことがない、プロセッサ割り当て、ストレージ割り当て、帯域幅(例えば、ネットワーク)割り当て、ワークロードをスケジューリングする時間などの値が挙げられる。事前定義された範囲206は、最小、最大、事前定義変数リスト(例えば、{A、B、C}のうちのどれでも1つなど)、数値域などのパラメータの形態であってもよい。
【0029】
実施形態によっては、悪意あるクラウド・ホスト型マスタ・ノード104が事前定義された範囲206を変え、一部不変定義204を、元々定義された事前定義された範囲206を満たさないにもかかわらず、変えられた事前定義された範囲206を満たす値に変えるのを防ぐために、事前定義された範囲206も暗号化スキーム202に従って暗号化される。
【0030】
可変定義208とは、クラウド・ホスト型マスタ・ノード104によって変えることができる定義であると言うことができる。可変定義208は、悪意ある者によって手が加えられても、限られたセキュリティ・リスクしか伴わない定義とすることができる。可変定義208の1つの非限定的例には、コンテナ・インスタンス識別子(ID)がある。クラウド・ホスト型マスタ・ノード104によってカスタマイズされるコンテナ・インスタンス識別子IDは、クラウド・ホスト型マスタ・ノード104に、多くのワーカ・ノード間で複数のワークロードをオーケストレーションしながら、コンテナ・インスタンスを一貫して、正確に記録することを可能にさせる限り、好都合なものとすることができる。また、コンテナ・インスタンスIDは、WDファイル110のセキュリティにはほぼ関わっていない。その結果、コンテナ・インスタンスIDは、可変定義208として分類され得る。
【0031】
不変定義200、一部不変定義204、および可変定義208が同じWDファイル110に示されているが、実施形態によっては、これら3のファイルは別々であり、必ずしも同じ別個のファイル内に常駐していなくてもよい。また、不変定義200、一部不変定義204、または可変定義208、あるいはその組合せは、顧客102によってユーザ入力に基づき手作業で分類されても、ルールエンジンまたは機械学習アルゴリズムに基づき自動で分類されてもよい。最後に、実施形態によっては、不変定義200は、顧客102によって明確に定義された如何なる定義でもある一方、一部不変定義204および可変定義208は、顧客102が定義しない定義(例えば、空、ブランク、null)とすることができる。
【0032】
図3は、本開示のいくつかの実施形態による、ワークロードを定義する対象のWDファイル110を生成する方法300例のフローチャートを示す。方法300は、顧客102、あるいは異なる構成のハードウェアもしくはソフトウェアまたはその両方によって実施され得る。
【0033】
工程302は、WDファイル110における1つまたは複数の不変定義200、1つまたは複数の一部不変定義204、および1つまたは複数の可変定義208を定義することを含む。不変定義200、一部不変定義204、または可変定義208、あるいはその組合せを定義することは、ユーザ入力に基づいていても、または自動分類に基づいていても、あるいはその両方に基づいていてもよい。自動分類を利用する場合、自動分類は、それぞれの定義を、定義の特性に応じて、不変、一部不変、または可変として分類する、ルールベースのシステムまたは訓練済み機械学習モデルによって生成され得る。
【0034】
工程304は、一部不変定義204のそれぞれに対して事前定義された範囲206を定義することを含む。事前定義された範囲206は、ユーザ入力によって定義されても、ルールベースのシステムもしくは訓練済み機械学習モデルを使用して自動で生成されてもよい。事前定義された範囲は、最小、最大、事前定義変数リスト(例えば、{A、B、C}のうちのどれでも1つなど)、数値域などのパラメータの形態とすることができる。
【0035】
工程306は、暗号化スキーム202に従って不変定義200を暗号化することを含む。1つの非限定的例として、不変定義200は、新しいドキュメントに保存され、新しいドキュメントは、顧客102の公開鍵を使用して暗号化され得る。実施形態によっては、不変定義200のハッシュ(例えば、Base64ハッシュ)が、WDファイル110がクラウド・ホスト型マスタ・ノード104に送信される際の不変定義200に対するプレースホルダとしてWDファイル110に含まれてもよい。不変定義200に基づくハッシュに不変定義200を置き換えると、WDファイル110がクラウド・ホスト型マスタ・ノード104などの仲介役に送られる際に不変定義200のプライバシを高めるのに有用となり得る。実施形態によっては、工程306はさらに、暗号化スキーム202に従って事前定義された範囲206を暗号化することを含む。
【0036】
工程308は、WDファイル110をクラウド・ホスト型マスタ・ノード104に送信することを含む。クラウド・ホスト型マスタ・ノード104にワークロードの展開をスケジューリングさせるために、顧客102は、WDファイル110を転送することができる。
【0037】
図4には、本開示のいくつかの実施形態による、ワークロードのスケジューリング時にクラウド・ホスト型マスタ・ノード104によりWDファイル110を変更する方法400例を示す。方法400は、クラウド・ホスト型マスタ・ノード104、あるいは異なる構成のハードウェアおよび/またはソフトウェアによって実施され得る。実施形態によっては、方法400は、方法300の後に行われる。
【0038】
工程402は、WDファイル110を顧客102から受信することを含む。WDファイル110には、1つまたは複数の不変定義200、1つまたは複数の一部不変定義204、および1つまたは複数の可変定義208が含まれ得る。不変定義200は、暗号化スキーム202に従って暗号化され、クラウド・ホスト型マスタ・ノード104は、不変定義200を解読することも、変えることも、かつ/または読み取ることもできない。その一方、一部不変定義204には、それぞれ事前定義された範囲206に関連している。
【0039】
工程404は、一部不変定義204をそれぞれの事前定義された範囲206内で更新することを含む。工程406は、可変定義208を更新することを含む。1つの例として、工程404は、受け入れ可能なメモリ割り当て値の事前定義された範囲206内でメモリ割り当て値などの一部不変定義204を変える(または、一部不変定義204が元々非定義状態である場合には定義する)ことを含む。別の例として、工程406は、コンテナ・インスタンスIDなどの可変定義208を変更する(または、可変定義208が元々非定義状態である場合には定義する)ことを含む。
【0040】
工程404および406のそれぞれは、クラウド・ホスト型マスタ・ノード104が、WDファイル110における様々な定義を相応に変えるか定義するのにコントロール・プレーン情報にアクセスすることを含むことができる。例えば、クラウド・ホスト型マスタ・ノード104は、使用可能な計算リソース、展開される計算リソース、コンテナ情報、クラスタ情報、ゾーン情報、パーティション情報などであるがこれらに限定されるわけではない情報を取り出すことができる。この情報を使用して、クラウド・ホスト型マスタ・ノード104によって用いられるオーケストレーション・プロトコルに従って、WDファイル110における一部不変定義204または可変定義208あるいはその両方を相応に変更することができる。
【0041】
工程408は、顧客ホスト型ワーカ・ノード106における展開に向けて顧客ホスト型ワーカ・ノード106に更新WDファイル110を送信することを含む。言い換えれば、工程408は、ワークロードの展開がスケジューリングされる顧客ホスト型ワーカ・ノード106に変更済みWDファイル110を送信することによって、ワークロードをスケジューリングすることを含むことができる。
【0042】
図5は、本開示のいくつかの実施形態による、顧客ホスト型ワーカ・ノード106においてWDファイル110を展開させる方法500例のフローチャートを示す。実施形態によっては、方法500は、顧客ホスト型ワーカ・ノード106、あるいは異なる構成のハードウェアおよび/またはソフトウェアによって実施される。実施形態によっては、方法500は、方法400の後に行われる。
【0043】
工程502は、顧客ホスト型マスタ・ノード106において、クラウド・ホスト型マスタ・ノード104からのWDファイル110を受信することを含む。WDファイル110には、1つまたは複数の不変定義200、1つまたは複数の一部不変提示204、および1つまたは複数の可変定義208が含まれ得る。1つまたは複数の不変定義200は、顧客102によって定義され、暗号化スキーム202に従って暗号化され得る。1つまたは複数の一部不変定義204は、顧客102によって定義され、それぞれの一部不変定義204には、同じく顧客102によって定義されるそれぞれの事前定義された範囲206を関連付けることができる。実施形態によっては、1つまたは複数の一部不変定義204は、クラウドマスタ・ノード104によって更新値に変更される。1つまたは複数の可変定義208は、顧客102によって元々定義され、1つまたは複数の可変定義208はまた、クラウド・ホスト型マスタ・ノード104によって、クラウド・ホスト型マスタ・ノード104によって選ばれた如何なる値にも更新され得る。
【0044】
工程504は、WDファイル110における不変定義200を解読することを含む。不変定義200を解読することは、顧客102と顧客ホスト型ワーカ・ノード106との内密共有情報を利用して行われ、この場合、クラウド・ホスト型マスタ・ノード104は、内密共有情報にはアクセスしない。内密共有情報としては、不変定義200を解読するのに役立つ、例えば、パスワード、暗号化スキーム202に関わる情報、鍵(例えば、公開鍵、プライベート鍵、秘密鍵など)などの内密共有情報を挙げることができる。例えば、顧客ホスト型ワーカ・ノード106が、顧客ホスト型ワーカ・ノード106をリースしている、また不変定義102を解読するのに適している、顧客102に関連付けられた鍵(例えば、公開鍵)を保存することができる。別の例として、顧客ホスト型ワーカ・ノード106が、WDファイル110を受信するのを受けて、顧客102から公開鍵または秘密鍵を取り出すことができ、この場合、公開鍵または秘密鍵は、顧客102から顧客ホスト型ワーカ・ノード106に、VPN接続などのセキュアな接続を使用して送信され得る。実施形態によっては、工程504はまた、事前定義された範囲206が暗号化される実施形態では、一部不変定義204に関連付けられている事前定義された範囲206を解読する(例えば、図3の工程306の一環として)ことを含む。
【0045】
工程506は、一部不定定義204のそれぞれをそのそれぞれの事前定義された範囲206と比較することを含む。これまで述べた通り、事前定義された範囲206は、最小、最大、リスト、数値域などのパラメータとすることができる。工程508は、それぞれの一部不変定義204の値がその対応する事前定義された範囲206を満たすか判断することを含むことができる。
【0046】
一部不変定義204のうちのどの1つでも、その対応する事前定義された範囲206を満たさない値であれば(508:いいえ)、方法500が方法510に進み、事前定義された範囲206を満たさない1つまたは複数の一部不変定義204を訂正する。例えば、工程510は、WDファイル110を1つまたは複数の一部不変定義204における不相応な値の同定情報と共にクラウド・ホスト型マスタ・ノード104(または顧客102)に戻すことを含むことができる。別の例としては、工程510は、一番近い受け入れ可能な値にこの値を変えることによって、不相応な一部不変定義204を自動的に訂正することを含むことができる。この例では、この値が事前定義された範囲206で定義された最大値を超えると、工程510は、不適合値を最大値に変えることができる。欠陥がどのように訂正されるかにかかわらず、方法500では、工程506に戻って、一部不変定義204を事前定義された範囲206と比較する。
【0047】
一部不変定義204のそれぞれがそのそれぞれの事前定義された範囲206を満たす場合(508:はい)、方法500が工程512に進む。工程512は、解読され確認されたWDファイル110に従ってワークロードを実行することを含む。不変定義200が、クラウド・ホスト型ノード104によって変えることができず、一部不変定義204が、顧客102によって定義された事前定義された範囲206内でしかクラウド・ホスト型マスタ・ノードによって変えることができないものである限り、WDファイルを使用して、ワークロードを実行しセキュリティを高めることができるのが好都合である。それ故、本開示の態様は、クラウド・ホスト型マスタ・ノード104(延いては、仮想計算プロバイダ114)が、VPC112においてワークロードを展開させるように構成されたWDファイル110を破損させる攻撃ベクトルとして使用されることを制限する。
【0048】
図6は、本開示のいくつかの実施形態による、コンピュータ600例のブロック図を示す。様々な実施形態において、コンピュータ600は、図3図5のうちのいずれか1つまたは複数で記述した方法を行うこと、または図1および図2で述べた機能を具体化すること、あるいはその両方を実行することができる。実施形態によっては、コンピュータ600は、ネットワーク500を介して遠隔データ処理システムからプロセッサ実行可能な命令をダウンロードすることによって、これまで述べた方法および機能に関わる命令を受信する。他の実施形態において、コンピュータ600は、コンピュータ600によって与えられた命令に基づき、方法、または方法の一部を実行するように、これまで述べた方法または機能あるいはその両方についての命令をクライアントマシンに与える。実施形態によっては、コンピュータ600は、顧客102、クラウド・ホスト型マスタ・ノード104、または顧客ホスト型ワーカ・ノード106、あるいはその組合せのうちのいずれか1つまたは複数に組み込まれている(または、コンピュータ600と同様の機能がそれらに仮想的にプロビジョニングされている)。
【0049】
コンピュータ600は、メモリ625、ストレージ630、相互接続620(例えば、バス)、1つまたは複数のCPU605(本明細書ではプロセッサともされる)、I/Oデバイス・インターフェース610、I/Oデバイス612、およびネットワーク・インターフェース615を含む。
【0050】
各CPU605は、メモリ625またはストレージ630に格納されたプログラミング命令を取り出し、実行する。相互接続620は、プログラミング命令などのデータを、CPU605、I/Oデバイス・インターフェース7610、ストレージ630、ネットワーク・インターフェース615、メモリ625間で移動させるのに使用される。相互接続620は、1つまたは複数のバスを使用して具体化され得る。CPU605は、1つのCPUでも、複数のCPUでも、または様々な環境において複数の処理コアを有する1つのCPUであってもよい。実施形態によっては、CPU605は、デジタル・シグナル・プロセッサ(DSP)とすることができる。実施形態によっては、CPU605としては、1つまたは複数の3D集積回路(3DIC)(例えば、3Dウエハ-レベル・パッケージング(3DWLP)、3Dインターポーザベース・インテグレーション、3DスタックIC(3D-SIC)、モノリシック3D IC、3Dヘテロジニアス・インテグレーション、3Dシステム・イン・パッケージ(3DSiP)、またはパッケージ・オン・パッケージ(PoP)CPUインテグレーション、あるいはその組合せ)が挙げられる。メモリ625には、ランダム-アクセス・メモリ(例えば、スタティック・ランダム-アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、またはFlash)に相当するもの概ね含まれる。ストレージ630には、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス(SSD)、リムーバブル・メモリ・カード、光ストレージ、またはフラッシュ記憶素子に相当するものが概ね含まれる。代替の実施形態において、ストレージ630を、ストレージ・エリア-ネットワーク(SAN)デバイス、クラウドなど、ネットワーク・インターフェース615を介したI/Oデバイスデバイス・インターフェース610またはネットワーク650を介してコンピュータ600に接続されるデバイスに置き換えることができる。
【0051】
実施形態によっては、メモリ625が命令600を格納する。しかし、様々な実施形態において、命令660は、一部メモリ625に、一部ストレージ530に格納されるか、全部メモリ625にまたは全部ストレージ630に格納されるか、あるいはネットワーク・インターフェース615を介してネットワーク650上でアクセスされる。
【0052】
命令660は、図3図5の方法のいずれかのいずれか一部またはすべてを実施するための、あるいは図1および図2で述べた機能のいずれでも具体化するための、あるいはその両方を行うためのプロセッサ実行可能命令とすることができる。
【0053】
明示していないが、ストレージ630は、WDファイル110を含み得る。WDファイル110には、1つまたは複数の不変定義200(関連付けられた暗号化スキーム202と共に)、1つまたは複数の一部不変定義204(対応する事前定義された範囲206と共に)、または1つもしくは複数の可変定義208、あるいはその組合せなどであるがこれらに限定されるわけではない図2で述べた要素のいずれかまたはすべてが含まれ得る。
【0054】
様々な実施形態において、I/Oデバイス612としては、情報を提示し、入力を受信することができるインターフェースが挙げられる。例えば、I/Oデバイス612は、コンピュータ600と相互作用するユーザに情報を提示し、ユーザから入力を受信することができる。
【0055】
コンピュータ600は、ネットワーク・インターフェース615を介してネットワーク650に接続される。ネットワーク650としては、物理ネットワーク、無線ネットワーク、セルラ・ネットワークなどのネットワークを挙げることができる。
【0056】
本開示には、クラウド・コンピューティングに関する発明を実施するための形態が含まれているが、本明細書に挙げる教示の具体化がクラウド・コンピューティング環境に限定されるわけでない、ということを理解するべきである。そうではなく、本発明の実施形態は、現在知られているか今後開発される他の如何なる類のコンピューティング環境との絡みでも具体化されることが可能である。
【0057】
クラウド・コンピューティングとは、最低限の管理努力またはサービス・プロバイダとの相互作用で、素早くプロビジョニングされリリースされる構成可能なコンピューティング・リソースの共有プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)への都合の良いオンデマンドのネットワークアクセスを可能にするサービス配信モデルである。このクラウドモデルとしては、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを挙げることができる。
【0058】
特性は、以下の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サービス・プロバイダとの人間の相互作用を必要とすることなく自動的に、サーバタイムやネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス:この能力は、ネットワーク上で使用可能であり、不均一なシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進させる標準機構を通してアクセスされる。
リソース・プーリング:マルチテナント型モデルを使用して複数のコンシューマに対応するようにプロバイダのコンピューティング・リソースがプールされ、様々な物理リソースおよび仮想リソースが要求に応じて動的に割り当てられ、割り当てし直される。コンシューマには提供されたリソースの正確な場所に対する何の制御も知識もないが、より高いレベルの抽象化で場所(例えば、国、州、またはデータセンタ)を明示することができると言った場所非依存性の意味合いがある。
素早い順応性:能力が、場合によっては自動的に、迅速にスケールアウトするように素早くかつ弾力的にプロビジョニングされ、迅速にスケールインするように素早く解放される。コンシューマには、しばしば、プロビジョニングに使用可能な能力が無制限であるように見え、これは、いつでもいくらでも購入することができる。
測定サービス:クラウドシステムは、サービス(例えば、ストレージ、処理、帯域幅、および有効なユーザアカウント)の種類に相応しい何らかの抽象化レベルで能力を計量することを利用することによって、自動的にリソース使用を制御し、最適化する。リソース使用量が、利用対象サービス・プロバイダにもコンシューマにも透明性をもたらして、モニタされ、制御され、報告されることができる。
【0059】
サービスモデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS):コンシューマに与えられるこの能力は、クラウド基盤上で実行するプロバイダのアプリケーションを使用することである。このアプリケーションは、webブラウザ(例えば、webベースの電子メール)などのシンクライアント・インターフェースを通して、様々なクライアントデバイスからアクセス可能である。コンシューマは、ユーザ特有のアプリケーション構成設定が制限されること場合があることを除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力までも含む基礎となるクラウド基盤を管理することも制御することもない。
サービスとしてのプラットフォーム(PaaS):コンシューマに与えられるこの能力は、プロバイダに対応しているプログラミング言語およびツールを使用して作り出されたコンシューマ作成のまたはコンシューマ取得のアプリケーションをクラウド基盤上で展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド基盤を管理することも制御することもないが、展開したアプリケーション、また場合によっては、アプリケーションホスト型環境構成を制御する。
サービスとしてのインフラストラクチャ(IaaS):コンシューマに与えられるこの能力は、コンシューマが、オペレーティング・システムおよびアプリケーションを含んでもよい任意のソフトウェアを展開し、実行させることができる、処理、ストレージ、ネットワークなどの基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎となるクラウド基盤を管理することも制御することもないが、オペレーティング・システム、ストレージ、展開したアプリケーションを制御し、また場合によっては、選択ネットワーキング・コンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0060】
展開モデルは、以下の通りである。
プライベート・クラウド:このクラウド基盤は、1つの組織のためにのみ運用される。クラウド基盤は、この組織や第三者によって管理されてもよく、構内にでも構外にでもあってもよい。
コミュニティ・クラウド:このクラウド基盤は、いくつかの組織によって共有され、共通の懸念(例えば、任務、セキュリティ要件、方針、およびコンプライアンス配慮)を抱える具体的なコミュニティを支える。このクラウド基盤は、組織や第三者によって管理されてもよく、構内にでも構外にでもあってもよい。
パブリック・クラウド:このクラウド基盤は、一般大衆や大規模産業グループが使用できるように作られ、クラウド・サービスを販売する組織が所有する。
ハイブリッド・クラウド:このクラウド基盤は、2つ以上のクラウド(プライベート・クラウド、コミュニティ・クラウド、またはパブリック・クラウド)の複合体であり、唯一の実体を維持するが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷バランシング用のクラウド・バースティング)を可能にする標準化技術または専有技術によって互いに結び付いている。
【0061】
クラウド・コンピューティング環境は、ステートレス化、低結合、モジュール化、および意味的相互運用性に的を絞るサービス指向型である。クラウド・コンピューティングの核心には、相互接続ノードネットワークを含む基盤がある。
【0062】
ここで図7を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。見ての通り、クラウド・コンピューティング環境50には、1つまたは複数のクラウド・コンピューティング・ノード10が含まれ、例えば、携帯情報端末(PDA)もしくはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスは、このコンピューティング・ノード10と通信することができる。このノード10は、互いに情報をやり取りすることができる。ノード10は、物理上でも仮想上でも、これまで述べたプライベート・クラウド、コミュニティ・クラウド、もしくはハイブリッド・クラウド、またはその組合せなどの1つまたは複数のネットワークにおいて、グループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカル・コンピューティング・デバイス上でリソースを維持しなくても済む、サービスとしてのインフラストラクチャ、サービスとしてのプラットフォーム、またはサービスとしてのソフトウェア、あるいはその組合せを提供することができる。図7に示すこの種のコンピューティング・デバイス54A~Nは、単に例示を意図しており、コンピューティング・ノード10およびクラウド・コンピューティング環境50が如何なる類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方の上で如何なる類のコンピュータ化デバイスとも通信することができる(例えば、webブラウザを使用して)ことが理解されるだろう。
【0063】
ここで図8を参照すると、クラウド・コンピューティング環境50(図7)によって与えられる一連の機能抽象化層が示されている。図8に示す構成要素、層、および機能が単に例示を意図しており、本発明の実施形態がそれに限定されるわけではない、ということを前もって理解すべきである。描写の通り、以下の層と対応する機能を提供する。
【0064】
ハードウェアおよびソフトウェア層60としては、ハードウェア・コンポーネントおよびソフトウェアコンポーネントが挙げられる。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、およびネットワークとネットワーキング・コンポーネント66が挙げられる。実施形態によっては、ソフトウェアコンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68が挙げられる。
【0065】
仮想化層70は、抽象化層をもたらし、この層から、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション・オペレーティングシステム74、および仮想クライアント75と言った、仮想エンティティの例がもたらされ得る。
【0066】
ある例では、管理層80は、以下に述べる機能をもたらすことができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを行うのに利用されるコンピューティング・リソースなどのリソースのダイナミック・プロキュアメントをもたらす。メータリング・プライシング82は、リソースがクラウド・コンピューティング環境内で利用されるのに従った原価管理と、これらのリソースの消費に対する課金および請求書作成とをもたらす。ある例では、これらのリソースとしては、アプリケーションソフトウェアライセンスを挙げることができる。セキュリティにより、クラウド・コンシューマおよびタスクに対する識別情報確認がもたらされ、データなどのリソースに対する保護も与えられる。ユーザポータル83によって、コンシューマおよびシステム管理者がクラウド・コンピューティング環境にアクセスできるようになる。サービスレベル管理84により、必要なサービスレベルが満たされるようなクラウド・コンピューティング・リソース割り当ておよび管理がもたらされる。サービスレベル合意書(SLA:Service Level Agreement)プランニング・フルフィルメント85により、今後の要件がSLAに従って見込まれるクラウド・コンピューティング環境に対する事前合意がもたらされ、クラウド・コンピューティング環境のプロキュアメントがもたらされる。実施形態によっては、管理層80としては、顧客102に、WDファイル110において不変定義、一部不変定義、または可変定義、あるいはその組合せを作り出すことを可能にさせる機能を挙げることができる。
【0067】
ワークロード層90は、クラウド・コンピューティング環境が利用される機能の例をもたらす。この層からもたらされるワークロードおよび機能の例としては、写像・ナビゲーション91、ソフトウェア展開・ライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、およびセキュアなワークロード構成96が挙げられる。
【0068】
本発明の実施形態は、あらゆる技術上可能な詳細統合レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せである場合がある。コンピュータ・プログラム製品としては、プロセッサに、本発明の態様を実施させるコンピュータ可読プログラム命令を格納しているコンピュータ可読記憶媒体(複数可)を挙げることができる。
【0069】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用対象の命令を保持し、格納することができる有形デバイスである場合がある。コンピュータ可読記憶媒体は、例えば、電子記憶素子、磁気記憶素子、光記憶素子、電磁記憶素子、半導体記憶素子、またはその適した如何なる組合せであってもよいが、これらに限定されるわけではない。コンピュータ可読記憶媒体の非包括的なより具体的な例リストには、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、またパンチ-カードや、命令が記録されている溝内の隆起構造体などの機械式符号化デバイス、およびその適切な如何なる組合せも含まれる。コンピュータ可読記憶媒体は、本明細書で使用する際、電波などの自由に伝播する電磁波、導波路などの伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通る光パルス)、または電線を通して伝送される電気信号などの一時的な信号としては本来構成されていない。
【0070】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワークを介して、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部記憶素子に、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各コンピューティング/処理デバイスにあるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、このコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への格納に向けて転送する。
【0071】
本発明の工程を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロコード、ファームウェア命令、状態-設定データ、集積回路に関する構成データ、または、Smalltalk(R)、C++などオブジェクト指向プログラミング言語と、「C」プログラミング言語などのプログラミング言語などの手続プログラミング言語と、を含む、1つまたは複数のプログラミング言語の如何なる組合せで書かれるソースコードでもオブジェクトコードであってよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータ上ですべて実行されても、ユーザのコンピュータ上で一部実行されても、また一部ユーザのコンピュータ上で、一部リモート・コンピュータ上で実行されても、すべてリモート・コンピュータもしくはリモート・サーバ上で実行されてもよい。後者の場合、リモート・サーバは、ローカル・エリア・ネットワーク(LAN)や広域ネットワーク(WAN)を含む如何なる類のネットワークでも通してユーザのコンピュータに接続され、または外部コンピュータに接続され得る(例えば、インターネット・サービス・プロバイダを使用しているインターネットを通して)。実施形態によっては、例えば、プログラマブル・ロジック回路機構、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機構は、本開示の態様を行うために、コンピュータ可読プログラム命令の状態情報を活かして電子回路機構をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
【0072】
本発明の態様については、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して述べている。フローチャート図またはブロック図あるいはその両方の各ブロック、またフローチャート図またはブロック図あるいはその両方のブロックの組合せがコンピュータ可読プログラム命令によって具体化される、ということが分かるであろう。
【0073】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を格納しているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
【0074】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを作り出すべく、コンピュータ、他のプログラム可能な装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0075】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品のあり得る実装形態のアーキテクチャ、機能、および工程を示す。この点では、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または指定された論理機能を具体化するための1つまたは複数の実行可能命令を含む命令のサブセットを表す。例えば、連続して示される2つのブロックは、関わる機能によっては、実際には、ほぼ同時に実行されてもよく、またはこれらのブロックが、逆の順番で実行される場合があってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、またブロック図またはフローチャート図あるいはその両方のブロック組合せは、指定された機能や作用を果たす専用ハードウェアベースのシステムによって実装されるし、または専用ハードウェア命令とコンピュータ命令との組合せを実行する、専用ハードウェアベースのシステムによって実装される、ということにも気付くであろう。
【0076】
プロセス・ソフトウェア(例えば、図6の命令660に格納された命令のいずれか、または図3図5に関して述べた方法の如何なる一部、もしくは図1および図2で述べた機能のいずれか、もしくはその両方を行うように構成された如何なるソフトウェア、あるいはその両方)が、それを直に手作業でクライアント、サーバ、およびプロキシ・コンピュータに、CD、DVDなどの記憶媒体に読み込むことを経て、読み込みことによって展開されることは理解されるが、プロセス・ソフトウェアはまた、プロセス・ソフトウェアを中央サーバまたは中央サーバ群に送信することによってコンピュータ・システムに自動でまたは半自動で展開され得る。次に、このプロセス・ソフトウェアは、プロセス・ソフトウェアを実行させることになるクライアント・コンピュータにダウンロードされる。代替として、プロセス・ソフトウェアは、電子メールを経てクライアントシステムに直に送信される。次に、プロセス・ソフトウェアは、ディレクトリにプロセス・ソフトウェアをデタッチするプログラム命令セットを実行させることによって、ディレクトリにデタッチされるか、ディレクトリにロードされる。別の代替形態は、プロセス・ソフトウェアを直にクライアント・コンピュータ・ハードドライブ上のディレクトリに送信することである。プロキシサーバがある場合、このプロセスでは、プロキシサーバ・コードを選択し、どのコンピュータにプロキシサーバ・コードを置くか判断し、このプロキシサーバ・コードを送信し、次にプロキシサーバ・コードをプロキシ・コンピュータにインストールする。プロセス・ソフトウェアは、プロキシサーバに送信されるようになり、それにより、プロキシサーバに格納されることになる。
【0077】
本発明の実施形態は、クライアント企業、非営利団体、政府機関、内部組織構造体などとのサービス契約の一環としてももたらされ得る。このような実施形態としては、本明細書に記載の方法の一部またはすべてを行うようにコンピュータ・システムを構成することと、方法の一部またはすべてを実施するソフトウェア、ハードウェア、およびwebサービスを展開することとを挙げることができる。このような実施形態は、クライアントの運用を分析し、分析に応答して推奨事項を作成し、推奨事項の一部を具体化するシステムを立ち上げることと、システムをその時あるプロセスおよび基盤に組み込むことと、システムの使用を計量することと、システムのユーザに費用を割り振ることと、システムの使用に対して課金し、請求し(例えば、請求書を作成する)、それともシステムの使用に対して支払いを受け取ることとを含むことができる。
【0078】
本明細書で使用する専門用語は、単に特定の実施形態を記述するためのものであり、様々な実施形態を限定することを意図するものではない。本明細書で使用する際、文脈上、はっりきそうではないことが分かる場合を除き、「a」、「an」、「the」と言った単数形は、複数形にも及ぶものであることを意図するものである。また、「含む(includes)」または「含んでいる(including)」あるいはその両方と言った用語は、本明細書で使用される際、述べた特徴、整数、ステップ、工程、要素、構成要素、またはそのグループ、あるいはその組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、工程、要素、構成要素、またはそのグループ、あるいはその組合せの存在または追加を除外するものではない。様々な実施形態の実施形態例のこれまでの詳細な説明では、様々な実施形態が実施される具体的な実施形態例の実例として示されている、実施形態の一部を成す、添付図面(同じ番号が同じ要素に相当する)を参照した。これらの実施形態については、当業者が実施形態を実施することができるように十分詳しく説明したが、その様々な実施形態の範囲を外れない限り、それ以外の実施形態が使用されてもよく、論理上の変更、機械上の変更、電気上の変更などの変更がなされてもよい。これまでの説明では、様々な実施形態を十分に理解できるように、多くの特定の詳細を明示した。しかし、様々な実施形態は、これらの特定の詳細がなくても実施され得る。他の例では、良く知られている回路、構造、および技術は、実施形態が不明瞭にならないように詳しくは示していない。
【0079】
本明細書中で使用する際、「実施形態」という語の様々な例は、必ずしも、同じ実施形態のことではないが、同じこともあり得る。本明細書に図示するか記述した如何なるデータおよびデータ構造も、単なる例に過ぎず、他の実施形態では、様々なデータ量、データ型、フィールド、フィールド数とフィールド型、フィールド名、列数と列型、レコード、エントリ、またはデータ機構が使用され得る。さらに、別個のデータ構造が必要でなくてもよいように、如何なるデータも、論理回路と組み合わせられてもよい。したがって、これまでの詳細な説明は、限定的な意味合いで取るべきではない。
【0080】
本開示の様々な実施形態の説明は、例示する目的で提示しており、本開示の実施形態を網羅することも限定することも意図していない。当業者であれば、記載の実施形態の範囲および思想を外れることなく、多くの変更形態や変形形態が明らかになるであろう。本明細書で使用する専門用語は、実施形態の原理、市場で見られる技術を凌ぐ実用化または技術上の向上を最もよく説明するように、または他の当業者が本明細書に開示の実施形態を理解することができるように選択した。
【0081】
本開示では、特定の実施形態に関して述べてきたが、当業者であればその改変形態や変更形態が明らかになる、ということが予期される。したがって、添付の特許請求の範囲が、本開示の真の思想および範囲に入るような改変形態および変更形態のすべてに及ぶとして解釈される、ということを意図している。
【0082】
本開示で述べた如何なる利点も、利点の例であり、本開示の実施形態には、本開示の思想および範囲に留まりながら、述べた利点のうち任意の利点をすべて実現するもの、一部を実現するもの、または何も実現しないものがあり得る。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2022-05-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理による方法であって、
マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することであって、前記ワークロード定義ファイルが、
暗号化された不変定義と、
事前定義された値の範囲、および前記マスタ・ノードにより変更される第1の値、を含む一部不変定義と、
前記マスタ・ノードにより変更される第2の値を含む可変定義と
を含む、前記受信することと、
前記ワーカ・ノードによって、前記暗号化された不変定義を解読して、解読された不変定義を生成することと、
前記ワーカ・ノードによって、前記事前定義された値の範囲を前記第1の値が満たすことを確認することと、
前記暗号化された不変定義を解読し、前記事前定義された値の範囲を前記第1の値が満たすことを確認したことに応答して、仮想コンピューティング環境において前記ワークロード定義ファイルに基づくワークロードを実行することと
を含む、方法。
【請求項2】
前記ワーカ・ノードが仮想プライベート・クラウド(VPC)に常駐し、前記マスタ・ノードが、複数の仮想プライベート・クラウドを管理するコントロール・プレーンに常駐する、請求項1に記載の方法。
【請求項3】
前記暗号化された不変定義が、前記マスタ・ノードによって変えることができない、請求項1に記載の方法。
【請求項4】
前記暗号化された不変定義がコンテナ・イメージ名を含む、請求項1に記載の方法。
【請求項5】
前記暗号化された不変定義が、前記ワーカ・ノードをリースしている顧客の公開鍵を使用して暗号化される、請求項1に記載の方法。
【請求項6】
前記一部不変定義がメモリ割り当てを含む、請求項1に記載の方法。
【請求項7】
前記可変定義がコンテナ・インスタンス識別子を含む、請求項1に記載の方法。
【請求項8】
システムであって、
プロセッサと、
前記プロセッサによって実行されると前記プロセッサに方法を行わせるように構成されているプログラム命令を格納するコンピュータ可読記憶媒体と
を備え、前記方法が、
マスタ・ノードからのワークロード定義ファイルをワーカ・ノードにおいて受信することであって、前記ワークロード定義ファイルが、
暗号化された不変定義と、
事前定義された値の範囲、および前記マスタ・ノードにより変更される第1の値、を含む一部不変定義と、
前記マスタ・ノードにより変更される第2の値を含む可変定義と
を含む、前記受信することと、
前記ワーカ・ノードによって、前記暗号化された不変定義を解読して、解読された不変定義を生成することと、
前記ワーカ・ノードによって、前記事前定義された値の範囲を前記第1の値が満たすことを確認することと、
前記暗号化された不変定義を解読し、前記事前定義された値の範囲を前記第1の値が満たすことを確認したことに応答して、仮想コンピューティング環境において前記ワークロード定義ファイルに基づくワークロードを実行することと
を含む、システム。
【請求項9】
前記ワーカ・ノードが仮想プライベート・クラウド(VPC)に常駐し、前記マスタ・ノードが、複数の仮想プライベート・クラウドを管理するコントロール・プレーンに常駐する、請求項8に記載のシステム。
【請求項10】
前記暗号化された不変定義が、前記マスタ・ノードによって変えることができない、請求項8に記載のシステム。
【請求項11】
前記暗号化された不変定義が、コンテナ・イメージ名を含む、請求項8に記載のシステム。
【請求項12】
前記暗号化された不変定義が、前記ワーカ・ノードをリースしている顧客の公開鍵を使用して暗号化される、請求項8に記載のシステム。
【請求項13】
前記一部不変定義がメモリ割り当てを含む、請求項8に記載のシステム。
【請求項14】
前記可変定義がコンテナ・インスタンス識別子を含む、請求項8に記載のシステム。
【請求項15】
請求項1~7の何れか1項に記載の方法をコンピュータに実行させる、コンピュータ・プログラム
【請求項16】
請求項15に記載の前記コンピュータ・プログラムをコンピュータ可読記憶媒体に記憶した、記憶媒体
【国際調査報告】