(57)【要約】      （修正有）【課題】時系列的な負荷傾向の特徴を考慮してコンテナの配置を最適化する情報処理装置、コンテナ配置方法及びコンテナ配置プログラムを提供する。【解決手段】情報処理装置１０は、複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する収集部１１と、測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する時系列分析部１２と、規則変動データに基づいて、現在から所定期間後までの計算機環境におけるリソース使用量の予測値を算出する予測部１３と、予測値に基づいて計算機環境におけるコンテナの配置候補を算出する配置候補算出部１４と、配置候補に基づいて計算機環境におけるコンテナの再配置を行う再配置部１５とを備える。【選択図】図１
2020144669.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する収集部と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する時系列分析部と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する予測部と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する配置候補算出部と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う再配置部と、
を備える情報処理装置。
【請求項２】
前記時系列分析部は、
前記測定値と前記予測値の時系列における変動傾向が所定条件を満たす場合に、前記時系列の分析処理を実行する
請求項１に記載の情報処理装置。
【請求項３】
前記時系列分析部は、
前記測定値と前記予測値について対応する時刻における差分を算出し、
前記差分の時系列における変動傾向に規則性がある場合に、前記時系列の分析処理を実行する
請求項２に記載の情報処理装置。
【請求項４】
前記配置候補算出部は、
複数の前記配置候補を算出し、
前記算出された複数の配置候補の中から所定の優先度条件に基づいて、再配置対象の配置候補を選択し、
前記再配置部は、前記選択された配置候補に基づいて前記再配置を行う
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記配置候補算出部は、
前記複数の配置候補のそれぞれについて、コンテナごとのリソース使用量の個別予測値を算出し、
前記個別予測値の合計値が前記計算機環境におけるリソース使用量の上限値を超えないものをより高い優先度と判定し、
前記優先度が最も高いものを前記再配置対象の配置候補として選択する
請求項４に記載の情報処理装置。
【請求項６】
前記配置候補算出部は、
前記複数の配置候補の中に前記合計値が前記上限値を超えないものが存在しない場合、前記所定期間内において追加されるインスタンス数と追加時間との積が最小となる配置候補を前記再配置対象として選択する
請求項５に記載の情報処理装置。
【請求項７】
前記配置候補算出部は、
前記複数の配置候補の中に前記所定の優先度条件に基づいて優先度が最も高いものが複数存在する場合、当該優先度が最も高い複数の配置候補のうちインスタンスごとのリソース使用量の予測値の合計値に基づいて、前記再配置対象の配置候補を選択する
請求項４乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記配置候補算出部は、
複数のサービスのそれぞれを前記複数のコンテナのいずれかに割り当てて前記配置候補を算出する
請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
コンピュータが、
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集し、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解し、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出し、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出し、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う
コンテナ配置方法。
【請求項１０】
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する処理と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する処理と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する処理と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する処理と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う処理と、
をコンピュータに実行させるコンテナ配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、コンテナ配置方法及びコンテナ配置プログラムに関し、特に、複数のコンテナを配置するための情報処理装置、コンテナ配置方法及びコンテナ配置プログラムに関する。
【背景技術】
【０００２】
近年、モノのインターネット（ＩｏＴ（Internet of Things））の発展に伴い、ＳａａＳ（Software as a Service）やＰａｓＳ（Platform as a Service）などといったクラウドシステム上にサービスを展開することが増えている。ここで、可用性の高いサービスを実現する方法の一つとして、コンテナ型仮想化が挙げられる。コンテナ型仮想化を用いることで、利用者数などに応じてコンテナを増加させ、柔軟にキャパシティを増やすことができる。そのため、可用性の高いサービスを実現し易くなる。
【０００３】
ここで、コンテナ型仮想化は、仮想化の一種であり、１つのＯＳ（Operating System）に、コンテナといわれる「独立したサーバと同様の振る舞いをする区画」を複数作り、それを個別のユーザ／サービスに割り当てるものである。
【０００４】
サービスの発展に合わせて柔軟にリソースを増強するため、また耐障害性を考えた場合に、この「１つのＯＳ」も論理的及び物理的に増加可能であることが望ましい。即ち、１つのインスタンス（１つのＯＳ）に複数のコンテナが格納された環境が複数セット存在することになる。
【０００５】
特許文献１には、仮想インスタンスを複数のサーバに再配置するための技術が開示されている。特許文献１にかかる管理サーバは、複数の稼働サーバからリソース使用状況を収集し、コンテナ配置先の決定を行い、決定結果に応じて各稼働サーバにコンテナ起動又は消去命令を送信する。
【０００６】
特許文献２には、分散型コンテナ最適配置システムに関する技術が開示されている。特許文献２にかかるシステムは、サーバ資源上のコンテナ数が最少であるため最もリソースが空いていると判断されると、エージェントは、当該サーバ資源へ他のサーバ資源上で動作していたコンテナの作成を要求する。
【０００７】
特許文献３には、論理的に区分された環境においてリソースを自動的に監視及び割り当てるための技術が開示されている。特許文献３では、各区画のリソース利用率が収集され、これらを利用率ゾーンにカテゴリ化し、低利用率ゾーンにある区画からのリソースを高利用率ゾーンにある区画に再割り当てする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１７−１４６７９１号公報
【特許文献２】特開２０１８−１５６４６５号公報
【特許文献３】特開２００６−１６４２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１から３にかかる技術には、コンテナの配置の最適化が不十分であるという問題点がある。その理由は、特許文献１から３にかかる技術には、測定時のリソース使用状況に基づいて再配置を判定しており、一時点ではリソース使用状況が適切であっても、時系列的な変化傾向ではリソース使用状況が好ましくない場合については考慮されていないためである。
【００１０】
本開示は、このような問題点を解決するためになされたものであり、時系列的な負荷傾向の特徴を考慮してコンテナの配置を最適化するための情報処理装置、コンテナ配置方法及びコンテナ配置プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本開示の第１の態様にかかる情報処理装置は、
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する収集部と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する時系列分析部と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する予測部と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する配置候補算出部と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う再配置部と、
を備える。
【００１２】
本開示の第２の態様にかかるコンテナ配置方法は、
コンピュータが、
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集し、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解し、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出し、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出し、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う。
【００１３】
本開示の第３の態様にかかるコンテナ配置プログラムは、
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する処理と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する処理と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する処理と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する処理と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う処理と、
をコンピュータに実行させる。
【発明の効果】
【００１４】
本開示により、時系列的な負荷傾向の特徴を考慮してコンテナの配置を最適化するための情報処理装置、コンテナ配置方法及びコンテナ配置プログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態１にかかる情報処理装置の構成を示すブロック図である。
【図２】本実施形態１にかかるコンテナ配置方法の流れを示すフローチャートである。
【図３】本実施形態２にかかるクラウドシステムの全体構成を示すブロック図である。
【図４】本実施形態２にかかるコンテナ配置装置の構成を示すブロック図である。
【図５】本実施形態２にかかるコンテナ配置方法の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１７】
＜実施形態１＞
図１は、本実施形態１にかかる情報処理装置１０の構成を示すブロック図である。情報処理装置１０は、計算機環境に複数のコンテナを配置、監視、再配置等を管理するための１以上のコンピュータである。ここで、計算機環境とは、１台以上のコンピュータにより構成され、複数のコンテナに区画を分けて、コンテナごとに指定されたアプリケーションを独立に実行させて、コンテナごとにサービスを提供するものである。計算機環境は、例えば、クラウドシステム等の計算機の集合であってもよい。ここで、情報処理装置１０は、収集部１１と、時系列分析部１２と、予測部１３と、配置候補算出部１４と、再配置部１５とを備える。
【００１８】
収集部１１は、計算機環境からリソース使用量の測定値を定期的に収集する。ここで、測定値は、計算機環境内外からセンサ等により、計算機環境におけるリソース（例えば、ＣＰＵ（Central Processing Unit）、メモリ、ディスク、ネットワーク帯域）の使用量を測定した値であり、測定時刻が対応付けられたものである。例えば、収集部１１は、測定値を収集する度に、記憶装置（不図示）に蓄積することで、当該記憶装置には、測定値の時系列データ（測定値の集合）が蓄積されることになる。尚、測定値は、２以上の測定項目（リソースの種類）による測定データを含む。また、測定値は、コンテナ単位のリソース使用量を測定した値であってもよい。
【００１９】
時系列分析部１２は、測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する。ここで、時系列の分析処理には公知の技術を用いることができる。また、規則変動データとは、測定値の集合のうち、測定値の時系列に沿った変動パターンに一定の規則性を見出せるデータ群である。一定の規則性には、傾向（trend）変動や季節的な（seasonal）変動を含む。また、不規則変動データとは、測定値の集合のうち、規則変動データ以外のデータ群である。
【００２０】
予測部１３は、規則変動データに基づいて、現在から所定期間後までの計算機環境におけるリソース使用量の予測値を算出する。ここで、予測値は、上述した測定値の測定項目に対応するリソース使用量についての１以上の将来の時刻における値の集合である。また、予測値は、計算機環境全体に対して将来発生し得る負荷の予測値を含む。負荷とは、例えば、計算機環境により提供されるサービスに対する処理要求の数、処理要求に伴うアプリケーションの処理時間、処理要求に応じた処理に要するリソースの使用量等を含むものである。また、所定期間は、少なくとも収集部１１による収集間隔に対応する。尚、予測部１３は、算出した予測値を時刻と対応付けて上記記憶装置に格納してもよい。
【００２１】
配置候補算出部１４は、予測値に基づいて計算機環境におけるコンテナの配置候補を算出する。すなわち、配置候補算出部１４は、予測値が示すリソース使用量を満たすようなコンテナの最適な配置パターンを求める。例えば、計算機環境上で複数のサービスに対応するアプリケーションを実行しているものとする。この場合、予測値が示す負荷が発生した場合に、各サービスに割り当てるコンテナ数に応じたリソース使用量をシミュレートし、当該負荷に対する処理が実現できるように、サービスごとのコンテナの割当数を配置候補として求めることができる。また、計算機環境に複数のインスタンスが含まれる場合には、予測値が示す負荷が発生した場合に、インスタンスに割り当てるコンテナ数に応じたリソース使用量をシミュレートする。そして、当該負荷に対する処理が実現できるように、また、インスタンス数が少なくなるように、インスタンスごとのコンテナの割当数を配置候補として求めることができる。また、複数のサービス及び複数のインスタンスにおける最適な配置候補も同様に求めることができる。
【００２２】
再配置部１５は、配置候補に基づいて計算機環境におけるコンテナの再配置を行う。再配置部１５は、計算機環境に対して、配置候補が示すインスタンス、コンテナ、サービスを割り当てるように指示する。
【００２３】
図２は、本実施形態１にかかるコンテナ配置方法の流れを示すフローチャートである。まず、収集部１１は、複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する（Ｓ１１）。次に、時系列分析部１２は、測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する（Ｓ１２）。
【００２４】
そして、予測部１３は、規則変動データに基づいて、現在から所定期間後までの計算機環境におけるリソース使用量の予測値を算出する（Ｓ１３）。続いて、配置候補算出部１４は、予測値に基づいて計算機環境におけるコンテナの配置候補を算出する（Ｓ１４）。その後、再配置部１５は、配置候補に基づいて計算機環境におけるコンテナの再配置を行う（Ｓ１５）。
【００２５】
このように、本実施形態では、まず、計算機環境において定期的に測定された時系列データから抽出された規則変動データを用いて、将来のリソース使用量の予測値を算出する。時系列に沿った変動パターンから、一時点でのリソースの需要だけでなく、長期的な負荷の変動傾向を検出でき、特に、不規則変動データが除かれて予測されているため、予測の精度が向上する。精度の高い予測値を用いてコンテナの配置候補を導出できるため、計算機環境においてより適切なコンテナの配置を実現できる。そのため、本実施形態により、時系列的な負荷傾向の特徴を考慮した最適なコンテナの配置を提供することができる。
【００２６】
尚、情報処理装置１０は、図示しない構成としてプロセッサ、メモリ及び記憶装置を備えるものである。また、当該記憶装置には、本実施形態にかかるコンテナ配置方法の処理が実装されたコンピュータプログラムが記憶されている。そして、当該プロセッサは、記憶装置からコンピュータプログラムを前記メモリへ読み込み、当該コンピュータプログラムを実行する。これにより、前記プロセッサは、収集部１１、時系列分析部１２、予測部１３、配置候補算出部１４及び再配置部１５の機能を実現する。
【００２７】
または、収集部１１、時系列分析部１２、予測部１３、配置候補算出部１４及び再配置部１５は、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路（circuitry）、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。また、プロセッサとして、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（field-programmable gate array）等を用いることができる。
【００２８】
また、情報処理装置１０の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。また、情報処理装置１０の機能がＳａａＳ（Software as a Service）形式で提供されてもよい。
【００２９】
＜実施形態２＞
ここで、本実施形態が解決しようとする課題について詳述する。複数のインスタンスそれぞれにコンテナを配置することを考えたとき、コンテナが効率的に配置されないと無駄なインスタンスの増減が発生することとなる。例えば、ある特定の時間帯に負荷が集中するコンテナが、あるインスタンスに偏って配置された場合、その時間帯にはインスタンスを増やす必要が出てくる。そのような余計なリソースの確保はサービス運用側の費用等にも影響がでる。
【００３０】
ここで、コンテナ型仮想環境のオーケストレーションツールであるkubernetesなどでは、コンテナを配置するインスタンス（Node）を指定する設定が存在する。しかし、ＩｏＴを用いたサービスでは対象とする業種毎に、ある時間帯やある季節などに負荷が集中することが考えられる。そのため、都度、設定するなどといった運用が必要になる。
【００３１】
また、その季節的（Seasonal）な変動もユーザの増加やサービスの成長（例えば、対象とするセンサの追加）によって変化すると考えられることから、最新の傾向にもとづき配置される必要がある。ところが、毎回傾向を分析するのは時間的なコストがかかる。
【００３２】
そこで、本実施形態２は、上述した実施形態１の具体的な一実施例であり、以下では上述した課題の少なくとも一部を解決するものについて説明する。図３は、本実施形態２にかかるクラウドシステム１０００の全体構成を示すブロック図である。クラウドシステム１０００は、計算機環境２０と、コンテナ配置装置３０とを備える。
【００３３】
計算機環境２０は、複数のインスタンス２１、２２、・・・２ｎ（ｎは自然数。）を含む。ここで、インスタンス２１から２ｎのそれぞれは、例えば、物理的又は仮想的なサーバ装置である。また、各インスタンスは、１以上のコンテナに区画を分けて各コンテナにインスタンスのリソースを割り当てて、それぞれ、サービスに対応する処理を行うアプリケーションをコンテナ単位で独立して実行可能とする。例えば、インスタンス２１は、コンテナ２１１、２１２・・・に区画が分けられ、例えば、コンテナ２１１にはサービス２１１１、コンテナ２１２にはサービス２１２１等が割り当てられていることを示す。同様に、インスタンス２２は、コンテナ２２１、２２２・・・に区画が分けられ、例えば、コンテナ２２１にはサービス２２１１、コンテナ２２２にはサービス２２２１等が割り当てられていることを示す。また、インスタンス２ｎは、コンテナ２ｎ１、２ｎ２・・・に区画が分けられ、例えば、コンテナ２ｎ１にはサービス２ｎ１１、コンテナ２ｎ２にはサービス２ｎ２１等が割り当てられていることを示す。
【００３４】
計算機環境２０は、複数のサービスを提供するＩｏＴシステムのサーバ側の環境である。複数のサービスは、例えば、農地、コンビニエンスストア等の店舗、ビル等の空調設備といった異なる業種に対して提供されるものである。例えば、農地、店舗、空調設備のそれぞれに設置されたセンサ（ＩｏＴデバイス）により測定された測定値がネットワークＮを介して計算機環境２０に収集される。そして、各サービスは業種が異なるため、負荷が集中する時間帯や季節の傾向が異なり、必要とされるリソースを集中させるタイミングや量も異なるものとする。つまり、各サービスは、データ処理負荷の時系列的変動に異なる特徴を持つといえる。
【００３５】
インスタンス２１から２ｎのそれぞれとコンテナ配置装置３０とはネットワークＮを介して接続されている。ネットワークＮは、インターネット、ＬＡＮ（Local Area Network）等の通信ネットワークである。
【００３６】
コンテナ配置装置３０は、上述した情報処理装置１０の一例であり、１以上の情報処理装置により実現されるコンテナ配置システムともいえる。図４は、本実施形態２にかかるコンテナ配置装置３０の構成を示すブロック図である。コンテナ配置装置３０は、記憶装置３１と、制御部３２と、メモリ３３と、通信部３４とを備える。
【００３７】
記憶装置３１は、ハードディスク、フラッシュメモリ等の記憶装置である。記憶装置３１は、設定情報３１１と、配置情報３１２と、測定値３１３と、予測値３１４と、残差３１５と、コンテナ配置プログラム３１６とを記憶する。
【００３８】
設定情報３１１は、本実施形態にかかるコンテナ配置処理を行うために用いられる各種設定値である。設定情報３１１は、例えば、各リソース使用量の上限値、測定値を収集する収集間隔、コンテナ配置間隔、時系列分析に用いる単位と周期、規則性の有無を判定する際の閾値、強制的に予測モデルを見直す間隔を含む。ここで、リソース使用量の種類（測定項目）には、ＣＰＵ、メモリ、ディスクＩ／Ｏ、ネットワーク帯域（通信速度等）が挙げられるがこれらに限定されない。尚、規則性の有無を判定する際の閾値とは、予測モデルが適用できなくなってきたことを判断する閾値ということもできる。また、計算機環境２０の運用者は、設定情報３１１を記憶装置３１に予め設定（格納）するものとする。
【００３９】
配置情報３１２は、計算機環境２０内の各インスタンスに配置されたコンテナとサービスを示す情報であり、例えば、インスタンスＩＤ、コンテナＩＤ、サービス（テナント）ＩＤの組合せである。配置情報３１２は、実際の運用中のコンテナ配置が定期的に収集されたものである。尚、後述する配置候補の形式は、配置情報３１２に対応するものであってもよい。
【００４０】
測定値３１３は、コンテナごとに複数の測定項目における測定値と測定時刻との組の集合である。予測値３１４は、コンテナごとに測定値３１３の測定項目に対応するリソース使用量についての将来の時刻における予測値の集合である。また、予測値３１４は、計算機環境２０全体において提供されるサービスごとの負荷の予測値を含む。残差３１５は、測定値３１３と予測値３１４とで対応するコンテナ、測定項目及び（測定・予測）時刻における差分値の集合である。
【００４１】
コンテナ配置プログラム３１６は、本実施形態２にかかるコンテナ配置方法の処理が実装されたコンピュータプログラムである。
【００４２】
メモリ３３は、例えば、ＲＡＭ（Random Access Memory）等の揮発性記憶装置である。通信部３４は、コンテナ配置装置３０の外部との通信を行うインタフェースである。
【００４３】
制御部３２は、コンテナ配置装置３０の各構成を制御するプロセッサであり、例えば、ＣＰＵである。制御部３２は、記憶装置３１からコンテナ配置プログラム３１６をメモリ３３へ読み込み、コンテナ配置プログラム３１６を実行する。これにより、制御部３２は、収集部３２１、時系列分析部３２２、予測部３２３、配置候補算出部３２４及び再配置部３２５の機能を実現する。
【００４４】
収集部３２１は、上述した収集部１１の一例であり、稼働中のサービス２１１１等のそれぞれから収集間隔ごとに測定値３１３を収集し、記憶装置３１に格納する。
【００４５】
時系列分析部３２２は、上述した時系列分析部１２の一例であり、測定値３１３に対する時系列の分析処理により傾向変動（Trend）データと季節変動（Seasonal）データと不規則変動（Irregular）データとに分解する。傾向変動データとは、特定期間における時系列データの単調増加、単調減少、周期的な変動、所定期間で一定値（変動なし）といった時系列に沿った変化傾向を示す測定値の集合である。季節変動データとは、季節ごとに発生するデータの増減といった、ある程度、長期間の周期性（規則性）として変化傾向を示す測定値の集合である。尚、傾向変動データと季節変動データとは、規則変動データの一例である。不規則変動データとは、傾向変動や季節変動の規則性が見出せなかった期間の測定値の集合である。つまり、不規則変動データは、測定値３１３の時系列データのうち傾向変動データ及び季節変動データ以外の測定値の集合である。ここで、時系列データを傾向、季節及び不規則変動データに分解する手法としては、例えば、統計開発向けのＲ言語（https://www.r-project.org/）のｓｔｌ関数等が挙げられるが、これに限定されない。
【００４６】
また、時系列分析部３２２は、測定値３１３と予測値３１４の時系列における変動傾向が所定条件を満たす場合に、測定値３１３に対する上記時系列の分析処理を実行する。これにより、測定値の収集の度に毎回、時系列の分析処理を実行するのではなくなり、コンテナ配置装置３０における計算処理のコストを低減できる。併せて、分析処理以降の配置候補の算出処理、再配置処理も回避される。
【００４７】
特に、時系列分析部３２２は、測定値３１３と予測値３１４について対応する時刻における差分を算出し、差分の時系列における変動傾向に規則性がある場合に、上記時系列の分析処理を実行する。これにより、当初は不規則変動とみなされて、予測値の算出時点では加味されていなかった未知の変動成分について、新たな規則性として検出し、当該新たな規則性をさらに加味することで予測精度を向上できる。特に、測定データの件数が少量であっても、不規則変動データの中から規則性をより早く検出する可能性が高まる。
【００４８】
予測部３２３は、上述した予測部１３の一例であり、時系列分析部３２２により分解された傾向変動データと季節変動データを用いて、現時点から次回の収集時点までの所定期間における、各サービスに対する負荷を予測する。所定期間は、例えば、今回の収集時刻から開始し、設定情報３１１に含まれる収集間隔を経過した時刻（次回の収集時点）までの期間又はそれ以上であってもよい。ここでは、特に、予測部３２３は、計算機環境２０全体において提供されるサービスごとの負荷の予測値を算出する。また、予測部３２３は、例えば、傾向変動データと季節変動データから、インスタンス、コンテナ及びサービスの組合せにおけるリソース使用量の予測値を算出する予測モデルを学習してもよい。そして、予測部３２３は、学習済みの予測モデルを用いて、現時点のコンテナ配置に対応する各コンテナのそれぞれのリソース使用量の予測値を算出し、これらの予測値をサービスごとに合算して、負荷を求めても良い。
【００４９】
配置候補算出部３２４は、上述した配置候補算出部１４の一例であり、予測部３２３により算出された負荷の予測値に基づいて、インスタンス、コンテナ及びサービスの割当、つまりコンテナの配置候補を算出する。例えば、配置候補算出部３２４は、負荷の予測値を満たすような複数の配置候補を算出し、算出された複数の配置候補の中から所定の優先度条件に基づいて再配置対象の配置候補を選択する。ここで、優先度条件は、各配置候補に選択すべき優先度を付与するための条件であり、記憶装置３１に予め格納されているものとする。優先度条件は、例えば、コンテナの配置状態に応じたリソース使用量の予測値がより少ないものほど高い優先度を与えること等である。これにより、予測された将来の負荷を満たすように最適化した配置候補を求められる。
【００５０】
より詳細には、配置候補算出部３２４は、複数の配置候補のそれぞれについて、コンテナごとのリソース使用量の個別予測値を算出する。そして、配置候補算出部３２４は、個別予測値の合計値が計算機環境２０におけるリソース使用量の上限値を超えないものをより高い優先度と判定する。そして、配置候補算出部３２４は、優先度が最も高いものを再配置対象の配置候補として選択する。このとき、配置候補算出部３２４は、上述した学習済みの予測モデルを用いて配置候補におけるインスタンス、コンテナ、サービスの組におけるリソース使用量の予測値を個別予測値として算出してもよい。これにより、予測された将来の負荷を満たすように最適化した配置候補を求められる確率が上がる。
【００５１】
さらに、配置候補算出部３２４は、複数の配置候補の中に前記合計値が前記上限値を超えないものが存在しない場合、所定期間内において追加されるインスタンス数と追加時間との積が最小となる配置候補を再配置対象として選択するとよい。
【００５２】
また、配置候補算出部３２４は、複数の配置候補の中に前記所定の優先度条件に基づいて優先度が最も高いものが複数存在する場合、当該優先度が最も高い複数の配置候補のうちインスタンスごとのリソース使用量の予測値の合計値に基づいて、再配置対象の配置候補を選択することが望ましい。
【００５３】
また、配置候補算出部３２４は、複数のサービスのそれぞれを複数のコンテナのいずれかに割り当てて配置候補を算出する。
【００５４】
再配置部３２５は、上述した再配置部１５の一例であり、配置候補算出部３２４により再配置対象として選択された配置候補に基づいて、計算機環境２０におけるコンテナの再配置を行う。
【００５５】
図５は、本実施形態２にかかるコンテナ配置方法の流れを示すフローチャートである。まず、収集部３２１は、記憶装置３１を参照し、設定情報３１１に含まれる収集間隔が到来したか否かを判定する（Ｓ２０１）。到来していない場合、一定時間、待機し（Ｓ２０２）、再度ステップＳ２０１を実行する。
【００５６】
ステップＳ２０１で収集間隔が到来したと判定した場合、収集部３２１は、計算機環境２０における全コンテナの配置情報３１２及びリソース使用量の測定値３１３を収集し、配置情報３１２及び測定値３１３を記憶装置３１に蓄積する（Ｓ２０３）。
【００５７】
次に、時系列分析部３２２は、今回の測定値３１３と前回算出された予測値３１４との残差３１５を算出し、記憶装置３１に蓄積する（Ｓ２０４）。すなわち、時系列分析部３２２は、ステップＳ２０３で収集された（今回の）測定値３１３の測定時刻と同じ予測時刻に対応付けられた予測値３１４を記憶装置３１の中から特定する。そして、時系列分析部３２２は、コンテナ及びリソースの種別が対応する、今回の測定値３１３と特定された予測値３１４との差分を残差３１５として算出する。
【００５８】
そして、時系列分析部３２２は、残差３１５の時系列の変動傾向を分析する（Ｓ２０５）。例えば、時系列分析部３２２は、任意の統計解析処理により残差３１５の変動パターンを分析する。
【００５９】
続いて、時系列分析部３２２は、残差３１５の時系列の変動傾向に規則性があるか否かを判定する（Ｓ２０６）。例えば、残差３１５が一定値を継続、又は、残差３１５の変動パターンが単調増加、単調減少、周期性があるといった場合には、規則性があると判定する。また、規則性の判定には、設定情報３１１に含まれる、上述した「規則性の有無を判定する際の閾値」を用いても良い。
【００６０】
ステップＳ２０６において規則性があると判定した場合、時系列分析部３２２は、設定情報３１１に含まれる「時系列分析に用いる単位と周期」に対応する期間における測定値３１３を、記憶装置３１から読み出し、時系列分析を行う（Ｓ２０７）。時系列分析部３２２は、「時系列分析に用いる単位と周期」に基づき時系列分析により、読み出された期間の測定値３１３から、傾向変動データ、季節変動データ及び不規則変動データに分解する。そして、時系列分析部３２２は、分解された傾向変動データ、季節変動データ及び不規則変動データを記憶装置３１に格納する。尚、設定情報３１１に含まれる「強制的に予測モデルを見直す間隔」に到来した場合、ステップＳ２０６においてＹＥＳと判定されるものとする。また、当該コンテナ配置方法は、ループの「初回」においても、ステップＳ２０６においてＹＥＳと判定されるものとする。
【００６１】
尚、ステップＳ２０７の時系列分析処理では、直前のステップＳ２０６において残差の時系列の変動傾向に規則性があると判定されている。そのため、前回の時系列分析処理では、不規則変動データとみなされていた成分について、傾向変動又は季節変動データとみなされる可能性が高い。つまり、前回までは検出できなかった規則性について、新たに検出される場合がある。そして、新たに規則性が検出されたデータが傾向変動又は季節変動データに含まれた状態で、予測モデルを学習することで、予測精度が向上し得る。そして、ステップＳ２０６でＹＥＳの場合にだけステップＳ２０７が実行されるため、計算コストを低減できる。
【００６２】
その後、予測部３２３は、ステップＳ２０７で分解された傾向変動データ及び季節変動データを用いて、現在から所定期間後までのサービスごとのリソース使用量の予測値（負荷の予測値）を算出する（Ｓ２０８）。
【００６３】
そして、配置候補算出部３２４は、ステップＳ２０８で算出された予測値から、配置候補を算出する（Ｓ２０９）。その後、配置候補算出部３２４は、配置候補の中から優先度条件に基づき、配置候補を選択する（Ｓ２１０）。
【００６４】
ここで、ステップＳ２０９及びＳ２１０の具体的な処理例を以下に説明する。まず、配置候補算出部３２４は、計算機環境２０内のインスタンス数と各インスタンスに割当可能なコンテナ数と提供対象のサービス種別から、インスタンス、コンテナ及びサービスの組の集合（配置候補）を導出する。そして、配置候補算出部３２４は、各配置候補内の各組について、上述した予測モデルを用いてリソース使用量の個別予測値を算出する。例えば、配置候補算出部３２４は、各配置候補について、予測モデルを用いてシミュレートして、個別予測値を取得する。そして、配置候補算出部３２４は、配置候補ごとに、個別予測値の合計値を算出する。配置候補算出部３２４は、合計値が負荷の予測値を満たす配置候補を配置候補群に追加する。そのため、配置候補群には複数の配置候補が含まれる場合がある。
【００６５】
その場合、配置候補算出部３２４は、配置候補群内の各配置候補について優先度条件に基づいて優先度を付与する。まず、配置候補算出部３２４は、配置候補内の個別予測値が、設定情報３１１に含まれる各リソース使用量の上限値を超過するか否かを判定する。配置候補内の全ての個別予測値が上限値を超過しない場合、配置候補算出部３２４は、当該配置候補に最高の優先度を付与する。一方、配置候補内の一部又は全部の個別予測値が上限値を超過した場合、配置候補算出部３２４は、当該配置候補に、超過した個別予測値の数（リソース数、コンテナ数）に応じた優先度を付与する。例えば、配置候補算出部３２４は、上記シミュレートに応じて追加されるインスタンス数、追加される時間（追加時間）を取得し、配置候補ごとに、追加されるインスタンス数と追加時間の積を算出する。そして、配置候補算出部３２４は、当該積が大きいほど優先度を高く付与する。
【００６６】
複数の配置候補の全てについて優先度を付与した後、最高の優先度が１つであった場合、配置候補算出部３２４は、最高の優先度が付与された配置候補を再配置対象として選択し、ステップＳ２１１へ進む。
【００６７】
また、最高の優先度が複数であった場合、配置候補算出部３２４は、各配置候補における各インスタンスの個別予測値の合計値を算出し、インスタンスのリソース上限値と当該合計値との差分を算出する。そして、配置候補算出部３２４は、配置候補ごとに、差分の積を算出し、差分の積が最も大きくなる配置候補を再配置対象として選択し、ステップＳ２１１へ進む。つまり、リソース上限内の配置候補の中から、インスタンス間のリソース使用率のバラつきがより少ないものが選択される。
【００６８】
また、最高の優先度が付与された配置候補が存在しなかった場合、配置候補算出部３２４は、付与された優先度の中で最高の優先度が付与された配置候補を再配置対象として選択し、ステップＳ２１１へ進む。つまり、リソース上限を超過した配置候補の中から、追加されるインスタンス数と追加時間の積が最も大きいものが選択される。
【００６９】
ステップＳ２１０の後、再配置部３２５は、選択された配置候補に基づいて計算機環境２０内の各インスタンスにコンテナ及びサービスの再配置を行う（Ｓ２１１）。尚、ステップＳ２１０の後、時系列分析部３２２は、選択された配置候補におけるインスタンス、コンテナ及びサービスの組について予測モデルによりリソース使用量の予測値を算出し、予測時刻と予測値とを対応付けて、記憶装置３１に格納してもよい。そして、これらを次回のステップＳ２０４における前回の予測値として用いても良い。
【００７０】
ステップＳ２０６でＮＯ又はステップＳ２１１の後、ステップＳ２０２へ進み、当該コンテナ配置方法を繰り返す。
【００７１】
このように、本実施形態により、例えばＩｏＴを対象としたコンテナ型仮想化を用いたサービスにおけるコンテナ配置を最適化することができる。すなわち、本実施形態では、コンテナ毎の時系列的なリソース使用状況を監視し、リソース使用状況の傾向変動及び季節変動に基づいてコンテナ配置の最適な組み合わせを求めるものである。その結果、ＣＰＵ使用率やメモリ使用量といったリソース使用量を最適化するコンテナ配置を実現できる。また、季節変動の分析を傾向が変化したタイミング及びユーザ指定の間隔でのみ実施することで、再配置を素早く実施することができる。
【００７２】
＜その他の実施形態＞
尚、上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００７３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７４】
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
【００７５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記Ａ１）
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する収集部と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する時系列分析部と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する予測部と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する配置候補算出部と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う再配置部と、
を備える情報処理装置。
（付記Ａ２）
前記時系列分析部は、
前記測定値と前記予測値の時系列における変動傾向が所定条件を満たす場合に、前記時系列の分析処理を実行する
付記Ａ１に記載の情報処理装置。
（付記Ａ３）
前記時系列分析部は、
前記測定値と前記予測値について対応する時刻における差分を算出し、
前記差分の時系列における変動傾向に規則性がある場合に、前記時系列の分析処理を実行する
付記Ａ２に記載の情報処理装置。
（付記Ａ４）
前記配置候補算出部は、
複数の前記配置候補を算出し、
前記算出された複数の配置候補の中から所定の優先度条件に基づいて、再配置対象の配置候補を選択し、
前記再配置部は、前記選択された配置候補に基づいて前記再配置を行う
付記Ａ１乃至Ａ３のいずれか１項に記載の情報処理装置。
（付記Ａ５）
前記配置候補算出部は、
前記複数の配置候補のそれぞれについて、コンテナごとのリソース使用量の個別予測値を算出し、
前記個別予測値の合計値が前記計算機環境におけるリソース使用量の上限値を超えないものをより高い優先度と判定し、
前記優先度が最も高いものを前記再配置対象の配置候補として選択する
付記Ａ４に記載の情報処理装置。
（付記Ａ６）
前記配置候補算出部は、
前記複数の配置候補の中に前記合計値が前記上限値を超えないものが存在しない場合、前記所定期間内において追加されるインスタンス数と追加時間との積が最小となる配置候補を前記再配置対象として選択する
付記Ａ５に記載の情報処理装置。
（付記Ａ７）
前記配置候補算出部は、
前記複数の配置候補の中に前記所定の優先度条件に基づいて優先度が最も高いものが複数存在する場合、当該優先度が最も高い複数の配置候補のうちインスタンスごとのリソース使用量の予測値の合計値に基づいて、前記再配置対象の配置候補を選択する
付記Ａ４乃至Ａ６のいずれか１項に記載の情報処理装置。
（付記Ａ８）
前記配置候補算出部は、
複数のサービスのそれぞれを前記複数のコンテナのいずれかに割り当てて前記配置候補を算出する
付記Ａ１乃至Ａ７のいずれか１項に記載の情報処理装置。
（付記Ｂ１）
コンピュータが、
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集し、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解し、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出し、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出し、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う
コンテナ配置方法。
（付記Ｃ１）
複数のコンテナが配置された計算機環境からリソース使用量の測定値を定期的に収集する処理と、
前記測定値を時系列の分析処理により規則変動データと不規則変動データとに分解する処理と、
前記規則変動データに基づいて、現在から所定期間後までの前記計算機環境におけるリソース使用量の予測値を算出する処理と、
前記予測値に基づいて前記計算機環境におけるコンテナの配置候補を算出する処理と、
前記配置候補に基づいて前記計算機環境におけるコンテナの再配置を行う処理と、
をコンピュータに実行させるコンテナ配置プログラム。
【００７６】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７７】
１０  情報処理装置
１１  収集部
１２  時系列分析部
１３  予測部
１４  配置候補算出部
１５  再配置部
１０００  クラウドシステム
２０  計算機環境
２１  インスタンス
２１１  コンテナ
２１１１  サービス
２１２  コンテナ
２１２１  サービス
２２  インスタンス
２２１  コンテナ
２２１１  サービス
２２２  コンテナ
２２２１  サービス
２ｎ  インスタンス
２ｎ１  コンテナ
２ｎ１１  サービス
２ｎ２  コンテナ
２ｎ２１  サービス
Ｎ  ネットワーク
３０  コンテナ配置装置
３１  記憶装置
３１１  設定情報
３１２  配置情報
３１３  測定値
３１４  予測値
３１５  残差
３１６  コンテナ配置プログラム
３２  制御部
３２１  収集部
３２２  時系列分析部
３２３  予測部
３２４  配置候補算出部
３２５  再配置部
３３  メモリ
３４  通信部
【図１】
2020144669.tif 000003
【図２】
2020144669.tif 000004
【図３】
2020144669.tif 000005
【図４】
2020144669.tif 000006
【図５】
2020144669.tif 000007