JP2024514057A - 自動コンテナ・マイグレーション・システム - Google Patents
自動コンテナ・マイグレーション・システム Download PDFInfo
- Publication number
- JP2024514057A JP2024514057A JP2023558438A JP2023558438A JP2024514057A JP 2024514057 A JP2024514057 A JP 2024514057A JP 2023558438 A JP2023558438 A JP 2023558438A JP 2023558438 A JP2023558438 A JP 2023558438A JP 2024514057 A JP2024514057 A JP 2024514057A
- Authority
- JP
- Japan
- Prior art keywords
- containers
- migration
- applications
- processors
- application performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 209
- 230000005012 migration Effects 0.000 title claims abstract description 209
- 238000000034 method Methods 0.000 claims abstract description 73
- 238000004590 computer program Methods 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 45
- 238000012544 monitoring process Methods 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 43
- 230000008569 process Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 31
- 238000007726 management method Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 19
- 230000015654 memory Effects 0.000 description 18
- 230000006872 improvement Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001902 propagating effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
コンテナ・マイグレーションのための方法、装置、システムおよびコンピュータ・プログラム製品を提供する。1組のプロセッサが、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定するように動作する。1組のプロセッサは、1組のアプリケーション・パフォーマンス・メトリックを使用して、マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成するように動作する。1組のプロセッサは、マイグレーション戦略に従う1組のタスクを使用して、1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる。
Description
本開示は、一般には、改良型コンピュータ・システムに関し、より詳細には、自動コンテナ・マイグレーションのための方法、装置、システムおよびコンピュータ・プログラム製品に関する。
クラウド・コンピューティング環境は、様々なアプリケーション・プログラムをオンデマンド・サービスとして配布することを可能にする。この種の環境はスケーラブルであり、組織はアプリケーションへのアクセスを容易に増減することができる。クラウド・コンピューティング環境を使用する組織は、様々なアプリケーションにアクセスするのに必要な情報技術インフラストラクチャの初期費用を回避または低減することができる。
クラウド・コンピューティング環境の1つの課題は、サービス・レベル・アグリーメント(SLA)に記載されている、望まれる、または期待されるサービス品質(QoS)レベルのサービスとしてアプリケーションを提供することである。サービス品質レベルには、レイテンシ、スケーラビリティ、可用性またはその他の特性などの特性が含まれることがある。
クラウド・コンピューティング環境では、アプリケーション・サービスを提供するためにコンテナを使用することができる。コンテナは、1つまたは複数のコンテナがアプリケーションを形成することができる、ソフトウェアの単位である。コンテナは、組織によって使用されるアプリケーション・サービスに関して可搬性とスケーラビリティを与えることができる。コンテナは、異なる物理サーバ・コンピュータ間でワークロードをシフトするためにクラウド間またはクラウド内で移動させることができる
リソース可用性は、アプリケーションのコンテナのパフォーマンスを低下させることがある。コンテナは、同じ物理サーバ・コンピュータ内のリソースを巡って競合する場合がある。たとえば、コンテナは、記憶タスクの実行を同時に要求する場合がある。その結果、入出力動作について輻輳またはボトルネックが生じることがある。現在、コンテナのデプロイメントおよび移動の管理は、求められる以上に難しい場合がある。
したがって、上記の問題およびその他のあり得る問題の少なくとも一部を考慮に入れた方法および装置を有することが望ましいものとなる。たとえば、アプリケーションのパフォーマンスを向上させるために、コンテナのマイグレーションに関する技術的問題を克服する方法および装置を有することが望ましいものとなる。
本発明の一実施形態によると、コンテナをマイグレーションする方法が提供される。マイグレーションのために1組のアプリケーションの1組のコンテナが1組のプロセッサによって1組のアプリケーション・パフォーマンス・メトリックを使用して特定される。マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクが、1組のプロセッサによって1組のアプリケーション・パフォーマンス・メトリックを使用して作成される。1組のアプリケーションの1組のコンテナは、1組のプロセッサによって、マイグレーション戦略に従う1組のタスクを使用して1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動される。
本発明の別の実施形態によると、コンテナ管理システムが、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定し、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるマイグレーション戦略に従う1組のタスクを作成し、マイグレーション戦略に従う1組のタスクを使用して、1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるように動作する、1組のプロセッサを含む。
本発明のさらに別の実施形態によると、コンテナ・マイグレーションのためのコンピュータ・プログラム製品がコンピュータ可読記憶媒体を含み、コンピュータ可読記憶媒体には、第1のプログラム・コードと第2のプログラム・コードと第3のプログラム・コードが記憶されている。第1のプログラム・コードは、コンピュータ・システムに、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定させるように、コンピュータ・システムによって実行可能である。第2のプログラム・コードは、コンピュータ・システムに、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成させるように、コンピュータによって実行可能である。第3のプログラム・コードは、コンピュータ・システムに、マイグレーション戦略に従う1組のタスクを使用して、1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるように、コンピュータ・システムによって実行可能である。
本発明は、任意の可能な技術的詳細度のシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものも含まれる。すなわち、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブルリード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(たとえば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本明細書では本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図もしくはブロック図またはその両方を参照しながら説明する。フローチャート図もしくはブロック図またはその両方の図の各ブロックおよび、フローチャート図もしくはブロック図またはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることを理解されたい。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートもしくはブロック図またはその両方のブロックで規定されている機能/動作を実装する手段を形成するようなマシンを実現するように、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、もしくはその他の装置またはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートもしくはブロック図またはその両方のブロックで規定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。一部の別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。たとえば、連続して示されている2つのブロックは、関与する機能に応じて、実際には、1ステップとして行われてもよく、並行して、または実質的に並行して、または一部または全体が時間的に重なり合った方式で実行されてもよく、またはブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の図の各ブロック、およびブロック図もしくはフローチャート図またはその両方の図のブロックの組合せは、指定されている機能または動作を実行するかまたは、専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェア・ベースのシステムによって実装可能であることにも留意されたい。
例示の実施形態は、いくつかの異なる考慮事項を認識し、考慮に入れている。たとえば、例示の実施形態は、アプリケーションのコンテナがアプリケーション・パフォーマンスの低下に応答して、クラウド内でアプリケーションのコンテナをマイグレーションすることができることを認識し、考慮に入れている。例示の実施形態は、コンテナのパフォーマンス・メトリックを収集し、分析することができることと、コンテナのパフォーマンスを向上させるためにコンテナの構成を変更することができることとを認識し、考慮に入れている。例示の実施形態は、構成変更が現在のサーバ・コンピュータ上のリソース割り当ての変更、もしくはアプリケーションのコンテナの、よりリソース可用性の高い別のサーバ・コンピュータへの移動、またはこれらの組合せを含むことができることを認識し、考慮に入れている。
例示の実施形態は、現在のコンテナ・マイグレーション技術がコンテナのパフォーマンスに焦点を合わせていることを認識し、考慮に入れている。例示の実施形態は、この種の分析がアプリケーションのパフォーマンスの若干の向上をもたらす可能性はあるが、この分析は、1つのアプリケーションのコンテナの移動がそのコンテナのパフォーマンスを向上させ得るが、クラウド・コンピューティング環境などのコンピューティング環境を有するコンピュータ・システムにおける複数のアプリケーションのためのリソースの使用が不均衡になる可能性があることを考慮していないということを認識し、考慮に入れている。
例示の実施形態は、コンテナのマイグレーションにおいてコンテナのパフォーマンスに焦点を合わせる結果、コンピューティング環境におけるリソースが十分に利用されなくなる可能性があることを認識し、考慮に入れている。例示の実施形態は、変化するアプリケーション需要をこのパフォーマンス向上方式が考慮していないことも認識し、考慮に入れている。上記の結果、リソースの割り当てが必要以上に多くなり、その結果未使用リソースが生じる可能性がある。例示の実施形態は、変化するアプリケーションの需要を上記のパフォーマンス向上方式が考慮していないことも認識し、考慮に入れている。したがって例示の実施形態は、リソースの割り当てが必要以上に多くなることがあり、その結果、未使用リソースが生じる可能性があることを認識し、考慮に入れている。
例示の実施形態は、個別のコンテナのパフォーマンス・メトリックのパターンに焦点を合わせることと対比して、アプリケーションのパフォーマンス・メトリックのパターンを調べることが戦略向上をもたらし得ることを認識し、考慮に入れている。また、例示の実施形態は、アプリケーションのパフォーマンス向上は、アプリケーション・パフォーマンス・メトリックの連続的で動的な監視と、これらのメトリックの分析に基づくコンテナの自動マイグレーションの実行とによって生じ得ることを認識し、考慮に入れている。
したがって、例示の実施形態は、自動コンテナ・マイグレーションのための方法、装置、システムおよびコンピュータ・プログラム製品を提供する。例示の一実施例では、プロセスがコンピュータ・システムにおいてコンテナを自動的にマイグレーションする。マイグレーションのための1組のアプリケーションの1組のコンテナが、1組のプロセッサによって1組のアプリケーション・パフォーマンス・メトリックを使用して特定される。マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクが、1組のプロセッサによって1組のアプリケーション・パフォーマンス・メトリックを使用して作成される。1組のアプリケーションの1組のコンテナは、1組のプロセッサによって、マイグレーション戦略に従う1組のタスクを使用して1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動される。
コンテナをマイグレーションするための異なるステップを連続して自動的に行うことができる。また、ステップは、クラウド・コンピューティング環境などのコンピューティング環境において、アプリケーションの動作中に動的に行うことができる。
次に図1を参照すると、例示のクラウド・コンピューティング環境50が図示されている。図のように、クラウド・コンピューティング環境50は、たとえばパーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cもしくは自動車コンピュータ・システム54Nまたはこれらの組み合わせなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。クラウド・コンピューティング・ノード10は互いに通信することができる。クラウド・コンピューティング・ノード10は、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、もしくはソフトウェアまたはこれらの組み合わせを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提供することができる。図1に示すコンピューティング・デバイス54Aないし54Nの種類は、例示を意図したものに過ぎず、クラウド・コンピューティング環境50におけるコンピューティング・ノード10は、(たとえばウェブ・ブラウザを使用して)任意の種類のネットワーク接続もしくはネットワーク・アドレス指定可能接続またはその両方を介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
図2を参照すると、図1のクラウド・コンピューティング環境50によって提供される1組の機能抽象化層が示されている。図2に示されているコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを予め理解されたい。図のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、およびネットワークおよびネットワーキング・コンポーネント66がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75である。
一実施例では、管理層80は、以下に記載の機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的調達を行う。メータリングおよびプライシング82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡と、それらのリソースの消費に対する対価の請求またはインボイス処理を行う。一実施例ではこれらのリソースにはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他のリソースの保護とを行う。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行85は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースのための事前取り決めおよび調達を行う。
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、およびトランザクション処理95が含まれる。
この実施例では、管理層80がマイグレーション96も含むことができる。マイグレーション96は、図1のクラウド・コンピューティング環境50におけるクラウドにおいてアプリケーションのコンテナをマイグレーションするサービスを提供する。この実施例では、マイグレーション96は、アプリケーションのパフォーマンスを向上させるため、もしくはリソースの使用を増加させるため、またはアプリケーションのパフォーマンスの向上とリソースの使用の増加の両方のために、物理ホスト・サーバ間でのアプリケーションのコンテナの自動マイグレーションを提供することができる。リソースの使用を増加させることにより、クラウド・コンピューティング環境50で使用される追加のリソースによってより多くのアプリケーションに対応することができる。この実施例では、クラウド・コンピューティング環境50は1つまたは複数のクラウドを含むことができる。複数のクラウドが存在する場合、クラウド・コンピューティング環境50をマルチ・クラウド・コンピューティング環境と呼ぶことがある。アプリケーションのコンテナのこのマイグレーションは、クラウド・コンピューティング環境50内のクラウド内またはクラウド間で行うことができる。
次に図3を参照すると、例示の実施形態によるコンテナ管理環境のブロック図が示されている。この実施例では、コンテナ管理環境300は、図1のネットワーク・データ処理システム100に示すハードウェアなどのハードウェアで実装可能である。
この実施例では、コンピュータ・システム308において1組のアプリケーション306の1組のコンテナ304を管理するために、コンテナ管理システム302を使用することができる。本明細書では、事物に関して使用する場合の「1組の」は、1つまたは複数の事物を意味する。たとえば、「1組のコンテナ304」は、コンテナ304の1つまたは複数のコンテナである。
この図の実施例では、コンテナは、コンテナがどこでも実行可能であるように共通の方式で、アプリケーション・コードがそのライブラリおよび依存関係とともにパッケージ化されているソフトウェアの実行単位である。たとえば、コンテナはデスクトップ、従来型ネットワーク、またはクラウドで実行可能である。図のように、コンテナは、仮想マシンとは異なり、すべてのインスタンスにおいてゲスト・オペレーティング・システムを含む必要はなく、ホスト・オペレーティング・システムにおける機能およびリソースを利用することができる。言い換えると、複数のコンテナがオペレーティング・システムへのアクセスを共用することができる。
コンピュータ・システム308は、物理ハードウェア・システムであり、1つまたは複数のデータ処理システムを含む。コンピュータ・システム308に複数のデータ処理システムが存在する場合、それらのデータ処理システムは通信媒体を使用して互いに通信する。通信媒体はネットワークとすることができる。データ処理システムは、コンピュータ、サーバ・コンピュータ、タブレット・コンピュータ、または何らかの他の適切なデータ処理システムのうちの少なくとも1つから選択可能である。
コンピュータ・システム308は、クラウド・コンピューティング環境310を配置することできるハードウェア・システムである。この実施例では、クラウド・コンピューティング環境310は、図2に示すクラウド・コンピューティング環境50について図示されているコンポーネントを使用して実装可能である。
図のように、コンピュータ・システム308は、いくつかのクラウド312を含むことができる。本明細書では、「いくつかの」は、事物に関して使用されている場合、1つまたは複数の事物を意味する。たとえば、「いくつかのクラウド312」はクラウド312の1つまたは複数のクラウドである。いくつかのクラウド312において複数のクラウドが存在する場合、そのいくつかのクラウド312をマルチ・クラウド314と呼ぶ場合がある。
図のように、コンテナ管理システム302は、コンピュータ・システム308におけるリソース使用316を向上させる方式で1組のアプリケーション306の1組のコンテナ304を管理することができる。この実施例では、1組のアプリケーション306の1組のコンテナ304は、コンピュータ・システム308内のいくつかのクラウド312に位置することができる。1組のアプリケーション306の1組のコンテナ304は、そのいくつかのクラウド312を含まないアーキテクチャ上で動作可能である。
この実施例では、コンテナ管理システム302は、マイグレーション・マネージャ318と1組のプロセッサ320とを含む。マイグレーション・マネージャ318は、1組のプロセッサ320上で稼働する。
マイグレーション・マネージャ318は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組合せで実装可能である。ソフトウェアが使用される場合、マイグレーション・マネージャ318によって行われる動作は、プロセッサ・ユニットなどのハードウェア上で実行されるように構成されたプログラム・コードで実装可能である。ファームウェアが使用される場合、マイグレーション・マネージャ318によって行われる動作は、プログラム・コードおよびデータで実装可能であり、プロセッサ・ユニット上で実行されるように永続メモリに記憶可能である。ハードウェアが使用される場合、ハードウェアはマイグレーション・マネージャ318における動作を行うように動作する回路を含み得る。
この実施例では、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC)、プログラマブル・ロジック・デバイス、またはいくつかの動作を行うように構成された何らかの他の種類のハードウェアのうちの少なくとも1つから選択された形態をとってもよい。プログラマブル・ロジック・デバイスの場合、デバイスをいくつかの動作を行うように構成することができる。デバイスは、いくつかの動作を行うように、後で再構成することができるかまたは永続的に構成可能である。プログラマブル・ロジック・デバイスには、たとえばプログラマブル・ロジック・アレイ、プログラマブル・アレイ・ロジック、フィールド・プログラマブル・ロジック・アレイ、フィールド・プログラマブル・ゲート・アレイおよびその他の適切なハードウェア・デバイスが含まれる。さらに、プロセスは、無機コンポーネントと一体化された有機コンポーネントで実装可能であり、全体が人間を除く有機コンポーネントからなってもよい。たとえば、プロセスは有機半導体の形態の回路として実装可能である。
図のように、マイグレーション・マネージャ318は、1組のプロセッサ320上で稼働することができる。本明細書で使用されるプロセッサ320におけるプロセッサは、ハードウェア・デバイスであり、コンピュータを動作させる命令およびプログラム・コードに応答し、処理する集積回路上の回路などのハードウェア回路からなる。いくつかのプロセッサがプロセスのための命令を実行する場合、そのいくつかのプロセッサは同じコンピュータ上または異なるコンピュータ上に存在することができる1つまたは複数のプロセッサである。言い換えると、プロセスはコンピュータ・システム内の同一または異なるコンピュータ上のプロセッサ間で分散可能である。また、そのいくつかのプロセッサは、同じ種類または異なる種類のプロセッサとすることができる。たとえば、いくつかのプロセッサは、シングル・コア・プロセッサ、デュアルコア・プロセッサ、マルチプロセッサ・コア、汎用中央処理装置(CPU)、グラフィックス・プロセッシング・ユニット(GPU)、デジタル・シグナル・プロセッサ(DSP)、または何らかの他の種類のプロセッサのうちの少なくとも1つから選択可能である。
この実施例では、マイグレーション・マネージャ318は、1組のクラウド312におけるアプリケーション306のアプリケーション・パフォーマンス・メトリック322を監視することができる。アプリケーション306のアプリケーション・パフォーマンス・メトリック322は、レイテンシ、パケット・ロス、スループット、可用性、ジッター、リソース使用、所要ストレージまたはその他のパラメータのうちの少なくとも1つから選択可能である。これらのパラメータは、サービス・レベル・アグリーメント(SLA)で指定されているサービス品質(QoS)パラメータ、またはアプリケーション306のパフォーマンスに関する任意のパラメータとすることができる。
本明細書では、「~のうちの少なくとも1つ」という語句は、事物の列挙とともに使用される場合、列挙されている事物のうちの1つまたは複数の事物の異なる組合せを意味し、列挙されている各事物のうちの1つのみが必要な場合がある。言い換えると、「~のうちの少なくとも1つ」は、列挙されているうちの事物の任意の組合せおよび任意の数の事物が使用されてもよいが、列挙されている事物のすべてが必要なわけではないことを意味する。事物は特定の物、事柄、またはカテゴリとすることができる。
たとえば、「事物A、事物B、または事物Cのうちの少なくとも1つ」は、これらには限定されないが、事物A、または事物Aと事物B、または事物Bを含み得る。この例は、事物Aと事物Bと事物C、または事物Bと事物Cも含み得る。当然ながら、これらの事物の任意の組合せも存在し得る。実施例によっては、「~のうちの少なくとも1つ」は、たとえば、これらには限定されないが、2つの事物A、1つの事物B、および10の事物C、4つの事物Bと7つの事物C、またはその他の適切な組合せを含み得る。
この実施例では、マイグレーション・マネージャ318によって監視されるアプリケーション・パフォーマンス・メトリック322は、パフォーマンス・メトリック履歴326を形成するようにパフォーマンス・データベース324に記憶することができる。パフォーマンス・メトリック履歴326は、アプリケーション306のうちのどのアプリケーションが、アプリケーション306のうちで特定されたアプリケーションのコンテナ304のマイグレーションによって恩恵を受ける可能性があるかを判定するために、現在のパフォーマンス・メトリックとともに分析することができる。
一実施例では、1組のプロセッサ320が、1組のアプリケーション・パフォーマンス・メトリック322を使用してマイグレーションのために1組のアプリケーション306の1組のコンテナ304を特定する。この実施例では、1組のプロセッサ320は、プロセッサ320のうちの一部または全部とすることができる。この実施例では、1組のプロセッサ320は、コンピュータ・システム308が複数のデータ処理システムを含む場合に、コンピュータ・システム308における1つまたは複数のデータ処理システム内に位置することができる。1組のコンテナ304は、1組のアプリケーション306内の1つまたは複数のコンテナとすることができる。言い換えると、1組のコンテナ304は、1組のアプリケーション306のコンテナ304の全部でなくてもよい。同様に、1組のアプリケーション306は、アプリケーション306の一部または全部とすることができる。
1組のアプリケーション306は、クラウド・コンピューティング環境310内のクラウド312のうちの1つまたは複数のクラウド内に位置することができる。言い換えると、1組のコンテナ304は、クラウド312のうちの1つまたは複数のクラウド内に位置することができる。1組のアプリケーション・パフォーマンス・メトリック322は、マイグレーション・マネージャ318によって監視されているアプリケーション・パフォーマンス・メトリック322の一部または全部とすることができる。
この実施例では、マイグレーション・マネージャ318は、マイグレーションのために特定された1組のアプリケーション306の1組のコンテナ304を、1組のアプリケーション・パフォーマンス・メトリック322を使用して1組の現在の物理ホスト・コンピュータ332から1組の宛先物理ホスト・コンピュータ334に移動させる、マイグレーション戦略330に従う1組のタスク328を作成するように動作する。1組のタスク328内のタスクは、1組のコンテナ304内の1つまたは複数のコンテナを1組の現在の物理ホスト・コンピュータ332から1組の宛先物理ホスト・コンピュータ334に移動させるために実行されるかまたは着手される作業を定義する。
この実施例では、マイグレーション戦略330は、タスク328が実行される時点を定義する。たとえば、マイグレーション戦略330は、1組のタスク328のスケジュール336を含んでもよい。スケジュール336は、1組のタスク328を実行する順序、1組のタスク328内のタスクを実行する時点、1組のタスク328を実行する優先度、またはその他のスケジューリング・パラメータのうちの少なくとも1つを定義することができる。
この実施例では、スケジュール336は、いくつかの異なる考慮事項を考慮に入れることができる。たとえば、マイグレーション戦略330に従う1組のタスク328のスケジュール336は、実行優先度、1組のアプリケーションのためのタイム・スロット、クラウド管理規則、または何らかの他の考慮事項のうちの少なくとも1つを考慮に入れることができる。
この実施例では、実行優先度はタスク優先度を示すことができる。たとえば、コンテナAはP_Dなどの優先度を有することができる。この実施例では、Pはプロダクションであり、Dはビジネス優先度を示す数値である。数値は、実行フィードバックに応じて自動的に調整可能である。別の実施例として、別の要素がコンテナのマイグレーションの影響となり得る。たとえば、コンテナAは、影響を高いリソース需要を意味するHとして有し、マイグレーション後に目的の向上を有することになる。この場合、アプリケーション・パフォーマンスに対する影響は大きい。
この実施例では、タイム・スロットは、コンテナの移動がアプリケーションの実行に影響を与えない時間とすることができる。たとえば、タイム・スロットは、アプリケーションが使用されないかまたは使用率の低い時点とすることができる。タイム・スロットは、クラウド管理の観点からの影響とパフォーマンスに基づくこともできる。
この実施例では、クラウド管理規則は、たとえば、アプリケーションAがライフサイクル全体を通じてマイグレーションすることができないということであってもよい。別のクラウド管理規則は、マイグレーション中にオペレーティング・システム・レベルのインフラストラクチャを変更することができないということであってもよい。さらに別の例として、クラウド管理規則は、アプリケーションAが他のアプリケーションに比べて最も高い優先度を有するなどの、優先度を事前定義することができる。優先度は、いくつかの異なる要素を使用して決定することができる。たとえば優先度は異なるアプリケーションのサービス品質に基づくことができる。
マイグレーション戦略330に従う1組のタスク328を作成する際に、マイグレーション・マネージャ318は他の要素も考慮に入れることができる。たとえば、マイグレーション・マネージャ318は、1組のマイグレーション規則342も考慮に入れることができる。1組のマイグレーション規則342は、アプリケーション管理、クラウド管理、政府規制、またはその他の種類の要素のうちの少なくとも1つに関係する規則を含むことができる。
前述のように、マイグレーション・マネージャ318は、マイグレーション戦略330に従う1組のタスク328を使用して、1組のアプリケーション306の1組のコンテナ304を1組の物理ホスト・コンピュータ332から1組の宛先物理ホスト・コンピュータ334に移動させるように動作することができる。1組のコンテナ304をマイグレーションした後で、1組のアプリケーション・パフォーマンス・メトリック322を特定することができる。この1組のアプリケーション・パフォーマンス・メトリック322の特定は、1組のアプリケーション306のコンテナ304をマイグレーションする将来のタスクの作成のためにマイグレーション戦略330を調整するためのフィードバックとして使用することができる。
前述のように、マイグレーション・マネージャ318は、アプリケーション306のうちの1つまたは複数のアプリケーションのパフォーマンスを向上させるために、コンテナ304のうちの1つまたは複数のコンテナを自動的に移動させるステップを反復的に実行することができる。1組のコンテナ304の移動によって、1組のアプリケーション306の中のアプリケーション306に加えて、アプリケーション306のパフォーマンスを向上させることができる。たとえば、1組のアプリケーション306の1組のコンテナ304を移動させることによって、場合によってはアプリケーション306の全部のアプリケーションのパフォーマンスを向上させることができる。このパフォーマンス向上は、マイグレーション・マネージャ318がアプリケーション306のアプリケーション・パフォーマンス・メトリック322を監視することにより検出することができる。
また、これらのステップは、アプリケーション306の実行中に動的に行われる。言い換えると、アプリケーションのコンテナを移動させるためにそのアプリケーションの実行を変更する必要はない。
この実施例では、マイグレーション・マネージャ318は、パフォーマンス・メトリック履歴326内の1組のアプリケーション・パフォーマンス・メトリック322のパターン338を判定するように動作することができる。パターン338は、たとえば、動作期間、ビジネスのピーク、ビジネスの谷、データ通信量、およびアプリケーション・パフォーマンス・メトリック322におけるその他の種類のパターンなどの、サービス動作パターンを含むことができる。この実施例では、パターン338は、アプリケーション306におけるコンテナ304によるリソース消費のパターンも含むことができる。このリソース消費は、たとえば、プロセッサ・リソース、記憶されているリソース、ネットワーク通信、またはその他のリソースの使用を含むことができる。
このパターンは、マイグレーション戦略330を決定するために使用することができる。たとえば、パターン338は、時間t中のアプリケーションAのための処理リソースが物理ホスト・コンピュータEにおいて不十分であることを示すことができる。パターン338は、アプリケーションAが必要とするリソースが時間t中に物理ホスト・コンピュータE上にあることを示すこともできる。このパターンは、時間t中に処理リソースが物理ホスト・コンピュータF上に存在しないが、期間t中に物理ホスト・コンピュータE上には存在することも示すことができる。言い換えると、パターン338は、物理ホスト・コンピュータEと物理ホスト・コンピュータFとの間の周期的なリソース可用性変化を示すことができる。
この実施例では、マイグレーション戦略330は、時点tにおいてアプリケーションAを物理ホスト・コンピュータEから物理ホスト・コンピュータFに移動させ、その後、時点t+1においてアプリケーションAを物理ホスト・コンピュータFから物理ホスト・コンピュータEに戻す1組のタスク328を含むことができる。1組のタスク328は、パターン338の特定に基づいてマイグレーション戦略330に従うようにスケジュール336通りに反復可能である。
この実施例では、マイグレーション・マネージャ318によって、いくつかの異なる方式でコンテナ304の中から1組のコンテナ304を特定することができる。たとえば、マイグレーション・マネージャ318は、1組のアプリケーション・パフォーマンス・メトリック322に基づいて1組のアプリケーション306の1組のパフォーマンス限界340を特定することができる。たとえば、1組のパフォーマンス限界340は、クライアントからの要求への応答のレイテンシとすることができる。
マイグレーション・マネージャ318は、1組のアプリケーション306の1組のパフォーマンス限界340を生じさせる1組のアプリケーション306の1組のコンテナ304を特定することができる。たとえば、マイグレーション・マネージャ318は、ディスク・アクセスの入力/出力(I/O)周波数が、1組のコンテナ304のうちのコンテナにおいて十分に高いものではなく、そのコンテナが位置している現在の物理ホスト・コンピュータにおける現在のディスク・システムではそのI/O周波数に対応することができないと判定してもよい。ディスクI/Oのこの限界は、この実施例におけるレイテンシの原因である。その結果、1組のパフォーマンス限界340におけるレイテンシ問題の理由で、このI/O周波数限界のあるコンテナが考慮される。
1組のコンテナ304と1組のパフォーマンス限界340とを特定することにより、マイグレーション・マネージャ318は、1組のアプリケーション306の1組のコンテナ304をそこに移動させると1組のパフォーマンス限界340が低減される1組の宛先物理ホスト・コンピュータ334を特定することができる。この実施例では、マイグレーション・マネージャ318は、宛先物理ホスト・コンピュータとして、望まれるレベルのディスクI/Oを有する別の物理ホスト・コンピュータを特定することができる。この種の分析を1組のコンテナ304内の各コンテナについて行うことができる。
また、マイグレーション・マネージャ318は、個別のコンテナのパフォーマンス向上の分析を超えて、1組のアプリケーション306のパフォーマンスを向上させるように1組のコンテナ304を特定することができる。たとえば、マイグレーション・マネージャ318は、マイグレーションのために1組のコンテナ304を特定する際に、コンテナ304間の依存関係348も考慮に入れることができる。一実施例では、マイグレーション・マネージャ318は、1組のアプリケーション・パフォーマンス・メトリック322を使用して、マイグレーションのために1組のアプリケーション306の1組の初期コンテナ344を特定することができる。たとえば、1組の初期コンテナ344内の各コンテナは、1組のアプリケーション・パフォーマンス・メトリック322の分析で特定された1組のパフォーマンス限界340のうちのパフォーマンス限界の原因であると特定されたコンテナとすることができる。
この実施例では、マイグレーション・マネージャ318は、1組のアプリケーション306の1組の初期コンテナ344に対する依存関係348を有するいくつかの追加コンテナ346を特定することができる。1組の初期コンテナ344といくつかの追加コンテナ346は、移動のために特定される1組のアプリケーション306の1組のコンテナ304を形成する。
その結果、コンテナ304を移動させるタスクを生成する際に、アプリケーションにおけるコンテナ間304の依存関係348を考慮に入れることによって、アプリケーションにおけるコンテナ304間の依存関係348を考慮せずにコンテナ304のパフォーマンスに焦点を合わせる現在の技術と比較して、アプリケーションのパフォーマンスを向上または維持することができる。
一実施例では、移動させるコンテナのパフォーマンスだけでなくパフォーマンスを向上させる方式でコンテナ・マイグレーションの技術的問題を克服する、1つまたは複数の解決策が存在する。その結果、1つまたは複数の技術的解決策は、コンテナ304を1つのホスト・コンピュータから別のホスト・コンピュータに移動させる場合に、アプリケーション306のパフォーマンスを向上させる技術的効果をもたらすことができる。また、コンテナ304のうちのどのコンテナを1組の現在の物理ホスト・コンピュータ332から1組の宛先物理ホスト・コンピュータ334に移動すべきかを判定する際に、アプリケーション306のアプリケーション・パフォーマンス・メトリック322が考慮される、1つまたは複数の技術的解決策がある。
この実施例では、アプリケーション・レベルでのマイグレーション戦略330に従うタスク328の生成を、コンピュータ・システム308におけるリソースの使用の不均衡を低減することができる方式で行うことができる。この実施例では、マイグレーション・マネージャ318は、コンピュータ・システム308における1つまたは複数のアプリケーション306のパフォーマンスを向上させるマイグレーション戦略330に従うタスク328を生成することができる。タスク328は、マイグレーション・マネージャ318によって、アプリケーション306のうちの単一のアプリケーションではなく、多くのアプリケーションのパフォーマンスを向上させる方式で生成可能である。また、タスク328は、コンピュータ・システム308における遊休リソースまたは十分に使用されていないリソースの存在が低減されるように、リソースの使用を増加させる方式で生成することができる。
さらに、マイグレーション・マネージャ318は、アプリケーション・パフォーマンス・メトリック322を連続的に監視するように動作することができ、また、アプリケーション306のアプリケーション・パフォーマンス・メトリック322を向上させるために必要に応じて、アプリケーション306のコンテナ304を移動させる、マイグレーション戦略330に従うタスク328を自動的に特定および作成するように動作することができる。また、コンテナ304の移動は、クラウド・コンピューティング環境310におけるリソースの使用を増加させるために行うこともできる。言い換えると、コンテナ304を特定し、移動させる現在の技術は、それらのコンテナのパフォーマンスを向上させるが、リソースの利用不足を生じさせる可能性がある。マイグレーション・マネージャ318は、クラウド・コンピューティング環境310におけるリソース使用316と可用性とを考慮に入れたアプリケーション・パフォーマンス・メトリック322を特定することができる。言い換えると、1組のアプリケーション306の1組のコンテナ304を移動させるタスク328の作成によって、1組のアプリケーション306内のそのアプリケーションのパフォーマンスにとどまらずパフォーマンスを向上させることができる。
リソースとクラウド・コンピューティング環境310との使用向上により、1組のアプリケーション306に加えて、アプリケーション306内の追加アプリケーションのアプリケーション・パフォーマンス・メトリック322の向上も達成することができる。その結果、1組のタスク328の作成は、クラウド・コンピューティング環境310におけるリソースの使用を増大させることによって1組のアプリケーション・パフォーマンス・メトリック322を向上させることができ、その際、アプリケーション306内の追加アプリケーションによるリソースの使用の増加がアプリケーション・パフォーマンス・メトリック322の向上と両立可能である。
コンピュータ・システム308における1組のプロセッサ320は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組合せを使用して、異なる実施例において説明しているステップ、動作またはアクションのうちの少なくとも1つを行うように構成可能である。その結果、コンピュータ・システム308は、コンピュータ・システム308におけるマイグレーション・マネージャ318が、アプリケーション306のパフォーマンスを向上させる方式でコンテナ304のマイグレーションを可能にする、専用コンピュータ・システムとして動作する。たとえば、マイグレーション・マネージャ318は、アプリケーション306と、クラウド312のうちの1つまたは複数のクラウドとのパフォーマンスの向上に基づいて、1つまたは複数のコンテナ304のコンテナ・マイグレーションを自動的に行うことができる。
この実施例では、アプリケーション306のパフォーマンスを維持または向上させるようにコンテナ304を移動させるために、アプリケーション306のパフォーマンスを連続的に監視することができる。コンテナ304の移動は、クラウド312内のリソースの効率的使用を増大させるなど、クラウド312のパフォーマンスを向上させるためにも行うことができる。したがって、1組のプロセッサ320においてマイグレーション・マネージャ318を持たない現在利用可能な汎用コンピュータ・システムに対して、1組のプロセッサ320におけるマイグレーション・マネージャ318は、1組のプロセッサ320を備えるコンピュータ・システム308を専用コンピュータ・システムに変換する。
この実施例では、1組のプロセッサ320におけるマイグレーション・マネージャ318の使用により、コンピュータ・システム308のパフォーマンスを向上させるコンテナ304のマイグレーションのためのプロセスが、実用アプリケーションに組み込まれる。コンピュータ・システム308のパフォーマンスは、リソース使用316の効率を向上させることができる。たとえば、コンテナ304のマイグレーションは、コンピュータ・システム308における遊休リソースまたは利用不足リソースが低減されるようにコンピュータ・システム308においてリソース使用316を増加させることができように、アプリケーションのパフォーマンスを考慮に入れて行うことができる。
図3のコンテナ管理環境300の図は、例示の実施形態を実装可能な方式の物理的またはアーキテクチャ的限定を含意することは意図していない。図示されているコンポーネントに加えて、または図示されているコンポーネントに代えて、他のコンポーネントが使用されてもよい。一部のコンポーネントが不要な場合もある。また、ブロックは一部の機能コンポーネントを図示するために示されている。例示の実施形態で実装する際に、これらのブロックのうちの1つまたは複数のブロックを、結合、分割、または結合と分割とを行って、異なるブロックとしてもよい。
たとえば、プロセッサ320はコンピュータ・システム308の別個のコンポーネントとして示されているが、一部の実施例では、1つまたは複数のプロセッサ320がコンピュータ・システム308に位置することができる。実施例について1組のクラウド312が存在するクラウド・コンピューティング環境310を含むコンピュータ・システム308に関連して説明したが、コンテナ304をマイグレーションするために他の実施例および他の種類のコンピューティング環境を使用することも可能である。たとえば、マイグレーション・マネージャ318は、クラウド・コンピューティング環境310に加えて、またはそれに代えて、グリッド・コンピューティング環境、ピア・ツー・ピア・コンピューティング環境、フォグ・コンピューティング環境、クライアント/サーバ・コンピューティング環境、または何らかの他のコンピューティング環境においてコンテナ304を管理するためにも実装可能である。
次に図4を参照すると、例示の実施形態によるコンテナ・マネージャにおけるコンポーネントの図が示されている。この実施例では、複数の図中で同じ参照番号が使用されている場合がある。異なる図面におけるこの参照番号の再使用は、異なる図中の同じ要素を表す。
図4には、図3のマイグレーション・マネージャ318を実装するために使用可能なコンポーネントの例が示されている。この実施例に示すように、マイグレーション・マネージャ318は、サービス品質向上アナライザ402と、マイグレーション・タスク生成器404と、コンテナ依存関係アナライザ406と、マイグレーション規則408と、優先度管理および意思決定器410と、マイグレーション・エンジン412と、モニタ414とを含む。
図のように、マイグレーション・マネージャ318における様々なコンポーネントは、マルチ・クラウド418におけるコンテナを管理するように動作することができる。この実施例では、マルチ・クラウド416は、いくつかのクラウドを含む。これらのクラウドは、たとえば、パブリック・クラウド、プライベート・クラウド、またはこの2つの組合せとすることができる。マルチ・クラウド416における複数のクラウドにワークロードを分散させることができる。
モニタ414は、マルチ・クラウド418の形態のクラウド・コンピューティング環境に合わせて動作する。たとえば、モニタ414は、コンテナ・リソース監視、物理ホスト・リソース監視、コンテナ親和性監視、およびコンテナ・クラスタ動作パターン監視のうちの少なくとも1つを行うことができる。コンテナ・リソース監視は、個別のコンテナによるリソース使用を監視することを含み得る。物理ホスト・リソース監視は、1つまたは複数のクラウドにおける物理ホスト・サーバ・コンピュータによるリソース使用を監視することを含み得る。
この実施例では、モニタ414は、マルチ・クラウド418におけるコンテナ間のコンテナ通信情報を収集することを含む、コンテナ親和性監視を行うことができる。このコンテナ通信情報は、たとえば、メッセージ、データ、コマンドまたはその他の種類の通信情報を含むことができる。モニタ414は、実行中のアプリケーションの挙動に関する情報を収集することができる。この情報は、アプリケーションの活動のパターンを判定するために使用することができる。これらのパターンは、マルチ・クラウド418におけるクラウド内またはクラウド間でコンテナのマイグレーションを行うための戦略を生成するために使用することができる。
図のように、モニタ414は人工知能システムを使用して実行可能である。人工知能システムは、インテリジェント挙動を有し、人間の脳の機能に基づくことができるシステムである。人工知能システムは、人工ニューラル・ネットワーク、認知システム、ベイズ・ネットワーク、ファジー論理、エキスパート・システム、自然言語システム、または何らかの他の適切なシステムのうちの少なくとも1つを含む。人工知能システムをトレーニングするために機械学習が使用される。機械学習は、プロセスにデータを入力することと、プロセスが人工知能システムの機能を調整し、改良することができるようにすることとを含む。
機械学習モデルは、明示的にプログラムされずに学習することができる人工知能モデルの一種である。機械学習モデルは、機械学習モデルに入力されたトレーニング・データに基づいて学習することができる。機械学習モデルは、様々な種類の機械学習アルゴリズムを使用して学習することができる。機械学習アルゴリズムは、教師あり学習、教師なし学習、特徴学習、スパース辞書学習、異常検出、相関ルール、またはその他の種類の学習アルゴリズムのうちの少なくとも1つを含む。機械学習モデルの例には、人工ニューラル・ネットワーク、決定木、サポート・ベクター・マシン、ベイズ・ネットワーク、遺伝的アルゴリズム、およびその他の種類のモデルが含まれる。これらの機械学習モデルは、データを使用してトレーニングすることができ、目的の出力を提供するように追加のデータを処理することができる。
サービス品質(QoS)向上アナライザ402は、モニタ414によって監視されている情報を使用して、目的とするよりも低いパフォーマンスを有するコンポーネントを特定することができる。モニタ414によって生成される情報は、マルチ・クラウド418における様々なコンポーネントのパフォーマンスを判定するために使用することができる。
たとえば、サービス品質は、レイテンシ、パケット・ロス、スループット、可用性、ジッター、またはその他のパラメータなどのパフォーマンス・メトリックを使用して測定可能である。サービス品質向上アナライザ402は、1組のアプリケーション、アプリケーション、物理ホスト・サーバ・コンピュータ、コンテナ、1組のコンテナ、1組のアプリケーション、またはその他の種類のコンポーネントなどのコンポーネントについて、これらのパフォーマンス・メトリックを判定することができる。
この実施例では、サービス品質向上アナライザ402は、どのアプリケーションが希望通りのパフォーマンスで動作していないかを判定するために、アプリケーションのアプリケーション・パフォーマンス・メトリックを分析することができる。これらのアプリケーション・パフォーマンス・メトリックは、1つまたは複数のアプリケーション・パフォーマンス・メトリックが希望レベルを満たさない場合に、コンテナにおけるパフォーマンス限界を判定するために分析することができる。このようにして、サービス品質向上アナライザ402は、クラウドにおける単一のアプリケーションまたは複数のアプリケーションのアプリケーション・パフォーマンスを向上させるためにどのコンテナを移動すべきかを判定することができる。
さらに、サービス品質向上アナライザ402は、現在の物理ホスト・コンピュータにおいてコンテナが受けているパフォーマンス限界を低減または除去することになる、コンテナの宛先物理ホスト・コンピュータを判定することができる。その結果、これらの宛先物理ホスト・コンピュータにコンテナを移動させることで、アプリケーション・パフォーマンス・メトリックが希望レベルを満たさないアプリケーションのパフォーマンスを向上させることができる。
コンテナ依存関係アナライザ406は、2つ以上のコンテナ間の依存関係を特定することができる。この実施例では、2つ以上のコンテナ間の依存関係の特定は、コンテナ依存関係アナライザ406によって、コンテナ親和性監視およびモニタ414によって収集されたコンテナ通信情報を使用して行うことができる。この情報は、コンテナ親和性を判定するためにマイグレーション・マネージャ318によって分析される。
コンテナ依存関係アナライザ406は、依存関係にあるコンテナのうちの1つがマイグレーションのために選択されると、一緒に移動させる必要があるコンテナを特定するために使用することができる。たとえば、サービス品質向上アナライザ402が、アプリケーションZのパフォーマンスを向上させるためにアプリケーションZのコンテナAを移動させることができると判定した場合、サービス品質向上アナライザ402は、コンテナ依存関係アナライザ406を使用して、コンテナAがコンテナBおよびコンテナEと依存関係を有すると判定することもできる。その結果、サービス品質向上アナライザ402は、アプリケーションZの1つまたは複数のパフォーマンス・メトリックを向上させる移動のために、コンテナA、コンテナBおよびコンテナEを特定することができる。
この実施例では、マイグレーション・タスク生成器404は、マイグレーション戦略に従う1組のタスクを生成することができる。この実施例では、タスクは、コンテナを1つの物理ホスト・コンピュータから別の物理ホスト・コンピュータに移動させるなどの作業を定義する。この実施例では、コンテナを移動させるために複数のタスクが行われてもよい。
マイグレーション・タスク生成器404は、スケジュールに従う、1つまたは複数のコンテナを移動させる1組のタスクを生成することができる。スケジュールは、1組のコンテナをマイグレーションする順序、時点またはその他のパラメータのうちの少なくとも1つを設定することができる。
コンテナを移動させるタスクを生成する際、マイグレーション・タスク生成器404は、コンテナを移動させるタスクを生成するためにいくつかの異なる情報を使用する。たとえば、マイグレーション・タスク生成器404は、現在の物理ホスト・コンピュータ、宛先物理ホスト・コンピュータ、移動のために特定されたコンテナ、タイム・スロット、優先度、方法、ルーチン戦略、マイグレーション規則、コスト、影響、リスク、所有者、またはその他の適切な種類の情報のうちの少なくとも1つを使用することができる。
この実施例では、タイム・スロットは、アプリケーションの動作に影響を与えずにコンテナを移動させることができる時間である。タイム・スロットは、クラウドにおける複数のアプリケーションについてクラウドの動作に影響を与えないコンテナの移動に基づくことができる。図のように、どのコンテナを先に移動すべきかを示す優先度をコンテナに割り当てることができる。方法は、コンテナを移動させる方式とすることができる。
ルーチン戦略は、コンテナを移動させるべき頻度とすることができる。たとえば、コンテナは週1回、毎日、または非周期的であってもよい何らかのイベントの発生に基づいて移動させてもよい。マイグレーション規則は、コンテナをいつどのように移動させるべきかを定義する。
コストは、コンテナを移動させるのに必要なコストとすることができる。影響は、アプリケーションの動作に与える影響とすることができる。リスクは、コンテナの移動中のパフォーマンス低下のリスクとすることができる。所有者は、コンテナが属するアプリケーションとすることができる。
どのコンテナを現在の物理ホスト・コンピュータから宛先物理ホスト・コンピュータに移動すべきかを定義するタスクを生成するために、これらの情報のうちの1つまたは複数を使用することができる。コンテナを移動させる方式は、これらの情報を使用してスケジュールにおいて定義することができる。
この実施例では、マイグレーション規則408は、コンテナのマイグレーションに関する規則を定義する。この実施例では、マイグレーション規則408は、デフォルト規則または自動生成規則のうちの少なくとも1つを含むことができる。また、マイグレーション規則408は、この実施例ではユーザ入力に基づいて作成または修正することができる。
図のように、マイグレーション規則408は、マイグレーションがどのようにして、いつ起こり得るかを規定する、アプリケーション管理規則、クラウド管理規則、もしくはその他の規則、規定、または原則のうちの少なくとも1つを含むことができる。
この実施例では、優先度管理および意思決定器410は、コンテナをマイグレーションする1組のタスクのスケジュールに基づいて、コンテナをマイグレーションする手順および動作のランブックを生成することができる。図のように、ランブックは、マイグレーション戦略に従う1組のタスクのリストを含むことができる。ランブックは、リスト内のタスクがいつ実行されるかを示す順序と時点とを指定するスケジュールを含むことができる。このタスクのリストは、重要度優先順で配置可能であるか、または優先度識別子を含むことができる。
この実施例では、タスクを承認または修正し、ランブックのスケジュールに入れるためにユーザ入力が受け取られてもよい。この実施例では、修正は、タスクの削除、タスクの追加、またはタスクのスケジュールの変更のうちの少なくとも1つを含むことができる。他の実施例では、ランブックの承認または変更は人工知能システムによって行われてもよい。
ランブックに変更が加えられると、それらの変更はマイグレーション規則408における規則を更新するためのフィードバックとして使用することができる。マイグレーション規則408のこれらの更新により、コンテナをマイグレーションする将来のタスクを作成するためにマイグレーション・タスク生成器404によって使用されるマイグレーション戦略を調整することができる。
承認されたタスクとスケジュールは、マイグレーション・エンジン412に送ることができる。マイグレーション・エンジン412は、1組のタスクとスケジュールとを使用してコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、ソフトウェア・コンポーネントである。
図3のマイグレーション・マネージャ318の様々なコンポーネントの図は、マイグレーション・マネージャ318においてコンポーネントを実装することができる1つの方式として示しているものである。この図は、マイグレーション・マネージャ318を他の実施例で実装することができる方式を限定することを意図していない。たとえば、マイグレーション・エンジン412は、コンテナを移動させるためにマイグレーション・マネージャ318が通信することができる別個のコンポーネントとみなすことができる。別の実施例では、優先度管理および意思決定器410が省かれてもよい。この実施例では、コンテナを自動的にマイグレーションするために、スケジュールを含むマイグレーション戦略に従う1組のタスクをマイグレーション・タスク生成器404からマイグレーション・エンジン412に送ることができる。
この実施例では、マイグレーション・マネージャ318は、ユーザ入力を必要とせずにアプリケーションのコンテナを自動的にマイグレーションする。図4に示すコンポーネントを使用してマイグレーション・マネージャ318によって行われるマイグレーション・プロセスは、連続的に行うことができ、その際、アプリケーションのパフォーマンスの監視が連続的に行われ、マルチ・クラウド418におけるアプリケーションのアプリケーション・パフォーマンス・メトリックを向上させるかまたは維持するために、必要に応じてタスクが生成される。これらのプロセスは、マルチ・クラウド418内でプロセスの動作を停止する必要なしに動的に行われる。
図5および図6に、例示の実施形態によるマルチ・クラウドにおける自動マイグレーション・コンテナを示す。まず図5を参照すると、例示の実施形態によるマルチ・クラウドにおけるコンテナの図が示されている。この実施例では、マルチ・クラウド500は、クラウド502およびクラウド504を含む。これらのクラウドは、異なる地理的場所をサポートする。たとえば、クラウド502は、中国におけるクライアントによるアクセスをサポートし、クラウド504は、米国におけるクライアントによるアクセスをサポートする。
図のように、第1のアプリケーションは、クラウド502にコンテナ506およびコンテナ508を含む。第1のアプリケーションは、クラウド504にあるコンテナ510における外部サービスにもアクセスする。この第1のアプリケーションは、中国で日中に稼働する。
第2のアプリケーションは、クラウド504において稼働し、米国で日中にアクティブとなっている。第2のアプリケーションは、コンテナ512およびコンテナ514を含む。
図のように、コンテナ510、コンテナ512、コンテナ514は物理ホスト・コンピュータ516上で稼働している。この実施例では、クラウド504には物理ホスト・コンピュータ518および物理ホスト・コンピュータ520も存在する。
この実施例では、パフォーマンス・メトリックは、第1のアプリケーションのレイテンシとすることができる。レイテンシが望ましくないレベルである場合、アプリケーションの1つまたは複数のコンテナにおけるパフォーマンス限界が、たとえば、異なるクラウドにおけるコンテナ間のネットワーク通信であることがある。
第1のアプリケーションのレイテンシが第1のアプリケーションのレイテンシのために指定されているサービス品質より大きい場合、第1のアプリケーションのこの望ましくないレイテンシを生じさせているパフォーマンス限界を判定するためにさらなる分析を行うことができる。この実施例では、パフォーマンス限界は、第1のアプリケーションにおけるコンテナ510のためのクラウド502とクラウド504との間のネットワーク通信である場合がある。
図のように、物理ホスト・コンピュータ516は、クラウド502において第1のアプリケーションのコンテナ506およびコンテナ508との希望するレベルのネットワーク通信パフォーマンスを有する、クラウド502における唯一の物理ホスト・コンピュータである。また、第2のアプリケーションのコンテナ512およびコンテナ514は、物理ホスト・コンピュータ516にデプロイする必要がある重要なアプリケーションである。しかし、この実施例では、物理ホスト・コンピュータ516は、第1のアプリケーションのコンテナ510と第2のアプリケーションのコンテナ512およびコンテナ514とを実行するためのバッファ・スペースなど、十分なリソースを持たない。
この実施例では、第1のアプリケーションと第2のアプリケーションのアプリケーション・パフォーマンス・メトリックのパターンは、米国において日中の時間帯に第2のアプリケーションがアクティブであるが、米国において夜間の時間帯にはアクティブでないことを示す。また、アプリケーション・パフォーマンス・メトリックのパターンは、第1のアプリケーションが米国において日中にアクティブでないが、米国において夜間にはアクティブであることを示している。その結果、アプリケーションのパフォーマンスに焦点を合わせたアプリケーション・パフォーマンス・メトリックを使用して、第1のアプリケーションと第2のアプリケーションの両方の希望レベルのパフォーマンスを向上または維持するためのタスクを作成することができる。
次に図6を参照すると、例示の実施形態によるマルチ・クラウドにおけるコンテナの移動の図が示されている。この実施例では、1組のタスクが、第1のアプリケーションと第2のアプリケーションの両方のパフォーマンスを向上させる方式でコンテナ510を移動させることができる。
たとえば、米国中部夏時間08:00から米国中部夏時間09:00までのタイム・スロットにおいてコンテナ510を停止させずに、コンテナ510を物理ホスト・コンピュータ516から物理ホスト・コンピュータ518に移動させることができる。コンテナ510のこの移動により、第2のアプリケーションのコンテナ512およびコンテナ514が日中に稼働するのに十分なリソースが確保される。クラウド502における第2のアプリケーションは米国において日中にアクティブでないため、物理ホスト・コンピュータ518へのコンテナ510の移動は第2のアプリケーションのパフォーマンスに影響を与えない。
コンテナ510を停止させずに米国中部夏時間20:00から米国中部夏時間21:00までのタイム・スロットにおいてコンテナ510を物理ホスト・コンピュータ518から物理ホスト・コンピュータ516に移動させる別のタスクを作成することができる。このようにして、第2のアプリケーションがアクティブであり、かつコンテナ506およびコンテナ508がコンテナ510によって提供されるサービスにアクセスする必要がある時間に、コンテナ510が物理ホスト・コンピュータ516にある。この期間中、第2のアプリケーションを有するコンテナ512とコンテナ514はアクティブではない。これらの異なるタイム・スロットは、タスクが実行される時間を制御するスケジュールの一部とすることができる。
第1のアプリケーションと第2のアプリケーションの両方のパフォーマンスを向上させるようにしてコンテナ510を物理ホスト・コンピュータ516と物理ホスト・コンピュータ518との間で移動させるこれら2つのタスクは、自動的に行うことができる。この実施例では、タスクはコンテナ510の希望レベルのネットワーク接続を提供するために行うことができ、したがって第1のアプリケーションのレイテンシが低減される。この2つのタスクは、第2のアプリケーションのコンテナ512およびコンテナ514のパフォーマンスも向上させる。
その結果、クラウド504における物理ホスト・コンピュータ間のコンテナ510のこの自動移動は、両方のアプリケーションのパフォーマンスを向上させる。それに対して、現在の技術のような単一のコンテナのパフォーマンスを向上させることでは、第1のアプリケーションしか向上させることができない。
また、第1のアプリケーションと第2のアプリケーションのパフォーマンスの連続監視によって、これら2つのアプリケーションがアクティブである時間の変化を特定することができる。2つのアプリケーションがアクティブである時間の変化の結果、2つのアプリケーションの希望レベルのパフォーマンスを維持するかまたは得るためにコンテナを移動させる現在のタスクを修正するための、新たなタスクを自動的に生成することができる。別の例としては、物理ホスト・コンピュータ516を使用するネットワーク通信が、コンテナ510にとって、クラウド502内のコンテナ506およびコンテナ508との望ましいネットワーク接続を提供するのに、クラウド504内の別の物理ホスト・コンピュータの方がさらに適し得るものとなるように変化する可能性がある。
2つのアプリケーションの望ましいパフォーマンスを得るためにコンテナを移動させるこの事例は、一実施例として示すに過ぎず、他の実施例を実装することができる方式を限定することは意図していない。たとえば、第1のアプリケーションと第2のアプリケーションに加えて、またはこれらに代えて、クラウド502およびクラウド504内にある追加アプリケーションのために分析および自動タスク生成を行うことができる。自動分析およびタスク生成は、マルチ・クラウド500においてクラウド502およびクラウド504に加えて、またはこれらに代えて、1つまたは複数のクラウドのために行うこともできる。このようにして、マルチ・クラウド500内の一部または全部のアプリケーションのサービス品質を、サービス・レベル・アグリーメント(SLA)で指定されているサービス品質(QoS)を満たすようにバランスさせるかまたは向上させることができる。
次に図7を参照すると、例示の実施形態による自動コンテナ・マイグレーションのプロセスのフローチャートが示されている。図7のプロセスは、ハードウェア、もしくはソフトウェアまたはその両方で実装可能である。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータ・システムにおける1つまたは複数のハードウェア・デバイスにある1つまたは複数のプロセッサ・ユニットによって実行されるプログラム・コードの形態をとることができる。たとえば、プロセスは、図3のコンピュータ・システム308における1組のプロセッサ320上で稼働するマイグレーション・マネージャ318で実装可能である。
プロセスは、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定することで開始する(ステップ700)。プロセスは、1組のアプリケーション・パフォーマンス・メトリックを使用して、マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成する(ステップ702)。
プロセスは、マイグレーション戦略に従う1組のタスクを使用して、1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させ、この場合、アプリケーション・レベルのパフォーマンスが向上する(ステップ704)。その後、プロセスは終了する。
次に図8を参照すると、例示の実施形態による、パターンを決定するプロセスのフローチャートが示されている。このフローチャートは、図7のプロセスのステップとともに行うことができる追加のステップを示している。
プロセスは、アプリケーション・パフォーマンス・メトリック履歴内の1組のアプリケーション・パフォーマンス・メトリックのパターンを判定する(ステップ800)。その後、プロセスは終了する。ステップ800とともに、図7の作成ステップ702が、アプリケーション・パフォーマンス・メトリック履歴において特定された1組のアプリケーション・パフォーマンス・メトリックのパターンを使用して、マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成することができる。
図9に、例示の実施形態による、マイグレーションのために1組のコンテナを特定するプロセスのフローチャートが示されている。図9のプロセスは、図7のステップ700の一実装形態の一例である。
プロセスは、1組のアプリケーション・パフォーマンス・メトリックに基づいて1組のアプリケーションの1組のパフォーマンス限界を特定することで開始する(ステップ900)。プロセスは、1組のアプリケーションの1組のパフォーマンス限界を生じさせる1組のアプリケーションの1組のコンテナを特定する(ステップ902)。
プロセスは、1組のアプリケーションの1組のコンテナをそこに移動させることによって1組のパフォーマンス限界が低減される、1組の宛先物理ホスト・コンピュータを特定する(ステップ904)。その後、プロセスは終了する。
次に図10を参照すると、例示の実施形態による1組のタスクを作成するプロセスのフローチャートが示されている。図10に示すプロセスは、図7のステップ700の一実装形態の一例である。
プロセスは、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのためにコンピュータ・システムにおける1組のアプリケーションの1組の初期コンテナを特定することで開始する(ステップ1000)。プロセスは、コンピュータ・システムにおける1組のアプリケーションの1組の初期コンテナに対する依存関係を有するいくつかの追加コンテナを特定し、この場合、1組の初期コンテナといくつかの追加コンテナはその1組のアプリケーションの1組のコンテナを形成する(ステップ1002)。その後、プロセスは終了する。
図10のフローチャートでは、マイグレーションのために特定されたコンテナに対する依存関係を有するコンテナも含めることによって、アプリケーションのパフォーマンスを向上させることができる。これらの依存関係は、それらのコンテナが、アプリケーションにおけるパフォーマンスを向上させるかまたは希望レベルに達する物理ホスト・コンピュータ上で稼働すべき依存関係である。アプリケーションのパフォーマンスの低下の一因となるコンテナに基づいて特定されたコンテナの移動によって、そのコンテナのパフォーマンスを向上させることができるが、別の物理ホスト・コンピュータに移動されるコンテナに対して別のコンテナが依存関係を有する場合、この移動はアプリケーションのパフォーマンスを向上させない可能性がある。
様々な図示されている実施形態におけるフローチャートおよびブロック図は、例示の実施形態における装置および方法のいくつかの可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、動作またはステップの、モジュール、セグメント、機能、または部分のうちの少なくとも1つを表し得る。たとえば、ブロックのうちの1つまたは複数のブロックは、プログラム・コード、ハードウェア、またはプログラム・コードとハードウェアとの組合せとして実装可能である。ハードウェアで実装される場合、ハードウェアは、たとえば、フローチャートまたはブロック図における1つまたは複数の動作を行うように製造または構成された集積回路の形態をとることができる。プログラム・コードとハードウェアの組合せとして実装される場合、その実装形態はファームウェアの形態をとることができる。フローチャートまたはブロック図の各ブロックは、専用ハードウェアと専用ハードウェアによって実行されるプログラム・コードとの異なる動作または組合せを実行する、専用ハードウェア・システムを使用して実装することができる。
例示の実施形態の一部の他の実装形態では、ブロックに記載されている機能が図に記載されている順序とは異なる順序で行われてもよい。たとえば、場合によっては、連続して示されている2つのブロックは、関与する機能に応じて、実質的に並行して実行されてもよく、またはブロックは場合によっては逆の順序で実行されてもよい。また、フローチャートまたはブロック図に示されているブロックに加えて他のブロックを追加することができる。
次に図11を参照すると、例示の実施形態によるデータ処理システムのブロック図が示されている。データ処理システム1100は、図1のクラウド・コンピューティング環境50におけるクラウド・コンピューティング・ノード10などの物理ダーク・データ処理システムを実装するために使用することができる。データ処理システム1100は、携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cまたは自動車コンピュータ・システム54Nなどのクラウド消費者を実装するためにも使用することができる。データ処理システム1100は、図3のコンピュータ・システム308と、クラウド・コンピューティング環境310におけるクラウド312のデータ処理システムを実装するためにも使用することができる。この実施例では、データ処理システム1100は、プロセッサ・ユニット1104と、メモリ1106と、永続ストレージ1108と、通信ユニット1110と、入力/出力(I/O)ユニット1112と、ディスプレイ1114との間の通信を提供する通信フレームワーク1102を含む。この実施例では、通信フレームワーク1102は、バス・システムの形態をとる。
プロセッサ・ユニット1104は、メモリ1106にロードすることができるソフトウェアの命令を実行する機能を果たす。プロセッサ・ユニット1104は、1つまたは複数のプロセッサを含む。たとえば、プロセッサ・ユニット1104は、マルチコア・プロセッサ、中央処理装置(CPU)、グラフィックス・プロセッシング・ユニット(GPU)、物理処理ユニット(PPU)、デジタル・シグナル・プロセッサ(DSP)、ネットワーク・プロセッサ、または何らかの他の適切な種類のプロセッサのうちの少なくとも1つから選択可能である。また、プロセッサ・ユニット1104は、単一チップ上にメイン・プロセッサが二次プロセッサとともに存在する、1つまたは複数の異種プロセッサ・システムを使用して実装することもできる。別の実施例として、プロセッサ・ユニット1104は、単一チップ上に同じ種類の複数のプロセッサを含む対称型マルチ・プロセッサ・システムとすることができる。
メモリ1106と永続ストレージ1108は、ストレージ・デバイス1116の例である。ストレージ・デバイスは、たとえばこれらには限らないが、データ、関数形式のプログラム・コード、またはその他の適切な情報を、一時的、永続的または一時的と永続的の両方で記憶することができる、任意のハードウェアである。ストレージ・デバイス1116は、これらの実施例においてコンピュータ可読ストレージ・デバイスとも呼ばれることがある。メモリ1106は、これらの実施例では、たとえばランダム・アクセス・メモリまたは任意のその他の適切な揮発性または不揮発性ストレージ・デバイスとすることができる。永続ストレージ1108は、特定の実装形態に応じて様々な形態をとることができる。
たとえば、永続ストレージ1108は、1つまたは複数のコンポーネントまたはデバイスを含んでもよい。たとえば、永続ストレージ1108は、ハード・ドライブ、ソリッド・ステート・ドライブ(SSD)、フラッシュ・メモリ、書換え型光ディスク、書換え型磁気テープ、またはこれらの何らかの組合せとすることができる。永続ストレージ1108によって使用される媒体は取り外し型とすることもできる。たとえば取り外し型ハード・ドライブを永続ストレージ1108に使用することができる。
通信ユニット1110は、これらの実施例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの実施例では、通信ユニット1110はネットワーク・インターフェース・カードである。
入力/出力ユニット1112は、データ処理システム1100に接続可能な他のデバイスとの間でのデータの入出力を可能にする。たとえば、入力/出力ユニット1112は、キーボード、マウス、または何らかの他の適切な入力デバイスのうちの少なくとも1つを介してユーザ入力のための接続を提供することができる。また、入力/出力ユニット1112は、プリンタに出力を送信してもよい。ディスプレイ1114は、ユーザに対して情報を表示する機構を提供する。
オペレーティング・システム、アプリケーションまたはプログラムのうちの少なくとも1つの命令を、通信フレームワーク1102を介してプロセッサ・ユニット1104と通信するストレージ・デバイス1116にロードすることができる。異なる実施形態のプロセスを、メモリ1106などのメモリにロード可能なコンピュータ実装命令を使用してプロセッサ・ユニット1104によって実行することができる。
これらの命令は、プログラム命令であり、プロセッサ・ユニット1104におけるプロセッサによって読み出しと実行が可能なプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードとも呼ばれる。異なる実施形態におけるプログラム・コードを、メモリ1106または永続ストレージ1108などの異なる物理またはコンピュータ可読記憶媒体上で具現化することができる。
プログラム・コード1118は、選択的に取り外し可能なコンピュータ可読媒体1120上に関数形式で配置され、プロセッサ・ユニット1104による実行のためにデータ処理システム1100にロードまたは転送することができる。プログラム・コード1118とコンピュータ可読媒体1120は、これらの実施例ではコンピュータ・プログラム製品1122を形成する。この実施例では、コンピュータ可読媒体1120は、コンピュータ可読記憶媒体1124である。
コンピュータ可読記憶媒体1124は、プログラム・コード1118を伝播または送信する媒体ではなく、プログラム・コード1118を記憶するために使用される物理的または有形のストレージ・デバイスである。本明細書で使用されるコンピュータ可読記憶媒体1124とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(たとえば光ファイバ・ケーブルを通る光パルス)、またはワイヤを介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
あるいは、プログラム・コード1118は、コンピュータ可読信号媒体を使用してデータ処理システム1100に転送することができる。コンピュータ可読信号媒体は信号であり、たとえばプログラム1118を含む伝播データ信号とすることができる。たとえば、コンピュータ可読信号媒体は、電磁信号、光信号または任意のその他の適切な種類の信号のうちの少なくとも1つとすることができる。これらの信号は、無線接続、光ファイバ・ケーブル、同軸ケーブル、ワイヤまたは任意のその他の適切な種類の接続などの接続を介して送信可能である。
また、本明細書で使用される「コンピュータ可読媒体1120」は単数または複数の場合がある。たとえば、プログラム・コード1118は、単一のストレージ・デバイスまたはシステムの形態のコンピュータ可読媒体1120に配置することができる。別の実施例では、プログラム・コード1118は、複数のデータ処理システムに分散されたコンピュータ可読媒体1120に配置することができる。言い換えると、プログラム・コード1118内の一部の命令を1つのデータ処理システムに配置することができ、プログラム・コード1118内の他の命令を1つのデータ処理システムに配置することができる。たとえば、プログラム・コード1118の一部をサーバ・コンピュータ内のコンピュータ可読媒体1120に配置し、プログラム・コード1118の別の部分を1組のクライアント・コンピュータにあるコンピュータ可読媒体1120に配置することができる。
データ処理システム1100について示されている異なるコンポーネントは、異なる実施形態を実装可能な方式に対するアーキテクチャ上の限定を設けることは意図されていない。実施例によっては、コンポーネントのうちの1つまたは複数が別のコンポーネントに組み込まれるかまたはその他によりその一部をなしてもよい。たとえば、実施例によっては、メモリ1106またはその一部がプロセッサ・ユニット1104に組み込まれてもよい。異なる実施例を、データ処理システム1100について示されているコンポーネントに加えたコンポーネントまたはそれらに代わるコンポーネントを含むデータ処理システムにおいて実装することができる。図11に示す他のコンポーネントが、図示されている実施例とは異なっていてもよい。異なる実施形態を、プログラム・コード1118を実行することができる任意のハードウェア・デバイスまたはシステムを使用して実装することができる。
したがって、本発明の例示の実施形態は、コンテナ・マイグレーションのための方法、装置、システムおよびコンピュータ・プログラム製品を提供する。1組のプロセッサが、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定するように動作する。1組のプロセッサは、1組のアプリケーション・パフォーマンス・メトリックを使用して、マイグレーションのために特定された1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成するように動作する。1組のプロセッサは、マイグレーション戦略に従う1組のタスクを使用して、1組のアプリケーションの1組のコンテナを1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるように動作する。
この実施例では、アプリケーション・レベルでのマイグレーション戦略に従うタスクの生成を、コンピュータ・システムにおけるリソースの使用の不均衡を低減することができるような方式で行うことができる。この実施例では、マイグレーション・マネージャが、コンピュータ・システムにおける1つまたは複数のアプリケーションのパフォーマンスを向上させるマイグレーション戦略に従うタスクを生成することができる。タスクは、単一のアプリケーションではなく多くのアプリケーションのパフォーマンスを向上させるような方式で生成することができる。また、タスクは、コンピュータ・システムにおける遊休リソースまたは利用不足のリソースの存在が低減されるように、リソースの使用を増大させる方式で生成することができる。
異なる例示の実施形態の説明は、例示と説明とを目的として示しており、網羅的であること、または開示している形態の実施形態に限定することは意図していない。異なる実施例で、アクションまたは動作を行うコンポーネントについて説明している。例示の一実施形態では、コンポーネントが、記載されているアクションまたは動作を行うように構成可能である。たとえば、コンポーネントは、そのコンポーネントによって行われるものとして実施例で記載されているアクションまたは動作を行う機能をコンポーネントに与える構造の構成または設計を有することができる。また、「含んでいる(includes)」、「含む(including)」、「有する(has)」、「含む(contains)」という用語およびこれらの変形が本明細書で使用されている範囲で、そのような用語は、いかなる追加の要素も他の要素も排除することなく、オープンな移行語としての「含む(comprises)」という用語と同様に、包括的であることが意図されている。
例示のために本発明の様々な実施形態の説明を示したが、網羅的であること、または本明細書に記載の実施形態に限定することを意図したものではない。すべての実施形態が実施例で記載されている特徴のすべてを含むことになるわけではない。また異なる例示の実施形態が他の実施例と比較して異なる特徴を提供する場合がある。記載されている実施形態の範囲から逸脱することなく、当業者には多くの変更および変形が明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場にある技術に対する技術的改良を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解することができるようにするために選択されている。
Claims (20)
- コンテナ・マイグレーションの方法であって、
1組のプロセッサによって、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定することと、
前記1組のプロセッサによって、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを、前記1組のアプリケーション・パフォーマンス・メトリックを使用して1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させる、マイグレーション戦略に従う1組のタスクを作成することと、
前記1組のプロセッサによって、前記マイグレーション戦略に従う前記1組のタスクを使用して、前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させることと
を含む方法。 - 前記1組のプロセッサによって、アプリケーション・パフォーマンス・メトリック履歴において1組のアプリケーション・パフォーマンス・メトリックのパターンを判定することをさらに含み、
前記1組のプロセッサによって、前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記1組のタスクを作成することが、
前記1組のプロセッサによって、前記アプリケーション・パフォーマンス・メトリック履歴において特定された前記1組のアプリケーション・パフォーマンス・メトリックの前記パターンを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成することをさらに含み、アプリケーション・レベルのパフォーマンスは、前記1組のコンテナを移動させる前記マイグレーション戦略に従う前記1組のタスクを使用することによって向上する、
請求項1に記載の方法。 - 前記1組のアプリケーションまたは1組のクラウド内のアプリケーションのうちの少なくとも一方のアプリケーション・パフォーマンス・メトリックを監視することをさらに含む、請求項1に記載の方法。
- 前記1組のコンテナをマイグレーションした後で特定された前記1組のアプリケーション・パフォーマンス・メトリックは、前記1組のアプリケーションのコンテナをマイグレーションするための将来のタスクの作成のために前記マイグレーション戦略を調整するためのフィードバックとして使用される、請求項3に記載の方法。
- 前記マイグレーション戦略は、
前記1組のタスクのスケジュールを含み、前記スケジュールが、実行優先度、前記1組のアプリケーションのためのタイム・スロット、またはクラウド管理規則のうちの少なくとも1つを考慮に入れている、請求項1に記載の方法。 - 前記1組のアプリケーション・パフォーマンス・メトリックを使用して前記マイグレーションのために前記1組のアプリケーションの前記1組のコンテナを特定することが、
前記1組のアプリケーション・パフォーマンス・メトリックに基づいて前記1組のアプリケーションの1組のパフォーマンス限界を特定することと、
前記1組のアプリケーションの前記1組のパフォーマンス限界を生じさせる前記1組のアプリケーションの前記1組のコンテナを特定することと
を含む、請求項1に記載の方法。 - 前記1組のプロセッサによって、前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成することは、
前記1組のプロセッサによって、前記1組のアプリケーション・パフォーマンス・メトリックと1組のマイグレーション規則とを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成すること
を含む、請求項1に記載の方法。 - 前記1組のプロセッサによって、前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために前記1組のアプリケーションの前記1組のコンテナを特定することが、
前記1組のプロセッサによって、前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために前記1組のアプリケーションの1組の初期コンテナを特定することと、
前記1組のプロセッサによって、前記1組のアプリケーションの前記1組の初期コンテナに対して依存関係を有するいくつかの追加コンテナを特定することと
を含み、前記1組の初期コンテナと前記いくつかの追加コンテナは、前記1組のアプリケーションの前記1組のコンテナを形成する、請求項1に記載の方法。 - 前記1組の現在の物理ホスト・コンピュータは、マルチ・クラウドにおける第1のクラウドに位置し、前記1組の宛先物理ホスト・コンピュータは、前記マルチ・クラウドにおける第2のクラウドに位置する、請求項1に記載の方法。
- コンテナ管理システムであって、
1組のプロセッサを含み、前記1組のプロセッサが、
1組のアプリケーション・パフォーマンス・メトリックを使用して、マイグレーションのために1組のアプリケーションの1組のコンテナを特定し、
前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを、1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるマイグレーション戦略に従う1組のタスクを作成し、
前記マイグレーション戦略に従う前記1組のタスクを使用して、前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させるように動作する、コンテナ管理システム。 - 前記1組のプロセッサは、アプリケーション・パフォーマンス・メトリック履歴における1組のアプリケーション・パフォーマンス・メトリックのパターンを判定するように動作し、
前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記1組のタスクの作成において、前記1組のプロセッサが、
前記アプリケーション・パフォーマンス・メトリック履歴において特定された前記1組のアプリケーション・パフォーマンス・メトリックの前記パターンを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成するように動作し、アプリケーション・レベルのパフォーマンスは、前記1組のコンテナを移動させる前記マイグレーション戦略に従う前記1組のタスクを使用することによって向上する、
請求項10に記載のコンテナ管理システム。 - 前記1組のプロセッサは、
前記1組のアプリケーションまたは1組のクラウドにおけるアプリケーションのうちの少なくとも一方のアプリケーション・パフォーマンス・メトリックを監視するように動作する、請求項10に記載のコンテナ管理システム。 - 前記1組のコンテナのマイグレーション後に特定された前記1組のアプリケーション・パフォーマンス・メトリックは、前記1組のアプリケーションのコンテナをマイグレーションする将来のタスクの作成のために前記マイグレーション戦略を調整するためのフィードバックとして使用される、請求項12に記載のコンテナ管理システム。
- 前記マイグレーション戦略は、
前記1組のタスクのスケジュールを含み、前記スケジュールが、実行優先度、前記1組のアプリケーションのためのタイム・スロット、またはクラウド管理規則のうちの少なくとも1つを考慮に入れている、請求項10に記載のコンテナ管理システム。 - 前記1組のアプリケーション・パフォーマンス・メトリックを使用して前記マイグレーションのために前記1組のアプリケーションの前記1組のコンテナを特定することにおいて、前記1組のプロセッサが、
前記1組のアプリケーション・パフォーマンス・メトリックに基づいて前記1組のアプリケーションの1組のパフォーマンス限界を特定し、
前記1組のアプリケーションの前記1組のパフォーマンス限界を生じさせる前記1組のアプリケーションの前記1組のコンテナを特定する
ように動作する、請求項10に記載のコンテナ管理システム。 - 前記1組のアプリケーション・パフォーマンス・メトリックを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクの作成において、前記1組のプロセッサは、
前記1組のアプリケーション・パフォーマンス・メトリックと1組のマイグレーション規則とを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成する
ように動作する、請求項10に記載のコンテナ管理システム。 - 前記1組のアプリケーション・パフォーマンス・メトリックを使用して前記マイグレーションのために前記1組のアプリケーションの前記1組のコンテナを特定することにおいて、前記1組のプロセッサは、
前記1組のアプリケーション・パフォーマンス・メトリックを使用して前記マイグレーションのために前記1組のアプリケーションの1組の初期コンテナを特定し、
前記1組のアプリケーションの前記1組の初期コンテナに対して依存関係を有するいくつかの追加コンテナを特定するように動作し、前記1組の初期コンテナと前記いくつかの追加コンテナは、前記1組のアプリケーションの前記1組のコンテナを形成する、請求項10に記載のコンテナ管理システム。 - 前記1組の現在の物理ホスト・コンピュータは、マルチ・クラウドにおける第1のクラウドに位置し、前記1組の宛先物理ホスト・コンピュータは、前記マルチ・クラウドにおける第2のクラウドに位置する、請求項10に記載のコンテナ管理システム。
- 自動コンテナ・マイグレーションのためのコンピュータ・プログラム製品であって、
コンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体に記憶され、1組のプロセッサに、1組のアプリケーション・パフォーマンス・メトリックを使用してマイグレーションのために1組のアプリケーションの1組のコンテナを特定させるように、前記1組のプロセッサによって実行可能な第1のプログラム・コードと、
前記コンピュータ可読媒体に記憶され、前記1組のプロセッサに、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを、前記1組のアプリケーション・パフォーマンス・メトリックを使用して1組の現在の物理ホスト・コンピュータから1組の宛先物理ホスト・コンピュータに移動させるマイグレーション戦略に従う1組のタスクを作成させるように、前記1組のプロセッサによって実行可能な第2のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記1組のプロセッサに、前記マイグレーション戦略に従う前記1組のタスクを使用して、前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先物理ホスト・コンピュータに移動させるように、前記1組のプロセッサによって実行可能な第3のプログラム・コードと
を含む、コンピュータ・プログラム製品。 - 前記コンピュータ可読記憶媒体に記憶され、前記1組のプロセッサに、アプリケーション・パフォーマンス・メトリック履歴において1組のアプリケーション・パフォーマンス・メトリックのパターンを判定させるように、前記1組のプロセッサによって実行可能な第4のプログラム・コードをさらに含み、
前記第2のプログラム・コードが、
前記コンピュータ可読記憶媒体に記憶され、前記1組のプロセッサに、前記アプリケーション・パフォーマンス・メトリック履歴において特定された前記1組のアプリケーション・パフォーマンス・メトリックの前記パターンを使用して、前記マイグレーションのために特定された前記1組のアプリケーションの前記1組のコンテナを前記1組の現在の物理ホスト・コンピュータから前記1組の宛先ホスト・コンピュータに移動させる前記マイグレーション戦略に従う前記1組のタスクを作成させるように、前記1組のプロセッサによって実行可能なプログラム・コードをさらに含み、アプリケーション・レベルのパフォーマンスは、前記1組のコンテナを移動させる前記マイグレーション戦略に従う前記1組のタスクを使用することによって向上する、請求項19に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/301,856 | 2021-04-16 | ||
US17/301,856 US12067417B2 (en) | 2021-04-16 | 2021-04-16 | Automatic container migration system |
PCT/CN2022/086829 WO2022218377A1 (en) | 2021-04-16 | 2022-04-14 | Automatic container migration system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024514057A true JP2024514057A (ja) | 2024-03-28 |
Family
ID=83602392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023558438A Pending JP2024514057A (ja) | 2021-04-16 | 2022-04-14 | 自動コンテナ・マイグレーション・システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US12067417B2 (ja) |
JP (1) | JP2024514057A (ja) |
CN (1) | CN117157624A (ja) |
WO (1) | WO2022218377A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12067417B2 (en) * | 2021-04-16 | 2024-08-20 | International Business Machines Corporation | Automatic container migration system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9888067B1 (en) * | 2014-11-10 | 2018-02-06 | Turbonomic, Inc. | Managing resources in container systems |
US10346775B1 (en) * | 2015-11-16 | 2019-07-09 | Turbonomic, Inc. | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system |
US8645529B2 (en) * | 2010-10-06 | 2014-02-04 | Infosys Limited | Automated service level management of applications in cloud computing environment |
US9250863B1 (en) * | 2010-12-28 | 2016-02-02 | Amazon Technologies, Inc. | Managing virtual machine migration |
US8850432B2 (en) * | 2012-05-30 | 2014-09-30 | Red Hat, Inc. | Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system |
US8904402B2 (en) * | 2012-05-30 | 2014-12-02 | Red Hat, Inc. | Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system |
CN104010028B (zh) | 2014-05-04 | 2017-11-07 | 华南理工大学 | 一种云平台下性能加权的虚拟资源动态管理策略方法 |
US9311131B2 (en) * | 2014-08-04 | 2016-04-12 | International Business Machines Corporation | Monitoring and dynamically reconfiguring virtual machine patterns |
US10007584B2 (en) * | 2015-01-28 | 2018-06-26 | Red Hat, Inc. | Automated container migration in a platform-as-a-service system |
US9986031B2 (en) * | 2015-05-06 | 2018-05-29 | International Business Machines Corporation | Container provisioning based on communications patterns between software components |
US20170060609A1 (en) * | 2015-08-28 | 2017-03-02 | International Business Machines Corporation | Managing a shared pool of configurable computing resources which has a set of containers |
US10747568B2 (en) * | 2017-05-30 | 2020-08-18 | Magalix Corporation | Systems and methods for managing a cloud computing environment |
US10601679B2 (en) * | 2017-12-26 | 2020-03-24 | International Business Machines Corporation | Data-centric predictive container migration based on cognitive modelling |
EP3522013B1 (en) * | 2018-02-01 | 2020-04-01 | Siemens Aktiengesellschaft | Method and system for migration of containers in a container orchestration platform between compute nodes |
US10977068B2 (en) * | 2018-10-15 | 2021-04-13 | Microsoft Technology Licensing, Llc | Minimizing impact of migrating virtual services |
CN109871384B (zh) | 2019-02-22 | 2021-04-30 | 携程旅游信息技术(上海)有限公司 | 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质 |
CN110134495B (zh) | 2019-05-21 | 2022-08-12 | 山东大学 | 一种容器跨主机在线迁移方法、存储介质及终端设备 |
CN111061432B (zh) | 2019-12-06 | 2022-03-22 | 北京浪潮数据技术有限公司 | 一种业务迁移方法、装置、设备及可读存储介质 |
CN111190688B (zh) | 2019-12-19 | 2022-12-09 | 西安交通大学 | 一种面向云数据中心的Docker迁移方法及系统 |
CN111897654B (zh) | 2020-07-31 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 将应用迁移到云平台的方法、装置、电子设备和存储介质 |
US12067417B2 (en) * | 2021-04-16 | 2024-08-20 | International Business Machines Corporation | Automatic container migration system |
-
2021
- 2021-04-16 US US17/301,856 patent/US12067417B2/en active Active
-
2022
- 2022-04-14 JP JP2023558438A patent/JP2024514057A/ja active Pending
- 2022-04-14 CN CN202280027938.5A patent/CN117157624A/zh active Pending
- 2022-04-14 WO PCT/CN2022/086829 patent/WO2022218377A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220334870A1 (en) | 2022-10-20 |
CN117157624A (zh) | 2023-12-01 |
WO2022218377A1 (en) | 2022-10-20 |
US12067417B2 (en) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maurer et al. | Adaptive resource configuration for cloud infrastructure management | |
Ghobaei-Arani | A workload clustering based resource provisioning mechanism using Biogeography based optimization technique in the cloud based systems | |
US11704123B2 (en) | Automated orchestration of containers by assessing microservices | |
Alqahtani et al. | Reliable scheduling and load balancing for requests in cloud-fog computing | |
Wadhwa et al. | Optimized task scheduling and preemption for distributed resource management in fog-assisted IoT environment | |
US11595269B1 (en) | Identifying upgrades to an edge network by artificial intelligence | |
US11157323B2 (en) | Multiple metric based load prediction and resource allocation in an active stream processing job | |
Santos et al. | Diktyo: Network-aware scheduling in container-based clouds | |
JP2021507356A (ja) | ハイブリッド・クラウドの構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法、コンピュータ・プログラムおよび記録媒体 | |
JP2022539090A (ja) | ニューラル・ネットワーク最適化における特徴エンジニアリング | |
Qayyum et al. | Mobility-aware hierarchical fog computing framework for Industrial Internet of Things (IIoT) | |
JP2021507354A (ja) | ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法およびコンピュータ・プログラム | |
Jeong et al. | Towards energy-efficient service scheduling in federated edge clouds | |
JP2024514057A (ja) | 自動コンテナ・マイグレーション・システム | |
Bu et al. | Task scheduling in the internet of things: challenges, solutions, and future trends | |
Tang et al. | A survey on scheduling techniques in computing and network convergence | |
Faraji-Mehmandar et al. | A self-learning approach for proactive resource and service provisioning in fog environment | |
Alizadeh et al. | TPEL: Task possible execution level for effective scheduling in fog–cloud environment | |
WO2022227860A1 (en) | Fair simultaneous comparison of parallel machine learning models | |
US20220272136A1 (en) | Context based content positioning in content delivery networks | |
Algaphari | Resource allocation in fog computing: a systematic review | |
Ramezani | Autonomic system for optimal resource management in cloud environments | |
Kokkonen et al. | EISim: A Platform for Simulating Intelligent Edge Orchestration Solutions | |
Funika et al. | Continuous self‐adaptation of control policies in automatic cloud management | |
US20230011645A1 (en) | Identifying related messages in a natural language interaction in multiple iterations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231026 |
|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20231010 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240917 |