(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189807
(43)【公開日】2022-12-22
(54)【発明の名称】コンピュータ実装方法、システム、コンピュータプログラム(コンテナへのサービスの割り当て)
(51)【国際特許分類】
G06F 9/50 20060101AFI20221215BHJP
【FI】
G06F9/50 150D
G06F9/50 150C
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022094087
(22)【出願日】2022-06-10
(31)【優先権主張番号】17/345,692
(32)【優先日】2021-06-11
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジャン ペン フイ
(72)【発明者】
【氏名】ワン ユエ
(72)【発明者】
【氏名】ウ ウェイ
(72)【発明者】
【氏名】ペイ ヤン
(57)【要約】
【課題】サービス割り当てのための方法、デバイスおよびコンピュータプログラム製品が提案されている。
【解決手段】方法において、サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームが、実行中のサービスのセットの各々に関連する複数のサービス属性のそれぞれの測定値と、複数のサービス属性のそれぞれの重要度レベルとに基づいて決定される。コンテナのセットのうちのコンテナに対して、第1の割り当てスキームにおいてコンテナに割り当てられるサービスのセットのうち少なくとも1つに関連した複数のサービス属性のそれぞれの合計の測定値が決定される。それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるためのそれぞれの重要度レベルが更新される。
【選択図】
図6
【特許請求の範囲】
【請求項1】
実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、前記複数のサービス属性のそれぞれの重要度レベルとに基づいて、前記サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームを決定する段階と;
前記コンテナのセットのうちのコンテナに対して、前記第1の割り当てスキームにおいて前記コンテナに割り当てられる前記サービスのセットのうち少なくとも1つのサービスに関連した前記複数のサービス属性のそれぞれの合計の測定値を決定する段階と;
前記それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、前記サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるための前記それぞれの重要度レベルを更新する段階と
を備える、コンピュータ実装方法。
【請求項2】
前記コンテナのセットの各コンテナのそれぞれの合計の測定値が、前記コンテナのセットの各コンテナに関連付けられた対応する測定閾値を下回るまたはそれと等しいという決定に従って、前記サービスのセットを、前記第1の割り当てスキームに基づく実行のために、前記コンテナのセットに割り当てる段階をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記サービスのセットの各サービスに関連する前記複数のサービス属性の前記それぞれの測定値と、前記複数のサービス属性に関連付けられた前記それぞれの更新された重要度レベルとに基づいて、第2のコンテナのセットに前記サービスのセットを割り当てるための第2の割り当てスキームを決定する段階をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記第1の割り当てスキームを決定する段階は、
前記複数のサービス属性の前記それぞれの測定値と、前記それぞれの重要度レベルとに基づいて、前記サービスのセットの各サービスに対するサービススコアを決定する段階と;
前記サービスのセットに対するそれぞれのサービススコアと、複数の候補コンテナに関連付けられたそれぞれのスコア閾値との間の比較に基づいて、前記第1の割り当てスキームを決定する段階と
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記それぞれのサービススコアと前記それぞれのスコア閾値との間の比較に基づいて前記第1の割り当てスキームを決定する段階は、
前記1または複数のサービスに対する前記それぞれのサービススコアのうち1または複数に基づいて、前記サービスのセットから選択された1または複数のサービスに関連する合計サービススコアを決定する段階と;
前記合計サービススコアが前記複数の候補コンテナから選択されたターゲットコンテナに関連付けられた前記それぞれのスコア閾値のターゲットスコア閾値を下回るまたはそれと等しいという決定に従って、前記1または複数のサービスが前記ターゲットコンテナに割り当てられることを示すべく、前記第1の割り当てスキームを決定する段階と
を含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記第1の割り当てスキームを決定する段階は、
前記サービスのセットに関連付けられたアフィニティ情報を取得する段階であって、前記アフィニティ情報は、前記サービスのセットのうち少なくとも2つのサービスが同じコンテナに割り当てられることが許容されているかどうかを示す、段階と;
さらに前記アフィニティ情報に基づいて前記第1の割り当てスキームを決定する段階と
を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記それぞれの重要度レベルを更新する段階は、
前記合計の測定値が前記複数のサービス属性のうち1つのサービス属性に関連付けられた前記対応する測定閾値を超えるという決定に従って、前記1または複数のプロセッサによって、前記サービス属性に関連付けられた前記それぞれの重要度レベルの重要度レベルを上げる段階を含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記複数のサービス属性は、
処理リソースと;
メモリリソースと;
応答時間と;
ネットワークリソースと;
ストレージリソースと;
失敗率と;
リトライ率と;
メッセージキューの長さと;
負荷分散条件と
のうち少なくとも2つを含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記サービスのセットにおける複数のサービスが前記コンテナのセットのうちの前記コンテナに割り当てられることに従って、前記複数のサービス属性のうちのサービス属性に対して、前記複数のサービスに関連する前記サービス属性のさらなる合計の測定値を決定する段階と;
前記さらなる合計の測定値がさらなる対応する測定閾値を超えるという決定に従って、前記複数のサービスのうち少なくとも1つのサービスを少なくとも1つのさらなるコンテナに割り当てる段階であって、前記複数のサービスのうち前記少なくとも1つのサービスは、前記複数のサービスのうち少なくとも1つの残りのサービスより低い優先度を有する、段階と
をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記サービスのセットの第1のサービスに関連するそれぞれの測定値の測定値が前記対応する測定閾値を超えるという決定に従って、前記第1のサービスを複数のサービスに分割する段階と;
前記第1のサービス以外の前記サービスのセットにおける前記複数のサービスおよび残りのサービスを割り当てるための第3の割り当てスキームを決定する段階と
をさらに備える、請求項1から9のいずれか一項に記載のコンピュータ実装方法。
【請求項11】
処理ユニットと;
前記処理ユニットに結合されており、命令を格納するメモリであって、前記命令は、前記処理ユニットによって実行される場合、
実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、前記複数のサービス属性のそれぞれの重要度レベルとに基づいて、前記サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームを決定する手順と;
前記コンテナのセットのうちのコンテナに対して、前記第1の割り当てスキームにおいて前記コンテナに割り当てられる前記サービスのセットのうち少なくとも1つのサービスに関連した前記複数のサービス属性のそれぞれの合計の測定値を決定する手順と;
前記それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、前記サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるための前記それぞれの重要度レベルを更新する手順と
を含む動作を実行する、メモリと
を備えるシステム。
【請求項12】
前記動作は、前記コンテナのセットの各コンテナのそれぞれの合計の測定値が、前記コンテナのセットの各コンテナに関連付けられた対応する測定閾値を下回るまたはそれと等しいという決定に従って、前記サービスのセットを、前記第1の割り当てスキームに基づく実行のために、前記コンテナのセットに割り当てる手順をさらに備える、請求項11に記載のシステム。
【請求項13】
前記動作は、前記サービスのセットの各サービスに関連する前記複数のサービス属性の前記それぞれの測定値と、前記複数のサービス属性に関連付けられた前記それぞれの更新された重要度レベルとに基づいて、第2のコンテナのセットに前記サービスのセットを割り当てるための第2の割り当てスキームを決定する手順をさらに備える、請求項11に記載のシステム。
【請求項14】
前記第1の割り当てスキームを決定する手順は、
前記複数のサービス属性の前記それぞれの測定値と、前記それぞれの重要度レベルとに基づいて、前記サービスのセットの各サービスに対するサービススコアを決定する手順と;
前記サービスのセットに対するそれぞれのサービススコアと、複数の候補コンテナに関連付けられたそれぞれのスコア閾値との間の比較に基づいて、前記第1の割り当てスキームを決定する手順と
を含む、請求項11に記載のシステム。
【請求項15】
前記それぞれのサービススコアと前記それぞれのスコア閾値との間の比較に基づいて前記第1の割り当てスキームを決定する手順は、
前記1または複数のサービスに対する前記それぞれのサービススコアのうち1または複数に基づいて、前記サービスのセットから選択された1または複数のサービスに関連する合計サービススコアを決定する手順と;
前記合計サービススコアが前記複数の候補コンテナから選択されたターゲットコンテナに関連付けられた前記それぞれのスコア閾値のターゲットスコア閾値を下回るまたはそれと等しいという決定に従って、前記1または複数のサービスが前記ターゲットコンテナに割り当てられることを示すべく、前記第1の割り当てスキームを決定する手順と
を含む、請求項14に記載のシステム。
【請求項16】
前記第1の割り当てスキームを決定する手順は、
前記サービスのセットに関連付けられたアフィニティ情報を取得する手順であって、前記アフィニティ情報は、前記サービスのセットのうち少なくとも2つが同じコンテナに割り当てられることが許容されているかどうかを示す、手順と;
さらに前記アフィニティ情報に基づいて前記第1の割り当てスキームを決定する手順と
を含む、請求項11に記載のシステム。
【請求項17】
前記それぞれの重要度レベルを更新する手順は、
前記合計の測定値が前記複数のサービス属性のうち1つのサービス属性に関連付けられた前記対応する測定閾値を超えるという決定に従って、前記サービス属性に関連付けられた前記それぞれの重要度レベルの重要度レベルを上げる手順を含む、請求項11に記載のシステム。
【請求項18】
前記複数のサービス属性は、
処理リソースと;
メモリリソースと;
応答時間と;
ネットワークリソースと;
ストレージリソースと;
失敗率と;
リトライ率と;
メッセージキューの長さと;
負荷分散条件と
のうち少なくとも2つを含む、請求項11に記載のシステム。
【請求項19】
前記動作は、前記サービスのセットにおける複数のサービスが前記コンテナのセットのうちの前記コンテナに割り当てられることに従って、前記複数のサービス属性のうちのサービス属性に対して、前記複数のサービスに関連する前記サービス属性のさらなる合計の測定値を決定する手順と;
前記さらなる合計の測定値がさらなる対応する測定閾値を超えるという決定に従って、前記複数のサービスのうち少なくとも1つのサービスを少なくとも1つのさらなるコンテナに割り当てる手順であって、前記複数のサービスのうち前記少なくとも1つのサービスは、前記複数のサービスのうち少なくとも1つの残りのサービスより低い優先度を有する、手順と
をさらに備える、請求項11から18のいずれか一項に記載のシステム。
【請求項20】
プログラム命令を備えるコンピュータプログラムであって、前記プログラム命令は、プロセッサによって実行可能であり、
実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、前記複数のサービス属性のそれぞれの重要度レベルとに基づいて、前記サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームを決定する手順と;
前記コンテナのセットのうちのコンテナに対して、前記第1の割り当てスキームにおいて前記コンテナに割り当てられる前記サービスのセットのうち少なくとも1つのサービスに関連した前記複数のサービス属性のそれぞれの合計の測定値を決定する手順と;
前記それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、前記サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるための前記それぞれの重要度レベルを更新する手順と
を含む動作を前記プロセッサに実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理、より具体的には、コンテナにサービスを割り当てるための方法、システムおよびコンピュータプログラム製品に関連する。
【背景技術】
【0002】
DBaaS(DataBase-as-a-Service)などのデータベースの発展とともに、データベースの機能セットは、CRUD(creating,reading,updating and deleting)、インデックス構築、インデックス検索、データベース複製、データベースバックアップなどといった複数のサービスに分割される。この場合、1つのトランザクションを完了すべく、異なるポッドまたはコンテナ上の複数のサービスをコールチェーンで呼び出す必要がある。加えて、データベースは、異なるレベルにおいて異なるサイズを有する複数のテナントによって利用され得る。そのような発展はまた、解決すべき新しい課題をもたらす。しかしながら、従来のデータベースは、これらの課題に対処するには非効率的である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
データベースは、異なるレベルにおいて異なるサイズを有する複数のテナントによって利用され得る。そのような発展はまた、解決すべき新しい課題をもたらす。しかしながら、従来のデータベースは、これらの課題に対処するには非効率的である。
【課題を解決するための手段】
【0004】
本開示の第1の態様によると、コンピュータ実装方法が提供される。方法によると、サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームが、実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、複数のサービス属性のそれぞれの重要度レベルとに基づいて決定される。コンテナのセットのうちのコンテナに対して、第1の割り当てスキームにおいてコンテナに割り当てられるサービスのセットのうち少なくとも1つのサービスに関連した複数のサービス属性のそれぞれの合計の測定値が決定される。それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるためのそれぞれの重要度レベルが更新される。
【0005】
本開示の第2の態様によると、システムが提供される。システムは、処理ユニットと、処理ユニットに結合されたメモリであって、命令を格納するメモリとを備える。命令は、処理ユニットによって実行される場合:実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、前記複数のサービス属性のそれぞれの重要度レベルとに基づいて、前記サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームを決定する段階と;前記コンテナのセットのうちのコンテナに対して、前記第1の割り当てスキームにおいて前記コンテナに割り当てられる前記サービスのセットのうち少なくとも1つのサービスに関連した前記複数のサービス属性のそれぞれの合計の測定値を決定する段階と;前記それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、前記サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるための前記それぞれの重要度レベルを更新する段階とを含む動作を実行する。
【0006】
本開示の第3の態様によると、プログラム命令が具現化されたコンピュータ可読記憶媒体を含むコンピュータプログラム製品が提供される。プログラム命令は、プロセッサによって実行可能であり、実行中のサービスのセットの各々のサービスに関連する複数のサービス属性のそれぞれの測定値と、前記複数のサービス属性のそれぞれの重要度レベルとに基づいて、前記サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームを決定する段階と;前記コンテナのセットのうちのコンテナに対して、前記第1の割り当てスキームにおいて前記コンテナに割り当てられる前記サービスのセットのうち少なくとも1つのサービスに関連した前記複数のサービス属性のそれぞれの合計の測定値を決定する段階と;前記それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、前記サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるための前記それぞれの重要度レベルを更新する段階との動作をプロセッサに実行させる。
【図面の簡単な説明】
【0007】
添付図面における本開示のいくつかの実施形態のより詳細な説明を通じて、本開示の上記および他の目的、特徴および利点がより明らかになり、同じ参照番号は一般に本開示の実施形態において同じコンポーネントを指す。
【0008】
【
図1】本開示の実施形態に係るクラウドコンピューティングノードを図示する。
【
図2】本開示の実施形態に係るクラウドコンピューティング環境を図示する。
【0009】
【
図3】本開示の実施形態に係る抽象化モデル層を図示する。
【0010】
【
図4】本開示の実施形態が実装され得るサービス割り当て環境の例の概略図を図示する。
【0011】
【
図5】本開示の実施形態に係るサービスのセットの階層関係の例の概略図を図示する。
【0012】
【
図6】本開示の実施形態に係るサービス割り当ての方法の例のフローチャートを図示する。
【0013】
【
図7】本開示の実施形態に係る複数のサービス属性のそれぞれの測定値の例の概略図を図示する。
【0014】
【
図8】本開示の実施形態に係る第1の割り当てスキームの例の概略図を図示する。
【0015】
【
図9】本開示の実施形態に係る第2の割り当てスキームの例の概略図を図示する。
【発明を実施するための形態】
【0016】
本開示の実施形態が示されている添付図面を参照しながら、いくつかの実施形態をより詳細に説明する。しかしながら、本開示は様々な方式で実装され得、したがって、本明細書に開示された実施形態に限定されるものと解釈されるべきではない。
【0017】
本開示はクラウドコンピューティングに対する詳細な説明を含むが、本明細書に記載されている教示の実装はクラウドコンピューティング環境に限定されないことが理解される。むしろ、本開示の実施形態は、現在既知であるまたは後ほど開発される任意の他のタイプのコンピューティング環境と併せて実装可能である。
【0018】
クラウドコンピューティングは、サービスのプロバイダとの管理労力または相互作用を最小限にして迅速にプロビジョニングおよびリリースされ得る、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
【0019】
特性は、以下の通りである。
【0020】
オンデマンドセルフサービス:クラウド使用者は、サービスのプロバイダとの人間相互作用を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【0021】
幅広いネットワークアクセス:能力はネットワーク経由で利用可能であり、異種のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを介してアクセスされる。
【0022】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービス提供するようプールされ、異なる物理リソースおよび仮想リソースが要求に応じて動的に割り当ておよび再割り当てされる。消費者は一般に、提供されたリソースの正確な位置を制御することも認識することもないが、より高いレベルの抽象的概念(例えば、国、州、またはデータセンタ)で位置を指定できる場合があるという点で、位置独立性がある。
【0023】
迅速な柔軟性:能力を、迅速に且つ柔軟に、場合によっては自動的にプロビジョニングして、素早くスケールアウトし、迅速にリリースして素早くスケールインすることができる。消費者には、プロビジョニングに利用可能な能力が無制限に見えることが多く、任意の時間に任意の量が購入され得る。
【0024】
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザアカウント)に適したある抽象レベルにおける計量能力を活用することによって、リソース使用量を自動的に制御および最適化する。リソース使用量をモニタリング、制御、および報告して、利用されたサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0025】
サービスモデルは、以下の通りである。
【0026】
ソフトウェア・アズ・ア・サービス(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または更には個別のアプリケーション能力を含む、基礎となるクラウドインフラストラクチャの管理も制御も行わない。
【0027】
プラットフォーム・アズ・ア・サービス(PaaS):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された消費者が作成または取得したアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎となるクラウドインフラストラクチャの管理も制御も行わないが、展開されたアプリケーションと、場合によっては、アプリケーションホスティング環境構成とを制御する。
【0028】
インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることである。ここで、消費者は、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能である。消費者は、基礎となるクラウドインフラストラクチャの管理も制御も行わないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択ネットワーキングコンポーネント(例えば、ファイアウォール)を限定的に制御する。
【0029】
展開モデルは、以下の通りである。
【0030】
プライベートクラウド:クラウドインフラストラクチャは、ある組織のためだけに運用される。クラウドインフラストラクチャは、その組織または第三者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
【0031】
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮事項)を共有した特定のコミュニティをサポートする。クラウドインフラストラクチャは、その組織または第三者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
【0032】
パブリッククラウド:クラウドインフラストラクチャは、一般人または大規模な業界団体が利用可能であるようになっており、クラウドサービスを販売する組織によって所有される。
【0033】
ハイブリッドクラウド:クラウドインフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を可能にする標準技術または特許技術により結び付けられている、2つまたはそれより多くのクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0034】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0035】
ここで
図1を参照すると、クラウドコンピューティングノードの例の概略図が示される。クラウドコンピューティングノード10は、適切なクラウドコンピューティングノードの単なる1つの例に過ぎず、本明細書に説明されている開示の実施形態の使用または機能の範囲に対していかなる限定も示唆することを意図するものではない。いずれにしても、クラウドコンピューティングノード10は、上記に記載された機能のいずれかの実装もしくは実行またはその組み合わせを行うことが可能である。
【0036】
クラウドコンピューティングノード10には、コンピュータシステム/サーバ12または通信デバイスなどのポータブル電子デバイスが存在し、これらは、多数の他の汎用または専用コンピューティングシステム環境または構成とともに動作可能である。コンピュータシステム/サーバ12とともに使用するのに適切であり得る周知のコンピューティングシステム、環境もしくは構成またはその組み合わせの例は、限定されないが、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウドコンピューティング環境等を含む。
【0037】
コンピュータシステム/サーバ12は、コンピュータシステムによって実行される、プログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明され得る。一般には、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータシステム/サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型クラウドコンピューティング環境において実施され得る。分散型クラウドコンピューティング環境において、プログラムモジュールは、メモリストレージデバイスを含む、ローカルコンピュータシステム記憶媒体およびリモートコンピュータシステム記憶媒体の両方に位置付けられ得る。
【0038】
図1に示すように、クラウドコンピューティングノード10におけるコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12のコンポーネントは、限定されないが、1または複数のプロセッサまたは処理ユニット16と、システムメモリ28と、システムメモリ28を含む様々なシステムコンポーネントをプロセッサ16に結合するバス18とを含み得る。
【0039】
バス18は、メモリバスまたはメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のうちいずれかの1または複数を表している。限定ではなく、例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
【0040】
コンピュータシステム/サーバ12は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ12によってアクセス可能な任意の利用可能な媒体であり得、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体の両方を含む。
【0041】
システムメモリ28は、ランダムアクセスメモリ(RAM)30もしくはキャッシュメモリ32またはその組み合わせなどの揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12は、他の取り外し可能/取り外し不可能、揮発性/不揮発性コンピュータシステム記憶媒体をさらに含み得る。例としてのみ、ストレージシステム34は、取り外し不可能な不揮発性磁気媒体(図示せず、通常は「ハードドライブ」と呼ばれる)に読み出しおよび書き込みをするために提供されることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピディスク」)に読み出しおよび書き込みをするための磁気ディスクドライブと、CD-ROM、DVD-ROMまたは他の光媒体などの取り外し可能な不揮発性の光ディスクに読み出しまたは書き込みをするための光ディスクドライブとが提供され得る。このような例において、各々は、1または複数のデータ媒体インタフェースによってバス18に接続されることができる。以下にさらに図示され説明されるように、メモリ28は、本開示の実施形態の機能を実行するように構成されているプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0042】
オペレーティングシステム、1または複数のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータだけでなく、プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40が、限定ではなく例としてメモリ28に格納されてよい。オペレーティングシステム、1または複数のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータ、またはそれらのいくつかの組み合わせの各々は、ネットワーキング環境の実装を含み得る。プログラムモジュール42は一般に、本明細書に説明されている開示の実施形態の機能もしくは方法論またはその組み合わせを実行する。
【0043】
コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24などといった1または複数の外部デバイス14;ユーザがコンピュータシステム/サーバ12と相互作用することを可能にする1または複数のデバイス;もしくはコンピュータシステム/サーバ12が1または複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデムなど)またはその組み合わせと通信する場合もある。そのような通信は、入出力(I/O)インタフェース22を介して生じ得る。またさらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、もしくは、パブリックネットワーク(例えば、インターネット)またはその組み合わせなどの1または複数のネットワークと通信することができる。図示されるように、ネットワークアダプタ20は、バス18を介してコンピュータシステム/サーバ12の他のコンポーネントと通信する。図示されていないが、他のハードウェアもしくはソフトウェアコンポーネントまたはその組み合わせは、コンピュータシステム/サーバ12と併せて使用され得ることを理解されたい。例には、限定されないが、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイブストレージシステムなどが含まれる。
【0044】
ここで
図2を参照すると、例示的なクラウドコンピューティング環境50が図示されている。示されるように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはその組み合わせなど、クラウド使用者によって使用されるローカルコンピューティングデバイスが通信し得る1または複数のクラウドコンピューティングノード10を含む。ノード10は、互いに通信し得る。これらは、上記で説明したようなプライベート、コミュニティ、パブリックまたはハイブリッドクラウドなどの1または複数のネットワーク、またはそれらの組み合わせにおいて、物理的にまたは仮想的にグループ化(図示せず)され得る。これにより、クラウドコンピューティング環境50は、クラウド使用者がローカルコンピューティングデバイス上のリソースを維持する必要のないインフラストラクチャ、プラットフォーム、もしくはソフトウェアまたはその組み合わせをサービスとして提供することができる。
図2に示されているコンピューティングデバイス54A~Nのタイプは、単に例示を意図するものであり、コンピューティングノード10およびクラウドコンピューティング環境50は、(例えば、ウェブブラウザを使用して)任意のタイプのネットワークもしくはネットワークアドレス指定可能接続またはその組み合わせを介して、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0045】
ここで
図3を参照すると、クラウドコンピューティング環境50(
図2)によって提供された機能抽象化層のセットが示される。
図3に示されるコンポーネント、層および機能は、単に例示を意図するものであり、本開示の実施形態はこれに限定されないことを予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0046】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61;RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62;サーバ63;ブレードサーバ64;ストレージデバイス65;ならびに、ネットワークおよびネットワーキングコンポーネント66を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0047】
仮想化層70は、以下の仮想エンティティの例、すなわち、仮想サーバ71;仮想ストレージ72;仮想プライベートネットワークを含む仮想ネットワーク73;仮想アプリケーションおよびオペレーティングシステム74;および仮想クライアント75が提供され得る抽象化層を提供する。
【0048】
1つの例において、管理層80は、以下に説明される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するのに利用される、コンピューティングリソースおよび他のリソースの動的な調達を提供する。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス作成を提供する。1つの例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド使用者およびタスクに対する本人確認と、データおよび他のリソースに対する保護とを提供する。ユーザポータル83は、消費者およびシステム管理者に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要とされるサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベル合意(SLA)の計画および履行85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースに関する事前アレンジメントおよびその調達を提供する。
【0049】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91;ソフトウェア開発およびライフサイクル管理92;仮想教室教育配信93;データ分析処理94:トランザクション処理95;およびサービス割り当て96を含む。
【0050】
データベース・アズ・ア・サービス(DBaaS)の多くの既知の構成は、限定されないが、creating-reading-updating-deleting(CRUD)機能、インデックス構築、インデックス検索、データベース複製、およびデータベースバックアップを含む複数のマイクロサービスに分割されたデータベースの機能セットを含む。1つのジョブを完了すべく、異なるポッド上のまたは異なるコンテナ内の複数のデータベースサービスが1つのコールチェーン内で呼び出される。加えて、通常は、異なるレベルのDBaaSを消費すべく、サイズの異なる処理要件を有する複数のテナントが存在する。一般に、これらのデータベース関連タスクのスケジューリングは、プラットフォームを提供するサービスを通じて実行され、ここで、そのようなスケジューリングは、ポッドまたはコンテナトポロジを割り当てるためにそれぞれのウェブサービスコールチェーンの階層関係を考慮するように常に最適化されているわけではない場合がある。さらに、それぞれのデータベースの動作特性の分析が不足しているため、コンピューティングリソースの最も効果的な使用が実現されない場合がある。
【0051】
上記で説明されているように、データベースの発展は解決すべき新しい課題をもたらす。しかしながら、従来のデータベースは、これらの課題に対処するには非効率的である。例えば、解決すべき1つの課題は、データベースのサービス属性をどのように活用して異なるタイプのポッド/コンテナをプロビジョニングし、それによりポッド/コンテナの異なる類型または組み合わせを提供するかである。別の課題は、ポッド/コンテナの類型を、ワークロードまたはテナントの変更と共に、どのように動的に調整するかである。加えて、さらなる課題は、高い耐障害性で許容可能な時間内にポッド/コンテナの類型を提供および調整するコストをどのように低減するかである。
【0052】
具体的な例として、データベースにおける通常のトランザクションは、ターゲットデータを取得することと、取得されたデータから予想されるサブセットをフィルタリングすることと、これらおサブセットを統合データセットに集約することと、そのデータセットをターゲットストレージに複製することとを含み得る。従来は、異なるサービスの異なるワークロードと、サービスの階層関係とを考慮して、ポッド/コンテナの類型を最適化することが困難だった。
【0053】
コンピューティングリソースをより有効に使用するための少なくとも1つの既知のメカニズムは、例えば、データベースシステムの容量を調節するための特定のデータベース作業の実行を遅延させることによって、リソースを直接管理することによってコンピューティングシステムの容量を調節することを含む。同様に、別の既知のメカニズムは、ジョブに対するリソース要件を決定することと、ジョブを分類に割り当てることと、割り当てられた分類に基づいてジョブの実行を優先させることとを含む。しかしながら、DBaaSのクライアントは、それらのそれぞれの処理要求の意図的な遅延に反対する場合がある。さらに、異常リソース性能の期間中にコンテナベースのリソース再割り当てを管理する既知の方法があるが、しかしながら、そのような再割り当てメカニズムは、通常動作のために構成されているものではない。加えて、いくつかの既知の方法およびシステムは、特定のタスクに対するリソース使用履歴の集合に依存するとともにタスクの期限と組み合わされ、タスクを適切にスケジューリングする。同様に、いくつかの方法はリアルタイムのリソース使用量に依存する;しかしながら、これらの方法は、効率的なタスクのスケジューリングおよび実行のさらなる向上を提供し得る、タスクの他の特性を考慮しない。さらに、少なくともいくつかの方法は、処理される情報のタイプおよび顧客の特性、影響を受けるサービス、コンピューティング環境、およびワークフロー情報に基づいて事業価値を最大化することによって特定の要求を優先させることなどの他の属性および考慮事項に重点を置いている;しかしながら、そのような方法は、タスクへのコンピューティングリソース割り当てを最適化することには重点を置いていない。
【0054】
サービス割り当てに対する改善された解決手段が本開示に提供される。一般的に言えば、本開示の実施形態によると、サービスのセットをコンテナのセットに割り当てるための第1の割り当てスキームが、実行中のサービスのセットの各々に関連する複数のサービス属性のそれぞれの測定値と、複数のサービス属性のそれぞれの重要度レベルとに基づいて決定される。コンテナのセットのうちのコンテナに対して、第1の割り当てスキームにおいてコンテナに割り当てられるサービスのセットのうち少なくとも1つに関連した複数のサービス属性のそれぞれの合計の測定値が決定される。それぞれの合計の測定値のうちの合計の測定値が対応する測定閾値を超えるという決定に従って、サービスのセットを割り当てるためのさらなる割り当てスキームを決定するのに使用されるためのそれぞれの重要度レベルが更新される。
【0055】
本明細書において提案されるサービス割り当てメカニズムに従って、サービスのセットは、高い耐障害性および低コストで許容可能な時間内にコンテナのセットに効率的に割り当てられることができる。
【0056】
ここで、いくつかの例示的な実施形態が
図4から
図9を参照して説明される。
図4は、本開示の実施形態が実装され得るサービス割り当て環境400の例の概略図を図示する。
【0057】
サービス割り当て環境400は、コンピュータシステム/サーバ12と、サービスのセット420と、コンテナプール440とを含み得る。サービスのセット420は、サービス410-1から410-N(「サービス410(services410)」とまとめて称されるか、または「サービス410(service410)」と個別で称されており、Nは1より大きい正の整数を表す)などの複数のサービスを含み得る。例えば、これらのサービスは、インデックスサービス、フィルタサービス、集約サービス、複製サービス、CRUDサービス、フルテキストサービス、バックアップサービス等を含み得る。
【0058】
具体的な例として、データベースにおけるトランザクションを完了する場合、サービスのセットは、サービスが階層内で編成できるように、チェーンで呼び出され得る。
図5は、本開示の実施形態に係るサービスのセットの階層関係500の例の概略図を図示する。
図5に示されるように、データベースにおけるトランザクションを完了すべく、インデックスサービス540、542、544、546、548および549を呼び出し、ターゲットデータを取得し得る。例えば、インデックスサービスは、データのインデックスによってターゲットデータを検索するマップ/リデュースサービスであり得る。代替的に、インデックスサービスは、全体のテキストでデータを検索するフルテキストサービスであり得る。
【0059】
加えて、フィルタサービス530、532および534は、取得されたデータから予想されるサブセットをフィルタリングするために呼び出され得る。例えば、データは、データソース、またはデータが生成された時間などといった指定された条件に従ってフィルタリングできる。集約サービス520は、統合データセットにこれらのサブセットを集約し得る。複製サービス510は、ターゲットストレージにデータセットを複製し得る。
【0060】
図4に戻ると、コンテナプール440は、コンテナ430-1から430-M(「コンテナ430」とまとめて称されるか、または「コンテナ430」と個別で称されており、Mは1より大きい正の整数を表す)などの複数のコンテナを含み得る。コンピュータシステム/サーバ12は、実行のために、コンテナプール440から選択されたコンテナのセットに、サービスのセット420を割り当て得る。
【0061】
いくつかの実施形態において、ポッドは、1または複数のコンテナ430を開始し得る。ポッドは独立した論理マシンであり、それ自身のIPアドレス、ホスト名、プロセス、またはプロキシなどを有する。この場合、ポッドにおける全てのコンテナ430は独立した論理マシン内にある。したがって、サービスのセット420をコンテナのセットに割り当てることは、サービスのセット420をポッドのセットに割り当てることとみなすこともできる。
【0062】
サービスのセット420をコンテナのセットに割り当てることは、
図6から
図9を参照して以下により詳細に説明される。
図6は、本開示の実施形態に係るサービス割り当ての方法600の例のフローチャートを図示する。610において、コンピュータシステム/サーバ12は、サービスのセット420をコンテナのセットに割り当てるための第1の割り当てスキームを、実行中のサービスのセット420の各々に関連する複数のサービス属性のそれぞれの測定値と、複数のサービス属性のそれぞれの重要度レベルとに基づいて決定する。
【0063】
いくつかの実施形態において、サービスのセット420は、コンテナプール440内のそれぞれのコンテナにおいて実行され得る。この場合、コンピュータシステム/サーバ12は、サービスのセット420の各々に関連する複数のサービス属性のそれぞれの測定値を、サービスのセットを現在実行しているそれぞれのコンテナをモニタリングおよびトレースすることによって、取得し得る。
【0064】
いくつかの実施形態において、サービス属性は、処理リソース、メモリリソース、応答時間、ネットワークリソース、ストレージリソース、失敗率、リトライ率、メッセージキューの長さ、および負荷分散条件を含み得る。例えば、処理リソースは、CPU、またはGPU(グラフィックス処理ユニット,Graphics Processing Unit)などであり得る。メモリリソースは、SDRAM(シンクロナスダイナミックランダムアクセスメモリ,Synchronous Dynamic Random Access Memory)、またはDDR SDRAM(ダブルデータレートSDRAM,Double Data Rate SDRAM)などであり得る。応答時間は、サービスが呼び出されてからのサービスの応答時間であり得る。ネットワークリソースはネットワーク帯域幅、またはネットワークトラフィックなどであり得る。ストレージリソースは、ディスクまたは永続ボリュームなどであり得る。失敗率およびリトライ率は、例えば、不十分なネットワーク状況によるデータ伝送の失敗およびリトライの割合であり得る。メッセージキューの長さは、サービスによって処理されるメッセージキューの数であり得る。負荷分散条件は、接続の数、または伝送されたメッセージの数などであり得る。
【0065】
図7は、本開示の実施形態に係る複数のサービス属性のそれぞれの測定値700の例の概略図を図示する。
図7は、インデックスサービス540、542、544、546、548および549、フィルタサービス530、532および534、集約サービス520、および複製サービス510に関連するサービス属性(処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースを含む)のそれぞれの測定値を示す。例えば、
図7に示されるように、インデックスサービス1の場合、処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースのそれぞれの測定値は、それぞれ300M(millicore)、56MB(Mega Byte)、500MS(millisecond)、50MBおよび0MBである。
【0066】
図6に戻ると、複数のサービス属性のそれぞれの測定値に加えて、コンピュータシステム/サーバ12は、複数のサービス属性のそれぞれの重要度レベルも取得し得る。例えば、処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースの重要度レベルは、それぞれ30%、30%、20%、10%および10%であり得る。重要度レベルは事前決定され得る。例えば、最初に、重要度レベルは、ランダムに決定されてもよく、または、履歴経験に基づいて決定されてもよい。加えて、重要度レベルは、事前の反復において決定され得る。
【0067】
これにより、第1の割り当てスキームは、複数のサービス属性のそれぞれの測定値と、それぞれの重要度レベルとに基づいて決定され得る。いくつかの実施形態において、第1の割り当てスキームを決定すべく、コンピュータシステム/サーバ12は、複数のサービス属性のそれぞれの測定値と、それぞれの重要度レベルとに基づいて、サービスのセットの各々に対するサービススコアを決定し得る。いくつかの実施形態において、サービススコアは、対応する重要度レベルによって重み付けされたそれぞれの測定値の各々の和であり得る。
【0068】
例えば、インデックスサービス1の場合、処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースのそれぞれの測定値は、それぞれ300M、56MB、500MS、50MBおよび0MBである。例えば、処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースのそれぞれの重要度レベルは、それぞれ30%、30%、20%、10%および10%であり得る。この場合、インデックスサービス1に対するサービススコアは、300*30%+56*30%+500*20%+50*10%+0*10%=211.8のように計算できる。
【0069】
いくつかの実施形態において、コンピュータシステム/サーバ12は、複数のサービス属性のそれぞれの測定値を正規化し、正規化されたそれぞれの測定値に基づいてサービススコアを決定し得る。例えば、コンピュータシステム/サーバ12は、複数のサービス属性の各々の最大測定値を決定し得る。例えば、処理リソースの最大測定値は700Mである。この場合、コンピュータシステム/サーバ12は、最大測定値を用いて、処理リソースの測定値を正規化し得る。例えば、インデックスサービス1の処理リソースの正規化された測定値は、300/700≒0.43のように計算できる。
【0070】
これにより、コンピュータシステム/サーバ12は、サービスのセットに対するそれぞれのサービススコアと、複数の候補コンテナに関連付けられたそれぞれのスコア閾値との間の比較に基づいて、第1の割り当てスキームを決定し得る。いくつかの実施形態において、コンピュータシステム/サーバ12は、1または複数のサービスに対するそれぞれのサービススコアのうち1または複数に基づいて、サービスのセット420から選択された1または複数のサービスに関連する合計サービススコアを決定し得る。
【0071】
例えば、インデックスサービス540、542、544、546、548および549、フィルタサービス530、532および534、集約サービス520および複製サービス510に対するサービススコアが、それぞれ20、25、25、25、40、40、5、5、5、5および75であると仮定する。この場合、インデックスサービス540、542、544および546に関連する合計サービススコアは95である。インデックスサービス548および549に関連する合計サービススコアは80である。フィルタサービス530、532および534、ならびに集約サービス520に関連する合計サービススコアは20である。複製サービス510に関連する合計サービススコアは75である。
【0072】
合計サービススコアが複数の候補コンテナから選択されたターゲットコンテナに関連付けられたそれぞれのスコア閾値のターゲットスコア閾値を下回るまたはそれと等しいとき、コンピュータシステム/サーバ12は、1または複数のサービスがターゲットコンテナに割り当てられることを示すべく、第1の割り当てスキームを決定し得る。異なるターゲットコンテナのスコア閾値は、同じであってもよく、または異なってもよいことを理解されたい。例えば、4つのターゲットコンテナに関連付けられたスコア閾値は100であってよい。
【0073】
この場合、インデックスサービス540、542、544および546に関連する合計サービススコアと、インデックスサービス548および549に関連する合計サービススコアと、フィルタサービス530、532および534ならびに集約サービス520に関連する合計サービススコアと、複製サービス510に関連する合計サービススコアとがターゲットスコア閾値100を下回るまたはそれと等しいので、コンピュータシステム/サーバ12は、インデックスサービス540、542、544および546が第1のターゲットコンテナに割り当てられることと、インデックスサービス548および549が第2のターゲットコンテナに割り当てられることと、フィルタサービス530、532および534ならびに集約サービス520が第3のターゲットコンテナに割り当てられることと、複製サービス510が第4のターゲットコンテナに割り当てられることとを示すべく、第1の割り当てスキームを決定し得る。
【0074】
図8は、本開示の実施形態に係る第1の割り当てスキーム800の例の概略図を図示する。
図8に示されるように、インデックスサービス540、542、544、546、548および549、フィルタサービス530、532および534、集約サービス520および複製サービス510に対するサービススコアが、それぞれ20、25、25、25、40、40、5、5、5、5および75である。第1の割り当てスキームにおいて、インデックスサービス540、542、544および546は第1のターゲットコンテナに割り当てられ、インデックスサービス548および549は第2のターゲットコンテナに割り当てられ、フィルタサービス530、532および534ならびに集約サービス520は第3のターゲットコンテナに割り当てられ、複製サービス510は第4のターゲットコンテナに割り当てられる。
【0075】
図6に戻ると、いくつかの実施形態において、いくつかのサービスは同じコンテナに割り当てることが許容されないか、または、いくつかのサービスは同じコンテナに割り当てられることが好ましい。この場合、サービスのアフィニティおよびアンチアフィニティを考慮する必要がある。例えば、コンピュータシステム/サーバ12は、アフィニティ情報を取得し得る。アフィニティ情報は、サービスのセットのうち少なくとも2つを同じコンテナに割り当てることが許容されているかどうかを示し得る。加えて、いくつかの実施形態において、いくつかのコンテナは、別のコンテナと協働することが許容されない。この場合、コンテナのアフィニティおよびアンチアフィニティも考慮する必要がある。この場合、アフィニティ情報は、コンテナプール440における少なくとも2つのコンテナが互いに協働することが許容されているかどうかも示し得る。
【0076】
これにより、コンピュータシステム/サーバ12は、さらにアフィニティ情報に基づいて第1の割り当てスキームを決定し得る。このように、測定値と重要度レベルとに加えて、第1の割り当てスキームは、アフィニティ情報を考慮してさらに最適化されることができる。
【0077】
上記のテキストは、第1の割り当てスキームの粗い決定を説明しており、第2の割り当てスキームの細かい決定が以下に詳細に説明される。
【0078】
いくつかの実施形態において、ターゲットコンテナに割り当てられる1または複数のサービスに関連する合計サービススコアは、対応するターゲットスコア閾値を下回るまたはそれと等しいが、特定のサービス属性の合計の測定値は、対応する測定閾値を超えてよい。例えば、第1のターゲットコンテナに割り当てられるインデックスサービス540、542、544および546に関連する処理リソースの合計の測定値が1000Mであると仮定する。しかしながら、第1のターゲットコンテナの処理リソースに関連付けられた測定閾値は800Mである。この場合、第1のターゲットコンテナは、インデックスサービス540、542、544および546の実行をサポートする。したがって、第1の割り当てスキームは調整される必要がある。
【0079】
この場合、620において、コンテナのセットのうちのコンテナに対して、コンピュータシステム/サーバ12は、第1の割り当てスキームにおいてコンテナに割り当てられるサービスのセット420のうち少なくとも1つに関連した複数のサービス属性のそれぞれの合計の測定値を決定する。コンテナのセットの各々のそれぞれの合計の測定値が、コンテナのセットの各々に関連付けられた対応する測定閾値を下回るまたはそれと等しいとき、コンピュータシステム/サーバ12は、サービスのセット420を、第1の割り当てスキームに基づく実行のために、コンテナのセットに割り当て得る。
【0080】
それぞれの合計の測定値の合計の測定値が対応する測定閾値を超えるとき、630において、コンピュータシステム/サーバ12は、サービスのセット420を割り当てるためのさらなる割り当てスキームを決定することにおいて使用するために、それぞれの重要度レベルを更新し得る。いくつかの実施形態において、合計の測定値が複数のサービス属性のうち1つに関連付けられた対応する測定閾値を超えるとき、コンピュータシステム/サーバ12は、サービス属性に関連付けられたそれぞれの重要度レベルの重要度レベルを上げ得る。加えて、いくつかの実施形態において、コンピュータシステム/サーバ12は、サービス属性以外の複数のサービス属性の残りのサービス属性に関連付けられたそれぞれの重要度レベルの重要度レベルを下げる場合もある。
【0081】
例えば、第1のターゲットコンテナに割り当てられるインデックスサービス540、542、544および546に関連する処理リソースの合計の測定値が1000Mであると仮定する。しかしながら、第1のターゲットコンテナの処理リソースに関連付けられた測定閾値は800Mである。処理リソースの合計の測定値は、測定閾値を超える。この場合、重要度レベルが更新され得る。特に、処理リソースの重要度レベルが上がり得る。
【0082】
処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースの重要度レベルは、それぞれ30%、30%、20%、10%および10%であり得ると仮定する。処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースの更新された重要度レベルは、それぞれ40%、25%、15%、10%および10%であり得る。処理リソースの重要度レベルが上がり、その一方、メモリリソースおよび応答時間の重要度レベルは下がることが分かり得る。
【0083】
いくつかの実施形態において、コンピュータシステム/サーバ12は、サービスのセット420の各々に関連する複数のサービス属性のそれぞれの測定値と、複数のサービス属性に関連付けられたそれぞれの更新された重要度レベルとに基づいて、第2のコンテナのセットにサービスのセット420を割り当てるための第2の割り当てスキームを決定し得る。第2の割り当てスキームの決定は、第1の割り当てスキームのそれと同様である。
【0084】
具体的には、いくつかの実施形態において、第2の割り当てスキームを決定すべく、コンピュータシステム/サーバ12は、複数のサービス属性のそれぞれの測定値と、それぞれの更新された重要度レベルとに基づいて、サービスのセットの各々に対するサービススコアを決定し得る。いくつかの実施形態において、サービススコアは、対応する更新された重要度レベルによって重み付けされたそれぞれの測定値の各々の和であり得る。
【0085】
例えば、インデックスサービス1の場合、処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースのそれぞれの測定値は、それぞれ300M、56MB、500MS、50MBおよび0MBである。処理リソース、メモリリソース、応答時間、ネットワークリソースおよびストレージリソースのそれぞれの更新された重要度レベルは、それぞれ40%、25%、15%、10%および10%であり得る。この場合、インデックスサービス1に対するサービススコアは、300*40%+56*25%+500*15%+50*10%+0*10%=214のように計算できる。
【0086】
いくつかの実施形態において、コンピュータシステム/サーバ12は、複数のサービス属性のそれぞれの測定値を正規化し、正規化されたそれぞれの測定値とそれぞれの更新された重要度レベルとに基づいてサービススコアを決定し得る。
【0087】
これにより、コンピュータシステム/サーバ12は、サービスのセット420に対するそれぞれのサービススコアと、複数の候補コンテナに関連付けられたそれぞれのスコア閾値との間の比較に基づいて、第2の割り当てスキームを決定し得る。いくつかの実施形態において、コンピュータシステム/サーバ12は、1または複数のサービスに対するそれぞれのサービススコアのうち1または複数に基づいて、サービスのセット420から選択された1または複数のサービスに関連する合計サービススコアを決定し得る。
【0088】
例えば、インデックスサービス540、542、544、546、548および549、フィルタサービス530、532および534、集約サービス520および複製サービス510に対するサービススコアが、それぞれ35、35、35、35、45、45、5、5、5、5および85であると仮定する。この場合、インデックスサービス540および542に関連する合計サービススコアは70である。インデックスサービス544および546に関連する合計サービススコアは70である。インデックスサービス548および549に関連する合計サービススコアは90である。フィルタサービス530、532および534、ならびに集約サービス520に関連する合計サービススコアは20である。複製サービス510に関連する合計サービススコアは85である。
【0089】
合計サービススコアが複数の候補コンテナから選択されたターゲットコンテナに関連付けられたそれぞれのスコア閾値のターゲットスコア閾値を下回るまたはそれと等しいとき、コンピュータシステム/サーバ12は、1または複数のサービスがターゲットコンテナに割り当てられることを示すべく、第2の割り当てスキームを決定し得る。異なるコンテナのスコア閾値は、同じであってもよく、または異なってもよいことを理解されたい。例えば、5つのターゲットコンテナに関連付けられたスコア閾値は100であってよい。
【0090】
この場合、インデックスサービス540および542に関連する合計サービススコアと、インデックスサービス544および546に関連する合計サービススコアと、インデックスサービス548および549に関連する合計サービススコアと、フィルタサービス530、532および534ならびに集約サービス520に関連する合計サービススコアと、複製サービス510に関連する合計サービススコアとがターゲットスコア閾値100を下回るまたはそれと等しいので、コンピュータシステム/サーバ12は、インデックスサービス540および542が第1のターゲットコンテナに割り当てられることと、インデックスサービス544および546が第2のターゲットコンテナに割り当てられることと、インデックスサービス548および549が第3のターゲットコンテナに割り当てられることと、フィルタサービス530、532および534ならびに集約サービス520が第4のターゲットコンテナに割り当てられることと、複製サービス510が第5のターゲットコンテナに割り当てられることとを示すべく、第2の割り当てスキームを決定し得る。
【0091】
図9は、本開示の実施形態に係る第2の割り当てスキーム900の例の概略図を図示する。
図9に示されるように、インデックスサービス540、542、544、546、548および549、フィルタサービス530、532および534、集約サービス520および複製サービス510に対するサービススコアが、それぞれ35、35、35、35、45、45、5、5、5、5および85である。第2の割り当てスキームにおいて、インデックスサービス540および542は第1のターゲットコンテナに割り当てられ、インデックスサービス544および546は第2のターゲットコンテナに割り当てられ、インデックスサービス548および549は第3のターゲットコンテナに割り当てられ、フィルタサービス530、532および534ならびに集約サービス520は第4のターゲットコンテナに割り当てられ、複製サービス510は第5のターゲットコンテナに割り当てられる。
【0092】
図6に戻ると、いくつかの実施形態において、コンピュータシステム/サーバ12は、さらにアフィニティ情報に基づいて第2の割り当てスキームを決定し得る。このように、測定値と更新された重要度レベルとに加えて、第2の割り当てスキームは、さらにアフィニティ情報を考慮して最適化されることができる。
【0093】
いくつかの実施形態において、最適/最良の割り当てスキームを決定する時間が非常に長い場合がある。例えば、最適な割り当てスキームを決定する時間は数分かかる場合がある。この場合、全ての可能な割り当てスキームの最適な割り当てスキームを決定する代わりに、コンピュータシステム/サーバ12は、例えば5秒のように事前決定された時間内に、準最適な割り当てスキームを決定し得る。この場合、割り当てスキームを決定する効率が向上できる。
【0094】
これにより、コンピュータシステム/サーバ12は、サービスのセット420を、第2の割り当てスキームに基づく実行のために、第2のコンテナのセットに割り当て得る。このように、サービスのセット420は、高い耐障害性および低コストで許容可能な時間内にコンテナのセットに効率的に割り当てられることができる。
【0095】
加えて、場合によっては、異なる優先度を有する複数のサービスが同じコンテナに割り当てられ得る。例えば、異なる優先度を有する異なるユーザがデータベースを使用し得る。第1のユーザは高い優先度を有し得、その一方、第2のユーザは低い優先度を有し得る。すなわち、第1のユーザのサービスは高い優先度を有し得、その一方、第2のユーザのサービスは低い優先度を有し得る。この場合、第1のユーザのサービスより第2のユーザのサービスを優先させるためのメカニズムが提供され得る。
【0096】
これにより、いくつかの実施形態において、サービスのセット420における複数のサービスがコンテナのセットのうちのコンテナに割り当てられるとき、複数のサービス属性のうちのサービス属性に対して、コンピュータシステム/サーバ12は、複数のサービスに関連するサービス属性のさらなる合計の測定値を決定し得る。さらなる合計の測定値がさらなる対応する測定閾値を超えるとき、コンピュータシステム/サーバ12は、複数のサービスのうち少なくとも1つを少なくとも1つのさらなるコンテナに割り当て得る。複数のサービスのうち少なくとも1つは、複数のサービスのうち少なくとも1つの残りのサービスより低い優先度を有する。
【0097】
例えば、複数のサービスに関連する処理リソースのさらなる合計の測定値が1000Mであると仮定する。しかしながら、第1のターゲットコンテナの処理リソースに関連付けられたさらなる測定閾値は600Mである。この場合、より低い優先度を有するサービスは、少なくとも1つのさらなるコンテナに割り当てられ得る。例えば、低い優先度を有する第1のユーザのサービスは、少なくとも1つのさらなるコンテナに割り当てられ得る。このように、高い優先度を有する第2のユーザのユーザエクスペリエンスが改善できる。
【0098】
さらに、場合によっては、単一のサービスを1つのコンテナにおいて実行することができない場合がある。例えば、サービスの処理リソースの測定値が非常に大きく、1つのコンテナがこのサービスの実行をサポートできない場合がある。この場合、このサービスは、いくつかのマイクロサービスに分割され得る。
【0099】
具体的に、いくつかの実施形態において、サービスのセット420の第1のサービスに関連するそれぞれの測定値の測定値が対応する測定閾値を超えるとき、コンピュータシステム/サーバ12は、第1のサービスを複数のサービスに分割し得る。例えば、第1のサービスは、複数のサブサービスまたはマイクロサービスに分割され得る。これにより、コンピュータシステム/サーバ12は、第1のサービス以外のサービスのセット420における複数のサービスおよび残りのサービスを割り当てるための第3の割り当てスキームを決定し得る。したがって、サービスのサイズはコンテナの能力によって動的に調整され得る。
【0100】
上記で説明したプロセス(測定値の取得、割り当てスキームの粗い決定ならびに細かい決定、およびコンテナへのサービスの割り当てなど)は、反復的に実行できる。この場合、コンテナへのサービスの割り当ては動的に調整できる。
【0101】
本開示は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法もしくはコンピュータプログラム製品またはその組み合わせであってよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数または複数)を含んでよい。
【0102】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または前述したものの任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードもしくは命令が記録された溝内の隆起構造などの機械的にエンコードされたデバイス、および前述したものの任意の適切な組み合わせを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通って伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
【0103】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせを介して外部コンピュータまたは外部ストレージデバイスにダウンロードできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバまたはその組み合わせを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における格納のためにコンピュータ可読プログラム命令を転送する。
【0104】
本開示の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)またはC++などといったオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせにおいて記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行されてもよいし、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行されてもよいし、リモートコンピュータもしくはサーバ上で完全に実行されてもよい。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはその接続が、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路が、本開示の態様を実行すべく、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行してよい。
【0105】
本開示の態様は、本開示の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその組み合わせを参照して本明細書に説明される。フローチャート図もしくはブロック図またはその組み合わせの各ブロックと、フローチャート図もしくはブロック図またはその組み合わせにおけるブロックの組み合わせとが、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0106】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されて、マシンを生成し得、その結果、当該命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を介して実行され、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定された機能/動作を実装する手段を作成する。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に格納されてよく、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはその組み合わせに対し、特定の方式で機能するよう命令することができ、その結果、命令を格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含む。
【0107】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードして、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実行させて、コンピュータ実装プロセスを生成することで、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定された機能/動作を実装するようにしてもよい。
【0108】
図中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定される論理機能を実装する1または複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的な実装において、ブロックに記される機能は、図面に記される順序とは異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際には、1つのステップとして実現されても、部分的にまたは全体的に時間重複する方式で同時に、実質的に同時に実行されてもよいし、または、ブロックは、場合によっては、関与している機能に依存して逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその組み合わせの各ブロック、ならびに、ブロック図もしくはフローチャート図またはその組み合わせにおけるブロックの組み合わせは、指定された機能または動作を実行する、または、専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって実装することができることにも留意されたい。
【0109】
本開示の様々な実施形態の説明は、例示目的で提示されているが、網羅的であること、あるいは、開示された実施形態への限定を意図するものではない。説明された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が、当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用またはそれに対する技術的改善を最もよく説明し、あるいは、本明細書に開示された実施形態を他の当業者が理解することを可能にするように選択されている。