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

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

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

特表2023-549655コンテナ・スケーリングおよび移動を実施する方法、システム
<>
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図1
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図2
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図3
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図4
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図5
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図6
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図7
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図8
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図9A
  • 特表-コンテナ・スケーリングおよび移動を実施する方法、システム 図9B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-29
(54)【発明の名称】コンテナ・スケーリングおよび移動を実施する方法、システム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20231121BHJP
【FI】
G06F9/50 120Z
G06F9/50 150Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023524270
(86)(22)【出願日】2021-10-21
(85)【翻訳文提出日】2023-04-19
(86)【国際出願番号】 CN2021125328
(87)【国際公開番号】W WO2022111156
(87)【国際公開日】2022-06-02
(31)【優先権主張番号】17/103,156
(32)【優先日】2020-11-24
(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)【復代理人】
【識別番号】100091568
【弁理士】
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】パミダラ、スリーニヴァサ ラオ
(72)【発明者】
【氏名】バンドラムディ、ジャヤチャンドゥ
(72)【発明者】
【氏名】シヴァクマール、ガンディー
(72)【発明者】
【氏名】ノルラス、アーネス
(57)【要約】
コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を実施する方法、システムが提供される。複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットが抽出され、訓練済み予想モデルおよびそれぞれの各マイクロサービスから抽出された特徴の第1のセットを使用して複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数が予測され、それぞれの各マイクロサービスのために将来の時点で必要なコンテナの数に応じてそれぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいてスケーリング・ラベルおよびスケーリング値が複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てられ、それぞれの各マイクロサービスに割り当てられたスケーリング・ラベルおよびスケーリング値に基づいて複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの現在の数が調節される。
【特許請求の範囲】
【請求項1】
コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ実行方法であって、
コンピュータによって、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出することと、
前記コンピュータによって、訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の前記第1のセットを使用して、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測することと、
前記コンピュータによって、それぞれの各マイクロサービスのために前記将来の時点で必要なコンテナの前記数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てることと、
前記コンピュータによって、それぞれの各マイクロサービスに割り当てられた前記スケーリング・ラベルおよび前記スケーリング値に基づいて、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を自動的に調節することと、
を含む、コンピュータ実行方法。
【請求項2】
前記コンピュータによって、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出することと、
前記コンピュータによって、それぞれの各マイクロサービスから抽出された特徴の前記第2のセットに基づいて、前記複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定することと
をさらに含む、請求項1に記載のコンピュータ実行方法。
【請求項3】
前記コンピュータによって、複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別することと、
前記コンピュータによって、前記特定のマイクロサービス間で判定されたマイクロサービス類似度の前記度合いに基づいて、計算ノードの前記第1のセットで動く、前記ネットワーク・レイテンシ閾値レベルを上回る前記ネットワーク・レイテンシ値を有するコンテナの前記第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、前記複数の計算ノードにおける計算ノードの第2のセットを判定することと
をさらに含む、請求項2に記載のコンピュータ実行方法。
【請求項4】
前記コンピュータによって、同じ度合いのコンテナ類似度を共有するコンテナの前記第1のセットおよびコンテナの前記第2のセットにおける特定のコンテナを識別することと、
前記コンピュータによって、ネットワークのレイテンシを減少させるために、前記同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させることと
をさらに含む、請求項3に記載のコンピュータ実行方法。
【請求項5】
前記コンピュータによって、原因推論条件付けを使用して、前記複数の計算ノードのうち、調節された数のコンテナを有する計算ノードに関して、主要性能指標の第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する第1のインパクトを判定することと、
前記コンピュータによって、前記原因推論条件付けを使用して、2つの計算ノードに関して、主要性能指標の第2のセットに対する、前記2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定することと、
前記コンピュータによって、主要性能指標ダッシュボード内で、主要性能指標の前記第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する前記第1のインパクト、および主要性能指標の前記第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する前記第2のインパクトを表示することと
をさらに含む、請求項4に記載のコンピュータ実行方法。
【請求項6】
前記コンピュータによって、前記訓練済み予想モデルを形成するために、定義された期間中にそれぞれの各マイクロサービスのワークロードを満たすのに必要な履歴のコンテナ数に基づいて、ネットワーク内の複数の計算ノードで動く複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのスケーリングを予測するために使用される予想モデルを訓練すること
をさらに含む、請求項1に記載のコンピュータ実行方法。
【請求項7】
前記予想モデルが、自己回帰和分移動平均モデルである、請求項6に記載のコンピュータ実行方法。
【請求項8】
特徴の前記第1のセットが、現在の期間中に複数の計算ノードで動く前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第1の数のコンテナと、前記現在の期間中に前記複数の計算ノードで動く前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する前記第1の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、以前の期間中に前記複数の計算ノードで以前に動いた前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第2の数のコンテナと、前記以前の期間中に前記複数の計算ノードで動いた前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する前記第2の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、前記現在の期間中のそれぞれの各マイクロサービスの第1の数のアプリケーション・プログラミング・インターフェース・リクエストと、前記現在の期間中のそれぞれの各マイクロサービスの第2の数のアプリケーション・プログラミング・インターフェース・リクエストとから成るグループから選択される、請求項1に記載のコンピュータ実行方法。
【請求項9】
特徴の前記第2のセットが、特定のマイクロサービス間の依存性に関する情報と、特定のマイクロサービス間の関係に関する情報と、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのうちの各コンテナに対応する地理的ロケーションに関する情報と、複数の計算ノードにおけるそれぞれの各ノードに対応するネットワーク帯域幅およびレイテンシ・パラメータとから成るグループから選択される、請求項2に記載のコンピュータ実行方法。
【請求項10】
コンテナの前記現在の数を調節することが、前記将来の時点でスケール・アップが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の追加のコンテナを生成することと、前記将来の時点でスケール・ダウンが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の現在のコンテナを除去することとのうちの1つを含む、請求項1に記載のコンピュータ実行方法。
【請求項11】
コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ・システムであって、
バス・システムと、
前記バス・システムに接続されたストレージ・デバイスであって、プログラム命令を格納する、前記ストレージ・デバイスと、
前記バス・システムに接続されたプロセッサであって、
複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出すること、
訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の前記第1のセットを使用して、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測すること、
それぞれの各マイクロサービスのために前記将来の時点で必要なコンテナの前記数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てること、ならびに
それぞれの各マイクロサービスに割り当てられた前記スケーリング・ラベルおよび前記スケーリング値に基づいて、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を自動的に調節すること
を行うための前記プログラム命令を実行する、前記プロセッサと
を備える、コンピュータ・システム。
【請求項12】
前記プロセッサが、
前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出することと、
それぞれの各マイクロサービスから抽出された特徴の前記第2のセットに基づいて、前記複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定することと
を行うために前記プログラム命令をさらに実行する、請求項11に記載のコンピュータ・システム。
【請求項13】
前記プロセッサが、
複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別することと、
前記特定のマイクロサービス間で判定されたマイクロサービス類似度の前記度合いに基づいて、計算ノードの前記第1のセットで動く、前記ネットワーク・レイテンシ閾値レベルを上回る前記ネットワーク・レイテンシ値を有するコンテナの前記第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、前記複数の計算ノードにおける計算ノードの第2のセットを判定することと
を行うために前記プログラム命令をさらに実行する、請求項12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサが、
同じ度合いのコンテナ類似度を共有するコンテナの前記第1のセットおよびコンテナの前記第2のセットにおける特定のコンテナを識別することと、
ネットワークのレイテンシを減少させるために、前記同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させることと
を行うために前記プログラム命令をさらに実行する、請求項13に記載のコンピュータ・システム。
【請求項15】
前記プロセッサが、
原因推論条件付けを使用して、前記複数の計算ノードのうち、調節された数のコンテナを有する計算ノードに関して、主要性能指標の第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する第1のインパクトを判定することと、
前記原因推論条件付けを使用して、2つの計算ノードに関して、主要性能指標の第2のセットに対する、前記2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定することと、
主要性能指標ダッシュボード内で、主要性能指標の前記第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する前記第1のインパクト、および主要性能指標の前記第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する前記第2のインパクトを表示することと
を行うために前記プログラム命令をさらに実行する、請求項14に記載のコンピュータ・システム。
【請求項16】
コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令を具体化するコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、
コンピュータによって、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出することと、
前記コンピュータによって、訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の前記第1のセットを使用して、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測することと、
前記コンピュータによって、それぞれの各マイクロサービスのために前記将来の時点で必要なコンテナの前記数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てることと、
前記コンピュータによって、それぞれの各マイクロサービスに割り当てられた前記スケーリング・ラベルおよび前記スケーリング値に基づいて、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を自動的に調節することと
を行う方法を前記コンピュータに実施させるように前記コンピュータによって実行可能な、コンピュータ・プログラム製品。
【請求項17】
前記コンピュータによって、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出することと、
前記コンピュータによって、それぞれの各マイクロサービスから抽出された特徴の前記第2のセットに基づいて、前記複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定することと
をさらに含む、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記コンピュータによって、複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別することと、
前記コンピュータによって、前記特定のマイクロサービス間で判定されたマイクロサービス類似度の前記度合いに基づいて、計算ノードの前記第1のセットで動く、前記ネットワーク・レイテンシ閾値レベルを上回る前記ネットワーク・レイテンシ値を有するコンテナの前記第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、前記複数の計算ノードにおける計算ノードの第2のセットを判定することと
をさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
前記コンピュータによって、同じ度合いのコンテナ類似度を共有するコンテナの前記第1のセットおよびコンテナの前記第2のセットにおける特定のコンテナを識別することと、
前記コンピュータによって、ネットワークのレイテンシを減少させるために、前記同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させることと
をさらに含む、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記コンピュータによって、原因推論条件付けを使用して、前記複数の計算ノードのうち、調節された数のコンテナを有する計算ノードに関して、主要性能指標の第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する第1のインパクトを判定することと、
前記コンピュータによって、前記原因推論条件付けを使用して、2つの計算ノードに関して、主要性能指標の第2のセットに対する、前記2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定することと、
前記コンピュータによって、主要性能指標ダッシュボード内で、主要性能指標の前記第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する前記第1のインパクト、および主要性能指標の前記第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する前記第2のインパクトを表示することと
をさらに含む、請求項19に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンテナベースのマイクロサービスに関し、より詳細には、マイクロサービスのノード内およびノード間特徴を評価し、次いで、コンテナ・オーケストレーションの結果を評価することによって、マイクロサービスのためにコンテナを自動的にオーケストレートすることに関する。
【背景技術】
【0002】
アプリケーションが、ホスト・マシンのオペレーティング・システムのリソースの固有のセットにアクセスできるようにアプリケーションをパッケージ化するために、コンテナ・プラットフォームが現在使用されている。マイクロサービス・アーキテクチャでは、アプリケーションは、別々のコンテナにそれぞれパッケージ化された様々な個別のサービスにさらに分解される。その恩恵は、コンテナがスケーリング可能であり、一過性であることである。言い換えれば、コンテナでホストされるアプリケーションまたはサービスのインスタンスは、必要に応じて、移り変わる。
【0003】
それでも、スケーラビリティは、動作の難題である。コンテナ・オーケストレーションは、要は、特に、大きい動的環境において、コンテナのライフサイクルを管理することである。コンテナ・オーケストレーション制御は、例えば、コンテナを提供および導入すること、ホスト・インフラストラクチャ全体にアプリケーション負荷を均一に拡散させるためにコンテナを追加または除去すること、ホストにリソース不足がある場合、またはホストが使えなくなった場合に、1つのホストから別のホストにコンテナを移動させること、コンテナ間でリソースを配分すること、および同様のものなど、多くのタスクを自動化する。
【0004】
新しいコンテナをクラスタに導入するときが来たとき、コンテナ・オーケストレーション・ツールは、導入をスケジューリングし、例えば、プロセッサ、メモリ、ストレージ、ネットワーク・リソース、または同様のものの可用性など、所定の制限に基づいて、コンテナを置くのに最も適したホストを探す。他のホストへの近さに応じて、コンテナが置かれることも可能である。
【0005】
クラスタは、物理または仮想マシンであることが可能な、少なくとも1つのコントローラ・ノード、およびいくつかのワーカ・ノードを有するノードのセットである。各ノードは、独自のオペレーティング・システム環境を有する。コントローラは、ノードにまたがるアプリケーション・インスタンスのスケジューリングおよび導入を管理し、コントローラ・ノードが動かすサービスの完全なセットは、制御プレーンとして知られている。スケジューラは、リソースおよび定義されたポリシ制限に依って、ノードをポッドに割り当てる。ポッドは、基本的なスケジューリング単位であり、ホスト・マシンの同じ場所に配置され、リソースを共有する能力があることが保証された、1つまたは複数のコンテナから成る。各ポッドは、クラスタ内の一意のIPアドレスを割り当てられ、アプリケーションが競合することなくポートを使用することを可能にする。
【0006】
例えば、Kubernetes、DockerSwarm、または同様のものなどの、コンテナ・オーケストレーション・ツールは、ノードのクラスタにまたがって、コンテナ化されたアプリケーションを自動的に導入、スケーリング、および管理するための構成要素である。コンテナ・オーケストレーション・ツールは、管理および発見を容易にするために、アプリケーションを作り上げるコンテナを、論理ユニットにグループ化する。マルチクラスタ・コンテナ・オーケストレーション環境は、パブリック、プライベート、およびハイブリッド・クラウドに及ぶことが可能な、コンテナ化されたアプリケーションのクラスタも管理し得る。
【0007】
マイクロサービスは、多階層アプリケーションのうちの1つの階層など、一緒に機能するポッドのセットである。マイクロサービスは、明確に定義されたアプリケーション・プログラミング・インターフェース(API)を介して通信する小さい独立したサービスからソフトウェアが構成された、ソフトウェア開発への構造的および組織的アプローチである。マイクロサービス・アーキテクチャは、アプリケーションをスケーリングしやすく、かつ開発を高速化して、イノベーションを可能にし、新しい特徴の市場投入までの時間を加速する。マイクロサービス・アーキテクチャを用いると、アプリケーションは、各アプリケーション・プロセスをサービスとして動かす独立構成要素として構築される。これらのサービスは、軽量APIを使用して、明確に定義されたインターフェースを介して通信する。サービスは、ビジネス能力のために構築され、各サービスは、単一の機能を実施する。サービスは独立して動かされるので、各サービスは、アプリケーションの固有機能の需要を満たすように、アップデート、導入、およびスケーリングされることが可能である。
【発明の概要】
【0008】
1つの例証的実施形態によれば、コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ実行方法が提供される。コンピュータは、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出する。コンピュータは、訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の第1のセットを使用して、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測する。コンピュータは、それぞれの各マイクロサービスのために将来の時点で必要なコンテナの数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てる。コンピュータは、それぞれの各マイクロサービスに割り当てられたスケーリング・ラベルおよびスケーリング値に基づいて、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの現在の数を自動的に調節する。他の例証的実施形態によれば、コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ・システムおよびコンピュータ・プログラム製品が提供される。
【図面の簡単な説明】
【0009】
図1】例証的実施形態が実装されるデータ処理システムのネットワークの図的表現である。
図2】例証的実施形態が実装されるデータ処理システムの図である。
図3】例証的実施形態が実装されるクラウド・コンピューティング環境を示す図である。
図4】例証的実施形態によるクラウド・コンピューティング環境の抽象化層の例を示す図である。
図5】例証的実施形態によるコンテナ・オーケストレーション・システムの例を示す図である。
図6】例証的実施形態による予想テーブルの例を示す図である。
図7】例証的実施形態によるコンテナ移動プロセスの例を示す図である。
図8】例証的実施形態によるコンテナ移動識別情報テーブルの例を示す図である。
図9A】例証的実施形態によるコンテナベースのマイクロサービスのコンテナ・スケーリングおよび移動を予想するためのプロセスを示すフローチャートである。
図9B】例証的実施形態によるコンテナベースのマイクロサービスのコンテナ・スケーリングおよび移動を予想するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0010】
本発明は、統合のいずれかの可能な技術詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含み得る。
【0011】
コンピュータ可読ストレージ媒体は、命令実行デバイスで使用するための命令を保持し、記憶することができる有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、本質的に一時的な信号であると解釈されるべきではない。
【0012】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せなどの、ネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0013】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路機器用の構成データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかでよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行することができるか、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを使用したインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
【0014】
本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら、本発明の態様が本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行できることが理解されよう。
【0015】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、または他のプログラム可能データ処理装置によって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、機械を生み出すために、コンピュータのプロセッサ、または他のプログラム可能データ処理装置に提供されてもよい。これらのコンピュータ可読プログラム命令はまた、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を記憶したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納されてもよく、特定の様式で機能するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指示することができる。
【0016】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するべく、コンピュータ実行プロセスを生み出すように、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させるために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてもよい。
【0017】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の中の各ブロックは、指定の論理機能を実現するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは、実際には、同時に、実質的に同時に、部分的もしくは全面的に時間的に重複するように実行される1つのステップとして実現されてもよく、またはブロックは、時には、含まれる機能に依って、逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を行うか、または、専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって実現できることにも留意されたい。
【0018】
図をここで参照すると、また特に図1図5を参照すると、例証的実施形態が実装されるデータ処理環境の図が提供されている。図1図5は単に例であることが意図され、異なる実施形態が実装される環境に関して、何らかの限定を主張または示唆することを意図するものではないことを理解されたい。描写された環境に多くの変更が行われてもよい。
【0019】
図1は、例証的実施形態が実装されるデータ処理システムのネットワークの図的表現を描写する。ネットワーク・データ処理システム100は、例証的実施形態が実装されるコンピュータ、データ処理システム、および他のデバイスのネットワークである。ネットワーク・データ処理システム100は、ネットワーク102を含み、ネットワーク102は、ネットワーク・データ処理システム100内で一緒に接続されたコンピュータ、データ処理システム、および他のデバイスの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、例えば、ワイヤ通信リンク、ワイヤレス通信リンク、光ファイバ・ケーブル、および同様のものなどの接続を含み得る。
【0020】
描写された例では、サーバ104およびサーバ106は、ストレージ108と共に、ネットワーク102に接続する。サーバ104およびサーバ106は、例えば、ネットワーク102への高速接続を伴うサーバ・コンピュータでよい。さらに、サーバ104およびサーバ106は、マイクロサービスのノード内およびノード間特徴を評価し、次いで、コンテナ・オーケストレーションの結果を評価すること(すなわち、ノード内特徴の評価に基づいて計算ノード内のコンテナをスケール・アップまたはスケール・ダウンすること、およびノード間特徴の評価に基づいてノード間でコンテナを移動させること)によって、クライアント計算ノード・デバイス上で動くマイクロサービスにコンテナ・オーケストレーション・サービスを提供する。また、サーバ104およびサーバ106はそれぞれ、1つまたは複数のクラウド環境内の複数のサーバを表し得ることに留意されたい。代替として、サーバ104およびサーバ106はそれぞれ、1つまたは複数のデータ・センタ内のサーバのクラスタを表し得る。
【0021】
クライアント110、クライアント112、およびクライアント114も、ネットワーク102に接続する。クライアント110、112、および114は、サーバ104およびサーバ106のクライアント計算ノード・デバイスである。この例では、クライアント110、112、および114は、ネットワーク102へのワイヤ通信リンクを伴うネットワーク・コンピュータである。それでも、クライアント110、112、および114は、ネットワーク102へのワイヤまたはワイヤレス通信リンクを伴う、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマート・フォン、スマート車両、スマート・テレビ、スマート・アプライアンス、および同様のものなどの、他のタイプのデータ処理システムを表し得ることに留意されたい。ユーザは、クライアント・デバイスを利用して、主要性能指標(key performance indicator)ダッシュボードを介してサーバ104およびサーバ106によって実施されたコンテナ・オーケストレーションのインパクトを考察し得る。
【0022】
ストレージ108は、構造化フォーマットまたは非構造化フォーマットで任意のタイプのデータを格納することができるネットワーク・ストレージ・デバイスである。さらに、ストレージ108は、複数のネットワーク・ストレージ・デバイスを表し得る。さらに、ストレージ108は、複数の異なるクライアント計算ノード・デバイスの識別子およびネットワーク・アドレス、複数の異なるマイクロサービスの識別子、複数のコンテナの識別子、ノード内特徴データ、ノード間特徴データ、コンテナ・オーケストレーション動作のインパクトに関する情報、定義された期間の履歴マイクロサービス・ワークロード・データ、および同様のものを格納し得る。さらに、ストレージ108は、例えば、システム・アドミニストレータおよびユーザに関連付けられたユーザ名、パスワード、およびバイオメトリック・データを含み得る認証または資格証明書データなどの、他のタイプのデータを格納し得る。
【0023】
さらに、ネットワーク・データ処理システム100は、図示していない任意の数の追加のサーバ、クライアント、ストレージ・デバイス、および他のデバイスを含み得ることに留意されたい。ネットワーク・データ処理システム100内にあるプログラム・コードは、コンピュータ可読ストレージ媒体に格納され、使用のために、コンピュータまたは他のデータ処理デバイスにダウンロードされてもよい。例えば、プログラム・コードは、サーバ104のコンピュータ可読ストレージ媒体に格納され、クライアント110での使用のために、ネットワーク102を介してクライアント110にダウンロードされてもよい。
【0024】
描写された例では、ネットワーク・データ処理システム100は、例えば、インターネット、イントラネット、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、テレコミュニケーション・ネットワーク、またはその任意の組合せなどの、いくつかの異なるタイプの通信ネットワークとして実装され得る。図1は、単なる一例であることが意図され、異なる例証的実施形態に対する構造的限定を意図するものではない。
【0025】
本明細書で使用されるように、アイテムを参照しながら使用されるとき、「いくつかの」は、アイテムのうちの1つまたは複数を意味する。例えば、「いくつかの異なるタイプの通信ネットワーク」は、1つまたは複数の異なるタイプの通信ネットワークである。同様に、「のセット」は、アイテムを参照しながら使用されるとき、アイテムのうちの1つまたは複数を意味する。
【0026】
さらに、「のうちの少なくとも1つ」という用語は、アイテムのリストと共に使用されるとき、リスト化されたアイテムの1つまたは複数の異なる組合せが使用されること、および、リスト内の各アイテムのうちのただ1つが必要とされることを意味する。言い換えれば、「のうちの少なくとも1つ」は、アイテムの任意の組合せおよび任意の数のアイテムがリストから使用されるが、リスト内のアイテムの全てが必要なわけではないことを意味する。アイテムは、特定のオブジェクト、モノ、またはカテゴリでもよい。
【0027】
例えば、限定することなく、「アイテムA、アイテムB、またはアイテムCのうちの少なくとも1つ」は、アイテムA、アイテムAおよびアイテムB、またはアイテムBを含み得る。この例は、アイテムA、アイテムB、およびアイテムC、または、アイテムBおよびアイテムCも含み得る。当然、これらのアイテムの任意の組合せが存在し得る。いくつかの例証的な例では、「のうちの少なくとも1つ」は、例えば、限定することなく、アイテムAのうちの2つ、アイテムBのうちの1つ、およびアイテムCのうちの10個、または、アイテムBのうちの4つ、およびアイテムCのうちの7つ、または、他の適切な組合せでもよい。
【0028】
図2をここで参照すると、例証的実施形態によるデータ処理システムの図が描写されている。データ処理システム200は、図1のサーバ104などのコンピュータの例であり、この中に、例証的実施形態のコンテナ・オーケストレーション・プロセスを実行するコンピュータ可読プログラム・コードまたは命令が置かれ得る。この例では、データ処理システム200は通信ファブリック202を含み、通信ファブリック202は、プロセッサ・ユニット204、メモリ206、永続ストレージ208、通信ユニット210、入出力(I/O)ユニット212、およびディスプレイ214の間の通信を提供する。
【0029】
プロセッサ・ユニット204は、メモリ206にロードされるソフトウェア・アプリケーションおよびプログラムに関する命令を実行するように機能する。プロセッサ・ユニット204は、特定の実装形態に依って、1つもしくは複数のハードウェア・プロセッサ・デバイスのセットでもよく、またはマルチコア・プロセッサでもよい。
【0030】
メモリ206および永続ストレージ208は、ストレージ・デバイス216の例である。本明細書で使用されるように、コンピュータ可読ストレージ・デバイスまたはコンピュータ可読ストレージ媒体は、例えば、限定することなく、データ、関数形式のコンピュータ可読プログラム・コード、または他の適切な情報、あるいはその組合せなどの情報を、一時的または永続的に格納することができるハードウェアのいずれかである。さらに、コンピュータ可読ストレージ・デバイスまたはコンピュータ可読ストレージ媒体は、一時的な信号などの伝搬媒体を除外する。メモリ206は、これらの例では、例えば、ランダム・アクセス・メモリ(RAM)、または、フラッシュ・メモリなどの任意の他の適切な揮発性もしくは不揮発性ストレージ・デバイスでよい。永続ストレージ208は、特定の実装形態に依って、様々な形をとってもよい。例えば、永続ストレージ208は、1つまたは複数のデバイスを収めてもよい。例えば、永続ストレージ208は、ディスク・ドライブ、ソリッド・ステート・ドライブ、書換え可能光ディスク、書換え可能磁気テープ、または上記のいくつかの組合せでよい。永続ストレージ208によって使用される媒体は取外し可能でよい。例えば、永続ストレージ208のために取外し可能ハード・ドライブが使用されてもよい。
【0031】
この例では、永続ストレージ208は、機械学習構成要素218を格納する。それでも、機械学習構成要素218が永続ストレージ208に常駐しているように示されていても、代替の例証的実施形態では、機械学習構成要素218は、データ処理システム200の別々の構成要素でもよいことに留意されたい。例えば、機械学習構成要素218は、通信ファブリック202に連結されたハードウェア構成要素、または、ハードウェア構成要素およびソフトウェア構成要素の組合せでもよい。別の代替の例証的実施形態では、機械学習構成要素218の構成要素の第1のセットは、データ処理システム200内に置かれてもよく、機械学習構成要素218の構成要素の第2のセットは、例えば、図1のサーバ106などの、第2のデータ処理システム内に置かれてもよい。
【0032】
機械学習構成要素218は、複数の異なるマイクロサービスのノード内およびノード間特徴を評価し、次いで、コンテナ・オーケストレーションの結果を評価することによって、複数の異なるマイクロサービスのためにコンテナを自動的にオーケストレートするプロセスを制御する。機械学習構成要素218は、そうするように明示的にプログラムされることなく学習することができる。機械学習構成要素218は、機械学習構成要素218に入力された訓練データに基づいて学習することができる。機械学習構成要素218は、様々なタイプの機械学習アルゴリズムを使用して学習することができる。様々なタイプの機械学習アルゴリズムは、教師あり学習、半教師あり学習、教師なし学習、特徴学習、スパース辞書学習、異常検出、相関ルール、または他のタイプの学習アルゴリズムのうちの少なくとも1つを含む。機械学習モデルの例は、人工ニューラル・ネットワーク、決定木、サポート・ベクトル・マシン、ベイジアン・ネットワーク、遺伝的アルゴリズム、および他のタイプのモデルを含む。これらの機械学習モデルは、例えば、履歴マイクロサービス・ワークロード・データを使用して、訓練されることが可能である。
【0033】
マイクロサービス220は、特定のコンテナベースのマイクロサービスの識別子を表す。それでも、マイクロサービス220は、機械学習構成要素218がコンテナ・スケーリングおよびコンテナ移動などのコンテナ・オーケストレーション・サービスを実施する、複数の異なるマイクロサービスの識別子を表し得ることに留意されたい。マイクロサービス220は、計算ノード222に置かれたコンテナ224上で動く。コンテナ224は、計算ノード222の各計算ノードに置かれた複数のコンテナの識別子を表す。計算ノード222は、例えば、図1のクライアント110、112、および114など、複数の計算ノードの識別子を表す。計算ノード222は、マイクロサービス220を動かすために、リソース(例えば、プロセッサ、メモリ、ストレージ、ネットワーク・デバイス、および同様のもの)をコンテナ224に提供する。
【0034】
機械学習構成要素218は、マイクロサービス特徴抽出構成要素226を利用して、計算ノード222のそれぞれの各計算ノードに対応する特徴(例えば、特性、属性、性質、特質、パラメータ、および同様のもの)を抽出する。抽出された特徴は、ノード内特徴228およびノード間特徴230を含む。
【0035】
ノード内特徴228は、現在の期間中に計算ノード222で動くマイクロサービス220に対応するいくつかのコンテナ、現在の期間中に計算ノード222で動くマイクロサービス220に対応するいくつかのコンテナの利用状態およびワークロード容量、以前の期間中に計算ノード222で以前に動いたマイクロサービス220に対応するいくつかのコンテナ、以前の期間中に計算ノード222で動くマイクロサービス220に対応するいくつかのコンテナの利用状態およびワークロード容量、現在の期間中のマイクロサービス220のいくつかのアプリケーション・プログラミング・インターフェース・リクエスト、以前の期間中のマイクロサービス220のいくつかのアプリケーション・プログラミング・インターフェース・リクエスト、ならびに同様のものなどの情報を含む。ノード間特徴230は、マイクロサービス220と他のマイクロサービスとの間の依存性(例えば、マイクロサービス220は、複数の異なるマイクロサービスにおいて1つまたは複数の他のマイクロサービスへのアプリケーション・プログラミング・インターフェース・コールを行う)、マイクロサービス220と他のマイクロサービスとの間の関係(例えば、マイクロサービス220および1つまたは複数の他のマイクロサービスは、同じアプリケーションを使用するか、同じアプリケーションに対応する)、コンテナ224の地理的ロケーション(例えば、マイクロサービス220に対応するコンテナ224を動かす各特定の計算ノードが地理的に置かれた場所)、計算ノード222のそれぞれに対応するネットワーク帯域幅およびレイテンシ・パラメータなどの情報を含む。
【0036】
機械学習構成要素218は、マイクロサービス性能を向上させ、ネットワーク・レイテンシを減少させるために、抽出されたノード内特徴228およびノード間特徴230を分析して、計算ノード222内のコンテナ・スケーリング(すなわち、コンテナのスケール・アップまたはスケール・ダウン)、および計算ノード222の中のいくつかの間のコンテナ移動などの、最適なコンテナ・オーケストレーション・ポリシを決定および生成する。機械学習構成要素218は、決定された最適なコンテナ・オーケストレーション・ポリシを実施するように、オーケストレーション構成要素232に指示する。
【0037】
さらに、機械学習構成要素218は、例えば、コンテナ・スケーリングおよび移動のコスト、ネットワーク・レイテンシ、マイクロサービス・セキュリティ、ならびに同様のものなどの、主要性能指標のセットに対するコンテナ・オーケストレーションのインパクトを判定する。機械学習構成要素218は、主要性能指標ダッシュボード構成要素234を利用して、主要性能指標のセットに対するコンテナ・オーケストレーションのインパクトの結果を生成および表示する。主要性能指標ダッシュボード構成要素234は、ディスプレイ214などの表示デバイス上のダッシュボード(例えば、双方向グラフィカル・ユーザ・インターフェース)を介して、インパクトの結果をユーザに表示する。
【0038】
結果として、データ処理システム200は、マイクロサービス性能を向上させ、ネットワーク・レイテンシを減少させるために、データ処理システム200の機械学習構成要素218が、コンテナの自動オーケストレーションを可能にする専用コンピュータ・システムとして動作する。特に、機械学習構成要素218は、機械学習構成要素218を有していない現在利用可能な一般的なコンピュータ・システムに匹敵するような専用コンピュータ・システムに、データ処理システム200を変形させる。
【0039】
通信ユニット210は、この例では、図1のネットワーク102などのネットワークを介した、他のコンピュータ、データ処理システム、およびデバイスとの通信を提供する。通信ユニット210は、物理通信リンクとワイヤレス通信リンク両方の使用を通じた通信を提供してもよい。物理通信リンクは、例えば、ワイヤ、ケーブル、ユニバーサル・シリアル・バス、または任意の他の物理的技術を利用して、データ処理システム200のための物理通信リンクを確立してもよい。ワイヤレス通信リンクは、例えば、短波、高周波、超高周波、マイクロ波、ワイヤレス・フィデリティ(Wi-Fi)、Bluetooth(R)技術、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)、符号分割多元接続(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロング・ターム・エボリューション(LTE)、LTEアドバンスト、第5世代(5G)、または任意の他のワイヤレス通信技術もしくは標準を利用して、データ処理システム200のためのワイヤレス通信リンクを確立してもよい。
【0040】
入出力ユニット212は、データ処理システム200に接続される他のデバイスとのデータの入出力を可能にする。例えば、入出力ユニット212は、キーパッド、キーボード、マウス、マイクロフォン、または他のいくつかの適切な入力デバイス、あるいはその組合せを通じたユーザ入力のための接続を提供してもよい。ディスプレイ214は、ユーザに情報を表示するためのメカニズムを提供し、例えば、ユーザ・インターフェースまたは入力データを通じてユーザがオン・スクリーン選択を行えるようにするためのタッチ・スクリーン機能を含み得る。
【0041】
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せに関する命令は、ストレージ・デバイス216に置かれてもよく、ストレージ・デバイス216は、通信ファブリック202を通じてプロセッサ・ユニット204と通信している。この例証的な例では、命令は、関数形式で永続ストレージ208上にある。これらの命令は、プロセッサ・ユニット204による実行のために、メモリ206にロードされてもよい。異なる実施形態のプロセスは、コンピュータ実装命令を使用して、プロセッサ・ユニット204によって実施されてもよく、コンピュータ実装命令は、メモリ206などのメモリに置かれてもよい。これらのプログラム命令は、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット204のプロセッサによって読み込まれ、実行され得る。プログラム命令は、異なる実施形態では、メモリ206または永続ストレージ208などの、異なる物理コンピュータ可読ストレージ・デバイスに含まれてもよい。
【0042】
プログラム・コード236は、選択的に取外し可能なコンピュータ可読媒体238に関数形式で置かれ、プロセッサ・ユニット204による実行のために、データ処理システム200にロードされるか、転送されてもよい。プログラム・コード236およびコンピュータ可読媒体238は、コンピュータ・プログラム製品240を形成する。1つの例では、コンピュータ可読媒体238は、コンピュータ可読ストレージ媒体242またはコンピュータ可読信号媒体244でよい。
【0043】
これらの例証的な例では、コンピュータ可読ストレージ媒体242は、プログラム・コード236を伝搬または伝送させる媒体ではなく、プログラム・コード236を格納するために使用される物理的なまたは有形のストレージ・デバイスである。コンピュータ可読ストレージ媒体242は、例えば、永続ストレージ208の一部であるハード・ドライブなどのストレージ・デバイスに転送するための、永続ストレージ208の一部であるドライブまたは他のデバイスに挿入または配置された、光または磁気ディスクを含んでもよい。コンピュータ可読ストレージ媒体242はまた、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続ストレージの形をしていてもよい。
【0044】
代替として、プログラム・コード236は、コンピュータ可読信号媒体244を使用して、データ処理システム200に転送されてもよい。コンピュータ可読信号媒体244は、例えば、プログラム・コード236を収める伝搬データ信号でもよい。例えば、コンピュータ可読信号媒体244は、電磁気信号、光信号、または任意の他の適切なタイプの信号でよい。これらの信号は、ワイヤレス通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤ、または任意の他の適切なタイプの通信リンクなどの、通信リンクを介して伝送され得る。
【0045】
さらに、本明細書で使用されるように、「コンピュータ可読媒体238」は、単数形または複数形であることが可能である。例えば、プログラム・コード236は、単一のストレージ・デバイスまたはシステムの形でコンピュータ可読媒体238に置かれることが可能である。別の例では、プログラム・コード236は、複数のデータ処理システム内に分散されたコンピュータ可読媒体238に置かれることが可能である。言い換えれば、プログラム・コード236内のいくつかの命令は、1つのデータ処理システム内に置かれることが可能であるが、プログラム・コード236内の他の命令は、1つまたは複数の他のデータ処理システム内に置かれることが可能である。例えば、プログラム・コード236の一部は、サーバ・コンピュータのコンピュータ可読媒体238に置かれることが可能であるが、プログラム・コード236の別の部分は、クライアント・コンピュータのセット内にあるコンピュータ可読媒体238に置かれることが可能である。
【0046】
データ処理システム200のために示された異なる構成要素は、異なる実施形態が実装される様式に構造的限定を提供することを意図していない。いくつかの例証的な例では、構成要素の1つまたは複数は、別の構成要素に組み込まれるか、そうでなければ、別の構成要素の一部を形成してもよい。例えば、いくつかの例証的な例では、メモリ206またはその一部は、プロセッサ・ユニット204内に組み込まれてもよい。異なる例証的実施形態は、データ処理システム200のために示されたものの他のまたはその代わりの構成要素を含むデータ処理システム内に実装されることが可能である。図2に示された他の構成要素は、示された例証的な例から変化させることができる。異なる実施形態は、プログラム・コード236を実行することができる任意のハードウェア・デバイスまたはシステムを使用して、実装されることが可能である。
【0047】
別の例では、通信ファブリック202を実装するためにバス・システムが使用されてもよく、システム・バスまたは入出力バスなどの、1つまたは複数のバスで構成されてもよい。当然、バス・システムは、バス・システムに取り付けられた異なる構成要素またはデバイスの間のデータ転送を提供する任意の適切なタイプのアーキテクチャを使用して実装され得る。
【0048】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で列挙される教示の実装形態は、クラウド・コンピューティング環境に限定されないことが理解されている。むしろ、例証的実施形態は、現在既知のまたは後に開発される他の任意のタイプのコンピューティング環境と併用して実装される余地がある。クラウド・コンピューティングは、最低限の管理努力またはサービス提供者との対話で迅速に提供および公開されることが可能な、例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービスなどの、構成可能なコンピューティング・リソースの共用プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの導入モデルを含み得る。
【0049】
特性は、例えば、オンデマンド・セルフ・サービス、ブロード・ネットワーク・アクセス、リソース・プーリング、迅速な伸縮性、およびメジャード・サービスを含み得る。オンデマンド・セルフ・サービスは、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を、クラウド利用者が、サービスの提供者との人間による対話を必要とせず必要に応じて自動的に、一方的に提供することができる。ブロード・ネットワーク・アクセスは、ネットワークを介して利用可能で、例えば、モバイル・フォン、ラップトップ、およびパーソナル・デジタル・アシスタントなどの、ヘテロジニアスなシンまたはシック・クライアント・プラットフォームによる使用を推進する標準メカニズムを通じてアクセスされる能力を提供する。リソース・プーリングは、マルチ・テナント・モデルを使用して複数の利用者をサーブするために、プロバイダのコンピューティング・リソースをプーリングすることを可能にし、異なる物理および仮想リソースが、需要に応じて動的に割り当てられ、再割り当てされる。利用者が一般的に、提供されるリソースの正確なロケーションについて制御権も知識もないが、例えば、国、州、またはデータ・センタなどの、抽象化のより高いレベルでロケーションを特定でき得るという点で、位置独立の意味がある。迅速な伸縮性は、素早くスケール・アウトするために場合によっては自動的に迅速かつ伸縮自在に提供され、素早くスケール・インするために迅速に公開されることが可能な能力を提供する。利用者には、提供するために利用可能な能力は、しばしば無制限のように見え、任意の量でいつでも購入することができる。メジャード・サービスは、例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウントなどの、サービスのタイプに適した抽象化のいくつかのレベルで計量能力を活用することによって、クラウド・システムがリソース使用を自動的に制御および最適化することを可能にする。リソース使用率は、監視、制御、およびレポートされることが可能であり、利用されるサービスの提供者と利用者双方に透明性をもたらす。
【0050】
サービス・モデルは、例えば、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)を含み得る。サービスとしてのソフトウェアは、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用するために利用者に提供される能力である。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などの、シン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、ことによると個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、限定的なユーザ固有のアプリケーション構成設定が考えうる例外である。サービスとしてのプラットフォームは、提供者によってサポートされるプログラミング言語およびツールを使用して作り出された、利用者が作り出したまたは獲得したアプリケーションを、クラウド・インフラストラクチャに導入するために利用者に提供される能力である。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、導入したアプリケーション、および場合によっては、アプリケーションをホストする環境構成に対する制御権を有している。サービスとしてのインフラストラクチャは、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者が導入し、動かすことができる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを提供するために利用者に提供される能力である。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、オペレーティング・システム、ストレージ、導入されるアプリケーションに対する制御権、および場合によっては、例えば、ホスト・ファイアウォールなどのネットワーキング構成要素を選択する限定的な制御権を有する。
【0051】
導入モデルは、例えば、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、およびハイブリッド・クラウドを含み得る。プライベート・クラウドは、単に組織のために運用されるクラウド・インフラストラクチャである。プライベート・クラウドは、組織またはサード・パーティによって管理され、敷地内または敷地外に存在し得る。コミュニティ・クラウドは、いくつかの組織によって共有されるクラウド・インフラストラクチャであり、例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮などの、共有される懸念を有する固有のコミュニティをサポートする。コミュニティ・クラウドは、組織またはサード・パーティによって管理され、敷地内または敷地外に存在し得る。パブリック・クラウドは、一般大衆または大手業界団体に対して利用可能にされたクラウド・インフラストラクチャであり、クラウド・サービスを売る組織によって所有される。ハイブリッド・クラウドは、一意のエンティティのままの、例えば、プライベート、コミュニティ、およびパブリック・クラウドなどの、2つ以上のクラウドから成るクラウド・インフラストラクチャであるが、例えば、クラウド間のロード・バランシングのためのクラウド・バースティングなどの、データおよびアプリケーション・ポータビリティを可能にする標準的なまたは独自の技術でまとめられる。
【0052】
クラウド・コンピューティング環境は、無国籍、疎結合、モジュラリティ、および意味論的相互運用性に焦点を合わせたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを備えるインフラストラクチャがある。
【0053】
図3をここで参照すると、例証的実施形態が実装されるクラウド・コンピューティング環境を示す図が描写されている。この例証的な例では、クラウド・コンピューティング環境300は、例えば、パーソナル・デジタル・アシスタントもしくはスマート・フォン320A、デスクトップ・コンピュータ320B、ラップトップ・コンピュータ320C、または自動車コンピュータ・システム320N、あるいはその組合せなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード310のセットを含む。クラウド・コンピューティング・ノード310は、例えば、図1のサーバ104およびサーバ106でよい。ローカル・コンピューティング・デバイス320A~320Nは、例えば、図1のクライアント110~114でよい。
【0054】
クラウド・コンピューティング・ノード310は互いに通信し得、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組合せなどの、1つまたは複数のネットワークに物理的または仮想的にグループ化され得る。これは、クラウド利用者がローカル・コンピューティング・デバイス320A~320Nなどのローカル・コンピューティング・デバイス上にリソースを維持する必要がない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンピューティング環境300が提供することを可能にする。ローカル・コンピューティング・デバイス320A~320Nのタイプは単なる例証であることが意図され、クラウド・コンピューティング・ノード310およびクラウド・コンピューティング環境300は、例えば、ウェブ・ブラウザを使用して、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続あるいはその両方を介して、任意のタイプのコンピュータ化デバイスと通信できることが理解されている。
【0055】
図4をここで参照すると、例証的実施形態による抽象化モデル層を示す図が描写されている。この例証的な例で示された機能抽象化層のセットは、図3のクラウド・コンピューティング環境300などの、クラウド・コンピューティング環境によって提供され得る。図4に示された構成要素、層、および機能は単なる例証であることが意図され、本発明の実施形態は、これらに限定されないことを予め理解されたい。描写されているように、以下の層および対応する機能が提供される。
【0056】
クラウド・コンピューティング環境の抽象化層400は、ハードウェアおよびソフトウェア層402、仮想化層404、管理層406、ならびにワークロード層408を含む。ハードウェアおよびソフトウェア層402は、クラウド・コンピューティング環境のハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素は、例えば、メインフレーム410、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ412、サーバ414、ブレード・サーバ416、ストレージ・デバイス418、ならびにネットワークおよびネットワーキング構成要素420を含み得る。いくつかの例証的実施形態では、ソフトウェア構成要素は、例えば、ネットワーク・アプリケーション・サーバ・ソフトウェア422およびデータベース・ソフトウェア424を含み得る。
【0057】
仮想化層404は、仮想サーバ426、仮想ストレージ428、仮想プライベート・ネットワークを含む仮想ネットワーク430、仮想アプリケーションおよびオペレーティング・システム432、ならびに仮想クライアント434といった、仮想エンティティの例が提供される抽象化層を提供する。
【0058】
1つの例では、管理層406は、下記で説明される機能を提供し得る。リソース提供436は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定438は、リソースがクラウド・コンピューティング環境内で利用されるときのコスト追跡、および、これらのリソースの利用に対する請求書作成またはインボイス作成を行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド利用者およびタスクの検証、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル440は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理442は、要求されるサービス・レベルを満たすように、クラウド・コンピューティング・リソースの配分および管理を行う。サービス・レベル契約(SLA)プランニングおよびフルフィルメント444は、SLAに応じて将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
【0059】
ワークロード層408は、クラウド・コンピューティング環境が利用される機能の例を提供する。実例のワークロードおよび機能は、ワークロード層408によって提供され、マッピングおよびナビゲーション446、ソフトウェア開発およびライフサイクル管理448、仮想クラスルーム教育配信450、データ分析処理452、トランザクション処理454、ならびにマイクロサービス・コンテナ・オーケストレーション管理456を含み得る。
【0060】
コンピューティングは、今日、クラウド・プラットフォームに焦点を合わせつつあり、例えば、会社、ビジネス、企業、組織、機構、機関、および同様のものなどの大多数のエンティティが、その製品を、クラウド・インフラストラクチャ上でマイクロサービスの形で提供する。これらの製品は、コンテナ内部でホストされるマイクロサービスを導入するための最善の実践である。それでも、導入は、オーケストレータによって実施される。現在のオーケストレータは、1方向の提供を要求し、これには、マイクロサービス・コンテナの自動スケーリングおよび最適化された近接がない。例証的実施形態は、インテリジェンスを有している機械学習構成要素を利用して、ユーザ構成可能なコンテキストに基づいて、マイクロサービス・コンテナの自動スケーリングおよび最適な近接整列に関してオーケストレータを通知する。言い換えれば、例証的実施形態は、計算ノード間のコンテナの自動スケーリングおよび最適な移動に関するインテリジェンスをオーケストレータに提供し、次いで、自動的なコンテナ・スケーリングおよび移動介入を評価する。
【0061】
例えば、Kubernetes、DockerSwarm、および同様のものなど、現在のコンテナ・オーケストレーション・ツールは、静的なユーザ定義ポリシで駆動されており、コンテナの効率的なコンテナ・スケーリング判定または最適な移動を行うほど十分インテリジェントではない。例証的実施形態は、これらの現在のコンテナ・オーケストレーション・ツールが、将来の負荷を予期することなく、ネットワーク・レイテンシを低減させるために、実行時間にコンテナのスケール・アップまたはスケール・ダウンを実施するが、コンテナの自動移動を実施しないことを考慮に入れる。これらの問題に対処するために、例証的実施形態は、機械学習を使用してコンテナ・スケーリングおよび最適なコンテナ移動を予想し、次いで、これらの介入を評価する。例証的実施形態の機械学習構成要素は、マイクロサービスのノード内特徴およびノード間特徴を分析および評価して、自動化された様式で効率的なコンテナ・オーケストレーションを決定する。
【0062】
例えば、例証的実施形態は、積極的予想、マイクロサービス類似度分析に基づくコンテナの自動移動、ならびに、コンテナ・スケーリングおよび移動の機械学習構成要素の介入の自動評価を介して、計算ノード上でコンテナの自動スケーリングの同期および最適化されたオーケストレーションを実施する。例証的実施形態は、マイクロサービスに対応するノード内特徴およびノード間特徴を抽出および分析する。例証的実施形態は、抽出されたノード内特徴を利用して、マイクロサービスの将来の負荷を満たすのに必要なコンテナの数を、先を見越して予想する(すなわち、コンテナの数をスケーリングする)。例証的実施形態は、抽出されたノード間特徴を利用して、マイクロサービス間の類似度を評価し、ネットワーク・レイテンシを低減させるためにどのコンテナを移動させるべきかを識別する。
【0063】
したがって、例証的実施形態は、予測される将来のマイクロサービス・ワークロード需要を満たすためにコンテナ・オーケストレーションを自動的に実施することに伴う技術的問題を克服する1つまたは複数の技術的解決策を提供する。結果として、これらの1つまたは複数の技術的解決策は、コンテナベースのマイクロサービスの分野における技術的効果および実践的応用を提供する。
【0064】
図5をここで参照すると、例証的実施形態によるコンテナ・オーケストレーション・システムの例を示す図が描写されている。コンテナ・オーケストレーション・システム500は、図1のネットワーク・データ処理システム100などの、データ処理システムのネットワークに実装されてもよい。コンテナ・オーケストレーション・システム500は、複数の異なるマイクロサービスのノード内およびノード間特徴を評価し、次いで、コンテナ・オーケストレーションの結果を評価することによって、複数の異なるマイクロサービスのためにコンテナを自動的にオーケストレートするためのハードウェアおよびソフトウェア構成要素のシステムである。
【0065】
この例では、コンテナ・オーケストレーション・システム500は、機械学習構成要素502、マイクロサービス特徴抽出構成要素504、オーケストレータ構成要素506、主要性能指標ダッシュボード構成要素508、計算ノード510、および計算ノード512を含む。それでも、コンテナ・オーケストレーション・システム500は、単なる一例であることが意図され、例証的実施形態に対する限定を意図するものではないことに留意されたい。言い換えれば、コンテナ・オーケストレーション・システム500は、示されたものより多くのまたは少ない構成要素を含み得る。例えば、1つまたは複数の構成要素が1つの構成要素に組み合わされてもよく、構成要素が2つ以上の構成要素に分割されてもよく、図示していない構成要素が追加されてもよい、などである。また、計算ノード510および計算ノード512はそれぞれ、複数の計算ノードを表し得る。
【0066】
計算ノード510および512は、コンテナ516、518、520、522、524、526、528、および530をホストするために提供される実際のインフラストラクチャである。計算ノード510および計算ノード512は、マイクロサービス514を動かす。マイクロサービス514は、コンテナベースのマイクロサービスである。また、マイクロサービス514は、機械学習構成要素502によって管理される複数の異なるマイクロサービスのうちの1つのそれぞれのマイクロサービスを表し得る。
【0067】
マイクロサービス514は、単一のビジネス・タスクを実施することに焦点を合わせたゆるく連結されたサービスであり、水平と垂直両方にスケーリングされることが可能である。マイクロサービス514は、ワークロード管理に関する効率的な計算をマイクロサービス514が提供できるような方式で含まれる。マイクロサービス514は、さらに、障害耐性があり、自己修復を行う(すなわち、故障管理を実施する)。さらに、マイクロサービス514は、バッチおよびリアル・タイム処理の能力があり、応答性、弾性、および復元力がある。これら全ての属性は、マイクロサービス514を、高度に利用可能なものにするための、計算ノードにわたって移植されるべき重要な候補にする。
【0068】
この例では、計算ノード510は、ポッド532のコンテナ516およびコンテナ518を使用して、ならびにポッド534のコンテナ520およびコンテナ522を使用して、マイクロサービス514の一部分を動かす。計算ノード512は、ポッド536のコンテナ524およびコンテナ526を使用して、ならびにポッド538のコンテナ528およびコンテナ530を使用して、マイクロサービス514の別の部分を動かす。
【0069】
機械学習構成要素502は、マイクロサービス514に対応する動的なコンテナ・オーケストレーションのポリシを自動的に決定する。機械学習構成要素502は、図2のノード内特徴228などの、ノード内特徴に関するデータを利用して、マイクロサービス514の予測される将来のワークロードのために、計算ノード510と計算ノード512のそれぞれの中で必要なコンテナの数を、先を見越して予想する(すなわち、コンテナの数のスケール・アップまたはスケール・ダウン)。機械学習構成要素502は、さらに、図2のノード間特徴230などの、ノード間特徴に関するデータを利用して、ネットワークのレイテンシを低減または最小化するために、マイクロサービス514と、複数の異なるマイクロサービスのうちの1つまたは複数の他のマイクロサービスとの間の関係および依存性に基づいて、計算ノード510と計算ノード512との間でコンテナを移動させる。この例では、機械学習構成要素502は、予想モジュール540、移動モジュール542、および評価モジュール544を含む。
【0070】
機械学習構成要素502は、マイクロサービス情報抽出構成要素504を利用して、ノード内特徴データおよびノード間特徴データを識別、キャプチャ、および抽出し、ノード内特徴データおよびノード間特徴データは、マイクロサービス514に関係する必要な情報全てを表す。ノード内特徴データは、例えば、マイクロサービス514のために動くコンテナの数、マイクロサービス514のワークロードを判定するために定義された時間間隔ごとのアプリケーション・プログラミング・インターフェース・リクエストの数、定義された時間間隔ごとのマイクロサービス514に対応する各コンテナの利用状態およびワークロード容量、ならびに同様のものを含み得る。ノード間特徴データは、例えば、マイクロサービス514が別のマイクロサービスをコールするときのマイクロサービス514と1つまたは複数の他のマイクロサービスとの間の依存性、同じアプリケーションがこれらの特定のマイクロサービスを使用するときのマイクロサービス514と1つまたは複数の他のマイクロサービスとの間の関係、マイクロサービス514のコンテナ516~530に対応する計算ノード510および512の地理的ロケーション、計算ノード510および512に対応する接続のネットワーク帯域幅およびレイテンシ、計算ノード510および512のコストおよび構成、ならびに同様のものを含み得る。
【0071】
機械学習構成要素502は、予想モジュール540を利用して、マイクロサービス514の予測される将来のワークロードに応じて、計算ノード510および512内のコンテナのスケール・アップおよびスケール・ダウンを予測する。予想モジュール540は、ノード内特徴データに基づく時系列予想モデルを使用して、マイクロサービス514の予測される将来のワークロードにマッチさせるのに必要なコンテナの数を予測する。例えば、予想モジュール540は、自己回帰和分移動平均(ARIMA:auto-regressive integrated moving average)を予想モデルとして利用し得る。ARIMAは、予想するために(すなわち、時系列に将来のポイントを予測するために)時系列データをモデリングする方式である。ARIMAモデルは、従属変数が固定化された(stationarized)特定のタイプの回帰モデルである。独立変数は、従属変数の全ての遅延、または誤差の遅延、あるいはその両方なので、原則として、最も重要な主要性能指標および他の外生変数によって提供された情報を組み込むために、ARIMAモデルを拡張することがわかりやすい。本質的に、予想モジュール540は、1つまたは複数のリグレッサを下記の予想方程式に追加し、
【数1】
ここで、「Yt」は、現在の期間のコンテナの数に等しく、「Yt-1」は、以前の期間のコンテナの数に等しく、「Xt」は、現在の期間のアプリケーション・プログラミング・インターフェース(API)リクエストの数に等しく、「Xt-1」は、以前の期間のAPIリクエストの数に等しい。上記の予想方程式は、現在の期間「t」において必要なコンテナの現在の数を表し、コンテナの現在の数は、以前の期間「t-1」におけるコンテナの数と、現在の期間「t」および以前の期間「t-1」におけるAPIリクエストの数とに応じて、予測される。この予想方程式は、例えば、以前の期間「t-2」、「t-3」、および同様のものの容量、利用状態、および遅延値などの、新しい入力パラメータを容易に含むことができるような、一般的な実施形態である。予想モデルは、向上した予測正確度および減少した誤差のための典型的な機械学習最適化アルゴリズム(例えば、勾配降下)を使用して訓練されることが可能である。
【0072】
予想モジュール540は、上記の訓練済み予想モデルを使用してマイクロサービス514に必要なコンテナの数を予測する。予想モジュール540は、コンテナの現在の数と比較することによってスケーリング・ラベルおよびスケーリング値を識別する。例証的な例として、計算ノード510におけるコンテナの現在の数は4であり、予測される将来のワークロードに必要な予測コンテナ数は7である。結果として、この例では、スケーリング・ラベルは、スケール「UP」であり、スケーリング値は3である(すなわち、4つのコンテナの現在の数を3つの新しいコンテナを追加することによってスケール・アップして、計算ノード510における7つの総コンテナに等しくし、マイクロサービス514の予測される将来のワークロードを満たす)。同様に、スケーリング・ラベルは、スケール「DOWN」でもよく、スケーリング値は1でもよい(すなわち、4つコンテナの現在の数を1つのコンテナを除去することによってスケール・ダウンして、計算ノード510における3つの総コンテナに等しくし、マイクロサービス514の予測される将来のワークロードを満たす)。スケーリング・ラベルおよび値に基づいて、オーケストレータ構成要素506は、必要に応じて、コンテナを除去するか、新しいコンテナを追加する。
【0073】
言い換えれば、予想コンテナ値が、現在のコンテナ値より大きい場合、スケール・アップが必要である。逆に、予想コンテナ値が、現在のコンテナ値より小さい場合、スケール・ダウンが必要である。予想モジュール540は、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのためにこの予想プロセスを繰り返し、対応するコンテナ・スケーリング・ラベルおよび値を割り当てることに留意されたい。その後、予想モジュール540は、全てのスケーリング・ラベルおよび値をオーケストレータ構成要素506に送り、オーケストレータ構成要素506は、必要に応じて、不要なコンテナを除去するか、新しいコンテナを生成する。それでも、スケーリング・ラベルは、特定の計算ノードに対してコンテナの現在の数の変更が不要であることを示す「NO」およびスケーリング値0でもよいことに留意されたい。予想モジュール540は、スケーリングに関連付けられたコストも計算し、コストは、評価モジュール544によって使用されることになる。
【0074】
オーケストレータ構成要素506が、予想モジュール540の出力に基づいてコンテナの現在の数のスケーリングを実施した後、機械学習構成要素502は、移動モジュール542を利用して、マイクロサービス514に対応する計算ノード間のコンテナ、および複数の他のマイクロサービスに対応するコンテナの移動を最適化する。言い換えれば、移動モジュール542は、どのコンテナが、およびネットワーク内のどこに(すなわち、どの計算ノードに)、移動されなければならないかを識別する。例えば、移動モジュール542は、定義済みのネットワーク・レイテンシ閾値レベルより大きいネットワーク・レイテンシを有するマイクロサービスを識別する。移動モジュール542は、互いにほぼ類似したマイクロサービス(例えば、抽出されたノード間特徴データに基づく、定義された程度の類似度を互いに有するマイクロサービス)も識別する。移動モジュール542は、次いで、ネットワーク・レイテンシを低減させるために、定義された程度の類似度を有するマイクロサービスに対応するコンテナを同じ計算ノードに移動させるようにオーケストレータ構成要素506に命令する。移動モジュール542は、さらに、移動に関連付けられたコストおよびマイクロサービス・セキュリティを計算し、コストおよびマイクロサービス・セキュリティも、評価モジュール544によって使用されることになる。
【0075】
オーケストレータ構成要素506は、コンテナ・オーケストレーション・ポリシを使用してコンテナを導入、モニタ、および構成する方法を定義する。実行時間中、マイクロサービス・ワークロードに応じて、オーケストレータ構成要素506は、計算ノードのコンテナをスケール・アップまたはスケール・ダウンし、機械学習構成要素502の予想モジュール540および移動モジュール542によって生成された、ならびに、これらのモジュールから受信された、コンテナ・オーケストレーション・ポリシに基づいて、計算ノード間でコンテナを移動させる。
【0076】
評価モジュール544は、予想モジュール540および移動モジュール542によって実施されたコンテナ・スケーリングおよび移動介入を評価する。評価モジュール544は、例えば、原因推論条件付け(causal inference conditioning)方程式を利用して、どのようにコンテナ・スケーリングがコストおよびネットワーク・レイテンシに影響を及ぼしたか、ならびに、どのようにコンテナ移動がコスト、ネットワーク・レイテンシ、およびマイクロサービス・セキュリティに影響を及ぼしたかなど、各介入のインパクトを測定し得る。例えば、E(主要性能指標/介入)は、いくつかのタイプの介入(例えば、コンテナ・スケーリングまたはコンテナ移動あるいはその両方)が実施される条件による、主要性能指標(例えば、コスト、レイテンシ、セキュリティ、および同様のもの)インパクトである。
【0077】
評価モジュール544は、以下の2つの方程式を使用して、予想モジュール540の主要性能指標インパクトを評価し、
コスト・デルタ値=E(コスト/スケーリング前)-E(コスト/スケーリング後)、および
レイテンシ・デルタ値=E(レイテンシ/スケーリング前)-E(レイテンシ/スケーリング後)
ここで、コストおよびレイテンシ・デルタ値は、予想モジュール540の予測ごとの自動コンテナ・スケーリングのインパクトを測定する。
【0078】
評価モジュール544は、以下の3つの方程式を使用して、移動モジュール542の主要性能指標インパクトを評価し、
コスト・デルタ値=E(コスト/移動前)-E(コスト/移動後)、
レイテンシ・デルタ値=E(レイテンシ/移動前)-E(レイテンシ/移動後)、および
セキュリティ・デルタ値=E(セキュリティ/移動前)-E(セキュリティ/移動後)
ここで、コスト、レイテンシ、およびセキュリティ・デルタ値は、移動モジュール542のマイクロサービス類似度分析ごとの自動コンテナ移動のインパクトを測定する。
【0079】
主要性能指標ダッシュボード構成要素508は、主要性能指標ダッシュボードを生成および表示し、ユーザは主要性能指標ダッシュボードを利用して、評価モジュール544によって生成された出力(すなわち、予想モジュール540および移動モジュール542にそれぞれ対応する異なるデルタ値)を視覚化する。結果として、ユーザは、例えば、コンテナ・スケーリングおよび移動コスト、ネットワーク・レイテンシ、マイクロサービス・セキュリティ、ならびに同様のものなど、選択された主要性能指標のセットに関して、予想モジュール540および移動モジュール542のコンテナ・オーケストレーション介入のインパクトをモニタすることができる。
【0080】
図6をここで参照すると、例証的実施形態による予想テーブルの例を示す図が描写されている。予想テーブル600は、例えば図5の予想モジュール540などの、予想モジュールに実装され得る。予想テーブル600は、X軸のタイムライン602およびY軸のコンテナ数604を含む。
【0081】
タイムライン602は、ユーザ定義の時間ウィンドウであり、調節可能である。言い換えれば、タイムライン602の単位は、例えば、時間、日、週、月、または同様のものでもよく、時系列予想モデルを使用した将来のマイクロサービス・ワークロードの予測を行うために、ユーザが予想モジュールに、どの時間ウィンドウを分析して欲しいかに依って、ユーザによって定義される。コンテナ数604は、タイムライン602の単位「24」までは、マイクロサービスによって現在必要とされるコンテナ数を示し、その後は、マイクロサービスによって必要とされる予測コンテナ数(すなわち、予想606)を示す。予想テーブル600は、予想606に対応する予想信頼下限608および予想信頼上限610も示す。
【0082】
図7をここで参照すると、例証的実施形態によるコンテナ移動プロセスの例を示す図が描写されている。コンテナ移動プロセス700は、例えば図5の移動モジュール542などの、移動モジュールで実装されてもよい。この例では、コンテナ移動プロセス700は、計算ノードA702と計算ノードB704との間で、移動モジュールによって実施される。それでも、移動モジュールは、任意の数の計算ノード間のコンテナ移動プロセス700を実施してもよいことに留意されたい。
【0083】
また、この例では、計算ノードA702は、コンテナ706およびコンテナ708を含み、計算ノードB704は、コンテナ710およびコンテナ712を含む。それでも、計算ノードA702および計算ノードB704は、任意の数のコンテナを含んでもよいことに留意されたい。さらに、この例では、コンテナ706は、アプリケーション1 714によって使用され、コンテナ708および712は、アプリケーション2 716によって使用される。
【0084】
さらに、この例では、コンテナ706と710との間にレイテンシ・ボトルネック718が存在する。結果として、移動モジュールは、レイテンシ・ボトルネック718によって引き起こされたネットワーク・レイテンシを低減させるために、コンテナ710を計算ノードB704から計算ノードA702に移動させる必要があると判定する。したがって、移動モジュールは、例えば図5のオーケストレータ構成要素506などの、オーケストレータ構成要素に対して、計算ノードA702へのコンテナ710の移動720を実施するように指示する。さらに、コンテナ708とアプリケーション2 716との間にレイテンシ・ボトルネック722が存在する。結果として、移動モジュールは、レイテンシ・ボトルネック722によって引き起こされたネットワーク・レイテンシを低減させるために、コンテナ708を計算ノードA702から計算ノードB704に移動させる必要があると判定する。したがって、移動モジュールは、オーケストレータ構成要素に対して、計算ノードB704へのコンテナ708の移動724を実施するように指示する。
【0085】
図8をここで参照すると、例証的実施形態によるコンテナ移動識別情報テーブルの例を示す図が描写されている。コンテナ移動識別情報テーブル800は、例えば図5の移動モジュール542などの、移動モジュールに実装されてもよい。
【0086】
この例では、コンテナ移動識別情報テーブル800は、マイクロサービス802、依存性804、関係806、計算ノード808、ネットワーク・レイテンシ810、および共有データ属性812を含む。マイクロサービス802は、それぞれの各マイクロサービスを識別する。依存性804は、特定のマイクロサービス間の依存性を識別する。関係806は、アプリケーションに基づく特定のマイクロサービス間の関係を識別する。言い換えれば、異なるマイクロサービスが、アプリケーション・レベルで接続される。計算ノード808は、特定のマイクロサービスに関連付けられたネットワーク内の特定の計算ノードを識別する。ネットワーク・レイテンシ810は、各特定のマイクロサービスに関連付けられたネットワーク・レイテンシの量を識別する。共有データ属性812は、特定のマイクロサービスによってアクセスされた情報を識別する。異なるマイクロサービス間で共有するデータは、静的と可変両方のデータを含む共有データベースを介して収容され、異なるマイクロサービスが、共有データベースから必要なデータにアクセスする。
【0087】
この例では、コンテナ移動識別情報テーブル800は、MS-A、MS-B、およびMS-Xという3つのマイクロサービスを示す。コンテナ移動識別情報テーブル800は、これらのそれぞれの依存性、アプリケーション、ノード、およびネットワーク・レイテンシも示す。移動モジュールは、依存性804と、関係806におけるアプリケーション情報と、それぞれのマイクロサービスにおいておよびそれぞれのマイクロサービスからアクセスされる共有データ属性812の情報とを使用して、2つのマイクロサービス間の類似度を識別する。
【0088】
移動モジュールは、例えばコサイン類似度などの、類似度計算814を利用して、マイクロサービス類似度を判定し得る。この例では、移動モジュールは、類似度(MS-A,MS-B)=0.95のように、マイクロサービスA(MS-A)とマイクロサービスB(MS-B)の類似度計算を計算する。言い換えれば、MS-AとMS-Bは、95%の類似度を有し、これは、コンテナ移動識別情報テーブル800に「類似」と示されている。さらに、移動モジュールは、類似度(MS-B,MS-X)=0.30のように、MS-BとマイクロサービスX(MS-X)の類似度計算を計算する。言い換えれば、MS-BとMS-Xは、30%の類似度しか有していない。コンテナ移動識別情報テーブル800は、ネットワーク・レイテンシを低減させるために、MS-AがノードAからノードCに移動されるべきであることも示す。
【0089】
図9A図9Bをここで参照すると、例証的実施形態によるコンテナベースのマイクロサービスのコンテナ・スケーリングおよび移動を予想するためのプロセスを示すフローチャートが示されている。図9A図9Bに示されたプロセスは、例えば、図1のサーバ104または図2のデータ処理システム200などの、コンピュータで実施され得る。例えば、図9A図9Bに示されたプロセスは、図2の機械学習構成要素218で実施され得る。
【0090】
プロセスは、コンピュータが、訓練済み予想モデルを形成するために、定義された期間中にそれぞれの各マイクロサービスのワークロードを満たすのに必要な履歴のコンテナ数に基づいて、ネットワーク内の複数の計算ノードで動く複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのスケーリングを予測するために使用される予想モデルを訓練するときに始まる(ステップ902)。コンピュータは、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出する(ステップ904)。特徴の第1のセットは、現在の期間中に複数の計算ノードで動く複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第1の数のコンテナと、現在の期間中に複数の計算ノードで動く複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第1の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、以前の期間中に複数の計算ノードで以前に動いた複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第2の数のコンテナと、以前の期間中に複数の計算ノードで動いた複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第2の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、現在の期間中のそれぞれの各マイクロサービスの第1の数のアプリケーション・プログラミング・インターフェース・リクエストと、現在の期間中のそれぞれの各マイクロサービスの第2の数のアプリケーション・プログラミング・インターフェース・リクエストとから成るグループから選択される。
【0091】
コンピュータは、訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の第1のセットを使用して、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測する(ステップ906)。コンピュータは、それぞれの各マイクロサービスのために将来の時点で必要なコンテナの数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値(例えば、1つ、2つ、3つ、または同様のものの値だけスケール・アップまたはスケール・ダウンする)を複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てる(ステップ908)。コンピュータは、それぞれの各マイクロサービスに割り当てられたスケーリング・ラベルおよびスケーリング値に基づいて、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの現在の数を自動的に調節する(ステップ910)。コンテナの現在の数を調節することは、コンテナの現在の数への調節を行わないことと、将来の時点でスケール・アップが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の追加のコンテナを生成することと、将来の時点でスケール・ダウンが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の現在のコンテナを除去することとのうちの1つを含む。
【0092】
コンピュータは、原因推論条件付けを使用して、複数の計算ノードのうち、調節された数のコンテナを有する計算ノード(例えば、スケール・アップされた数のコンテナを有する計算ノード、およびスケール・ダウンされた数のコンテナを有する計算ノード)に関して、コンテナ・スケーリング・コストおよびネットワーク・レイテンシの主要性能指標の第1のセットに対する、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの現在の数を調節することが有する第1のインパクトを判定する(ステップ912)。コンピュータは、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出する(ステップ914)。特徴の第2のセットは、特定のマイクロサービス間の依存性に関する情報(例えば、どの特定のマイクロサービスが、複数の異なるマイクロサービスにおける他のマイクロサービスへのアプリケーション・プログラミング・インターフェース・コールを行うか)と、特定のマイクロサービス間の関係に関する情報(例えば、どのアプリケーションが、同じマイクロサービスを使用するか)と、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのうちの各コンテナに対応する地理的ロケーションに関する情報(例えば、複数の異なるマイクロサービスにおける同じマイクロサービスに対応する複数のコンテナを動かす各特定の計算ノードが地理的に置かれた場所)と、複数の計算ノードにおけるそれぞれの各ノードに対応するネットワーク帯域幅およびレイテンシ・パラメータとから成るグループから選択される。コンピュータは、それぞれの各マイクロサービスから抽出された特徴の第2のセットに基づいて、複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定する(ステップ916)。
【0093】
コンピュータは、複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別する(ステップ918)。コンピュータは、特定のマイクロサービス間で判定されたマイクロサービス類似度の度合いに基づいて、計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、複数の計算ノードにおける計算ノードの第2のセットを判定する(ステップ920)。コンピュータは、同じ度合いのコンテナ類似度を共有するコンテナの第1のセットおよびコンテナの第2のセットにおける特定のコンテナを識別する(ステップ922)。
【0094】
コンピュータは、ネットワークのレイテンシを減少させるために、同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させる(ステップ924)。コンピュータは、原因推論条件付けを使用して、2つの計算ノードに関して、コンテナ移動コスト、ネットワーク・レイテンシ、およびマイクロサービス・セキュリティの主要性能指標の第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定する(ステップ926)。コンピュータは、主要性能指標ダッシュボード内で、主要性能指標の第1のセットに対する、複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの現在の数を調節することが有する第1のインパクト、および主要性能指標の第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを表示する(ステップ928)。プロセスは、その後、終了する。
【0095】
したがって、本発明の例証的実施形態は、マイクロサービスのノード内およびノード間特徴を評価し、次いで、コンテナ・オーケストレーションの結果を評価することによって、コンテナを自動的にオーケストレートするためのコンピュータ実行方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。本発明の様々な実施形態の説明を例証のために提示してきたが、網羅的であること、または、開示された実施形態に限定されることを意図するものではない。多くの変更形態および変形形態が、説明される実施形態の範囲から逸脱することなく、当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的応用、もしくは市場で見つかる技術に対する技術的改善を最もよく説明するように、または、本明細書で開示された実施形態を当業者が理解できるように、選ばれた。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
【手続補正書】
【提出日】2023-05-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施する方法であって、前記コンピュータによって、
複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出することと、
訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の前記第1のセットを使用して、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測することと、
それぞれの各マイクロサービスのために前記将来の時点で必要なコンテナの前記数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てることと、
それぞれの各マイクロサービスに割り当てられた前記スケーリング・ラベルおよび前記スケーリング値に基づいて、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を自動的に調節することと、
を含む、方法
【請求項2】
前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出することと、
それぞれの各マイクロサービスから抽出された特徴の前記第2のセットに基づいて、前記複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定することと
をさらに含む、請求項1に記載の方法
【請求項3】
複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別することと、
前記特定のマイクロサービス間で判定されたマイクロサービス類似度の前記度合いに基づいて、計算ノードの前記第1のセットで動く、前記ネットワーク・レイテンシ閾値レベルを上回る前記ネットワーク・レイテンシ値を有するコンテナの前記第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、前記複数の計算ノードにおける計算ノードの第2のセットを判定することと
をさらに含む、請求項2に記載の方法
【請求項4】
同じ度合いのコンテナ類似度を共有するコンテナの前記第1のセットおよびコンテナの前記第2のセットにおける特定のコンテナを識別することと、
ネットワークのレイテンシを減少させるために、前記同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させることと
をさらに含む、請求項3に記載の方法
【請求項5】
原因推論条件付けを使用して、前記複数の計算ノードのうち、調節された数のコンテナを有する計算ノードに関して、主要性能指標の第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する第1のインパクトを判定することと、
前記原因推論条件付けを使用して、2つの計算ノードに関して、主要性能指標の第2のセットに対する、前記2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定することと、
前記コンピュータによって、主要性能指標ダッシュボード内で、主要性能指標の前記第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する前記第1のインパクト、および主要性能指標の前記第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する前記第2のインパクトを表示することと
をさらに含む、請求項4に記載の方法
【請求項6】
前記訓練済み予想モデルを形成するために、定義された期間中にそれぞれの各マイクロサービスのワークロードを満たすのに必要な履歴のコンテナ数に基づいて、ネットワーク内の複数の計算ノードで動く複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのスケーリングを予測するために使用される予想モデルを訓練すること
をさらに含む、請求項1に記載の方法
【請求項7】
前記予想モデルが、自己回帰和分移動平均モデルである、請求項6に記載の方法
【請求項8】
特徴の前記第1のセットが、現在の期間中に複数の計算ノードで動く前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第1の数のコンテナと、前記現在の期間中に前記複数の計算ノードで動く前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する前記第1の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、以前の期間中に前記複数の計算ノードで以前に動いた前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する第2の数のコンテナと、前記以前の期間中に前記複数の計算ノードで動いた前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する前記第2の数のコンテナの利用状態およびワークロード容量のうちの少なくとも1つと、前記現在の期間中のそれぞれの各マイクロサービスの第1の数のアプリケーション・プログラミング・インターフェース・リクエストと、前記現在の期間中のそれぞれの各マイクロサービスの第2の数のアプリケーション・プログラミング・インターフェース・リクエストとから成るグループから選択される、請求項1に記載の方法
【請求項9】
特徴の前記第2のセットが、特定のマイクロサービス間の依存性に関する情報と、特定のマイクロサービス間の関係に関する情報と、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応する複数のコンテナのうちの各コンテナに対応する地理的ロケーションに関する情報と、複数の計算ノードにおけるそれぞれの各ノードに対応するネットワーク帯域幅およびレイテンシ・パラメータとから成るグループから選択される、請求項2に記載の方法
【請求項10】
コンテナの前記現在の数を調節することが、前記将来の時点でスケール・アップが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の追加のコンテナを生成することと、前記将来の時点でスケール・ダウンが必要であることを示す割り当てられたスケーリング・ラベルおよびスケーリング値を有する特定のマイクロサービスのための1つまたは複数の現在のコンテナを除去することとのうちの1つを含む、請求項1に記載の方法
【請求項11】
コンテナベースのマイクロサービスのためのコンテナ・スケーリングおよび移動を自動的に実施するためのコンピュータ・システムであって、
バス・システムと、
前記バス・システムに接続されたストレージ・デバイスであって、プログラム命令を格納する、前記ストレージ・デバイスと、
前記バス・システムに接続されたプロセッサであって、
複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第1のセットを抽出すること、
訓練済み予想モデル、およびそれぞれの各マイクロサービスから抽出された特徴の前記第1のセットを使用して、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスのために将来の時点で必要なコンテナの数を予測すること、
それぞれの各マイクロサービスのために前記将来の時点で必要なコンテナの前記数に応じて、それぞれの各マイクロサービスに対応するコンテナの現在の数の予測された変化に基づいて、スケーリング・ラベルおよびスケーリング値を前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに割り当てること、ならびに
それぞれの各マイクロサービスに割り当てられた前記スケーリング・ラベルおよび前記スケーリング値に基づいて、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を自動的に調節すること
を行うための前記プログラム命令を実行する、前記プロセッサと
を備える、コンピュータ・システム。
【請求項12】
前記プロセッサが、
前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスから特徴の第2のセットを抽出することと、
それぞれの各マイクロサービスから抽出された特徴の前記第2のセットに基づいて、前記複数の異なるマイクロサービスのうちの特定のマイクロサービス間のマイクロサービス類似度の度合いを判定することと
を行うために前記プログラム命令をさらに実行する、請求項11に記載のコンピュータ・システム。
【請求項13】
前記プロセッサが、
複数の計算ノードにおける計算ノードの第1のセットで動く、ネットワーク・レイテンシ閾値レベルを上回るネットワーク・レイテンシ値を有するコンテナの第1のセットを識別することと、
前記特定のマイクロサービス間で判定されたマイクロサービス類似度の前記度合いに基づいて、計算ノードの前記第1のセットで動く、前記ネットワーク・レイテンシ閾値レベルを上回る前記ネットワーク・レイテンシ値を有するコンテナの前記第1のセットに対する、コンテナ類似度閾値レベルを上回るコンテナ類似度の度合いを有するコンテナの第2のセットを動かす、前記複数の計算ノードにおける計算ノードの第2のセットを判定することと
を行うために前記プログラム命令をさらに実行する、請求項12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサが、
同じ度合いのコンテナ類似度を共有するコンテナの前記第1のセットおよびコンテナの前記第2のセットにおける特定のコンテナを識別することと、
ネットワークのレイテンシを減少させるために、前記同じ度合いのコンテナ類似度を共有するこれらの特定のコンテナを同じ計算ノードに移動させることと
を行うために前記プログラム命令をさらに実行する、請求項13に記載のコンピュータ・システム。
【請求項15】
前記プロセッサが、
原因推論条件付けを使用して、前記複数の計算ノードのうち、調節された数のコンテナを有する計算ノードに関して、主要性能指標の第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する第1のインパクトを判定することと、
前記原因推論条件付けを使用して、2つの計算ノードに関して、主要性能指標の第2のセットに対する、前記2つの計算ノード間でこれらの特定のコンテナを移動させることが有する第2のインパクトを判定することと、
主要性能指標ダッシュボード内で、主要性能指標の前記第1のセットに対する、前記複数の異なるマイクロサービスのうちのそれぞれの各マイクロサービスに対応するコンテナの前記現在の数を調節することが有する前記第1のインパクト、および主要性能指標の前記第2のセットに対する、2つの計算ノード間でこれらの特定のコンテナを移動させることが有する前記第2のインパクトを表示することと
を行うために前記プログラム命令をさらに実行する、請求項14に記載のコンピュータ・システム。
【請求項16】
請求項1~10の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項17】
請求項16に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記憶した、ストレージ媒体。
【国際調査報告】