(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-16
(54)【発明の名称】コンピューティング環境内のアプリケーション展開
(51)【国際特許分類】
G06F 8/60 20180101AFI20240208BHJP
【FI】
G06F8/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023541568
(86)(22)【出願日】2022-01-18
(85)【翻訳文提出日】2023-07-07
(86)【国際出願番号】 CN2022072531
(87)【国際公開番号】W WO2022179342
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-23
(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)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】グアン、ズーリー
(72)【発明者】
【氏名】グオ、ヤンフェン
(72)【発明者】
【氏名】ファン、ジーク
(72)【発明者】
【氏名】ハン、グオリャン
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AB13
(57)【要約】
一手法では、プロセッサが、新規顧客リソース(CR)ファイルを検出したことに応答して、コンピューティング環境内に複数の機能展開コンポーネントを展開するようにコンピューティング環境に要求し、ここで、CRファイルが、アプリケーションの複数の機能の情報を示し、複数の機能展開コンポーネントが、コンピューティング環境内に複数の機能コンポーネントを展開するようにコンピューティング環境に要求し、複数の機能コンポーネントが、アプリケーションの複数の機能を実行し、プロセッサは、複数の機能コンポーネントのそれぞれがコンピューティング環境内に展開されていると判定し、複数の機能コンポーネントのそれぞれがコンピューティング環境内に展開されていると判定したことに応答して、複数の展開された機能展開コンポーネントのそれぞれを削除するようにコンピューティング環境に要求する。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
新規顧客リソース(CR)ファイルを検出したことに応答して、
1つまたは複数のプロセッサによって、コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
1つまたは複数のプロセッサによって、前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、1つまたは複数のプロセッサによって、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を含む方法。
【請求項2】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項1に記載の方法。
【請求項3】
更新済みCRファイルを検出したことに応答して、
1つまたは複数のプロセッサによって、前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
1つまたは複数のプロセッサによって、前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
1つまたは複数のプロセッサによって、前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、1つまたは複数のプロセッサによって、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記アプリケーションの前記複数の機能間の依存関係が前記クラウド・コンピューティング環境内で維持される、請求項3に記載の方法。
【請求項5】
前記複数の機能展開コンポーネントのそれぞれが、
1つまたは複数のプロセッサによって、対応する機能の情報を受け取ることと、
1つまたは複数のプロセッサによって、前記アプリケーションの前記複数の機能間の前記依存関係から、前記対応する機能の少なくとも1つの従属機能を取得することと、
1つまたは複数のプロセッサによって、前記少なくとも1つの従属機能に対応する少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定することと、
前記少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定したことに応答して、1つまたは複数のプロセッサによって、受け取った情報に基づいて、前記クラウド・コンピューティング環境内に前記対応する機能を実行するための対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することと
によって、前記対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求する、請求項4に記載の方法。
【請求項6】
各機能コンポーネントのステータスが前記クラウド・コンピューティング環境内で維持され、前記複数の機能展開コンポーネントのそれぞれが、さらに、
対応する機能を実行するための対応する機能コンポーネントが前記クラウド・コンピューティング環境内に展開されたことに応答して、1つまたは複数のプロセッサによって、前記対応する機能コンポーネントのステータスを更新すること
によって、前記対応する機能コンポーネントを展開する、請求項5に記載の方法。
【請求項7】
各判定が、前記クラウド・コンピューティング環境内で維持される少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項6に記載の方法。
【請求項8】
各判定が、前記クラウド・コンピューティング環境によって提供されるアプリケーション・プログラミング・インターフェース(API)を使用して、前記クラウド・コンピューティング環境に対して少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項6に記載の方法。
【請求項9】
コンピュータ・プログラム製品であって、
1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令とを含み、前記プログラム命令が、
新規顧客リソース(CR)ファイルを検出したことに応答して、
コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を行うためのプログラム命令
を含む、コンピュータ・プログラム製品。
【請求項10】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
更新済みCRファイルを検出したことに応答して、
前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
を行うための、前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令
をさらに含む、請求項10に記載のコンピュータ・プログラム製品。
【請求項12】
前記アプリケーションの前記複数の機能間の依存関係が前記クラウド・コンピューティング環境内で維持される、請求項11に記載のコンピュータ・プログラム製品。
【請求項13】
前記複数の機能展開コンポーネントのそれぞれが、
対応する機能の情報を受け取ることと、
前記アプリケーションの前記複数の機能間の前記依存関係から、前記対応する機能の少なくとも1つの従属機能を取得することと、
前記少なくとも1つの従属機能に対応する少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定することと、
前記少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定したことに応答して、受け取った情報に基づいて、前記クラウド・コンピューティング環境内に前記対応する機能を実行するための対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することと
によって、前記対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求する、請求項12に記載のコンピュータ・プログラム製品。
【請求項14】
各機能コンポーネントのステータスが前記クラウド・コンピューティング環境内で維持され、前記複数の機能展開コンポーネントのそれぞれが、さらに、
対応する機能を実行するための対応する機能コンポーネントが前記クラウド・コンピューティング環境内に展開されたことに応答して、前記対応する機能コンポーネントのステータスを更新すること
によって、前記対応する機能コンポーネントを展開する、請求項13に記載のコンピュータ・プログラム製品。
【請求項15】
各判定が、前記クラウド・コンピューティング環境内で維持される少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項14に記載のコンピュータ・プログラム製品。
【請求項16】
各判定が、前記クラウド・コンピューティング環境によって提供されるアプリケーション・プログラミング・インターフェース(API)を使用して、前記クラウド・コンピューティング環境に対して少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項14に記載のコンピュータ・プログラム製品。
【請求項17】
コンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令とを含み、前記プログラム命令が、
新規顧客リソース(CR)ファイルを検出したことに応答して、
コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を行うためのプログラム命令
を含む、コンピュータ・システム。
【請求項18】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項17に記載のコンピュータ・システム。
【請求項19】
更新済みCRファイルを検出したことに応答して、
前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
を行うための、前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令
をさらに含む、請求項18に記載のコンピュータ・システム。
【請求項20】
前記アプリケーションの前記複数の機能間の依存関係が前記クラウド・コンピューティング環境内で維持される、請求項19に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にはクラウド・コンピューティング技術の分野に関し、より詳細には、クラウド・コンピューティング環境内のアプリケーション展開に関する。
【背景技術】
【0002】
Kubernetesまたは他のクラウド・コンピューティング環境などのクラウド・コンピューティング環境が、現在広く使用されている。ますます多くの数のアプリケーションをクラウド・コンピューティング環境内に展開する必要があり得る。さらに、こうしたアプリケーションによって使用される情報技術(IT)アーキテクチャも現代のクラウド・コンピューティング環境に移動され得る。
【0003】
現在の解決策の欠点は、単一のオペレータおよび単一の顧客リソースが使用されることである。複数のスレッドがサポートされず、ロール(role)が順次処理され、その結果、展開に時間がかかる。
【発明の概要】
【0004】
本発明のいくつかの実施形態によれば、コンピュータ実装方法、コンピュータ・プログラム製品、およびコンピュータ・システムが提供される。プロセッサが、新規顧客リソース(CR)ファイルを検出したことに応答して、コンピューティング環境内に複数の機能展開コンポーネントを展開するようにコンピューティング環境に要求し、ここで、CRファイルが、アプリケーションの複数の機能の情報を示し、複数の機能展開コンポーネントが、コンピューティング環境内に複数の機能コンポーネントを展開するようにコンピューティング環境に要求し、複数の機能コンポーネントが、アプリケーションの複数の機能を実行し、プロセッサは、複数の機能コンポーネントのそれぞれがコンピューティング環境内に展開されていると判定し、複数の機能コンポーネントのそれぞれがコンピューティング環境内に展開されていると判定したことに応答して、複数の展開された機能展開コンポーネントのそれぞれを削除するようにコンピューティング環境に要求する。そのような手法は、並列実行と、展開のための時間の削減という利点を有する。
【0005】
任意選択で、本発明の実施形態は、コンピューティング環境がクラウド・コンピューティング環境である手法を含む。そのような手法は、クラウド・コンピューティング環境内の並列実行および展開時間の削減を可能にするという利点を有する。
【0006】
添付の図面での本開示のいくつかの実施形態のより詳細な説明を通じて、本開示の上記および他の目的、特徴、および利点がより明らかとなるであろう。ここで、同一の参照番号は、概して本開示の実施形態での同一のコンポーネントを指す。図は、当業者が詳細な説明と共に本開示を理解するのを促進する際に見やすくするためのものであるので、図面の様々な特徴は原寸に比例しない。図面は以下で直ちに論じられる。
【図面の簡単な説明】
【0007】
【
図1】本開示のいくつかの実施形態によるクラウド・コンピューティング・ノードを示す図である。
【
図2】本開示のいくつかの実施形態によるクラウド・コンピューティング環境を示す図である。
【
図3】本開示のいくつかの実施形態による抽象化モデル層を示す図である。
【
図4】本開示のいくつかの実施形態による、アプリケーションを展開するためのクラウド・コンピューティング環境の概略図である。
【
図5】本開示のいくつかの実施形態による、クラウド・コンピューティング環境内に展開すべき例示的アプリケーションと、アプリケーション内に含まれる機能間の対応する依存関係とを示す図である。
【
図6】本開示のいくつかの実施形態による、例示的アプリケーションについての例示的顧客リソース(CR)ファイルを示す図である。
【
図7】本開示のいくつかの実施形態による、アプリケーションを展開するためのクラウド・コンピューティング環境の概略図である。
【
図8】本開示のいくつかの実施形態による、アプリケーションを展開するためのクラウド・コンピューティング環境の抽象概略図(abstract schematic diagram)である。
【
図9】本開示のいくつかの実施形態による、クラウド・コンピューティング環境内のアプリケーション展開のための手法のフローチャートを示す図である。
【
図10】本開示のいくつかの実施形態による、
図9に示される手法の一部としての手法のフローチャートを示す図である。
【発明を実施するための形態】
【0008】
次に、添付の図を参照しながら、本発明の実施形態が詳細に説明される。
【0009】
添付の図面を参照する以下の説明は、特許請求の範囲によって定義される発明の例示的実施形態およびその均等物の包括的な理解を助けるために与えられる。以下の説明は、その理解を助けるための様々な特定の詳細を含むが、こうしたものは例示的なものに過ぎないと見なされるべきである。したがって、本発明の範囲から逸脱することなく、本明細書で説明される実施形態の様々な変形および変更が行われ得ることを当業者は理解されよう。さらに、周知の機能および構造の説明が、明快および簡潔のために省略され得る。
【0010】
以下では、本発明の様々な実施形態に対する参照が行われる。しかしながら、本発明は特定の記載の実施形態に限定されないことを理解されたい。それどころか、以下の特徴および要素の任意の組合せが、様々な実施形態に関係するか否かに関わらず、本発明を実装および実施するために企図される。さらに、実施形態は、他の可能な解決策または従来技術あるいはその両方に勝る利点を達成し得るが、特定の利点が所与の実施形態によって達成されるか否かは、限定するものではない。したがって、以下の態様、特徴、実施形態、および利点は例示的なものに過ぎず、添付の特許請求の範囲で明示的に記載されている場合を除いて、特許請求の範囲の要素または限定とは見なされない。同様に、「本発明」に対する参照は、本明細書で開示される何らかの発明の主題の一般化と解釈されないものとし、添付の特許請求の範囲で明示的に記載されている場合を除いて、特許請求の範囲の要素または限定とは見なされないものとする。
【0011】
以下の説明および特許請求の範囲で使用される用語および語は、書誌学的意味に(bibliographical meaning)限定されず、本発明の明白で一貫した理解を可能にするために使用されるに過ぎない。したがって、本発明の例示的実施形態の以下の説明が、例示のために与えられるに過ぎず、添付の特許請求の範囲によって定義される発明およびその均等物を限定するためのものではないことは当業者には明らかなはずである。
【0012】
単数形「1つの(a)」、「ある(an)」、および「その(the)」は、文脈が別段に明白に規定しない限り、複数の指示対象(referent)を含むことを理解されたい。したがって、たとえば、「1つのコンポーネントの表面(a component surface)」に対する参照は、文脈が別段に明白に規定しない限り、そのような表面のうちの1つまたは複数に対する参照を含む。
【0013】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在周知の、または後に開発される任意の他のタイプのコンピューティング環境と共に実装することができる。
【0014】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングされ、解放され得る、構成可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0015】
特徴は以下の通りである。
【0016】
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人間の対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングし得る。
【0017】
幅広いネットワーク・アクセス:機能がネットワークを介して利用可能であり、異種シンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を通じてアクセスされる。
【0018】
リソース・プーリング:マルチ・テナント・モデルを使用して複数の消費者にサービスするためにプロバイダのコンピューティング・リソースがプールされ、様々な物理および仮想リソースが、要求に従って動的に割当ておよび再割当てされる。消費者は一般に、提供されるリソースの厳密な位置に関する制御または知識を有さないが、より高いレベルの抽象化(たとえば、国、州、またはデータセンタ)で位置を指定することができ得るという点で、ある意味で位置独立性がある。
【0019】
迅速な拡張性(rapid elasticity):機能が、迅速かつ弾力的に、あるケースでは自動的にプロビジョニングされて迅速にスケールアウトされ、迅速に解放されて迅速にスケールインされ得る。消費者にとって、プロビジョニングのために利用可能な機能はしばしば無制限であるように見え、いつでも任意の量を購入することができる。
【0020】
測定されるサービス(measured service):クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)にとって適切な何らかのレベルの抽象化の計量機能(metering capability)を活用することによってリソース使用を自動的に制御し、最適化する。リソース使用量が監視され、制御され、レポートされ得、利用されるサービスのプロバイダと消費者の両方にとって透明性が実現される。
【0021】
サービス・モデルは以下の通りである。
【0022】
ソフトウェア・アズ・ア・サービス(SaaS(Software as a Service)):消費者に提供される機能は、クラウド・インフラストラクチャ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースのeメール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基礎となるクラウド・インフラストラクチャを管理または制御しないが、可能性のある例外は、限定されたユーザ特有のアプリケーション構成設定である。
【0023】
プラットフォーム・アズ・ア・サービス(PaaS(Platform as a Service)):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理または制御しないが、展開されるアプリケーション、および場合によってはアプリケーション・ホスティング環境構成に関する制御を有する。
【0024】
インフラストラクチャ・アズ・ア・サービス(IaaS(Infrastructure as a Service)):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本コンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る、任意のソフトウェアを展開および実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されるアプリケーションに関する制御、および場合によっては選択されたネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)の限定された制御を有する。
【0025】
展開モデルは以下の通りである。
【0026】
プライベート・クラウド:クラウド・インフラストラクチャが組織だけのために運用される。クラウド・インフラストラクチャは、組織または第3者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
【0027】
コミュニティ・クラウド:クラウド・インフラストラクチャがいくつかの組織によって共有され、共有される関心事(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第3者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
【0028】
パブリック・クラウド:クラウド・インフラストラクチャが、一般社会または大規模な産業グループに対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【0029】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または所有権を主張できる技術(たとえば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって互いに結び付けられる2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
【0030】
クラウド・コンピューティング環境は、ステートレスネス(statelessness)、低結合、モジュラリティ、およびセマンティック相互運用性(semantic interoperability)に焦点を当てることを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0031】
次に
図1を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書で説明される開示の実施形態の使用または機能の範囲に関する何らかの制限を示唆するものではない。それでも、クラウド・コンピューティング・ノード10は、実装可能であり、または前述の機能のいずれかを実施することが可能であり、あるいはその両方が可能である。
【0032】
クラウド・コンピューティング・ノード10では、コンピュータ・システム/サーバ12、または通信デバイスなどのポータブル電子デバイスがあり、コンピュータ・システム/サーバ12またはポータブル電子デバイスは、多数の他の汎用または専用コンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム/サーバ12と共に使用するのに適していることがある周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。
【0033】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行中の、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実施される、分散型クラウド・コンピューティング環境で実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む、ローカル・コンピュータ・システム記憶媒体とリモート・コンピュータ・システム記憶媒体の両方に配置され得る。
【0034】
図1に示されるように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12が汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントには、限定はしないが、1つまたは複数のプロセッサまたは処理装置16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18とが含まれ得る。
【0035】
バス18は、様々なバス・アーキテクチャのいずれかを使用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のうちのいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスが含まれる。
【0036】
コンピュータ・システム/サーバ12は通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能である任意の入手可能な媒体であり得、そのような媒体には、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体の両方が含まれる。
【0037】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ12は、他の取外し可能/取外し不能な揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単に例として、取外し不能な不揮発性磁気媒体(図示しておらず、通常は「ハード・ドライブ」と呼ばれる)から読み取り、それに書き込むための記憶システム34が設けられ得る。図示していないが、取外し可能な不揮発性磁気ディスク(たとえば、「フロッピィ・ディスク」)から読み取り、それに書き込むための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクから読み取り、それに書き込むための光ディスク・ドライブが設けられ得る。そのような場合、それぞれは、1つまたは複数のデータ媒体インターフェースによってバス18に接続され得る。以下でさらに図示され、説明されるように、メモリ28は、本開示の実施形態の機能を実施するように構成されるプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0038】
限定ではなく例として、プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、メモリ28内に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せは、ネットワーキング環境の実装を含み得る。プログラム・モジュール42は一般に、本明細書で説明される、本開示の実施形態の機能または方法あるいはその両方を実施する。
【0039】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信し得る。そのような通信は、入力/出力(I/O)インターフェース22を介して行われ得る。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般の広域ネットワーク(WAN)、または公衆ネットワーク(たとえば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信し得る。図示されるように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム/サーバ12と共に使用され得ることを理解されたい。限定はしないが、例には、マイクロコード、デバイス・ドライバ、冗長処理装置、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、データ・アーカイブ記憶システムなどが含まれる。
【0040】
次に
図2を参照すると、例示的クラウド・コンピューティング環境50が示されている。図示されるように、クラウド・コンピューティング環境50は、たとえば携帯情報端末(PDA)またはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどのクラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信し得る1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信し得る。ノード10は、前述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはそれらの組合せなどの1つまたは複数のネットワーク内に物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でそのためのリソースを維持する必要のないサービスとして提供することが可能となる。
図2に示されるコンピューティング・デバイス54A~54Nのタイプは例示的なものに過ぎないこと、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50が、(たとえば、ウェブ・ブラウザを使用して)任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信し得ることを理解されたい。
【0041】
次に
図3を参照すると、クラウド・コンピューティング環境50(
図2)によって提供される機能抽象化層のセットが示されている。
図3に示されるコンポーネント、層、および機能は例示的なものに過ぎず、本開示の実施形態はそれに限定されないことをあらかじめ理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0042】
ハードウェアおよびソフトウェア層60が、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0043】
仮想化層70が、仮想エンティティの以下の例が提供され得る抽象化層を提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
【0044】
一例として、管理層80が以下で説明される機能を与え得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的調達(dynamic procurement)を実現する。計量および価格設定(Metering and Pricing)82が、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡と、こうしたリソースの消費に対する課金またはインボイシング(invoicing)とを実現する。一例として、こうしたリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティが、クラウド消費者およびタスクについての識別検証、ならびにデータおよび他のリソースに対する保護を実現する。ユーザ・ポータル83が、消費者およびシステム管理者のためのクラウド・コンピューティング環境へのアクセスを実現する。サービス・レベル管理84が、必要とされるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割振りおよび管理を実現する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)計画および履行(planning and fulfilment)85が、SLAに従って、将来の必要が予想されるクラウド・コンピューティング・リソースの事前調整および調達を実現する。
【0045】
ワークロード層90が、クラウド・コンピューティング環境がそのために利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ解析処理94、トランザクション処理95、およびアプリケーション展開(application deployment)96が含まれる。
【0046】
アプリケーションは複数の機能(コンポーネント、サブシステムとも呼ばれる)を含み得る。現在は、ますます多くのサービス・プロバイダが、サービス・プロバイダのアプリケーションをクラウド・コンピューティング環境内に展開し、それによって、クラウド・コンピューティング環境上に展開されたアプリケーションがユーザによってアクセスされ得ることを望む。通常は、アプリケーションの機能は、クラウド・コンピューティング環境のコンテナ内に展開され得、展開された機能は、基本サービスとしてアクセスされ得るので、サービスまたはマイクロ・サービスとも呼ばれる。同一の名前空間/ネットワーク/UTS(UNIX(登録商標)Time Sharing)/PID(Process Identifier)を共有するコンテナのセット(ログ・コレクタ(log collector)、Gitファイル・フェッチャ(Git file fetcher)などを含む)が、Kubernetesなどのいくつかのクラウド・コンピューティング環境で使用される最小のスケジューリング可能なアトミック・ユニット(atomic unit)であるPOD内に含まれ得る。しかしながら、いくつかのクラウド・コンピューティング環境は、最小のスケジューリング可能なアトミック・ユニットとしてコンテナを使用し得る。
【0047】
図4は、アプリケーションを展開するための既存の例示的クラウド・コンピューティング環境400の概略図を示す。ここでは、コンテナは、クラウド・コンピューティング環境400内のコンテナ・インスタンスを意味し、コンテナ・インスタンスはイメージのインスタンスである。クラウド・コンピューティング環境内には多くのコンポーネントがあるが、この説明では本開示に関係するコンポーネントのみが考慮され、本開示に無関係の他のコンポーネントは無視されることを指摘しておく。Nが1より大きい整数であるとして、クラウド・コンピューティング環境400内に展開されるアプリケーションがN個の機能を含み得ると仮定する。
図4を参照すると、クラウド・コンピューティング環境400はマネージャ401を含み得、マネージャ401は、クラウド・コンピューティング環境400のための管理プラットフォームであり、少なくともコントローラ4011およびリポジトリ4012を含み得る。アプリケーションを展開するために、クラウド・コンピューティング環境400の管理者は、Kubernetes内のOperator(Kubernetesネイティブ・アプリケーションをパッケージングし、展開し、管理する方法)などのクラウド・コンピューティング環境400によってサポートされる任意の方法を使用して、アプリケーション展開コンテナ4021を含むアプリケーション展開POD402を展開し得る。言い換えれば、アプリケーション展開POD402が展開されるのと同時にアプリケーション展開コンテナが展開され、アプリケーション展開コンテナ4021はアプリケーション展開POD402内に含まれる。以後、コンテナを含むPODが展開されると述べるときは、PODが展開されると同時にコンテナが展開され、コンテナがPOD内に含まれることを意味する。
【0048】
顧客リソース(CR)ファイルがリポジトリ4012内に記憶され得、アプリケーションの各機能に対応する各コンテナについてのイメージ・ファイルの場所などの、アプリケーションの複数の機能の情報を示すために使用され得る。CRファイルは、クラウド・コンピューティング環境400内に展開されるべきアプリケーションのサービス・プロバイダの要求に基づいて、管理者によって書き込まれる。
【0049】
アプリケーション展開コンテナ4021は、CRモニタ4022という名前のコンポーネントを含み得、CRモニタ4022は、リポジトリ4012内のCRファイルを定期的に監視し得る。CRモニタ4022がCRファイルを検出したとき、CRモニタ4022は、CRファイルが新規CRファイルであるか、更新済みCRファイルであるか、それとも既存のCRファイルであるかを考慮せず、CRモニタ4022は、CRファイルについてアプリケーション展開コンテナ4021に直接的に通知し得る。次いで、アプリケーション展開コンテナ4021は、CRファイルにアクセスし、展開プロセスを開始し得る。それでも、アプリケーション展開コンテナ4021は、CRファイルが新規CRファイルであるか、更新済みCRファイルであるか、それとも既存のCRファイルであるかを考慮しない。展開プロセスの間、アプリケーション展開コンテナ4021は、アプリケーションのN個の機能に対応する、機能コンテナ404-1を含む機能POD403-1、…、機能コンテナ404-Nを含む機能POD403-Nを順番に展開するようにクラウド・コンピューティング環境400に要求し得る。議論しやすいように、機能POD403-1…403-Nは、集合的に、または個々に機能POD403と呼ばれ、機能コンテナ404-1…404-Nは、集合的に、または個々に機能コンテナ404と呼ばれる。アプリケーション展開コンテナ4021は、機能コンテナ404をそれぞれ含む機能POD403を展開するように要求するが、クラウド・コンピューティング環境400は、対応する機能コンテナ404を含む機能POD403を直接的に展開しない。その代わりに、クラウド・コンピューティング環境400は、対応する機能コンテナ404を含む機能POD403がクラウド・コンピューティング環境内に存在するかどうかをチェックし得る。存在しない場合、クラウド・コンピューティング環境400は、対応する機能コンテナ404を含む機能POD403を展開し得る。存在する場合、クラウド・コンピューティング環境400は、何らかの変更があるかどうか、すなわち、展開されるべき対応する機能コンテナ404を含む機能POD403が、クラウド・コンピューティング環境400内の対応する機能コンテナ404を含む、そうした既存の機能POD403と異なるかどうかを判定し得る。変更がある場合、クラウド・コンピューティング環境400は、対応する機能コンテナ404を含む機能POD403を再び展開してそうした既存の機能POD403を置き換え得、またはそうした既存の機能POD403についての変更を適用し得、その結果、クラウド・コンピューティング環境400内の対応する機能コンテナ404を含む機能POD403が更新される。しかしながら、変更がない場合、対応する機能コンテナ404を含む既存の機能POD403が要件を満たすことを意味し、クラウド・コンピューティング環境400は、それらを反復的に展開しない。
【0050】
図5は、クラウド・コンピューティング環境400内に展開されるべき気象情報アプリケーション(Weather Report Application)500という名前のアプリケーション、およびアプリケーション内に含まれる機能間の対応する依存関係の一例を示す。
図5を参照すると、気象情報アプリケーション500は以下の機能を含み得る:データベース501、レジスタ502、ユーザ管理503、気象クエリ(weather query)504、統計505、およびモニタ506。依存関係は以下の通りである:3つの機能、すなわちレジスタ502、ユーザ管理503、および気象クエリ504がデータベース501に依存し、2つの機能、すなわち統計505およびモニタ506がユーザ管理503に依存し、モニタ506は気象クエリ504にも依存する。
【0051】
図6は、
図5に示される気象情報アプリケーション500についての例示的CRファイルを示す。
図6では、ブロック601が、データベース501の情報を示すために使用され、ブロック602が、レジスタ502の情報を示すために使用され、ブロック603が、ユーザ管理503の情報を示すために使用され、ブロック604が、気象クエリ504の情報を示すために使用され、ブロック605が、統計505の情報を示すために使用され、ブロック606が、モニタ506の情報を示すために使用される。CRファイルは、展開されるべきすべての機能コンテナについてのイメージ・ファイルの場所を含む。管理者が
図6に示されるCRファイルを書き込んだ後、管理者は、クラウド・コンピューティング環境400内のマネージャ401のリポジトリ4012内にCRファイルを保存する。
【0052】
既存のクラウド・コンピューティング環境400では、アプリケーション展開コンテナ4021は、アプリケーションの機能を展開するとき、たとえば、対応するコンテナを含むそれぞれの機能PODを順番に展開するとき、こうした機能間の依存関係を考慮しない。たとえば、
図5に示されるアプリケーション500では、アプリケーション展開コンテナ4021が
図6に示されるCRファイルを検出した場合、アプリケーション展開コンテナ4021は、CRファイルにアクセスし、対応するコンテナを含む6つのPODを順番に、すなわちデータベース501、レジスタ502、ユーザ管理503、気象クエリ504、統計505、およびモニタ506のそれぞれの機能PODの順で展開するようにクラウド・コンピューティング環境400に要求し得る。データベース501、レジスタ502、ユーザ管理503、気象クエリ504、統計505、およびモニタ506の対応する機能コンテナを含むそれぞれの機能PODを展開するのに費やされるそれぞれの時間がT1、T2、T3、T4、T5、およびT6であると仮定すると、それぞれの機能PODの展開が順次的な順番であるので、こうした機能を展開するための合計時間はT=T1+T2+T3+T4+T5+T6である。アプリケーション内に多くの機能がある場合、アプリケーション展開に時間がかかることが判明し得る。
【0053】
さらに、既存のクラウド・コンピューティング環境400では、CRモニタ4022およびアプリケーション展開コンテナ4021は、リポジトリ内のCRファイルが新規CRファイルであるか、既存のCRファイルであるか、それとも更新済みCRファイルであるかを考慮せず、アプリケーション展開コンテナ4021は、CRファイルを検出したことに応答して、対応する機能コンテナを含むそれぞれの機能PODを直接的に展開するようにクラウド・コンピューティング環境400に要求する。さらに、6つの機能の情報を含むCRファイル内で、アプリケーション内のただ1つの機能が変更された場合、それでもアプリケーション展開コンテナ4021は、変更された機能に対応する、対応する機能コンテナを含む1つの機能PODのみを展開するのではなく、対応する機能コンテナを含むすべての6つの機能PODを再び展開するようにクラウド・コンピューティング環境400に要求し得る。既存のCRファイルについて、クラウド・コンピューティング環境400は、既存の機能についての対応する機能コンテナを含む機能PODを反復的に展開しないが、対応する機能コンテナを含む機能PODがクラウド・コンピューティング環境400内で展開されたかどうかのチェックは依然として時間がかり、リソースを消費する。
【0054】
たとえば、
図5に示されるアプリケーション500では、アプリケーション展開コンテナ4021は、CRモニタ4022がリポジトリ4012内の
図6に示されるCRファイルを最初に検出したことに応答して、データベース501、レジスタ502、ユーザ管理503、気象クエリ504、統計505、およびモニタ506の対応する機能についての対応する機能コンテナ404を含むそれぞれの機能POD403を展開するようにクラウド・コンピューティング環境400に要求する。クラウド・コンピューティング環境400は、対応する機能コンテナ404を含むこうした機能POD403がクラウド・コンピューティング環境400内に存在しないことを発見し、それらを直接的に展開する。2回目については、CRモニタ4022は、リポジトリ4012内の
図6に示されるCRファイル(変更なし)を5分後に再び検出し、アプリケーション展開コンテナ4021は、データベース501、レジスタ502、ユーザ管理503、気象クエリ504、統計505、およびモニタ506のそれぞれの機能についての対応する機能コンテナ404を含む機能POD403を展開するようにクラウド・コンピューティング環境400に再び要求する。しかし、クラウド・コンピューティング環境400は、対応する機能コンテナ404を含むこうした機能POD403がクラウド・コンピューティング環境400内に存在していたことを発見し、したがってそれらを展開しない。3回目については、CRモニタ4022は、リポジトリ4012内の
図6に示される(レジスタ502の機能の変更を伴う)CRファイルを5分後などに検出し、アプリケーション展開コンテナ4021は、データベース501、レジスタ502、ユーザ管理503、気象クエリ504、統計505、およびモニタ506のそれぞれの機能についての対応する機能コンテナを含む機能POD403をそれぞれ再び展開するようにクラウド・コンピューティング環境400に再び要求する。この時のクラウド・コンピューティング環境400は、対応する機能コンテナ404を含むいくつかの機能POD403がクラウド・コンピューティング環境400内に存在し、レジスタ502の機能のみが変更されることを発見し、クラウド・コンピューティング環境400は、対応するレジスタ・コンテナ404-2を含む機能POD403-2だけを展開して元のものを置き換え、または対応するレジスタ・コンテナ404-2を含む元のレジスタ機能POD403-2に対する変更を適用し得る。前述のプロセスから、CRファイルが新規CRファイルであるか、既存のCRファイルであるか、それとも更新済みCRファイルであるかがクラウド・コンピューティング環境400によって既存のプロセスで実際にチェックされ、チェックは時間がかかり、リソースを消費することが判明し得る。
【0055】
実際には、アプリケーション展開の間に、機能、たとえばレジスタ502が展開されるべきであるとき、レジスタ502は、展開の間にデータベース内に情報を書き込むように要求され(すなわち、レジスタ502の機能はデータベース501の機能に依存する)、したがってレジスタ502の展開の前に、データベース501の機能を展開しなければならず、さもなければ、レジスタ502の展開は成功することができない。言い換えれば、機能が依存関係を有する場合、アプリケーション展開の間にアプリケーションの機能間の依存関係を考慮すべきである。
【0056】
本開示では、アプリケーション展開のプロセスの間にアプリケーションの機能間の依存関係が考慮される。表1は、アプリケーション500の機能間の依存関係の例示的リストである。示されるように、表1は、機能およびその従属機能を記録し得る。表1に示されるアプリケーションの機能間の依存関係のスキーマは例示のためのものに過ぎず、表1に他の列が追加され得ることを当業者は理解し得る。さらに、前述の表はアプリケーションの機能間の依存関係を表現するための一実装に過ぎず、アプリケーションの機能間の依存関係を表現するためにXMLファイル、テキスト・ファイルなどの他のデータ構造が使用され得ることを理解されたい。いくつかの実施形態では、アプリケーションの機能間の依存関係は、オブジェクトタイプ、たとえばKubernetesで定義されるConfigMapで表現され得る。
【0057】
【0058】
さらに、クラウド・コンピューティング環境内に展開され、アプリケーションの各機能を実行するように構成され得る、対応する機能コンテナを含む各機能PODの展開ステータスを、他の機能展開プロセスによってチェックする必要がある。表2は、CRファイル内の各機能に対応する各機能PODについての例示的機能展開ステータスである。表2は、CRファイルが最初に取り出されるときに作成され得る。この時、CRファイルは新規CRファイルである。新規CRファイルがクラウド環境内に最初に取り出された後、CRファイルは既存のCRファイルとなる。リポジトリ内のCRファイルが変更されたとき、CRファイルは更新済みCRファイルとなる。CRファイルのライフサイクルの間、表2に示される各機能PODについての例示的機能展開ステータスは、常にCRファイルに関係付けられる。示されるように、表2は、(対応する機能名を使用するなどして)各機能PODと、対応する機能コンテナを含む機能PODが展開済みであり、展開されておらず、または更新済みであることをそれぞれ意味する、「展開済み」、「未展開」、「更新済み」などの対応する展開ステータスとを記録し得る。表2に示される各機能PODの展開ステータスのスキーマは例示のためのものに過ぎず、表2に他の列が追加され得ることを当業者は理解し得る。さらに、前述の表2は各機能PODの展開ステータスのスキーマを表現するための一実装に過ぎず、XMLファイル、テキスト・ファイルなどの他のデータ構造が使用され得ることを理解されたい。いくつかの実施形態では、各機能PODの展開ステータスのスキーマは、オブジェクトタイプ、たとえばKubernetesで定義されるConfigMapで表現され得る。
【0059】
【0060】
図7は、本開示のいくつかの実施形態による、アプリケーションを展開するための提案される例示的クラウド・コンピューティング環境700の概略図を示す。やはり、Nが1より大きい整数であるとして、クラウド・コンピューティング環境700内に展開されたアプリケーションがN個の機能を含み得ると仮定する。ここで
図7を参照すると、提案される例示的クラウド・コンピューティング環境700では、マネージャ701が、少なくともコントローラ7011およびリポジトリ7012を含み得る。アプリケーションを展開するために、クラウド・コンピューティング環境700の管理者は、対応するアプリケーション展開コンテナ7021を含むアプリケーション展開POD702を展開し得る。アプリケーション展開コンテナ7021によって使用されるイメージは、アプリケーション展開コンテナ4021によって使用されるものとは異なり、アプリケーション展開コンテナ7021によって使用されるイメージは、後で詳細に紹介される。展開された後、アプリケーション展開コンテナ7021は、CR作成および変更モニタ7022および機能POD展開管理7023という2つのコンポーネントを含み得る(2つのコンポーネントは、アプリケーション展開コンテナ7021に対応するイメージ・ファイルで定義される)。
【0061】
いくつかの実施形態では、(表1の情報などの)アプリケーションの機能間の依存関係が、リポジトリ7012内に、またはアプリケーション展開コンテナ7021の内部に記憶され得る。いくつかの実施形態では、(表2の情報などの)各機能PODの展開ステータスが、リポジトリ7012内に、またはアプリケーション展開コンテナ7021内部に記憶され得る。いくつかの実施形態では、(表2の情報などの)各機能PODの展開ステータスが、表2から直接的に取得され、またはクラウド・コンピューティング環境700によって定義されるAPIを通じてリアル・タイムに取得され得る。
【0062】
クラウド・コンピューティング環境700内部のすべてのコンポーネントは、直接的に接続され、または通信ネットワーク(
図7には図示せず)を介して間接的に接続される。
図7の通信ネットワークは、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、遠隔通信ネットワーク、ワイヤレス・ネットワーク、公衆交換網、またはサテライト・ネットワーク、あるいはその組合せなどの様々なタイプの通信ネットワークを含み得る。通信ネットワークは、ワイヤ、ワイヤレス通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
【0063】
クラウド・コンピューティング環境700内の各コンポーネントは、たとえば、モバイル・デバイス、電話、携帯情報端末、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、またはプログラムを実行し、ネットワークにアクセスすることのできる任意のタイプのコンピューティング・デバイスであり得る。クラウド・コンピューティング環境700は、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure as a Service)などのクラウド・コンピューティング・サービス・モデル内で動作し得る。クラウド・コンピューティング環境700はまた、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、ハイブリッド・クラウドなどのクラウド・コンピューティング展開モデル内に配置され得る。
【0064】
図7を再び参照すると、CR作成および変更モニタ7022は、リポジトリ7012内のCRファイルが新規CRファイルであるか、更新済みCRファイルであるか、それとも既存のCRファイルであるかを判定し得る。いくつかの実施形態では、CR作成および変更モニタ7022は、最後にリポジトリ7012から取り出されたすべてのCRファイルを維持し得る。CR作成および変更モニタ7022がリポジトリ7012内のCRファイルを再び取り出したとき、取り出されたCRファイルが、保存されたCRファイルと比較され、取り出されたCRファイルが新規か、更新済みか、それとも既存であるかが判明し得る。いくつかの実施形態では、CR作成および変更モニタ7022は、CRファイル名、展開された時間、ファイル内容のハッシュ・コードなどの、最後にリポジトリ7012から取り出されたすべてのCRファイルの必要な情報を維持し得る。CR作成および変更モニタ7022がリポジトリ7012内のCRファイルを再び取り出したとき、取り出されたCRファイルの情報が、保存されたCRファイルの情報と比較され、取り出されたCRファイルが新規か、更新済みか、それとも既存であるかが判明し得る。たとえば、取り出されたCRファイルについての関連情報がない場合、CRファイルは新規CRファイルである。取り出されたCRファイルについての関連情報があるが、ファイル内容のハッシュ値が異なるなど、情報が保存された情報と一致しない場合、CRファイルは更新済みファイルである。取り出されたCRファイルについての関連情報があり、情報が保存された情報と一致する場合、CRファイルは既存のCRファイルである。いくつかの実施形態では、CR作成および変更モニタ7022は、すべてのCRファイルについての情報を受け取るためにリポジトリ7012に登録し得る。他の方法が使用され得ることを当業者は理解し得る。
【0065】
いくつかの実施形態では、CR作成および変更モニタ7022がリポジトリ7012内の新規CRファイルを検出したとき、CR作成および変更モニタ7022は、機能POD展開管理7023に通知し得、次いで機能POD展開管理7023は、依存関係を管理するように構成された、対応するinitコンテナ(init container)と、アプリケーション内の対応する機能を実行するための対応する機能コンテナを含む機能PODを展開するように要求するように構成された、対応する機能展開コンテナとを含む、各機能展開PODを展開するようにクラウド・コンピューティング環境700に要求し得る。たとえば、機能展開POD705-1は、initコンテナ706-1および機能展開コンテナ707-1を含み、…、機能展開POD705-Nは、initコンテナ706-Nおよび機能展開コンテナ707-Nを含む。ここでは議論しやすいように、機能展開POD705-1、…、705-Nは、集合的に、または個々に機能展開POD705と呼ばれ、initコンテナ706-1、…、706-Nは、集合的に、または個々にinitコンテナ706と呼ばれ、機能展開コンテナ707-1、…、707-Nは、集合的に、または個々に機能展開コンテナ707と呼ばれる。要求を送るとき、機能POD展開管理7023は、各機能展開POD705についての環境変数も送り、環境変数は、対応するinitコンテナ706および対応する機能展開コンテナ707によって共有され得る。環境変数は、アプリケーションの対応する機能についてのCRファイル内の対応する部分を示す。
【0066】
いくつかの実施形態では、CR作成および変更モニタ7022がリポジトリ7012内の新規CRファイルを検出したとき、新規CRファイルに対応する各機能PODのステータス(表2の情報など)がクラウド・コンピューティング環境内で維持され得る。そして各機能PODのステータスの初期値が「未展開」に設定される。
【0067】
次いでクラウド・コンピューティング環境700は、それぞれの機能展開POD705が既存であるかどうかをチェックすることを必要とすることなく、対応するinitコンテナ706および対応する機能展開コンテナ707を含むそれぞれの機能展開POD705を直接的に展開し得る。各機能展開POD705はそれ自体の環境変数を維持し得る。それぞれの対応するinitコンテナ706が展開された後、各initコンテナ706は、それ自体の機能依存関係を判定し得る。具体的には、各initコンテナ706は、表1に示されるようなアプリケーションの機能間の依存関係を取り出し、次いで依存関係をそれ自体の環境変数と比較して、それ自体の機能依存関係を取得し得る。たとえば、機能展開POD705-1がデータベース501の機能についてのものであることを環境変数が示す場合、従属機能はない。次いで機能展開コンテナ707-1は、機能コンテナ704-1を含む機能POD703-1を展開するようにクラウド・コンピューティング環境700に通知し得る。いくつかの実施形態では、クラウド・コンピューティング環境700は、機能POD703-1が既存であるかどうかをチェックすることなく、機能コンテナ704-1を含む機能POD703-1を直接的に展開し得る。その後、機能展開コンテナ707-1または機能コンテナ704-1は、表2に示されるように、データベース501に対応する機能POD703-1のステータスを「展開済み」として更新し得る。
【0068】
別の例では、initコンテナ706-2および機能展開コンテナ707-2を含む機能展開POD705-2が展開された後、機能展開POD705-2がレジスタ502についてのものであることを環境変数が示す場合、その従属機能はデータベース501である。次いで、initコンテナ706-2は、表2でチェックし、またはクラウド・コンピューティング環境700によって提供されるAPIでリアル・タイムにチェックするなど、機能POD703-1のステータスをチェックし得る。ステータスが「未展開」である場合、initコンテナ706-2は、ステータスが「展開済み」となるまで繰返しチェックし得る。次いで、機能展開コンテナ707-2は、機能コンテナ704-2を含む機能POD703-2を展開するようにクラウド・コンピューティング環境700に要求し得る。いくつかの実施形態では、クラウド・コンピューティング環境700は、機能POD703-2が既存であるかどうかをチェックすることなく、機能コンテナ704-2を含む機能POD703-2を直接的に展開し得る。その後、機能展開コンテナ707-2または機能コンテナ704-2は、表2に示されるように、レジスタ502に対応する機能POD703-2のステータスを「展開済み」として更新し得る。
【0069】
このようにして、それぞれのinitコンテナ(initコンテナ706-3、706-4、706-5、706-6など)は、ステータスが「展開済み」となるまで、従属機能に対応する従属機能PODのステータスをチェックし得、次いでそれぞれの機能展開コンテナは、対応する機能コンテナ(機能コンテナ704-3、704-4、704-5、704-6など)を含むそれぞれの機能POD(機能POD703-3、703-4、703-5、703-6など)を展開するようにクラウド・コンピューティング環境700に要求し得る。いくつかの実施形態では、クラウド・コンピューティング環境700は、対応する機能コンテナ(機能コンテナ704-3、704-4、704-5、704-6など)を含むそれぞれの機能POD(機能POD703-3、703-4、703-5、703-6など)を、それらが既存であるかどうかをチェックすることなく直接的に展開し得る。その後、それぞれの機能展開コンテナ(initコンテナ707-3、707-4、707-5、707-6など)またはそれぞれの機能コンテナ(機能コンテナ704-3、704-4、704-5、704-6など)は、表2に示されるように、(ユーザ管理503、気象クエリ504、統計505、モニタ506などに対応する)それぞれの機能PODのステータスを「展開済み」として更新し得る。
【0070】
上記の説明から、アプリケーション500内のレジスタ502、ユーザ管理503、および気象クエリ504に対応する機能PODが並列に展開され得ること、および統計505およびモニタ506に対応する機能PODが並列に展開され得ることが判明し得る。対応するinitコンテナと対応する機能展開コンテナの両方を含むそれぞれの機能展開PODを展開するために費やされる時間は小さく、無視され得る。次いで、こうした機能を展開するための最大時間は、T=T1+max(T2,T3,T4)+max(T5,T6)であり得、これは、クラウド・コンピューティング環境400を使用する展開時間よりもずっと小さい。
【0071】
いくつかの実施形態では、対応する機能コンテナを含むすべての機能PODが展開された後、アプリケーション500の各機能PODのステータスが「展開済み」となるように更新され、次いで機能POD展開管理7023は、対応するinitコンテナ706と対応する機能展開コンテナ707の両方を含むすべての機能展開POD705を削除して、クラウド・コンピューティング環境700のためのリソースを節約し得る。
【0072】
いくつかの実施形態では、CR作成および変更モニタ7022がリポジトリ7012内の更新済みCRファイルを検出したとき(すなわち、既存のCRファイルについての変更があるとき)、CR作成および変更モニタ7022は、機能POD展開管理7023に変更を通知し得、たとえば、CR作成および変更モニタ7022は、リポジトリ7012内のCRファイルの変更された部分を通知し得る。たとえば、
図6のブロック602に対応する部分が変更された場合、CRファイル内の変更された部分を含む通知に応答して、機能POD展開管理7023は、initコンテナ706-2と機能展開コンテナ707-2の両方を含む機能展開POD703-2のみを展開するようにクラウド・コンピューティング環境700に要求し得、機能展開コンテナ707-2は、機能コンテナ704-2を含む機能POD703-2を更新するようにクラウド・コンピューティング環境700に要求し得、すなわち、機能コンテナ704-2を含む機能POD703-2を展開して元のものを置き換え、または機能コンテナ704-2を含む既存の機能POD703-2に対する変更を適用し得る。いくつかの実施形態では、クラウド・コンピューティング環境700は、機能コンテナ704-2を含む元々展開された機能POD703-2を削除し、チェックすることなく、CRファイルの変更された部分に基づいてそれらを直接的に再展開し得る。いくつかの実施形態では、クラウド・コンピューティング環境700は、チェックすることなく、機能コンテナ704-2を含む元の展開された機能POD703-2に対する変更を直接的に適用し得る。どのようにクラウド・コンピューティング環境700が変更を適用するかは既存の技術であり、本明細書では詳細には論じられない。
【0073】
いくつかの実施形態では、機能コンテナ704-2を含む機能POD703-2が更新された後、機能展開コンテナ707-2または機能コンテナ704-2は、表2の機能POD703-2のステータスを「展開済み」から「更新済み」に変更し得る。次いで、機能POD展開管理7023は、initコンテナ706-2と機能展開コンテナ707-2の両方を含む機能展開POD703-2を削除して、クラウド・コンピューティング環境700のためのリソースを節約し得る。その後、機能POD展開管理7023は、さらなる更新のために機能POD703-2のステータスを「更新済み」から「展開済み」に変更し得る。
【0074】
いくつかの実施形態では、initコンテナ706および対応する機能展開コンテナ707が、1つのコンテナ、initコンポーネントおよび機能展開コンポーネントなどの2つのコンポーネントを有するマージ済み機能展開コンテナ、にマージされ得る。initコンテナ706によって実行されるすべての動作は、マージ済み機能展開コンテナのinitコンポーネントによって実行され得、機能展開コンテナ707によって実行されるすべての動作は、マージ済み機能展開コンテナの機能展開コンポーネントによって実行され得る。initコンテナ706と、それに対応する機能展開コンテナ707とに対応するイメージ・ファイル内の内容が、マージ済み機能展開コンテナに対応するイメージ・ファイル内の内容にマージされ得る。言い換えれば、アプリケーション展開コンテナ7021は、対応するinitコンテナ706と対応する機能展開コンテナ707の両方を含む複数の機能展開POD705を展開するのではなく、対応するマージ済み機能展開コンテナを含む複数の機能展開POD705を直接的に展開するようにクラウド・コンピューティング環境700に要求し得る。次いで、クラウド・コンピューティング環境700は、チェックすることなく、対応するマージ済み機能展開コンテナを含む複数の機能展開POD705を直接的に展開し得る。さらに、マージ済み機能展開コンテナは、対応する機能コンテナ704を含む対応する機能POD703を展開/更新するようにクラウド・コンピューティング環境700に要求し得、次いでクラウド・コンピューティング環境700は、チェックすることなく直接的にそれを行い得る。
【0075】
いくつかの実施形態では、
図7のすべてのPODが必要であるわけではない。たとえば、管理者は、対応するアプリケーション展開コンテナ7021を含むアプリケーション展開POD702を展開するのではなく、単にアプリケーション展開コンテナ7021を直接的に展開し得、アプリケーション展開コンテナ7021は、対応する機能展開コンテナを含む複数の機能展開PODを展開するのではなく、複数の機能展開コンテナ707を直接的に展開し得る。
【0076】
図8は、本開示のいくつかの実施形態による、アプリケーションを展開するための提案される例示的クラウド・コンピューティング環境800の抽象概略図を示す。
図8を参照すると、議論しやすいように、機能展開コンポーネント805-1…805-Nは、集合的に、または個々に機能展開コンポーネント805と呼ばれ、機能コンポーネント803-1…803-Nは、集合的に、または個々に機能コンポーネント803と呼ばれる。
図8を
図7と比較すると、マネージャ801はマネージャ701であり得、アプリケーション展開コンポーネント802は、アプリケーション展開コンテナ7021を含むアプリケーション展開POD702であり得、またはアプリケーション展開コンテナ7021であり得、機能展開コンポーネント805は、対応するinitコンテナ706と対応する機能展開コンテナ707の両方を含む機能展開POD705であり得、またはマージ済み機能展開コンテナを含む機能展開POD705であり得、またはマージ済み機能展開コンテナであり得、機能コンポーネント803は、対応する機能コンテナ704を含む機能POD703であり得、または機能展開コンテナ704であり得る。
【0077】
図9は、本開示のいくつかの実施形態による、クラウド・コンピューティング環境内のアプリケーション展開のためのフローチャート900を示す。フローチャート900は、アプリケーション展開コンポーネント802、または、クラウド・コンピューティング環境800内の1つまたは複数のプロセッサを備える第1のコンポーネントと呼ばれる他の適切なコンピュータ/コンピューティング・システムによって実装され得る。理解を容易にするために、
図8を参照しながらフローチャート900が説明される。
【0078】
910で、アプリケーション展開コンポーネント802(第1のコンポーネント)は、新規CRファイルまたは更新済みCRファイルがあるかどうかをリポジトリ8012内で検出し得る。言い換えれば、変更のない既存のCRファイルは考慮されない。CRファイルは、アプリケーションの複数の機能の情報を示すように構成される。
【0079】
920で、新規CRファイルを検出したことに応答して、アプリケーション展開コンポーネント802は、クラウド・コンピューティング環境800内に複数の機能展開コンポーネント805を展開するようにクラウド・コンピューティング環境800に要求し得、ここで、複数の機能展開コンポーネント805は、クラウド・コンピューティング環境800内に複数の機能コンポーネント803を展開するようにクラウド・コンピューティング環境800に要求するように構成され、複数の機能コンポーネント803は、新規CRファイルによって示されるアプリケーションの複数の機能を実行するように構成される。
【0080】
930で、アプリケーション展開コンポーネント802(第1のコンポーネント)は、複数の機能コンポーネント803のそれぞれがクラウド・コンピューティング環境800内に展開されているかどうかの第1の判定を実装し得る。いくつかの実施形態では、複数の機能コンポーネントのそれぞれのステータス(表2の情報など)がクラウド・コンピューティング環境800内で維持され、アプリケーション展開コンポーネント802は、複数の機能コンポーネントのそれぞれのステータスを取り出し得、取り出したステータスに基づいて、複数の機能コンポーネント803のそれぞれがクラウド・コンピューティング環境800内に展開されているかどうかを判定し得る。いくつかの実施形態では、アプリケーション展開コンポーネント802は、クラウド・コンピューティング環境800によって提供されるAPIを用いて、クラウド・コンピューティング環境800に対して複数の機能コンポーネントのそれぞれのステータスをチェックして、複数の機能コンポーネント803のそれぞれがクラウド・コンピューティング環境800内に展開されているかどうかを判定し得る。
【0081】
940で、複数の機能コンポーネントのそれぞれがクラウド・コンピューティング環境800内に展開されていることを示す第1の判定に応答して、アプリケーション展開コンポーネント802は、複数の展開された機能展開コンポーネント805を削除して、クラウド・コンピューティング環境800内のリソースを節約するようにクラウド・コンピューティング環境800に要求し得る。
【0082】
いくつかの実施形態では、950で、CRファイルが更新済みCRファイルであることを検出したことに応答して、アプリケーション展開コンポーネント802は、更新済みCRファイル内の少なくとも1つの更新済み機能を決定し得る。
【0083】
960で、アプリケーション展開コンポーネント802は、クラウド・コンピューティング環境800内に少なくとも1つの機能展開コンポーネントを展開するようにクラウド・コンピューティング環境800に要求し得る。ここでは、少なくとも1つの機能展開コンポーネントは、クラウド・コンピューティング環境800内の少なくとも1つの機能コンポーネントを展開/更新するようにクラウド・コンピューティング環境800に要求するように構成され、少なくとも1つの機能コンポーネントは、少なくとも1つの更新済み機能を実行するように構成される。展開/更新された後、表2の少なくとも1つの機能コンポーネントのステータスが、それに応じて変更され得る。
【0084】
次いで970で、アプリケーション展開コンポーネント802は、少なくとも1つの機能コンポーネント803のそれぞれがクラウド・コンピューティング環境800内で更新されているかどうかの第2の判定を実装し得る。いくつかの実施形態では、少なくとも1つの機能コンポーネントのそれぞれのステータスがクラウド・コンピューティング環境800内で維持され、アプリケーション展開コンポーネント802は、少なくとも1つの機能コンポーネントのそれぞれのステータスを取り出し得、表2の少なくとも1つの機能コンポーネント803のステータスが「更新済み」であるかどうかをチェックすることなど、取り出したステータスに基づいて、少なくとも1つの機能コンポーネント803がクラウド・コンピューティング環境800内で更新されているかどうかを判定し得る。いくつかの実施形態では、アプリケーション展開コンポーネント802は、クラウド・コンピューティング環境800によって提供されるAPIを用いて、クラウド・コンピューティング環境800に対して少なくとも1つの機能コンポーネントのそれぞれのステータスをチェックして、少なくとも1つの機能コンポーネント803がクラウド・コンピューティング環境800内で更新されているかどうかを判定し得る。
【0085】
980で、少なくとも1つの機能コンポーネントのそれぞれがクラウド・コンピューティング環境800内で更新されていることを示す第2の判定に応答して、アプリケーション展開コンポーネント802は、少なくとも1つの展開された機能展開コンポーネント805を削除して、クラウド・コンピューティング環境800内のリソースを節約するようにクラウド・コンピューティング環境800に要求し得る。次いでアプリケーション展開コンポーネント802は、さらなる機能更新のために表2の少なくとも1つの機能コンポーネント803のステータスを「更新済み」から「展開済み」に変更し得る。
【0086】
いくつかの実施形態では、アプリケーションの複数の機能間の依存関係が、クラウド・コンピューティング環境800内で維持される。
【0087】
いくつかの実施形態では、
図10は、本開示のいくつかの実施形態による、
図9に示される手法の一部としてのフローチャート1000を示す。フローチャート1000は、対応する機能コンポーネント803を展開するように構成される、機能展開コンポーネント805または他の適切なコンピュータ/コンピューティング・システムによって実装され得る。理解を容易にするために、
図8を参照しながら、機能展開コンポーネント805-2を一例として使用してフローチャート1000が説明され、機能展開コンポーネント805-2は、対応する機能を実行するための、対応する機能コンポーネント(803-2など)を展開/更新するようにクラウド・コンピューティング環境に要求するように構成される。機能コンポーネント803-2に対応する機能が、少なくとも1つの従属機能コンポーネント803-1に対応する少なくとも1つの機能に依存すると仮定する。
【0088】
1010で、機能展開コンポーネント805-2は、イメージ・ファイルの対応する場所、対応する機能が新規機能または更新済み機能であるかどうかなど、対応する機能の情報をアプリケーション展開コンポーネント802から受け取り得る。
【0089】
1020で、機能展開コンポーネント805-2は、アプリケーションの複数の機能間の依存関係から、対応する機能の少なくとも1つの従属機能を取得し得る。
【0090】
1030で、機能展開コンポーネント805-2は、少なくとも1つの従属機能に対応する少なくとも1つの従属機能コンポーネント(803-1)がクラウド・コンピューティング環境800内に展開されているかどうかの第3の判定を実装し得る。判定方法は、930および970で使用される方法と同様である。
【0091】
1040で、少なくとも1つの従属機能コンポーネント(803-1)のそれぞれがクラウド・コンピューティング環境800内に展開されていることを示す第3の判定に応答して、機能展開コンポーネント805-2は、受け取った情報に基づいて、チェックすることなくクラウド・コンピューティング環境800内の機能コンポーネント803-2を直接的に展開/更新するようにクラウド・コンピューティング環境800に要求し得る。
【0092】
いくつかの実施形態では、1050(
図10には図示せず)で、対応する機能コンポーネント803-2がクラウド・コンピューティング環境800内に展開されていることに応答して、機能展開コンポーネント805-2または対応する機能コンポーネント803-2は、表2のステータスを「未展開」から「展開済み」に変更するなど、対応する機能コンポーネント803-2のステータスを更新し得る。
【0093】
提案される方法は、クラウド・コンピューティング環境内にアプリケーションを展開することをアーキテクチャ・レベルから容易にし得る。さらに、提案される方法を使用して、開発者がクラウド・コンピューティング環境内にアプリケーションを展開するためのフレームワークを開発することが容易となる。
【0094】
本開示の実施形態によるクラウド・コンピューティング環境内のアプリケーション展開の処理が、
図1のコンピュータ・システム/サーバ12によって実装され得ることに留意されたい。
【0095】
本開示は、任意の可能な統合の技術的詳細レベル(technical detail level of integration)でのシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含み得る。
【0096】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、命令が記録されたパンチ・カードまたは溝の中の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せが含まれる。本明細書では、コンピュータ可読記憶媒体は、電波または他の自由伝播電磁波、導波路または他の伝送媒体を通じて伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、ワイヤを通じて伝送される電気信号など、本質的に一時的信号であると解釈されるべきではない。
【0097】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に記憶するためにコンピュータ可読プログラム命令を転送する。
【0098】
本開示の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、あるいはSmalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または類似のプログラミング言語などの手続型プログラミング言語とを含む1つまたは複数のプログラミング言語の何らかの組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上、および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得、または接続が外部コンピュータに対して(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて)行われ得る。いくつかの実施形態では、たとえばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによってコンピュータ可読プログラム命令を実行し得る。
【0099】
本開示の態様が、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明される。フローチャート図またはブロック図あるいはその両方の各ブロックと、フローチャート図またはブロック図あるいはその両方の中のブロックの組合せが、コンピュータ可読プログラム命令によって実装され得ることを理解されよう。
【0100】
こうしたコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能データ処理装置を介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するための手段を生み出すように、コンピュータのプロセッサまたは他のプログラム可能データ処理装置に与えられ、マシンを作り出すものであってよい。こうしたコンピュータ可読プログラム命令はまた、命令を記憶するコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製品を含むように、コンピュータ可読記憶媒体内に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示することができるものであってもよい。
【0101】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するように、コンピュータ実装プロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0102】
図のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定の論理的機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替実装では、ブロック内に記載の機能は、図に記載されている以外の順序で行われ得る。たとえば、連続して示される2つのブロックは、実際には1つのステップとして実施され、同時に実行され、部分的もしくは全体的に時間的に重複する形で、ほぼ同時に実行され得、またはブロックは、関係する機能に応じて、時には逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せが、指定の機能または動作を実施し、あるいは専用ハードウェアとコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されよう。
【0103】
例示のために本開示の様々な実施形態の説明が提示されているが、網羅的であること、および開示される実施形態に限定されることは意図されない。記載の実施形態の範囲から逸脱することなく、多くの変更形態および変形形態が当業者には明らかとなるであろう。本明細書で用いられる用語は、実施形態の原理、市場で見つかる技術に勝る実際の応用もしくは技術的改善を最良に説明するために、または本明細書で開示される実施形態を当業者が理解することを可能にするために選ばれたものである。
【手続補正書】
【提出日】2023-08-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理による方法であって、
新規顧客リソース(CR)ファイルを検出したことに応答して、
1つまたは複数のプロセッサによって、コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
1つまたは複数のプロセッサによって、前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、1つまたは複数のプロセッサによって、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を含む方法。
【請求項2】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項1に記載の方法。
【請求項3】
更新済みCRファイルを検出したことに応答して、
1つまたは複数のプロセッサによって、前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
1つまたは複数のプロセッサによって、前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
1つまたは複数のプロセッサによって、前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、1つまたは複数のプロセッサによって、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記アプリケーションの前記複数の機能間の依存関係が前記クラウド・コンピューティング環境内で維持される、請求項
2または3に記載の方法。
【請求項5】
前記複数の機能展開コンポーネントのそれぞれが、
1つまたは複数のプロセッサによって、対応する機能の情報を受け取ることと、
1つまたは複数のプロセッサによって、前記アプリケーションの前記複数の機能間の前記依存関係から、前記対応する機能の少なくとも1つの従属機能を取得することと、
1つまたは複数のプロセッサによって、前記少なくとも1つの従属機能に対応する少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定することと、
前記少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定したことに応答して、1つまたは複数のプロセッサによって、受け取った情報に基づいて、前記クラウド・コンピューティング環境内に前記対応する機能を実行するための対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することと
によって、前記対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求する、請求項4に記載の方法。
【請求項6】
各機能コンポーネントのステータスが前記クラウド・コンピューティング環境内で維持され、前記複数の機能展開コンポーネントのそれぞれが、さらに、
対応する機能を実行するための対応する機能コンポーネントが前記クラウド・コンピューティング環境内に展開されたことに応答して、1つまたは複数のプロセッサによって、前記対応する機能コンポーネントのステータスを更新すること
によって、前記対応する機能コンポーネントを展開する、請求項
2~5
のいずれか1項に記載の方法。
【請求項7】
各判定が、前記クラウド・コンピューティング環境内で維持される少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項
2~6
のいずれか1項に記載の方法。
【請求項8】
各判定が、前記クラウド・コンピューティング環境によって提供されるアプリケーション・プログラミング・インターフェース(API)を使用して、前記クラウド・コンピューティング環境に対して少なくとも1つの対応する機能コンポーネントのステータスをチェックすることによって判定される、請求項
2~6
のいずれか1項に記載の方法。
【請求項9】
コンピュータ・
プログラムであって
、コンピュータに、
新規顧客リソース(CR)ファイルを検出したことに応答して、
コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を実行させるためのコンピュータ・
プログラム。
【請求項10】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項9に記載のコンピュータ・
プログラム。
【請求項11】
更新済みCRファイルを検出したことに応答して、
前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
をさらに実行させる、請求項10に記載のコンピュータ・
プログラム。
【請求項12】
前記アプリケーションの前記複数の機能間の依存関係が前記クラウド・コンピューティング環境内で維持される、請求項
10または11に記載のコンピュータ・
プログラム。
【請求項13】
前記複数の機能展開コンポーネントのそれぞれが、
対応する機能の情報を受け取ることと、
前記アプリケーションの前記複数の機能間の前記依存関係から、前記対応する機能の少なくとも1つの従属機能を取得することと、
前記少なくとも1つの従属機能に対応する少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定することと、
前記少なくとも1つの従属機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で展開されていると判定したことに応答して、受け取った情報に基づいて、前記クラウド・コンピューティング環境内に前記対応する機能を実行するための対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することと
によって、前記対応する機能コンポーネントを展開するように前記クラウド・コンピューティング環境に要求する、請求項12に記載のコンピュータ・
プログラム。
【請求項14】
コンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによる実行のために前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令とを含み、前記プログラム命令が、
新規顧客リソース(CR)ファイルを検出したことに応答して、
コンピューティング環境内に複数の機能展開コンポーネントを展開するように前記コンピューティング環境に要求することであって、
前記CRファイルが、アプリケーションの複数の機能の情報を示し、
前記複数の機能展開コンポーネントが、前記コンピューティング環境内に複数の機能コンポーネントを展開するように前記コンピューティング環境に要求し、
前記複数の機能コンポーネントが、前記アプリケーションの前記複数の機能を実行する、前記要求することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定することと、
前記複数の機能コンポーネントのそれぞれが前記コンピューティング環境内に展開されていると判定したことに応答して、前記複数の展開された機能展開コンポーネントのそれぞれを削除するように前記コンピューティング環境に要求することと
を行うためのプログラム命令
を含む、コンピュータ・システム。
【請求項15】
前記コンピューティング環境がクラウド・コンピューティング環境である、請求項
14に記載のコンピュータ・システム。
【請求項16】
更新済みCRファイルを検出したことに応答して、
前記更新済みCRファイル内の少なくとも1つの更新済み機能を決定することと、
前記クラウド・コンピューティング環境内に前記少なくとも1つの更新済み機能に対応する少なくとも1つの機能展開コンポーネントを展開するように前記クラウド・コンピューティング環境に要求することであって、
前記少なくとも1つの機能展開コンポーネントが、前記クラウド・コンピューティング環境内の少なくとも1つの機能コンポーネントを更新するように前記クラウド・コンピューティング環境に要求し、
前記少なくとも1つの機能コンポーネントが前記少なくとも1つの更新済み機能を実行する、前記要求することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定することと、
前記少なくとも1つの機能コンポーネントのそれぞれが前記クラウド・コンピューティング環境内で更新されていると判定したことに応答して、前記少なくとも1つの展開された機能展開コンポーネントのそれぞれを削除するように前記クラウド・コンピューティング環境に要求することと
を行うための、前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令
をさらに含む、請求項
15に記載のコンピュータ・システム。
【請求項17】
請求項9~13のいずれか1項に記載のコンピュータ・プログラムをコンピュータ可読に格納した記録媒体。
【国際調査報告】