(57)【要約】  本発明の実施形態は、自動アプリケーション展開のための方法、およびクラウド管理ノードに関する。本方法は、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるステップと、前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップと、前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するステップと、前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するステップと、前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用される第1のインスタンス作成コマンドを、前記第1のコンピュータ装置へと送信するステップとを含む。本発明の実施形態における自動アプリケーション展開方法およびクラウド管理ノードによれば、ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができる。
2019503535.tif 000002
【特許請求の範囲】
【請求項１】
自動アプリケーション展開のための方法であって、前記方法が、クラウド管理ノードによって実行され、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つに展開され、前記方法は、
ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるステップと、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップと、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するステップと、
前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するステップと、
第1のインスタンス作成コマンドを、前記第1のコンピュータ装置へと送信するステップであって、前記第1のインスタンス作成コマンドが前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用される、ステップと
を含む、方法。
【請求項２】
前記予め設定されたルールは、前記アプリケーションがスケーラブルではないアプリケーションである場合に、前記第1のインスタンス作成方法がベアメタル作成方法であることを含み、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する前記ステップは、
前記アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、前記アプリケーションが前記スケーラブルではないアプリケーションである旨を前記アプリケーションモデル特性が含むと判定するステップ
を特に含み、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定する前記ステップは、
前記アプリケーションが前記スケーラブルではないアプリケーションである場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記ベアメタル作成方法であると決定するステップ
を特に含む、請求項1に記載の方法。
【請求項３】
前記予め設定されたルールは、前記アプリケーションが実行状態になく、あるいは前記アプリケーションの実行状態が安定状態である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であることを含み、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する前記ステップは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションの処理内容情報に従って、前記アプリケーションが前記実行状態にない旨または前記アプリケーションの前記実行状態が前記安定状態である旨を前記アプリケーションモデル特性が含むと判定するステップ
を特に含み、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定する前記ステップは、
前記アプリケーションが前記実行状態になく、あるいは前記アプリケーションの前記実行状態が前記安定状態である場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記コンテナ作成方法であると決定するステップ
を特に含む、請求項1に記載の方法。
【請求項４】
前記予め設定されたルールは、前記アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であることを含み、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する前記ステップは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションのサービスレベル合意SLAに従って、前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である旨を前記アプリケーションモデル特性が含むと判定するステップ
を特に含み、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定する前記ステップは、
前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記コンテナ作成方法であると決定するステップ
を特に含む、請求項1に記載の方法。
【請求項５】
前記予め設定されたルールは、前記アプリケーションがOSvオペレーティングシステムをサポートする場合に、前記第1のインスタンス作成方法がOSv作成方法であることを含み、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する前記ステップは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションによってサポートされるオペレーティングシステムに従って、前記アプリケーションが前記OSvオペレーティングシステムをサポートする旨を前記アプリケーションモデル特性が含むと判定するステップ
を特に含み、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定する前記ステップは、
前記アプリケーションが前記OSvオペレーティングシステムをサポートする場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記OSv作成方法であると決定するステップ
を特に含む、請求項1に記載の方法。
【請求項６】
前記第1のインスタンス作成方法は、仮想マシンVM作成方法である、請求項1に記載の方法。
【請求項７】
前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するステップであって、前記リアルタイム監視情報が前記第1のインスタンスにおける前記アプリケーションの実行状況を反映する、ステップと、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップであって、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンス作成方法が前記第1のインスタンス作成方法とは異なる、ステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記方法は、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定された場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するステップであって、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用される、ステップと、
前記アプリケーションを実行のために前記第2のインスタンスへと移動させるステップと
を含む、請求項7に記載の方法。
【請求項９】
前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項8に記載の方法。
【請求項１０】
前記アプリケーションが前記実行状態にある場合に、前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項8または9に記載の方法。
【請求項１１】
前記アプリケーションは、データベースであり、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定する前記ステップは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定するステップと、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定するステップであって、前記第2のインスタンスは前記コンテナ作成方法にて作成される、ステップと
を含む、請求項7から10のいずれか一項に記載の方法。
【請求項１２】
アプリケーション移動方法であって、前記方法がクラウド管理ノードによって実行され、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つのコンピュータ装置に展開され、前記複数のコンピュータ装置が第1のコンピュータ装置を含み、前記第1のコンピュータ装置が第1のインスタンス作成方法でアプリケーションのための第1のインスタンスを作成し、前記方法は、
前記第1のインスタンスにおける前記アプリケーションの実行時に、前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するステップであって、前記リアルタイム監視情報は前記第1のインスタンスにおける前記アプリケーションの実行状況を反映する、ステップと、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップであって、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンスが前記第1のインスタンス作成方法とは異なる、ステップと
を含む、方法。
【請求項１３】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記方法は、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定された場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するステップであって、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用される、ステップと、
前記アプリケーションを実行のために前記第2のインスタンスへと移動させるステップと
を含む、請求項12に記載の方法。
【請求項１４】
前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項13に記載の方法。
【請求項１５】
前記アプリケーションが実行状態にある場合に、前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項13または14に記載の方法。
【請求項１６】
前記アプリケーションは、データベースであり、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定する前記ステップは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定するステップと、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定するステップであって、前記第2のインスタンスはコンテナ作成方法にて作成される、ステップと
を含む、請求項12から15のいずれか一項に記載の方法。
【請求項１７】
クラウドコンピューティングデータセンタのクラウド管理ノードであって、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つに展開され、前記クラウド管理ノードが、アプリケーションオーケストレーションエンジンと、仮想化技術分析モジュールと、クラウドホスト管理および制御モジュールとを備えており、
前記アプリケーションオーケストレーションエンジンは、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるように構成され、
前記アプリケーションオーケストレーションエンジンは、前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するようにさらに構成され、
前記仮想化技術分析モジュールは、前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するように構成され、
前記クラウドホスト管理および制御モジュールは、前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するように構成され、
前記クラウドホスト管理および制御モジュールは、第1のインスタンス作成コマンドを前記第1のコンピュータ装置へと送信するようにさらに構成され、前記第1のインスタンス作成コマンドが前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用される、
クラウド管理ノード。
【請求項１８】
前記予め設定されたルールは、前記アプリケーションがスケーラブルではないアプリケーションである場合に、前記第1のインスタンス作成方法がベアメタル作成方法であることを含み、
前記アプリケーションオーケストレーションエンジンは、
前記アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、前記アプリケーションが前記スケーラブルではないアプリケーションである旨を前記アプリケーションモデル特性が含むと判定する
ように特に構成され、
前記仮想化技術分析モジュールは、
前記アプリケーションが前記スケーラブルではないアプリケーションである場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記ベアメタル作成方法であると決定する
ように特に構成されている、請求項17に記載のクラウド管理ノード。
【請求項１９】
前記予め設定されたルールは、前記アプリケーションが実行状態になく、あるいは前記アプリケーションの実行状態が安定状態である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であることを含み、
前記アプリケーションオーケストレーションエンジンは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションの処理内容に従って、前記アプリケーションが前記実行状態にない旨または前記アプリケーションの前記実行状態が前記安定状態である旨を前記アプリケーションモデル特性が含むと判定する
ように特に構成され、
前記仮想化技術分析モジュールは、
前記アプリケーションが前記実行状態になく、あるいは前記アプリケーションの前記実行状態が前記安定状態である場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記コンテナ作成方法であると決定する
ように特に構成されている、請求項17に記載のクラウド管理ノード。
【請求項２０】
前記予め設定されたルールは、前記アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であることを含み、
前記アプリケーションオーケストレーションエンジンは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションのサービスレベル合意SLAに従って、前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である旨を前記アプリケーションモデル特性が含むと判定する
ように特に構成され、
前記仮想化技術分析モジュールは、
前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記コンテナ作成方法であると決定する
ように特に構成されている、請求項17に記載のクラウド管理ノード。
【請求項２１】
前記予め設定されたルールは、前記アプリケーションがOSvオペレーティングシステムをサポートする場合に、前記第1のインスタンス作成方法がOSv作成方法であることを含み、
前記アプリケーションオーケストレーションエンジンは、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションによってサポートされるオペレーティングシステムに従って、前記アプリケーションが前記OSvオペレーティングシステムをサポートする旨を前記アプリケーションモデル特性が含むと判定する
ように特に構成され、
前記仮想化技術分析モジュールは、
前記アプリケーションが前記OSvオペレーティングシステムをサポートする場合に、前記予め設定されたルールに従って、前記第1のインスタンス作成方法が前記OSv作成方法であると決定する
ように特に構成されている、請求項17に記載のクラウド管理ノード。
【請求項２２】
前記第1のインスタンス作成方法は、仮想マシンVM作成方法である、請求項17に記載のクラウド管理ノード。
【請求項２３】
前記クラウド管理ノードがクラウド監視制御モジュールをさらに備えており、
前記クラウド監視制御モジュールは、前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するように構成され、前記リアルタイム監視情報は、前記第1のインスタンスにおける前記アプリケーションの実行状況を反映し、
前記仮想化技術分析モジュールは、前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するようにさらに構成され、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンス作成方法が前記第1のインスタンス作成方法とは異なる、
請求項17から22のいずれか一項に記載のクラウド管理ノード。
【請求項２４】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記クラウド管理ノードは、ライフサイクル管理モジュールをさらに含んでおり、
前記クラウドホスト管理および制御モジュールは、前記仮想化技術分析モジュールが前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するように構成され、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用され、
前記ライフサイクル管理モジュールは、前記アプリケーションを実行のために前記第2のインスタンスへと移動させるように構成されている、
請求項23に記載のクラウド管理ノード。
【請求項２５】
前記ライフサイクル管理モジュールは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項24に記載のクラウド管理ノード。
【請求項２６】
前記アプリケーションが前記実行状態にある場合に、前記ライフサイクル管理モジュールは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項23または24に記載のクラウド管理ノード。
【請求項２７】
前記アプリケーションは、データベースであり、前記仮想化技術分析モジュールは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定し、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定し、前記第2のインスタンスが前記コンテナ作成方法にて作成される
ようにさらに構成されている、請求項23から26のいずれか一項に記載のクラウド管理ノード。
【請求項２８】
アプリケーション移動クラウド管理ノードであって、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つのコンピュータ装置に展開され、前記複数のコンピュータ装置が第1のコンピュータ装置を含み、前記第1のコンピュータ装置が第1のインスタンス作成方法でアプリケーションのための第1のインスタンスを作成し、前記クラウド管理ノードは、
前記第1のインスタンスにおける前記アプリケーションの実行時に、前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するように構成され、前記リアルタイム監視情報が前記第1のインスタンスにおける前記アプリケーションの実行状況を反映する、クラウド監視制御モジュールと、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するように構成され、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンス作成方法が前記第1のインスタンス作成方法とは異なる、仮想化技術分析モジュールと
を備える、アプリケーション移動クラウド管理ノード。
【請求項２９】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記クラウド管理ノードは、
前記仮想化技術分析モジュールが前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するように構成され、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用される、クラウドホスト管理および制御モジュールと、
前記アプリケーションを実行のために前記第2のインスタンスへと移動させるように構成されたライフサイクル管理モジュールと
をさらに備える、請求項28に記載のクラウド管理ノード。
【請求項３０】
前記ライフサイクル管理モジュールは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項29に記載のクラウド管理ノード。
【請求項３１】
前記アプリケーションが実行状態にある場合に、前記ライフサイクル管理モジュールは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項29または30に記載のクラウド管理ノード。
【請求項３２】
前記アプリケーションは、データベースであり、前記仮想化技術分析モジュールは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定し、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定し、前記第2のインスタンスがコンテナ作成方法にて作成される
ようにさらに構成されている、請求項28から31のいずれか一項に記載のクラウド管理ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、技術の分野に関し、特には自動アプリケーション展開のための方法およびクラウド管理ノードに関する。
【背景技術】
【０００２】
絶え間ない開発により、仮想化技術は成熟しつつある。現時点において、2つの主な方法が、仮想化技術の実行に使用されている。一方の方法は、仮想マシン管理プログラム（hypervisor）に基づき、カーネルベースの仮想マシン（Kernel−based Virtual Machines、略して「KVM」）、Xen、VMware仮想化、などを含む。他方の方法は、ホストオペレーティングシステム（Host OS）の分離特性に基づいており、libcontainer、Rocket、Linux(登録商標)コンテナ（Linux(登録商標) Container、略して「LXC」）、OpenVZ、FreeBSD jail、Solaris Containers、などを含む。加えて、例えば、JeOSのhypervisor技術から改良された新技術が存在する。これらの仮想化技術は、クラウドコンピューティングにますます適用されている。
【０００３】
種類の異なるアプリケーションは、システムリソースについて、大きく異なる要件を有する。例えば、システムリソースは、中央処理装置（Central Processing Unit、略して「CPU」）、メモリ（Memory）、入力／出力（input／output、略して「I／O」）ポート、またはネットワーク（Network）であってよく、一部のアプリケーションは、非仮想化（例えば、ベアメタル（Bare−metal））を直接使用することによって実行効率を保証することを必要とする。構造化クエリ言語（Structured Query Language、略して「SQL」）データベース、NoSQLデータベース、キャッシュ（Cache）、またはメッセージング（Messaging）などのいくつかのアプリケーションについては、アプリケーションのシステムリソース要件を学習して仮想化技術を選択することが、比較的容易である。しかしながら、プログラムの種類によっては、ユーザまたは管理者の視点から最適な仮想化技術を選択することが困難である。
【０００４】
現在、自動アプリケーション展開に関連する分野は、主にクラウドコンピューティング分野における自動アプリケーション展開サービスである。具体的には、自動アプリケーション展開が、TOSCA、OpenStack Heat、AWS CloudFormation、DockerFile、Puppet、Chef、などのいくつかの主流の規格および種類を含むパッキングおよび構成テンプレートなど、アプリケーションオーケストレーションエンジンによってサポートされるアプリケーションオーケストレーションテンプレートを使用することによって実行される。これらのテンプレートには、アプリケーションが依存するプラットフォーム（システムイメージ）ならびに対応する仮想化技術が、すでに記入されている。これらのテンプレートへの記入は、ユーザによって手動で行われ、あるいはクラウドコンソールのWeb案内ページを使用することによる手動選択によって行われる。既存の自動アプリケーション展開手順において、クラウドデータセンタが使用する仮想化技術の種類は、比較的少ない。したがって、仮想化技術の選択は、すべてユーザによって完了され、完全な制御権限がユーザに与えられている。しかしながら、さまざまな仮想化技術が成熟した後に、クラウドデータセンタは、多数の仮想化技術が混在するプラットフォームになると考えられる。その場合、ユーザに多数の仮想化技術を選択させることが問題となり、誤った選択は、プログラムの実行効率を低下させるだけでなく、データセンタのリソースを浪費する。
【０００５】
また、アプリケーションライフサイクル管理機能の観点から、現在のアプリケーション展開プログラムは、グループスケールの自動スケーリング（Auto−Scaling）およびエラー回復などを主として行うことができるが、仮想化技術のリアルタイム分析およびスイッチングを実行することができない。この場合、アプリケーションが展開された後で、アプリケーションの実行環境が決定される。柔軟性が欠けており、仮想化技術の種類を調整することができない。
【発明の概要】
【課題を解決するための手段】
【０００６】
本出願は、仮想化技術を自動的に選択するための自動アプリケーション展開のための方法およびクラウド管理ノードを提供する。
【０００７】
第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のインスタンス作成方法がベアメタル作成方法であると決定するステップを特に含む。
【００１３】
随意により、アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、アプリケーションがスケーラブルではないアプリケーションである旨をアプリケーションモデル特性が含むと判定するとき、クラウド管理ノードは、予め設定されたルールに従って、アプリケーションのためのインスタンス展開の際にベアメタル作成方法をアプリケーションに適用することができないと決定することができる。
【００１４】
アプリケーションがスケーラブルではないアプリケーションである場合、それは、アプリケーションが水平方向および垂直方向のいずれにもスケーラブルでないことを示すことができることを、理解すべきである。反対に、アプリケーションがスケーラブルなアプリケーションである場合、それは、アプリケーションが水平方向にスケーラブルであってよく、あるいは垂直方向にスケーラブルであってよいことを示すことができる。水平方向のスケーリングは、インスタンスの数量を増やし、あるいは減らすことによるインスタンスのグループスケールの調整を指すことができ、垂直方向のスケーリングは、グループ内の単一のインスタンスに属するリソースを増やし、あるいは減らすことによるインスタンスのグループスケールの調整を指すことができる。
【００１５】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、予め設定されたルールが、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、第1のインスタンス作成方法がコンテナ（Container）作成方法であることを含み、アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップは、アプリケーションオーケストレーションテンプレート内のアプリケーションの処理内容情報に従って、アプリケーションが実行状態にない旨またはアプリケーションの実行状態が安定状態である旨をアプリケーションモデル特性が含むと判定するステップを特に含み、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定するステップは、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がContainer作成方法であると決定するステップを特に含む。
【００１６】
Container作成方法が、仮想化技術作成方法に属することを、理解すべきである。Container作成方法は、例えばDockerを使用することによってContainerを作成する方法など、仮想化技術を使用することによってContainerを作成する方法であってよい。Containerは、特にはLinux(登録商標)コンテナであってよい。
【００１７】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、予め設定されたルールが、アプリケーションのフェイルオーバーfailoverまでの制限時間が予め設定された値以下である場合に、第1のインスタンス作成方法がコンテナ作成方法であることを含み、アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップは、アプリケーションオーケストレーションテンプレート内のアプリケーションのサービスレベル合意SLAに従って、アプリケーションのfailoverまでの制限時間が予め設定された値以下である旨をアプリケーションモデル特性が含むと判定するステップを特に含み、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定するステップは、アプリケーションのfailoverまでの制限時間が予め設定された値以下である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がContainer作成方法であると決定するステップを特に含む。Container作成方法は、仮想化技術作成方法に属する。
【００１８】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、予め設定されたルールが、アプリケーションがOSvオペレーティングシステムをサポートする場合に、第1のインスタンス作成方法がOSv作成方法であることを含み、アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップは、アプリケーションオーケストレーションテンプレート内のアプリケーションによってサポートされるオペレーティングシステムに従って、アプリケーションがOSvオペレーティングシステムをサポートする旨をアプリケーションモデル特性が含むと判定するステップを特に含み、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定するステップは、アプリケーションがOSvオペレーティングシステムをサポートする場合に、予め設定されたルールに従って、第1のインスタンス作成方法がOSv作成方法であると決定するステップを特に含む。OSv作成方法は、仮想化技術作成方法に属する。
【００１９】
第1の態様およびこの態様の上述の実施例に関して、第1の態様の別の実施例においては、第1のインスタンス作成方法が、仮想マシンVM作成方法である。
【００２０】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、本方法が、第1のインスタンスにおけるアプリケーションの実行について、リアルタイム監視情報を取得するステップであって、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する、ステップと、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップであって、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる、ステップとをさらに含む。
【００２１】
このようにして、本出願において提供される自動アプリケーション展開のための方法によれば、仮想化技術をアプリケーションの展開時に自動的に選択することができるだけでなく、アプリケーションを現在のインスタンスから別のインスタンスに移動させるかどうかを、アプリケーションが実行されているときに決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、仮想化技術の種類をより柔軟に選択および調整できることにより、リソースの利用を改善し、リソースの浪費を回避することができる。
【００２２】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、複数のコンピュータ装置が、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、本方法は、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定された場合に、第2のインスタンス作成コマンドを第2のコンピュータ装置へと送信するステップであって、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ステップと、アプリケーションを実行のために第2のインスタンスへと移動させるステップとを含む。
【００２３】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、アプリケーションを実行のために第2のインスタンスへと移動させるステップが、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するステップを特に含む。
【００２４】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、アプリケーションが実行状態にある場合に、アプリケーションを実行のために第2のインスタンスへと移動させるステップが、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するステップを特に含む。
【００２５】
第1の態様および第1の態様の上述の実施例に関して、第1の態様の別の実施例においては、アプリケーションが、データベースであり、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップは、リアルタイム監視情報に従って、データベースがアイドル状態であると判定するステップと、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定するステップであって、第2のインスタンスはコンテナ作成方法にて作成される、ステップとを含む。
【００２６】
第2の態様によれば、自動アプリケーション展開のための方法が提供される。本方法は、クラウド管理ノードによって実行され、クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つのコンピュータ装置に展開され、複数のコンピュータ装置が第1のコンピュータ装置を含み、第1のコンピュータ装置が第1のインスタンス作成方法でアプリケーションのための第1のインスタンスを作成し、本方法は、第1のインスタンスにおけるアプリケーションの実行時に、第1のインスタンスにおけるアプリケーションの実行について、リアルタイム監視情報を取得するステップであって、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する、ステップと、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップであって、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる、ステップとを含む。
【００２７】
したがって、本出願において提供される自動アプリケーション展開のための方法によれば、アプリケーションを現在のインスタンスから別のインスタンスに移動させるかどうかを、アプリケーションが実行されているときに決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、仮想化技術のリアルタイム分析および切り換えを実現することができ、仮想化技術の種類をより柔軟に調整することにより、リソースの利用を改善し、リソースの浪費を回避することができる。
【００２８】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップが、強化学習（Reinforcement Learning）アルゴリズムを使用することにより、リアルタイム監視情報に従って、アプリケーションが第1のインスタンスに保たれ、移動させられない場合に得られる第1の報酬と、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬とを決定するステップと、第1の報酬が第2の報酬以上である場合に、アプリケーションを第1のインスタンスに保ち、アプリケーションを移動させないと決定し、第1の報酬が第2の報酬よりも低い場合に、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定するステップとを含む。
【００２９】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、強化学習（Reinforcement Learning）アルゴリズムを使用することにより、リアルタイム監視情報に従って、アプリケーションが第1のインスタンスに保たれ、移動させられない場合に得られる第1の報酬と、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬とを決定するステップが、
式（1）
【００３０】
【数１】
2019503535.tif 000003
【００３１】
に従って第1の報酬を決定するステップであって、Aは調整係数を表し、responseTimeは外部要求に対するアプリケーションの実際の応答時間を表し、Timeは外部要求に対するアプリケーションの予め設定された応答時間を表し、Utilizationはアプリケーションの実行時に占有される複数のリソースの各々のリソース利用率を表し、CostOfTransitionは0に設定され、CostOfTechnology＝Σ（B＊C）であり、Bは第1のインスタンス作成方法に対応する仮想化技術によって生じる複数のオーバーヘッドの各々を表し、CはアプリケーションにおけるBの重みを表す、ステップと、
式（1）に従って第2の報酬を決定するステップであって、responseTimeは外部要求に対するアプリケーションの実際の応答時間を表し、Timeは外部要求に対するアプリケーションの予め設定された応答時間を表し、Utilizationはアプリケーションの実行時に占有される複数のリソースの各々のリソース利用率を表し、CostOfTransitionは第1のインスタンスからの移動のためのオーバーヘッドおよび第2のインスタンスへの移動のためのオーバーヘッドの合計を表し、CostOfTechnology＝Σ（B＊C）であり、Bは第2のインスタンス作成方法に対応する仮想化技術によって生じる複数のオーバーヘッドの各々を表し、CはアプリケーションにおけるBの重みを表す、ステップと
を含む。随意により、各々の仮想化技術について、対応するCostOfTechnologyは、或る定数へと固定に設定されてよい。
【００３２】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、強化学習（Reinforcement Learning）アルゴリズムを使用することにより、リアルタイム監視情報に従って、アプリケーションが第1のインスタンスに保たれ、移動させられない場合に得られる第1の報酬と、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬とを決定するステップが、
式（2）
【００３３】
【数２】
2019503535.tif 000004
【００３４】
に従って第1の報酬を決定するステップであって、Aは調整係数を表し、throughputはアプリケーションの実行時のスループットを表し、TPはアプリケーションの実行時のスループットの予め設定された値を表し、Utilizationはアプリケーションの実行時に占有される複数のリソースの各々のリソース利用率を表し、CostOfTransitionは0に設定され、CostOfTechnology＝Σ（B＊C）であり、Bは第1のインスタンス作成方法に対応する仮想化技術によって生じる複数のオーバーヘッドの各々を表し、CはアプリケーションにおけるBの重みを表す、ステップと、
式（2）に従って第2の報酬を決定するステップであって、Aは調整係数を表し、throughputはアプリケーションの実行時のスループットを表し、TPはアプリケーションの実行時のスループットの予め設定された値を表し、Utilizationはアプリケーションの実行時に占有される複数のリソースの各々のリソース利用率を表し、CostOfTransitionは第1のインスタンスからの移動のためのオーバーヘッドおよび第2のインスタンスへの移動のためのオーバーヘッドの合計を表し、CostOfTechnology＝Σ（B＊C）であり、Bは第2のインスタンス作成方法に対応する仮想化技術によって生じる複数のオーバーヘッドの各々を表し、CはアプリケーションにおけるBの重みを表す、ステップと
を含む。随意により、各々の仮想化技術について、対応するCostOfTechnologyは、或る定数へと固定に設定されてよい。
【００３５】
式（2）におけるスループットは、データスループットであってよく、すなわちthroughputは、アプリケーションの実行時のデータスループットを表し、したがってTPは、アプリケーションの実行時のデータスループットの予め設定された値を表し、あるいはスループットは、ネットワークIO要求によってもたらされるスループットであってよく、すなわちthroughputは、アプリケーションの実行時にネットワークIO要求によってもたらされるスループットを表し、したがってTPは、アプリケーションの実行時にネットワークIO要求によってもたらされるスループットの予め設定された値を表すことを、理解すべきである。
【００３６】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションが、データベースであり、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップは、リアルタイム監視情報に従って、データベースがアイドル状態であると判定するステップと、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定するステップであって、第2のインスタンスはContainer作成方法にて作成される、ステップとを含む。このようにして、リソースの無駄を回避でき、データベースからデータが失われることがない。
【００３７】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションによって現在使用されている第1のインスタンスがVMである場合に、クラウド管理ノードは、アプリケーションのリアルタイム監視情報に従って、アプリケーションの作業段階においてアプリケーションによって使用されるメモリが常にゆっくりと変化する（例えば、ゆっくりと増加し、あるいはゆっくりと減少する）と判定することができる。この場合、アプリケーションをContainerへと移動させることが、より良好な効果を有する。このように、Containerのメモリリソースはいつでも変更され得るため、Containerへの移動はメモリを浪費しないかもしれない。実行中分析サブモジュール2132が、リアルタイム監視情報に従って、或る段階においてアプリケーションによって使用されるメモリの量が固定であると判定する場合、アプリケーションは、移動することなくVMを使用し続けることができる。
【００３８】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションによって現在使用されている第1のインスタンスがVMである場合に、クラウド管理ノードは、アプリケーションのリアルタイム監視情報に従って、アプリケーションが或る作業段階において大量のスレッドおよびコンテキストスイッチングを有すると判定することができる。この場合、VMを使用することによるスケジューリングの実行は、大量のCPUオーバーヘッドを引き起こす（VM自身がCPUを仮想化するため、関連するマルチスレッドスイッチングがより大きなオーバーヘッドを引き起こす）。この場合、Containerへの移動がより良好な効果を有する。
【００３９】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションによって現在使用されている第1のインスタンスがContainerである場合に、クラウド管理ノードがアプリケーションのリアルタイム監視情報に従ってアプリケーションが或る作業段階においてカーネルセンシティブなデータを操作する必要があると判定するとき、別のContainerに対する危険が、Containerが同じカーネルを共有する場合に応じて引き起こされる可能性がある。したがって、このような作業段階においては、アプリケーションを、セキュリティを考慮して第2のインスタンスへと移動させるべきである。第2のインスタンスは、VMである。
【００４０】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションによって現在使用されている第1のインスタンスがContainerである場合に、Containerの移動時に例えばアプリケーションを全体として物理マシンへと移動させる必要があるときに、コンテナがシステムによって呼び出される移動を完全には処理することができず、VMが完全な移動を保証することができる。したがって、アプリケーションが位置するインスタンスを全体として移動させる必要がある場合、アプリケーションを、第2のインスタンスへと最初に移動させることができ、第2のインスタンスがVMであり、アプリケーションをVMにおいて実行した後に、アプリケーションを全体として例えば物理マシンへと移動させることができる。
【００４１】
第2の態様に関して、第2の態様の一実施例においては、複数のコンピュータ装置が、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、本方法は、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定された場合に、第2のインスタンス作成コマンドを、第2のコンピュータ装置へと送信するステップであって、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ステップと、アプリケーションを実行のために第2のインスタンスへと移動させるステップとをさらに含む。
【００４２】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションを実行のために第2のインスタンスへと移動させるステップが、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するステップを特に含む。
【００４３】
第2の態様および第2の態様の上述の実施例に関して、第2の態様の別の実施例においては、アプリケーションが実行状態にある場合に、アプリケーションを実行のために第2のインスタンスへと移動させるステップが、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するステップを特に含む。
【００４４】
第3の態様によれば、クラウドコンピューティングデータセンタのクラウド管理ノードが提供され、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するように構成される。具体的には、クラウド管理ノードは、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するように構成されたモジュールを含む。
【００４５】
第4の態様によれば、クラウドコンピューティングデータセンタのクラウド管理ノードが提供され、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するように構成される。具体的には、クラウド管理ノードは、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するように構成されたモジュールを含む。
【００４６】
第5の態様によれば、クラウドコンピューティングデータセンタのクラウド管理ノードが提供され、メモリおよびプロセッサを含む。メモリは、命令を格納するように構成され、プロセッサは、メモリに格納された命令を実行するように構成され、メモリに格納された命令は、実行されたときに、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法をプロセッサに実行させる。
【００４７】
第6の態様によれば、クラウドコンピューティングデータセンタのクラウド管理ノードが提供され、メモリおよびプロセッサを含む。メモリは、命令を格納するように構成され、プロセッサは、メモリに格納された命令を実行するように構成され、メモリに格納された命令は、実行されたときに、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法をプロセッサに実行させる。
【００４８】
第7の態様によれば、コンピュータにとって読み取り可能な媒体が提供され、コンピュータプログラムを格納するように構成される。コンピュータプログラムは、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するために使用される命令を含む。
【００４９】
第8の態様によれば、コンピュータにとって読み取り可能な媒体が提供され、コンピュータプログラムを格納するように構成される。コンピュータプログラムは、第1の態様または第1の態様について可能な実施例のうちのいずれか1つによる方法を実行するために使用される命令を含む。
【００５０】
本発明の実施形態における技術的解決策をよりわかりやすく説明するために、本発明の実施形態の説明に必要な添付の図面を、以下で簡単に説明する。当然ながら、添付の図面は、以下の説明において、あくまでも本発明のいくつかの実施形態を示すにすぎず、当業者であれば、依然として、創造的な活動を必要とすることなくこれらの添付の図面から他の図を導き出すことが可能である。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態による自動アプリケーション展開のための方法の概略のフロー図である。
【図２】本発明の一実施形態による自動アプリケーション展開のための装置の概略のブロック図である。
【図３】本発明の一実施形態による自動アプリケーション展開のための方法の別の概略のフロー図である。
【図４】本発明の一実施形態による自動アプリケーション展開のための方法のさらに別の概略のフロー図である。
【図５】本発明の一実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノードの概略のブロック図である。
【図６】本発明の別の実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノードの概略のブロック図である。
【図７】本発明のさらに別の実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノードの概略のブロック図である。
【図８】本発明のさらに別の実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノードの概略のブロック図である。
【発明を実施するための形態】
【００５２】
以下で、本発明の実施形態における技術的解決策を、本発明の実施形態における添付の図面を参照して、明瞭かつ充分に説明する。当然ながら、説明される実施形態は、本発明の実施形態の一部であり、すべてではない。当業者であれば本発明の実施形態に基づいて得ることができるすべての他の実施形態が、本発明の保護の範囲に含まれる。
【００５３】
図1は、本発明の一実施形態による自動アプリケーション展開のための方法1000を示している。自動アプリケーション展開のための方法1000は、図2に示すクラウドコンピューティングデータセンタに適用可能である。方法1000は、クラウド管理ノード2100によって実行されてよい。図2に示されるように、クラウドコンピューティングデータセンタは、複数のコンピュータ装置を含むことができる。2つのコンピュータ装置、すなわち第1のコンピュータ装置2200および第2のコンピュータ装置2300が、一例として使用される。クラウド管理ノード2100は、複数のコンピュータ装置のうちの少なくとも1つに配置されてもよい。例えば、クラウド管理ノード2100は、第1のコンピュータ装置2200上に配置される。別の例では、クラウド管理ノード2100に含まれるモジュールが、第1のコンピュータ装置2200および第2のコンピュータ装置2300上に配置される。
【００５４】
クラウド管理ノード2100は、例えば、アプリケーションオーケストレーションエンジン（orchestration engine）2110、仮想化技術分析モジュール2120、クラウドホスト管理および制御モジュール2130、クラウド監視制御モジュール2140、またはライフサイクル管理モジュール2150のうちの少なくとも1つなど、複数のモジュールをさらに含むことができる。随意により、クラウド管理ノード2100は、例えばクラウド監視制御モジュールによって決定された監視データを格納するために使用されるクラウド監視データベースなど、別の部分をさらに含むことができる。本発明は、これに限定されるものではない。
【００５５】
特には、自動アプリケーション展開のための方法1000を、図2に示した装置のクラウド管理ノード2100によって実行することができる。方法1000は、以下のステップを含む。
【００５６】
S1100．ユーザによって入力されるアプリケーションオーケストレーションテンプレート（orchestration engine）を受け付ける。
【００５７】
具体的には、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを、クラウド管理ノード2100内のアプリケーションオーケストレーションエンジン2110によって受け付けることができる。
【００５８】
従来技術のアプリケーション展開プロセスにおいて入力されるアプリケーションオーケストレーションテンプレートが、本発明のこの実施形態において変更されることを、理解されたい。ユーザがアプリケーションオーケストレーションテンプレートを入力する場合、アプリケーションによって使用されるインスタンス作成方法を決定する必要はもはやなく、すなわち、使用される仮想化技術またはベアメタル作成方法を決定する必要がなく、アプリケーションのアプリケーションモデル特性だけを提供すればよい。本発明のこの実施形態におけるアプリケーションオーケストレーションテンプレートは、アプリケーションオーケストレーション仕様に従ってコンパイルされ、アプリケーションスタックの展開に使用されるドキュメントである。すなわち、アプリケーションオーケストレーションテンプレートは、アプリケーション全体（または、アプリケーションスタック）に含まれるモジュールおよびモジュール間の関係を指定する。アプリケーションモデル特性の記述を、アプリケーションオーケストレーションテンプレート言語仕様の一部と考えることができ、共通のテンプレート言語が、展開後にモジュールが相互に関連した様相で動作できるように、アプリケーションのモジュールおよびモジュール間の呼び出し関係を記述することができる。すなわち、オリジナルのアプリケーションオーケストレーションテンプレートも、アプリケーションモデル特性を提供する必要がある。ここで、アプリケーションオーケストレーションテンプレートを入力するとき、ユーザは、選択される仮想化技術をアプリケーションオーケストレーションテンプレートの一部として提供することなく、アプリケーションオーケストレーションテンプレートにおいてアプリケーションモデル特性だけを提供すればよい。
【００５９】
随意により、一実施形態においては、アプリケーションオーケストレーションエンジン2110がユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付け、あるいはユーザによって入力されるアプリケーションモデル特性を受け付けるとき、従来技術と同様に、ユーザを、アプリケーションのアプリケーションオーケストレーションテンプレートを作成するようにウェブページによって案内することができ、あるいはすでに作成されたアプリケーションオーケストレーションテンプレートを、コマンドラインインターフェイスを介して直接インポートすることができる。しかしながら、ここで、アプリケーション展開プロセスにおけるインスタンス作成において使用される仮想化技術の種類が、アプリケーションオーケストレーションテンプレートにおいて指定されることはなく、アプリケーションモデル特性のみが提供される。
【００６０】
S1200．アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する。
【００６１】
具体的には、ユーザによって入力されたアプリケーションオーケストレーションテンプレートを受け取った後に、クラウド管理ノード2100のアプリケーションオーケストレーションエンジン2110は、アプリケーションオーケストレーションテンプレートを解析し、アプリケーションのアプリケーションモデル特性を決定することができる。例えば、アプリケーションオーケストレーションエンジン2110は、アプリケーションオーケストレーションテンプレートを解析し、アプリケーションモデル特性がアプリケーションのモジュール間の依存関係を含むかどうか、アプリケーションが水平または垂直拡張を実行できるか否か、負荷バランシングが存在するか否か、などを決定することができる。
【００６２】
随意により、一実施形態において、アプリケーションオーケストレーションエンジン2110は、ユーザによって入力されたアプリケーションオーケストレーションテンプレートを解析し、アプリケーションオーケストレーションテンプレートに含まれる自動スケーリンググループ（auto scaling group）情報に従って、アプリケーションモデル特性が、アプリケーションが水平拡張の実行を必要とするか否かを含むことができ、アプリケーションが垂直拡張の実行を必要とするか否かも含むことができる旨を、判定することができる。具体的には、ユーザによって入力されたアプリケーションオーケストレーションテンプレートが自動スケーリンググループ情報を含む場合、アプリケーションがスケーラブルなアプリケーションであり、すなわちアプリケーションのインスタンスを実際の実行要件に従って実行できる旨を、アプリケーションモデル特性が含むと判定することができる。拡張は、水平方向の拡張および垂直方向の拡張を含み得る。水平方向の拡張は、水平スケーリングとも呼ばれ、インスタンスの数量を増やし、あるいは減らすことによってインスタンスのグループスケールを調整することを指し、垂直方向の拡張は、垂直スケーリングとも呼ばれ、グループ内の単一のインスタンスに属するリソースを増やし、あるいは減らすことによって、インスタンスのグループスケールを調整することを指す。
【００６３】
随意により、一実施形態において、アプリケーションオーケストレーションエンジン2110は、ユーザによって入力されたアプリケーションオーケストレーションテンプレートを解析し、アプリケーションによって処理されるコンテンツ情報に従って、アプリケーションモデル特性が、アプリケーションが実行状態（stateful）であるか否かを含み得ると判定することができ、アプリケーションが実行状態である場合に、実行状態が安定状態であるかどうかを判定することができる。例えば、アプリケーションオーケストレーションテンプレートが、アプリケーションがウェブ形式のアプリケーションである旨を記録している場合、アプリケーションオーケストレーションエンジン2110は、アプリケーションモデル特性が、アプリケーションが実行状態にないことであると判定することができ、アプリケーションオーケストレーションテンプレートが、アプリケーションのアプリケーション種類がデータ処理である旨を記録している場合、アプリケーションオーケストレーションエンジン2110は、アプリケーションモデル特性がアプリケーションが実行状態にあることであると判定でき、データ処理の特定のコンテンツに従って、アプリケーションの実行状態が安定状態であるか否かをさらに判定することができる。
【００６４】
随意により、一実施形態において、アプリケーションオーケストレーションエンジン2110は、ユーザによって入力されたアプリケーションオーケストレーションテンプレートを解析し、アプリケーションのサービスレベル合意（Service−Level Agreement、略して「SLA」）に従って、アプリケーションが制限時間要件を有するか否かを判定し、すなわちアプリケーションモデル特性がアプリケーションの制限時間要件を含むと判定することができる。例えば、アプリケーションは、ネットワーク帯域幅または応答時間に関するSLA要件を有する可能性があり、あるいはアプリケーションは、フェイルオーバー（failover）を所定の時間内に完了させることを必要とするfailoverに関するSLA要件を有する可能性があり、すなわちfailoverに関する時間要件を有する可能性がある。この場合、アプリケーションモデル特性は、failoverに関する制限時間要件を含む。しかしながら、本発明の実施形態は、これに限られるわけではない。
【００６５】
随意により、一実施形態において、アプリケーションオーケストレーションエンジン2110は、ユーザによって入力されたアプリケーションオーケストレーションテンプレートを解析し、アプリケーションによってサポートされるオペレーティングシステムを判定することができ、すなわちアプリケーションモデル特性がアプリケーションによってサポートされるオペレーティングシステムを含むと判定することができる。例えば、アプリケーションモデル特性は、アプリケーションがOSvシステムをサポートでき、あるいはOSvシステムをサポートしないが、別のオペレーティングシステムをサポートすることであり、あるいはアプリケーションが複数のオペレーティングシステムをサポートできることである。本発明は、これに限定されるものではない。
【００６６】
S1300．アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定する。
【００６７】
具体的には、クラウド管理ノード2100内の仮想化技術分析モジュール2120が、展開中分析サブモジュール2121を含むことができ、アプリケーションオーケストレーションエンジン2110が、判定されたアプリケーションモデル特性を展開中分析サブモジュール2121へと送信し、展開中分析サブモジュール2121は、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応するインスタンス作成方法、すなわち第1のインスタンス作成方法を決定する。
【００６８】
本発明のこの実施形態において、展開中分析サブモジュール2121は、インスタンス作成方法を決定するための複数の決定方法を含むことができる。ここでのインスタンス作成方法は、仮想化技術作成方法またはベアメタル作成方法を含み、インスタンス作成方法を決定するための決定方法は、図3の決定樹によって示される方法であってよい。
【００６９】
具体的には、例えば、図3に示されるように、展開中分析サブモジュール2121は、アプリケーションモデル特性に従って、アプリケーションに対応する第1のインスタンス作成方法を決定することができる。展開中分析サブモジュール2121は、アプリケーションモデル特性に従って、アプリケーションが水平方向の拡張を必要とするかどうかを最初に判定することができ、アプリケーションが水平方向の拡張を必要としない場合、アプリケーションが垂直方向の拡張を必要とするかどうかを判定することができ、アプリケーションが垂直方向の拡張も必要としない場合、アプリケーションに対応する第1のインスタンス作成方法がベアメタル展開であると決定することができる。すなわち、仮想マシンではなく物理マシンが、アプリケーションのために展開される。
【００７０】
アプリケーションモデル特性に従って、アプリケーションが水平方向の拡張を必要とすると判定された場合、展開中分析サブモジュール2121は、アプリケーションが実行状態（stateful）であるかどうかをさらに判定することができ、アプリケーションが実行状態にない場合、アプリケーションに対応する第1のインスタンス作成方法がコンテナ（Container）展開であると決定することができる。ここで、コンテナ展開は、仮想化技術を使用してコンテナを作成することを指すことができ、例えばDockerを使用してコンテナを作成することを指すことができる。
【００７１】
アプリケーションモデル特性に従って、アプリケーションが実行状態にあると判定された場合、展開中分析サブモジュール2121は、アプリケーションの実行状態が安定であるか否かをさらに判定することができ、アプリケーションの実行状態が安定状態である場合、展開中分析サブモジュール2121は、アプリケーションに対応する第1のインスタンス作成方法がコンテナ展開であるとさらに決定することができる。
【００７２】
アプリケーションの実行状態が安定状態でないと判定された場合、展開中分析サブモジュール2121は、アプリケーションのfailoverがSLAを有するか否か、すなわちfailoverが制限時間を有するか否かをさらに判定することができ、フェイルオーバーが制限時間を有し、時間がきわめて短い場合、展開中分析サブモジュール2121は、アプリケーションに対応する第1のインスタンス作成方法がコンテナ展開であると決定することができる。
【００７３】
アプリケーションのfailoverがSLAを有さず、すなわちfailoverが時間制限を有さない場合や、フェイルオーバーが制限時間を有するが、制限時間が比較的長い場合、展開中分析サブモジュール2121は、アプリケーションモデル特性に従って、アプリケーションによってサポートされ得るオペレーティングシステムをさらに決定することができる。例えば、アプリケーションがOSvシステムをサポートできる場合、展開中分析サブモジュール2121は、アプリケーションに対応する第1のインスタンス作成方法がOSv展開であると決定することができ、あるいはアプリケーションがOSvシステムをサポートしない場合に、展開中分析サブモジュール2121は、アプリケーションに対応する第1のインスタンス作成方法がVM展開であると決定することができる。
【００７４】
展開中分析サブモジュール2121が、アプリケーションに対応する第1のインスタンス作成方法がVM展開であると決定し、VM作成方法が、仮想化技術を使用することによって仮想マシンを作成することを指し、すなわち複数の仮想化技術が使用され得る場合、使用される特定の仮想化技術を、図3に示したやり方と同様のやり方で、予め設定されたルールに従って展開中分析サブモジュール2121によってさらに決定することができることを、理解すべきである。決定は、使用される仮想化技術が決定されるまで終わる。
【００７５】
展開中分析サブモジュール2121が、アプリケーションに対応する第1のインスタンス作成方法がコンテナ展開であると決定した場合、Dockerが先行技術におけるコンテナ展開を管理するための最も頻繁に使用される仮想化管理プログラムであるため、決定は、第1のインスタンス作成方法がコンテナ展開であると決定された後に終わることができ、Docker管理プログラムがコンテナを作成するために使用され、コンテナ展開を管理するための仮想化管理プログラムがより多くの仮想化方法を含む場合、展開中分析サブモジュール2121は、第1のインスタンス作成方法がコンテナ展開であると決定した後に、図3に示したやり方と同様のやり方で予め設定されたルールに従った決定をさらに実行できることを、理解できるであろう。決定は、コンテナの作成に使用される仮想化管理プログラムが決定されるまで終わる。
【００７６】
S1400．複数のコンピュータ装置のうちの第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定する。
【００７７】
本発明のこの実施形態において、第1のインスタンス作成方法を決定した後に、クラウド管理ノード2100内の展開中分析サブモジュール2121は、第1のインスタンス作成方法をアプリケーションオーケストレーションエンジン2110へと送信することができる。第1のインスタンス作成方法を受信した後に、アプリケーションオーケストレーションエンジン2110は、アプリケーションのインスタンスの作成を続けることができる。
【００７８】
具体的には、アプリケーションオーケストレーションエンジン2110は、クラウド管理ノード2100内のクラウドホスト管理および制御モジュール2130へと展開コマンドを送信し、展開コマンドは、展開中分析サブモジュール2121によって決定された第1のインスタンス作成方法を含み、クラウドホスト管理および制御モジュール2130は、展開コマンドに従って、複数のコンピュータデバイスのうちの第1のインスタンス作成方法に対応する第1のコンピュータ装置2200を決定する。クラウドホスト管理および制御モジュール2130は、複数のコンピュータ装置の各々と対応するインスタンス作成方法との対応関係を記憶することができ、クラウドホスト管理および制御モジュール2130は、展開コマンドにおける第1のインスタンス作成方法に従って、各々のコンピュータ装置を対応関係と比較して、対応するコンピュータ装置が第1のコンピュータ装置2200であると決定することができる。
【００７９】
S1500．第1のインスタンス作成コマンドを、第1のコンピュータ装置へと送信し、第1のインスタンス作成コマンドが第1のコンピュータ装置に対して第1のインスタンス作成方法に従ってアプリケーションの第1のインスタンスを作成するように指示するために使用される。
【００８０】
具体的には、クラウド管理ノード2100内のクラウドホスト管理および制御モジュール2130は、第1のインスタンス作成コマンドを第1のコンピュータ装置2200内の第1のクラウドホスト管理エージェントモジュール2210へと送信でき、第1のクラウドホスト管理エージェントモジュール2210は、第1のインスタンス作成コマンドを第1のインスタンス管理モジュール2220へと送信し、第1のインスタンス管理モジュール2220が第1のインスタンス作成方法に対応する。例えば、第1のインスタンス作成方法は、KVMであってよく、これに対応して、第1のインスタンス管理モジュール2220は、仮想化管理プログラムKVM hypervisorである。この場合、第1のインスタンス作成コマンドは、KVM hypervisorへと送信される。あるいは、第1のインスタンス作成方法がベアメタル展開であると決定された場合、第1のインスタンス管理モジュール2220は、物理マシン管理ノードであってよく、ベアメタル展開は、物理マシン管理ノードに対応し、すなわち第1のインスタンス作成コマンドは、物理マシン管理ノードへと送信される。
【００８１】
本発明のこの実施形態において、第1のインスタンス作成方法を含む第1のインスタンス作成コマンドの受信後に、第1のインスタンス管理モジュール2220は、第1のインスタンス作成コマンドに従ってアプリケーションの第1のインスタンスを作成する。図2に示されるように、3つの第1のインスタンス2230をアプリケーションのために作成することができる。具体的なインスタンス作成方法は、先行技術に従うことができる。例えば、第1のインスタンス管理モジュール2220は、仮想化管理プログラムであってよく、例えばKVM hypervisorであり、これに対応し、第1のインスタンス作成方法は、KVMを使用することによるVMの作成である。第1のインスタンス作成方法がVMの作成であると決定された場合、KVM hypervisorは、アプリケーションのための1つ以上のVMを展開する。ここで、VMは第1のインスタンス2230であり、VMによって占有されるリソースを、アプリケーションおよび仮想化技術KVMに従って決定することができる。あるいは、第1のインスタンス管理モジュール2220は仮想化管理プログラムDockerであってよく、Dockerはコンテナの作成に使用され、これに対応し、第1のインスタンス作成方法はコンテナの展開であり、第1のインスタンス作成方法がコンテナの展開であると決定された場合、Dockerは少なくとも1つのコンテナを作成でき、少なくとも1つコンテナは第1のインスタンス2230である。
【００８２】
本発明のこの実施形態において、インスタンスの作成の完了後に、第1のコンピュータ装置2200は、クラウドホスト管理および制御モジュール2130を使用することによって、アプリケーションオーケストレーションエンジン2110へと作成結果を戻すことができる。インスタンスの作成結果に従ってインスタンス作成が完了したと判定した後に、アプリケーションオーケストレーションエンジン2110は、アプリケーションの展開の残りの作業、例えば、アプリケーションモデルに関連するミドルウェアのインストール、アプリケーションのインストール、および初期化スクリプトの実行などのコンテンツを実行でき、クラウド監視システムのための監視コンテンツをさらに設定でき、次いでアプリケーションオーケストレーションエンジン2110による作業の完了後にアプリケーションを実行することができる。
【００８３】
したがって、本出願において提供される自動アプリケーション展開のための方法によれば、仮想化技術をアプリケーション展開の際に自動的に選択することができる。クラウドデータセンタがより多くの仮想化技術をサポートする場合に、アプリケーションによって使用されるインスタンス作成方法のユーザによる決定を必要とする従来からのアプリケーション展開を、回避することができる。ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができる。
【００８４】
本発明のこの実施形態では、アプリケーションの実行プロセスにおいて、クラウド管理ノード2100が、アプリケーションの実行状態に応じて、アプリケーションの移動が必要であるか否かを決定することができる。具体的には、図4が、本発明の一実施形態によるアプリケーション移動方法3000を示している。アプリケーション移動方法3000は、図2に示したクラウドコンピューティングデータセンタに適用可能であり、クラウド管理ノード2100によって実行されてよい。具体的には、アプリケーション移動方法3000は、図2に示した装置のクラウド管理ノード2100によって実行されてよい。
【００８５】
具体的には、図4に示されるように、方法3000は以下のステップを含む。
【００８６】
S3100．第1のインスタンスにおけるアプリケーションの実行について、リアルタイム監視情報を取得し、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する。
【００８７】
本発明のこの実施形態において、クラウド管理ノード2100は、クラウド監視システムを含むことができる。クラウド監視システムのクラウド監視制御モジュール2140が、アプリケーションの実行プロセスを監視し、アプリケーションの実行プロセスにおけるリアルタイム監視情報を取得するように構成される。リアルタイム監視情報は、第1のインスタンスにおけるアプリケーションの実行状況を反映する。リアルタイム監視情報は、アプリケーションのサービスレベル目標（Service−Level Objectives、略して「SLO」）、アプリケーションのリソース使用状況、アプリケーションの実行効率情報、などを含むことができる。アプリケーションの実行効率情報は、アプリケーションの実行時のスループットthroughputと、外部要求へのアプリケーションの応答の実際の時間responseTimeとを含む。クラウド管理ノード2100内のクラウド監視システムは、クラウド監視データベースをさらに含むことができる。クラウド監視データベースは、クラウド監視制御モジュール2140による監視によって得られたアプリケーションのリアルタイム監視情報を格納するために使用される。
【００８８】
随意により、アプリケーションの実行時に、何らかの監視統計情報をログ（log）ファイルに書き込むことができる。クラウド監視制御モジュール2140は、ログを収集し、ルールに従ってログからデータを抽出することによってアプリケーションのリアルタイム監視情報を取得し、リアルタイム監視情報をクラウド監視データベースに格納することができる。
【００８９】
随意により、コンピュータ装置は、クラウド監視サービスエージェントモジュールをさらに含むことができる。クラウド監視サービスエージェントモジュールは、アプリケーションがインスタンス上で動作するときに関連データ（例えば、CPU、メモリ、IO、およびネットワーク）を監視するように構成される。関連データは、コンピュータ装置のリアルタイム監視情報である。クラウド監視サービスエージェントモジュールは、関連データをクラウド監視データベースに報告する。あるいは、コンピュータ装置は、別のモジュールを使用することによってアプリケーションの実行時に関連データを保存でき、クラウド監視制御モジュール2140は、関連データを取得し、関連データをクラウド監視データベースへと格納する。
【００９０】
S3200．リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定し、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる。
【００９１】
本発明のこの実施形態において、クラウド管理ノード2100内の仮想化技術分析モジュール2130は、実行中分析サブモジュール2132をさらに含むことができる。クラウド監視制御モジュール2130は、アプリケーションの実行時に存在する実行状況およびリソース使用状況に従ってリアルタイム監視情報を決定し、リアルタイム監視情報を実行中分析サブモジュール2132へと送信する。実行中分析サブモジュール2132は、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定でき、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる。
【００９２】
随意により、一実施形態において、実行中分析サブモジュール2132は、強化学習（Reinforcement Learning）アルゴリズムを使用することにより、リアルタイム監視情報に従って、アプリケーションが第1のインスタンスに保たれ、移動させられない場合に得られる第1の報酬（Reward）と、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬とを決定し、第1の報酬が第2の報酬以上である場合に、アプリケーションを第1のインスタンスに保ち、アプリケーションを移動させないと決定し、第1の報酬が第2の報酬よりも低い場合に、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定することができる。
【００９３】
具体的には、実行中分析サブモジュール2132は、表1に示されるように、Reinforcement Learningアルゴリズムを使用することによってリアルタイム監視情報に従って第1の報酬および第2の報酬を別々に決定することができる。
【００９４】
【表１】
2019503535.tif 000005
【００９５】
Sは、アプリケーションが或る状態にあることを示す。例えば、表1のS1、S2、およびS3は、それぞれアプリケーションの3つの異なる状態に対応でき、表中のすべてのS、すなわち表1のS1、S2、およびS3は、現在使用されている仮想化技術の状態に対応するアプリケーションのすべての性能状態を表す。例えば、S1は、CPU使用率0〜10％を表すことができ、S2は、10〜30％のCPU使用率を表すことができ、S3は、30％を超えるCPU使用率を表すことができる。すなわち、仮想化技術が決定されるとき、リソース使用状況は、種々の状態を含むことができる。種々の状態を、Sによって表すことができ、現在の状態は、種々の状態のうちの1つである。表1のAは、アプリケーションを移動させる動作または移動させない動作を表す。例えば、表1のA1、A2、A3、およびA4の場合、A1は、アプリケーションを第1のインスタンスに保ち、アプリケーションを移動させない動作を表すことができ、A2、A3、およびA4は、それぞれアプリケーションを第1のインスタンスから3つの別の作成方法で作成されたインスタンスへと移動させる動作を表す。Rは、報酬（Reward）を表す。例えば、表1のRの値の最初の行について、R11は、第1の報酬、すなわちアプリケーションを第1のインスタンスに保ち、移動させない場合に得られる報酬を表すことができ、R12、R13、およびR14はいずれも、第2の報酬、すなわちアプリケーションを第1のインスタンスから3つの別の作成方法で作成されたインスタンスへと移動させたときにそれぞれ得られる報酬である。R11が最も大きい場合、アプリケーションは第1のインスタンスに保たれ、移動は行われない。R12、R13、またはR14の少なくとも1つがR11より大きい場合、アプリケーションは、第1のインスタンスから第2のインスタンスへと移動させられ、第2のインスタンスがR12、R13、およびR14のうちの最大の値に対応する。
【００９６】
表1のRの値を、関数を使用することによって関連指標に従って計算できることを、理解されたい。関連指標は、アプリケーションの性能であってよく、例えば、アプリケーションの応答時間、リソース使用率、移動のオーバーヘッド、または仮想化技術のオーバーヘッドであってよい。さらに、表1は、或る時間間隔で更新されるように設定されてもよい。アプリケーションの第1のインスタンスから第2のインスタンスへの移動後に、表1の対応する報酬は、時間内に更新されるべきである。
【００９７】
随意により、一実施形態においては、表1の報酬を以下の式（1）に従って計算することができる。
【００９８】
【数３】
2019503535.tif 000006
【００９９】
Aは、調整係数を表し、responseTimeは、外部要求に対するアプリケーションの実際の応答時間を表し、リアルタイム監視情報から得られ、Timeは、外部要求に対するアプリケーションの予め設定された応答時間を表し、Utilizationは、アプリケーションの実行時に占有される複数のリソースの各々のリソース利用率、すなわちアプリケーションによって占有されるリソースにおいてアプリケーションによってすでに利用されているリソースのパーセンテージを表し、
【０１００】
【数４】
2019503535.tif 000007
【０１０１】
は、複数のリソース使用率の積を表す。CostOfTransitionは、移動のオーバーヘッドであり、CostOfTransitionの値は、計算される報酬に関連付けられる。式に従って計算される報酬が、アプリケーションが第1のインスタンスに保たれるときに得られる第1の報酬である場合、CostOfTransitionの値は0である。式に従って計算される報酬が、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられたときに得られる第2の報酬である場合、CostOfTransitionは、第1のインスタンスからの移動のためのオーバーヘッドおよび第2のインスタンスへの移動のためのオーバーヘッドの合計を表す。CostOfTechnologyは、仮想化技術のオーバーヘッドである。各々の仮想化技術について、対応するCostOfTechnologyは、定数であり得る。具体的には、CostOfTechnologyを、CostOfTechnology＝Σ（B＊C）に従って計算することができる。Bは、仮想化技術によって生じる複数のオーバーヘッドを表し、Cは、アプリケーションにおけるBの重みを表し、Bの値は、計算される報酬に関連付けられる。式に従って計算される報酬が、アプリケーションが第1のインスタンスに保たれる場合に得られる第1の報酬である場合、Bは、第1のインスタンス作成方式に対応する仮想化技術によって生じる複数のオーバーヘッドの各々に設定される。式に従って計算される報酬が、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬である場合、Bは、第2のインスタンス作成方式に対応する仮想化技術によって生じる複数のオーバーヘッドの各々に設定される。特には、Bは、CPUオーバーヘッド、メモリオーバーヘッド、ネットワークオーバーヘッド、または磁気ディスクIOオーバーヘッドなどの性能オーバーヘッドを表すことができる。
【０１０２】
随意により、一実施形態においては、表1の報酬を以下の式（2）に従って計算することができる。
【０１０３】
【数５】
2019503535.tif 000008
【０１０４】
Aは、調整係数を表し、throughputは、リアルタイム監視情報から得られ、アプリケーションの実行時のスループットを表し、TPは、アプリケーションの実行時のスループットの予め設定された値を表す。ここでのスループットが、データスループットであってよく、すなわちthroughputは、アプリケーションの実行時のデータスループットを表し、対応するTPは、アプリケーションの実行時のデータスループットの予め設定された値を表すことを、理解すべきである。あるいは、スループットは、ネットワークIO要求によってもたらされるスループットであってもよく、すなわちthroughputは、アプリケーションの実行時にネットワークIO要求によってもたらされるスループットを表し、対応するTPは、アプリケーションの実行時にネットワークIO要求によってもたらされるスループットの予め設定された値である。本発明のこの実施形態は、これに限られるわけではない。Utilizationは、アプリケーションの実行時に占有される複数のリソースの各々の利用率、すなわちアプリケーションによって占有されるリソースにおいてアプリケーションによってすでに利用されているリソースのパーセンテージを表し、
【０１０５】
【数６】
2019503535.tif 000009
【０１０６】
は、複数のリソース使用率の積を表す。CostOfTransitionおよびCostOfTechnologyは、式（1）のそれらと同様である。CostOfTransitionは、移動のオーバーヘッドであり、CostOfTransitionの値は、計算される報酬に関連付けられる。式に従って計算される報酬が、アプリケーションが第1のインスタンスに保たれるときに得られる第1の報酬である場合、CostOfTransitionは0に設定される。式に従って計算される報酬が、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられたときに得られる第2の報酬である場合、CostOfTransitionは、第1のインスタンスからの移動のためのオーバーヘッドおよび第2のインスタンスへの移動のためのオーバーヘッドの合計を表す。CostOfTechnologyは、仮想化技術のオーバーヘッドである。CostOfTechnology＝Σ（B＊C）。Bは、仮想化技術によって生じる複数のオーバーヘッドを表し、Cは、アプリケーションにおけるBの重みを表し、Bの値は、計算される報酬に関連付けられる。式に従って計算される報酬が、アプリケーションが第1のインスタンスに保たれる場合に得られる第1の報酬である場合、Bは、第1のインスタンス作成方式に対応する仮想化技術によって生じる複数のオーバーヘッドの各々に設定される。式に従って計算される報酬が、アプリケーションが第1のインスタンスから第2のインスタンスへと移動させられる場合に得られる第2の報酬である場合、Bは、第2のインスタンス作成方式に対応する仮想化技術によって生じる複数のオーバーヘッドの各々に設定される。特には、Bは、CPUオーバーヘッド、メモリオーバーヘッド、ネットワークオーバーヘッド、または磁気ディスクIOオーバーヘッドなどの性能オーバーヘッドを表すことができる。
【０１０７】
本発明のこの実施形態において、表1の報酬は、例えば式（1）または式（2）を使用することによって決定され、あるいは式について等価な変換または変更を実行することによって得られる別の式を使用することによって決定されるなど、複数の方法または式を使用することによって決定されてよい。各々の計算方法ごとに、移動のオーバーヘッドCostOfTransitionおよび仮想化技術のオーバーヘッドCostOfTechnologyが含まれるが、性能パラメータは異なり得る。性能パラメータを、アプリケーションの実際の要件に従って決定することができる。例えば、式（1）の性能パラメータは、応答時間responseTimeであり、応答時間の要件を有するいくつかのアプリケーションに関して、式（1）に従って報酬を計算することができ、式（2）の性能パラメータは、スループットthroughputであり、例えばスループットについての要件が比較的高く、応答時間には影響されにくいオフライン分析など、応答時間に影響されにくいアプリケーションに関して、式（2）を使用することができる。随意により、性能パラメータは、例えば分析速度（analyseSpeed）などの別のパラメータであってよく、対応する式を、対応する変換および調整を実行することによって得ることができる。本発明のこの実施形態は、これに限られるわけではない。実際の応用において、さまざまな種類のアプリケーション、データセンタのさまざまな規模、およびデータセンタのさまざまな種類のアーキテクチャについて、最適な効果を、個別の環境に応じて学習方法およびその機能を最適化するだけで得ることができる。これは、機械学習アルゴリズムの特性でもある。
【０１０８】
本発明のこの実施形態において、表1の報酬を、式（1）または式（2）を使用することによって決定することができる。この2つの式は、両方とも、移動のオーバーヘッドCostOfTransitionおよび仮想化技術のオーバーヘッドCostOfTechnologyに関係している。随意により、仮想化技術分析モジュール2120は、知識ベースをさらに含むことができる。知識ベースは、実行中分析サブモジュール2122のためのサポートを提供するために主に使用され、例えばCostOfTransitionおよびCostOfTechnologyを計算するために必要なデータを格納するために使用され得る。
【０１０９】
具体的には、知識ベースは、仮想化技術のオーバーヘッド、仮想化技術の移動のオーバーヘッド、履歴学習システム最適化情報、などを格納することができる。知識ベースに履歴学習システム最適化情報が格納されているということは、実行中分析サブモジュール2122がReinforcement Learningなどの機械学習アルゴリズムを使用することによって報酬を計算すると、履歴格納状態セットが後の学習のための最適入力情報として格納されることを意味する。
【０１１０】
随意により、一実施形態においては、CostOfTechnologyの値を計算するために、表2に示されるオーバーヘッド値を、知識ベースに格納することができる。
【０１１１】
【表２】
2019503535.tif 000010
【０１１２】
表2は、種々のインスタンス作成方法において、種々のリソースについて、仮想化が実行されるときに生じるオーバーヘッド、すなわち或るインスタンス作成方法または仮想化技術が使用されるときに占有されるそれぞれのリソースの占有状態を、列挙するために主に用いられる。占有状態は、使用リソースおよび不使用リソースを含み、各々の行は、インスタンス作成方式に対応でき、ここでは5つのインスタンス作成方式だけが、説明のための例として使用されている。各々の列は、性能オーバーヘッドに対応し、ここでは4つのオーバーヘッドだけが、説明のための例として使用されている。
【０１１３】
表2の各々のオーバーヘッド値が、相対的な値であり、すなわち或るインスタンス作成方法にて作成されたインスタンスにおいてアプリケーションが実行されるときの全時間のうちのそれぞれの消費時間のパーセンテージまたは全リソースに対する消費リソースのパーセンテージであることを、理解すべきである。表2の各々のオーバーヘッド値の範囲は、0から正の無限大までである。オーバーヘッド値が0に設定されるとき、物理マシン（ベアメタル）が示される。CostOfTechnologyの値を計算するために、図2に示されるオーバーヘッド値を式（1）および式（2）に代入することができる。
【０１１４】
随意により、一実施形態においては、表3に示すオーバーヘッド値を、知識ベースにさらに格納することができる。
【０１１５】
【表３】
2019503535.tif 000011
【０１１６】
表3は、インスタンスのアプリケーションデータを或るインスタンスから別のインスタンスへと移動させるために必要なオーバーヘッドを示している。オーバーヘッドを、式（1）および式（2）のCostOfTransitionの値を計算するために使用することができる。各々の行は、インスタンス作成方法に対応することができる。ここでは、説明のための例として、5つのインスタンス作成方法だけが使用されている。表3において、一方の列は、インスタンスからアプリケーションデータを移動させるために必要なオーバーヘッドに対応し、もう一方の列は、インスタンスへとアプリケーションデータを移動させるために必要なオーバーヘッドに対応する。
【０１１７】
表3のオーバーヘッド値が、相対値であってもよいことを、理解されたい。例えば、表3のアウト移動オーバーヘッドの列における各々のアウト移動オーバーヘッド値の計算のために、単位データ量のアウト移動に費やされる時間を種々のインスタンス作成方法のそれぞれについてまず計算することができ、次いで或る1つのインスタンス生成方法を基準として使用して、この基準に対する他のインスタンス作成方法の相対値、すなわちそのインスタンス作成方法のアウト移動オーバーヘッド値を、別々に計算することができる。例えば、ベアメタルを基準として使用して、単位データ量のアウト移動に費やされる時間が計算され、別のインスタンス作成方式について計算された結果のベアメタルの結果に対する比率が計算される。比率が、別のインスタンス作成方法のオーバーヘッド値であり、ベアメタルのアウト移動オーバーヘッド値が1に設定される。同様に、イン移動オーバーヘッド値の計算は、アウト移動オーバーヘッド値の計算と同様であり、計算値はやはり相対値である。
【０１１８】
本発明のこの実施形態において、仮想化技術分析モジュール2120内の実行中分析サブモジュール2122は、上述のReinforcement Learningアルゴリズムを使用することによって移動を実行するか否かを決定でき、あるいは別のやり方で移動を実行するかを決定することができる。本発明のこの実施形態は、これに限られるわけではない。
【０１１９】
例えば、小規模なクラウドデータセンタにおいては、ゲームクラウド、金融クラウド、およびアプリケーションクラウドなど、いくつかの種類のクラウドについて、最適化が一般的に実行され得る。これらのクラウドにおいて、種々のクラウドユーザの要件を満たすように、データセンタに集中させられた主要アプリケーションについて、さまざまな観点から最適化が実行される。データベース、キャッシュ、およびWebサービスなどのいくつかの主要アプリケーションには、比較的明白な特性およびリソース要件の種類を有する。したがって、小規模なクラウドデータセンタが比較的単純な環境を有する場合、上述のReinforcement Learningアルゴリズムなどの包括的な機械学習分析システムを使用する必要はなく、単純な決定樹のみを使用して、インスタンスの移動を実行するか否かを分析することができる。
【０１２０】
具体的には、データベースが例として使用される。データベースは、クラウドデータセンタにおいて明白な特性を有する比較的一般的なアプリケーションであり、そのようなアプリケーションは、移動が困難な大量のデータを有する。アプリケーションのためのインスタンスを作成するために、通常は、ユーザデータボリュームの継続的な拡張に対応するために、充分な大きさのVMが作成される。クラウド監視制御モジュール2140は、データベースの動作期間の間、データベースを継続的に監視することができ、SLA、スループット、クエリキュー状態、などのリアルタイム監視情報を収集する。実行中分析サブモジュール2122は、リアルタイム監視情報に従って分析を実行することができる。例えば、データベースがタスク段階において動作している場合、データベースに対するクエリ操作は存在しない。この場合、データベースに割り当てられたすべてのリソースは、不使用状態であると考えることができる。ここでの不使用状態は、以下のように定義することができ、すなわちデータベースが現時点において使用中であるか否かを、監視されたスループット、クエリキュー状態、およびアプリケーションのタスク処理モデルから識別される種々の段階におけるデータベースへのアクセスの状態に従って識別することができる。データベースが現時点において使用されていない場合、データベースは実行すべきタスク（例えば、検索タスク）を有さず、あるいはデータベースがアイドル状態にあり、データベースに割り当てられたすべてのリソースが不使用状態になっている。この場合、実行中分析サブモジュール2122は、データベースの対応するポリシーに従って、使用されていないデータベースをコンテナへと移動させることができ、すなわちデータベースは、第1のインスタンスVMから第2のインスタンスコンテナへと移動させられる。このようにして、リソースの無駄を回避でき、データベースからデータが失われることがない。
【０１２１】
別の例では、アプリケーションによって現在使用されている第1のインスタンスがVMであり、実行中分析サブモジュール2132は、アプリケーションのリアルタイム監視情報に従って、アプリケーションの作業段階においてアプリケーションによって使用されるメモリが常にゆっくりと変化する（例えば、ゆっくりと増加し、あるいはゆっくりと減少する）と判定できる。この場合、アプリケーションをContainerへと移動させることが、より良好な効果を有する。このように、Containerのメモリリソースはいつでも変更され得るため、Containerへの移動はメモリを浪費しないかもしれない。実行中分析サブモジュール2132が、リアルタイム監視情報に従って、或る段階においてアプリケーションによって使用されるメモリの量が固定であると決定する場合、アプリケーションは、移動することなくVMを使用し続けることができる。
【０１２２】
別の例では、アプリケーションによって現在使用されている第1のインスタンスがVMであり、実行中分析サブモジュール2132は、アプリケーションのリアルタイム監視情報に従って、アプリケーションが作業段階において大量のスレッドおよびコンテキストスイッチングを有すると判定する。この場合、VMを使用することによるスケジューリングの実行は、大量のCPUオーバーヘッドを引き起こす（VM自身がCPUを仮想化するため、関連するマルチスレッドスイッチングがより大きなオーバーヘッドを引き起こす）。この場合、Containerへの移動がより良好な効果（regard）を有する。
【０１２３】
別の例では、アプリケーションによって現在使用されている第1のインスタンスがContainerであり、実行中分析サブモジュール2132が、リアルタイム監視情報に従って、アプリケーションが或る作業段階においてカーネルセンシティブなデータを操作する必要があると判定するとき、他のContainerへの危険が、Containerが同じカーネルを共有する場合に従って引き起こされる可能性がある。したがって、このような作業段階においては、アプリケーションを、セキュリティを考慮してVMへと移動させるべきである。
【０１２４】
別の例では、アプリケーションによって現在使用されている第1のインスタンスが、Containerである。Containerの移動の際に、例えばアプリケーションを全体として物理マシンへと移動させる必要がある場合に、コンテナはシステムによって呼び出された移動を完全には処理できないが、VMは完全な移動を保証することができる。したがって、アプリケーションが位置するインスタンスを全体として移動させる必要がある場合、アプリケーションを最初に第2のインスタンスへと移動させることができ、アプリケーションがVMで動作した後で、アプリケーションは全体として例えば物理マシンへと移動させられる。
【０１２５】
本発明のこの実施形態において、図2に示されるように、クラウド管理ノード2100は、ライフサイクル管理モジュール2150をさらに含むことができる。仮想化技術分析モジュール2120内の実行中分析サブモジュール2122が、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させることができると決定した後に、クラウドホスト管理および制御モジュール2130は、第2のインスタンス作成コマンドを複数のコンピュータ装置のうちの第2のコンピュータ装置2300へと送信することができ、第2のインスタンス作成コマンドは、第2のインスタンス作成方法を含み、第2のインスタンス作成方法は、第2のコンピュータ装置2300に第2のインスタンスの作成を指示するために使用される。第2のコンピュータ装置2300がインスタンスの作成を完了した後に、クラウドホスト管理および制御モジュール2130は、ライフサイクル管理モジュール2150に移動タスクを送信することができる。移動タスクに従い、ライフサイクル管理モジュール2150は、第1のインスタンスにおけるアプリケーションの実行を停止し、第2のインスタンスにおいてアプリケーションを実行し、すなわちオンラインでアプリケーションを第1のインスタンスから第2のインスタンスへと移動させる。
【０１２６】
具体的には、ライフサイクル管理モジュール2150は、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させ、すなわち第1のインスタンスにおけるアプリケーションの実行時に使用されたデータソースに基づいて第2のインスタンスにおいてアプリケーションを実行するように第2のコンピュータ装置に指示する。随意により、アプリケーションが実行状態にあるとき、第2のコンピュータ装置に、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいて第2のインスタンスにおいてアプリケーションを実行するようにさらに指示することができる。
【０１２７】
したがって、本発明のこの実施形態における自動アプリケーション展開のための方法によれば、仮想化技術をアプリケーションの展開時に自動的に選択することができるだけでなく、アプリケーションを現在のインスタンスから別のインスタンスに移動させるかどうかを、アプリケーションが実行されているときに決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、アプリケーションによって使用されるインスタンス作成方法のユーザによる決定を必要とする従来からのアプリケーション展開を、回避することができる。ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができ、アプリケーションの実行時に仮想化技術の種類をより柔軟に調整することができることで、リソースの利用が改善され、リソースの無駄が回避される。
【０１２８】
以上、図1〜図4を参照して、本発明のこの実施形態による自動アプリケーション展開のための方法を、詳細に説明した。次に、図5〜図8を参照して、本発明の一実施形態による自動アプリケーション展開のための装置を説明する。
【０１２９】
図5が、本発明の一実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノード4000の概略のブロック図である。クラウドコンピューティングデータセンタは、複数のコンピュータ装置を含む。クラウド管理ノード4000は、複数のコンピュータ装置のうちの少なくとも1つに配置される。図5に示されるように、クラウド管理ノード4000は、アプリケーションオーケストレーションエンジン4100と、仮想化技術分析モジュール4200と、クラウドホスト管理および制御モジュール4300とを含む。
【０１３０】
アプリケーションオーケストレーションエンジン4100は、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるように構成される。
【０１３１】
アプリケーションオーケストレーションエンジン4100は、アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するようにさらに構成される。
【０１３２】
仮想化技術分析モジュール4200は、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定するように構成される。
【０１３３】
クラウドホスト管理および制御モジュール4300は、複数のコンピュータ装置において、第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するように構成される。
【０１３４】
クラウドホスト管理および制御モジュール4300は、第1のインスタンス作成コマンドを第1のコンピュータ装置へと送信するようにさらに構成され、第1のインスタンス作成コマンドは、第1のコンピュータ装置に対して第1のインスタンス作成方法に従ってアプリケーションのための第1のインスタンスを作成するように指示するために使用される。
【０１３５】
したがって、このアプリケーションにおいて提供されるクラウド管理ノードは、アプリケーションの展開時に仮想化技術を自動的に選択することができる。クラウドデータセンタがより多くの仮想化技術をサポートする場合に、アプリケーションによって使用されるインスタンス作成方法のユーザによる決定を必要とする従来からのアプリケーション展開を、回避することができる。ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができる。
【０１３６】
随意により、予め設定されたルールは、アプリケーションがスケーラブルではないアプリケーションである場合に、第1のインスタンス作成方法がベアメタル作成方法であることを含み、アプリケーションオーケストレーションエンジン4100は、アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、アプリケーションがスケーラブルではないアプリケーションである旨をアプリケーションモデル特性が含むと判定するように特に構成され、仮想化技術分析モジュール4200は、アプリケーションがスケーラブルではないアプリケーションである場合に、予め設定されたルールに従って、第1のインスタンス作成方法がベアメタル作成方法であると決定するように特に構成される。
【０１３７】
随意により、予め設定されたルールは、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、第1のインスタンス作成方法がコンテナ作成方法であることを含み、アプリケーションオーケストレーションエンジン4100は、アプリケーションオーケストレーションテンプレート内のアプリケーションの処理内容に従って、アプリケーションが実行状態にない旨またはアプリケーションの実行状態が安定状態である旨をアプリケーションモデル特性が含むと判定するように特に構成され、仮想化技術分析モジュール4200は、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がコンテナ作成方法であると決定するように特に構成される。
【０１３８】
随意により、予め設定されたルールは、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、第1のインスタンス作成方法がコンテナ作成方法であることを含み、アプリケーションオーケストレーションエンジン4100は、アプリケーションオーケストレーションテンプレート内のアプリケーションのサービスレベル合意SLAに従って、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である旨をアプリケーションモデル特性が含むと判定するように特に構成され、仮想化技術分析モジュール4200は、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がコンテナ作成方法であると決定するように特に構成される。
【０１３９】
随意により、予め設定されたルールは、アプリケーションがOSvオペレーティングシステムをサポートする場合に、第1のインスタンス作成方法がOSv作成方法であることを含み、アプリケーションオーケストレーションエンジン4100は、アプリケーションオーケストレーションテンプレート内のアプリケーションによってサポートされるオペレーティングシステムに従って、アプリケーションがOSvオペレーティングシステムをサポートする旨をアプリケーションモデル特性が含むと判定するように特に構成され、仮想化技術分析モジュール4200は、アプリケーションがOSvオペレーティングシステムをサポートする場合に、予め設定されたルールに従って、第1のインスタンス作成方法がOSv作成方法であると決定するように特に構成される。
【０１４０】
随意により、第1のインスタンス作成方法は、仮想マシンVM作成方法である。
【０１４１】
随意により、クラウド管理ノードは、クラウド監視制御モジュール4400をさらに含む。クラウド監視制御モジュール4400は、第1のインスタンスにおけるアプリケーションの実行について、リアルタイム監視情報を取得するように構成され、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する。仮想化技術分析モジュール4200は、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するようにさらに構成され、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる。
【０１４２】
随意により、複数のコンピュータ装置は、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、クラウド管理ノードは、ライフサイクル管理モジュール4500をさらに含む。クラウドホスト管理および制御モジュール4300は、仮想化技術分析モジュール4200がアプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを第2のコンピュータ装置へと送信し、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ように構成される。ライフサイクル管理モジュール4500は、アプリケーションを実行のために第2のインスタンスへと移動させるように構成される。
【０１４３】
随意により、ライフサイクル管理モジュール4500は、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１４４】
随意により、アプリケーションが実行状態にある場合に、ライフサイクル管理モジュール4500は、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１４５】
随意により、アプリケーションは、データベースであり、仮想化技術分析モジュール4200は、リアルタイム監視情報に従って、データベースがアイドル状態であると判定し、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定し、第2のインスタンスがコンテナ作成方法にて作成される、ようにさらに構成される。
【０１４６】
本発明のこの実施形態によるクラウド管理ノード4000が、本発明の実施形態における方法1000を相応に実行できることを、理解すべきである。クラウド管理ノード4000は、図2のクラウド管理ノード2100に対応でき、クラウド管理ノード4000の各モジュールの上述の動作および／機能ならびに他の動作および／または機能は、図1の方法の該当の手順をそれぞれ実行するために使用される。簡潔にするため、詳細をここで再び説明することはしない。
【０１４７】
したがって、本発明のこの実施形態におけるクラウド管理ノードは、アプリケーションの展開の最中に仮想化技術を自動的に選択できるとともに、アプリケーションの実行時にアプリケーションを現在のインスタンスから別のインスタンスへと移動させるか否かを決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、アプリケーションによって使用されるインスタンス作成方法のユーザによる決定を必要とする従来からのアプリケーション展開を、回避することができる。ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができ、アプリケーションの実行時に仮想化技術の種類をより柔軟に調整することができることで、リソースの利用が改善され、リソースの無駄が回避される。
【０１４８】
図6が、本発明の一実施形態によるクラウドコンピューティングデータセンタのクラウド管理ノード5000の概略のブロック図を示している。クラウドコンピューティングデータセンタは、複数のコンピュータ装置を含む。クラウド管理ノード5000は、複数のコンピュータ装置のうちの少なくとも1つに配置される。複数のコンピュータ装置は、第1のコンピュータ装置を含み、第1のコンピュータ装置は、第1のインスタンス作成方法にてアプリケーションのための第1のインスタンスを作成する。図6に示されるように、クラウド管理ノード5000は、
第1のインスタンスにおけるアプリケーションの実行時に、第1のインスタンスにおけるアプリケーションの実行のリアルタイム監視情報を取得し、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する、ように構成されたクラウド監視制御モジュール5100と、
リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定し、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる、ように構成された仮想化技術分析モジュール5200と
を含む。
【０１４９】
したがって、本発明のこの実施形態におけるクラウド管理ノードは、アプリケーションの実行時にアプリケーションを現在のインスタンスから別のインスタンスへと移動させるか否かを決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、仮想化技術のリアルタイム分析および切り換えを実現することができ、仮想化技術の種類をより柔軟に調整することにより、リソースの利用を改善し、リソースの浪費を回避することができる。
【０１５０】
随意により、複数のコンピュータ装置は、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、クラウド管理ノードは、仮想化技術分析モジュール5200がアプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを第2のコンピュータ装置へと送信し、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ように構成されたクラウドホスト管理および制御モジュール5300と、アプリケーションを実行のために第2のインスタンスへと移動させるように構成されたライフサイクル管理モジュール5400とをさらに備える。
【０１５１】
随意により、ライフサイクル管理モジュール5400は、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１５２】
随意により、アプリケーションが実行状態にある場合に、ライフサイクル管理モジュール5400は、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１５３】
随意により、アプリケーションは、データベースであり、仮想化技術分析モジュール5200は、リアルタイム監視情報に従って、データベースがアイドル状態であると判定し、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定し、第2のインスタンスがコンテナ作成方法にて作成される、ようにさらに構成される。
【０１５４】
本発明のこの実施形態によるクラウド管理ノード5000が、本発明の実施形態における方法2000を相応に実行できることを、理解すべきである。クラウド管理ノード5000は、図2のクラウド管理ノード2100に対応でき、クラウド管理ノード5000の各モジュールの上述の動作および／機能ならびに他の動作および／または機能は、図4の方法の該当の手順をそれぞれ実行するために使用される。簡潔にするため、詳細をここで再び説明することはしない。
【０１５５】
したがって、本発明のこの実施形態におけるクラウド管理ノードは、アプリケーションの実行時にアプリケーションを現在のインスタンスから別のインスタンスへと移動させるか否かを決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、仮想化技術のリアルタイム分析および切り換えを実現することができ、仮想化技術の種類をより柔軟に調整することにより、リソースの利用を改善し、リソースの浪費を回避することができる。
【０１５６】
図7に示されるように、本発明の実施形態は、クラウドコンピューティングデータセンタのクラウド管理ノード6000をさらに提供する。クラウドコンピューティングデータセンタは、複数のコンピュータ装置を含む。クラウド管理ノード6000は、複数のコンピュータ装置のうちの少なくとも1つに配置される。クラウド管理ノード6000は、プロセッサ6100およびトランシーバ6200を含み、プロセッサ6100は、トランシーバ6200に接続される。随意により、クラウド管理ノード6000は、メモリ6300をさらに含み、メモリ6300は、プロセッサ6100に接続される。さらに、随意により、クラウド管理ノード6000は、バスシステム6400を含む。プロセッサ6100、メモリ6300、およびトランシーバ6200を、バスシステム6400を使用して互いに接続することができる。メモリ6300を、命令を格納するために使用することができ、プロセッサ6100は、メモリ6300に格納された命令を実行して、情報または信号を送信または受信すべくトランシーバ6200を制御するように構成される。トランシーバ6200は、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるように構成される。プロセッサ6100は、アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析し、アプリケーションモデル特性および予め設定されたルールに従って、アプリケーションに対応する第1のインスタンス作成方法を決定し、複数のコンピュータ装置のうちの第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するように構成される。トランシーバ6200は、第1のインスタンス作成コマンドを第1のコンピュータ装置へと送信するようにさらに構成され、第1のインスタンス作成コマンドは、第1のコンピュータ装置に対して第1のインスタンス作成方法に従ってアプリケーションのための第1のインスタンスを作成するように指示するために使用される。
【０１５７】
随意により、予め設定されたルールは、アプリケーションがスケーラブルではないアプリケーションである場合に、第1のインスタンス作成方法がベアメタル作成方法であることを含み、プロセッサ6100は、アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、アプリケーションがスケーラブルではないアプリケーションである旨をアプリケーションモデル特性が含むと判定し、アプリケーションがスケーラブルではないアプリケーションである場合に、予め設定されたルールに従って、第1のインスタンス作成方法がベアメタル作成方法であると決定するように特に構成される。
【０１５８】
随意により、予め設定されたルールは、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、第1のインスタンス作成方法がコンテナ作成方法であることを含み、プロセッサ6100は、アプリケーションオーケストレーションテンプレート内のアプリケーションの処理内容に従って、アプリケーションが実行状態にない旨またはアプリケーションの実行状態が安定状態である旨をアプリケーションモデル特性が含むと判定し、アプリケーションが実行状態になく、あるいはアプリケーションの実行状態が安定状態である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がコンテナ作成方法であると決定するように特に構成される。
【０１５９】
随意により、予め設定されたルールは、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、第1のインスタンス作成方法がコンテナ作成方法であることを含み、プロセッサ6100は、アプリケーションオーケストレーションテンプレート内のアプリケーションのサービスレベル合意SLAに従って、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である旨をアプリケーションモデル特性が含むと判定し、アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、予め設定されたルールに従って、第1のインスタンス作成方法がコンテナ作成方法であると決定するように特に構成される。
【０１６０】
随意により、予め設定されたルールは、アプリケーションがOSvオペレーティングシステムをサポートする場合に、第1のインスタンス作成方法がOSv作成方法であることを含み、プロセッサ6100は、アプリケーションオーケストレーションテンプレート内のアプリケーションによってサポートされるオペレーティングシステムに従って、アプリケーションがOSvオペレーティングシステムをサポートする旨をアプリケーションモデル特性が含むと判定し、アプリケーションがOSvオペレーティングシステムをサポートする場合に、予め設定されたルールに従って、第1のインスタンス作成方法がOSv作成方法であると決定するように特に構成される。
【０１６１】
随意により、第1のインスタンス作成方法は、仮想マシンVM作成方法である。
【０１６２】
随意により、プロセッサ6100は、第1のインスタンスにおけるアプリケーションの実行のリアルタイム監視情報を取得し、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映し、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定し、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる、ように特に構成される。
【０１６３】
随意により、複数のコンピュータ装置は、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、トランシーバ6200は、プロセッサ6100がアプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを第2のコンピュータ装置へと送信し、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ように特に構成される。プロセッサ6100は、アプリケーションを実行のために第2のインスタンスへと移動させるようにさらに構成される。
【０１６４】
随意により、プロセッサ6100は、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１６５】
随意により、アプリケーションが実行状態にある場合に、プロセッサ6100は、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１６６】
随意により、アプリケーションは、データベースであり、プロセッサ6100は、リアルタイム監視情報に従って、データベースがアイドル状態であると判定し、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定し、第2のインスタンスがコンテナ作成方法にて作成される、ようにさらに構成される。
【０１６７】
本発明のこの実施形態によるクラウド管理ノード6000が、本発明の実施形態におけるクラウド管理ノード4000に相当でき、本発明の実施形態における方法1000を相応に実行することができ、クラウド管理ノード6000の各モジュールの上述の動作および／機能ならびに他の動作および／または機能が、図1の方法の該当の手順をそれぞれ実行するために使用されることを、理解すべきである。簡潔にするため、詳細をここで再び説明することはしない。
【０１６８】
したがって、本発明のこの実施形態におけるクラウド管理ノードは、アプリケーションの展開の最中に仮想化技術を自動的に選択できるとともに、アプリケーションの実行時にアプリケーションを現在のインスタンスから別のインスタンスへと移動させるか否かを決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、アプリケーションによって使用されるインスタンス作成方法のユーザによる決定を必要とする従来からのアプリケーション展開を、回避することができる。ユーザの作業を減らすことができ、ユーザの誤った選択によって引き起こされるアプリケーション効率の低下およびデータセンタのリソースの浪費の問題を、或る程度回避することができ、アプリケーションの実行時に仮想化技術の種類をより柔軟に調整することができることで、リソースの利用が改善され、リソースの無駄が回避される。
【０１６９】
図8に示されるように、本発明の実施形態は、クラウドコンピューティングデータセンタのクラウド管理ノード7000をさらに提供する。クラウド管理ノード7000は、複数のコンピュータ装置のうちの少なくとも1つに配置される。複数のコンピュータ装置は、第1のコンピュータ装置を含み、第1のコンピュータ装置は、第1のインスタンス作成方法にてアプリケーションのための第1のインスタンスを作成する。クラウド管理ノード7000は、プロセッサ7100およびトランシーバ7200を含み、プロセッサ7100は、トランシーバ7200に接続される。随意により、クラウド管理ノード7000は、メモリ7300をさらに含み、メモリ7300は、プロセッサ7100に接続される。さらに、随意により、クラウド管理ノード7000は、バスシステム7400を含む。プロセッサ7100、メモリ7300、およびトランシーバ7200を、バスシステム7400を使用して互いに接続することができる。メモリ7300を、命令を格納するために使用することができ、プロセッサ7100は、メモリ7300に格納された命令を実行して、情報または信号を送信または受信すべくトランシーバ7200を制御するように構成される。
【０１７０】
トランシーバ7200は、アプリケーションの第1のインスタンスにおける実行時に、第1のインスタンスにおけるアプリケーションの実行について、リアルタイム監視情報を取得し、リアルタイム監視情報が第1のインスタンスにおけるアプリケーションの実行状況を反映する、ように構成される。
【０１７１】
プロセッサ7100は、リアルタイム監視情報に従って、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させるか否かを決定し、第2のインスタンスが第2のインスタンス作成方法にて作成され、第2のインスタンス作成方法が第1のインスタンス作成方法とは異なる、ように構成される。
【０１７２】
随意により、複数のコンピュータ装置は、第2のコンピュータ装置を含み、第2のコンピュータ装置は、第2のインスタンス作成方法に対応し、トランシーバ7200は、プロセッサ7100がアプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを第2のコンピュータ装置へと送信し、第2のインスタンス作成コマンドが第2のコンピュータ装置に対して第2のインスタンス作成方法に従ってアプリケーションのための第2のインスタンスを作成するように指示するために使用される、ようにさらに構成される。プロセッサ7100は、アプリケーションを実行のために第2のインスタンスへと移動させるようにさらに構成される。
【０１７３】
随意により、プロセッサ7100は、アプリケーションが第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１７４】
随意により、アプリケーションが実行状態にある場合に、プロセッサ7100は、第1のインスタンスにおけるアプリケーションの実行の実行状態を取得し、取得した実行状態に基づいてアプリケーションを第2のインスタンスにおいて実行するように第2のコンピュータ装置に対して指示するように特に構成される。
【０１７５】
随意により、アプリケーションは、データベースであり、プロセッサ7100は、リアルタイム監視情報に従って、データベースがアイドル状態であると判定し、アプリケーションを第1のインスタンスから第2のインスタンスへと移動させると決定し、第2のインスタンスがコンテナ作成方法にて作成される、ようにさらに構成される。
【０１７６】
本発明のこの実施形態によるクラウド管理ノード7000が、本発明の実施形態におけるクラウド管理ノード5000に相当でき、本発明の実施形態における方法3000を相応に実行することができ、クラウド管理ノード7000の各モジュールの上述の動作および／機能ならびに他の動作および／または機能が、図4の方法の該当の手順をそれぞれ実行するために使用されることを、理解すべきである。簡潔にするため、詳細をここで再び説明することはしない。
【０１７７】
したがって、本発明のこの実施形態におけるクラウド管理ノードは、アプリケーションの実行時にアプリケーションを現在のインスタンスから別のインスタンスへと移動させるか否かを決定することができる。このようにして、クラウドデータセンタがより多くの仮想化技術をサポートする場合に、仮想化技術のリアルタイム分析および切り換えを実現することができ、仮想化技術の種類をより柔軟に調整することにより、リソースの利用を改善し、リソースの浪費を回避することができる。
【０１７８】
本発明における上述の方法の実施形態が、プロセッサに適用可能であり、あるいはプロセッサによって実行されてよいことを、理解すべきである。プロセッサは、信号を処理することができる集積回路チップであってよい。実行プロセスにおいて、上述の方法の実施形態における各ステップを、プロセッサ内のハードウェア集積論理回路を使用することによって実行でき、あるいはソフトウェアの形態の命令を使用することによって実行することができる。上述のプロセッサは、汎用プロセッサ、デジタル信号プロセッサ（Digital Signal Processor、DSP）、特定用途向け集積回路（Application Specific Integrated Circuit、ASIC）、フィールドプログラマブルゲートアレイ（Field Programmable Gate Array、FPGA）、あるいは別のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理デバイス、またはディスクリートハードウェアアセンブリであってよい。本発明の実施形態において開示された方法、ステップ、および、論理ブロック図を、実装または実行することができる。例えば、汎用プロセッサはマイクロプロセッサであってよく、あるいはプロセッサは任意の通常のプロセッサであってよい。本発明の実施形態を参照して開示された方法の各ステップは、ハードウェア復号プロセッサによって直接実行および遂行されてよく、あるいは復号プロセッサにおけるハードウェアおよびソフトウェアモジュールの組み合わせの使用によって実行および遂行されてよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、レジスタ、などの技術的に成熟した記憶媒体に配置されてよい。記憶媒体はメモリ内に配置され、プロセッサはメモリ内の情報を読み取り、プロセッサのハードウェアと組み合わせて上述の方法の各ステップを完了する。
【０１７９】
本発明の実施形態におけるメモリが、揮発性メモリまたは不揮発性メモリであってよく、あるいは揮発性メモリおよび不揮発性メモリを含んでよいことを、理解できるであろう。不揮発性メモリは、読み出し専用メモリ（Read−Only Memory、ROM）、プログラマブル読み出し専用メモリ（Programmable ROM、PROM）、消去可能プログラマブル読み出し専用メモリ（Erasable PROM、EPROM）、電気的消去可能プログラマブル読み出し専用メモリ（Electrically EPROM、EEPROM）、またはフラッシュメモリであってよい。揮発性メモリは、外部キャッシュとして使用されるランダムアクセスメモリ（Random Access Memory、RAM）であってよい。これらに限られるわけではないが、例として、例えばスタティック・ランダムアクセスメモリ（Static RAM、SRAM）、ダイナミック・ランダムアクセスメモリ（Dynamic RAM、DRAM）、シンクロナス・ダイナミック・ランダムアクセスメモリ（Synchronous DRAM、SDRAM）、ダブルデータレート・シンクロナス・ダイナミック・ランダムアクセスメモリ（Double Data Rate SDRAM、DDR SDRAM）、エンハンスド・シンクロナス・ダイナミックランダムアクセスメモリ（Enhanced SDRAM、ESDRAM）、シンクロナスリンク・ダイナミック・ランダムアクセスメモリ（Synchlink DRAM、SLDRAM）、およびダイレクト・ラムバス・ダイナミック・ランダムアクセスメモリ（Direct Rambus RAM、DR RAM）など、多数のRAMの形態を使用することができる。本明細書に記載のシステムおよび方法のメモリが、これらに限られず、他の適切な種類の任意のメモリを含むことに、注意すべきである。
【０１８０】
本明細書における「および／または」という用語は、関連する対象を述べるための関連関係のみを表現し、3つの関係が存在し得ることを表す。例えば、Aおよび／またはBは、以下の3つの場合、すなわちAだけが存在する、AおよびBの両方が存在する、およびBだけが存在する、を表すことができる。さらに、本明細書における記号「／」は、一般に、関連する対象の間の「または」の関係を示す。
【０１８１】
当業者であれば、本明細書に開示の実施形態において説明した例との組み合わせにおいて、各ユニットおよびアルゴリズムの各段階を、電子ハードウェアまたはコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実現できることを、理解できるであろう。機能がハードウェアによって実行されるか、あるいはソフトウェアによって実行されるかは、技術的解決策の個々の用途および設計における制約条件に依存する。当業者であれば、個々の用途の各々において上述の機能を実行するために異なる方法を使用することができるが、そのような実行を、本発明の技術的範囲を超えるものと考えてはならない。
【０１８２】
当業者であれば、便利かつ簡潔な説明の目的で、上述のシステム、装置、およびユニットの具体的な動作のプロセスに関しては、上述の方法の実施形態における対応するプロセスを参照することができ、したがって詳細のここでの再度の説明は省略されることを、明確に理解できるであろう。
【０１８３】
本出願に提示のいくつかの実施形態において、開示のシステム、装置、および方法を、他のやり方でも実現できることを、理解すべきである。例えば、上述の装置の実施形態は、あくまでも例にすぎない。例えば、ユニットの分割は、あくまでも論理的な機能の分割にすぎず、実際の実施においては他の分割であってよい。例えば、複数のユニットまたは構成要素を、別のシステムへと組み合わせ、あるいは統合することができ、もしくはいくつかの特徴を無視しても、あるいは実行しなくてもよい。さらに、提示または上述の相互結合または直接結合あるいは通信接続を、いくつかのインターフェイスを使用することによって実行することができる。装置またはユニット間の間接的な結合または通信接続を、電子的、機械的、または他の形態で実行することができる。
【０１８４】
別々の部分として説明されたユニットは、物理的に別々であっても、物理的に別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットであっても、物理的なユニットでなくてもよく、1つの位置に位置しても、あるいは複数のネットワークユニットに分散されてもよい。ユニットの一部またはすべてを、実施形態の技術的解決策の目的を達成するための実際の必要に応じて選択することができる。
【０１８５】
さらに、本発明の実施形態における機能ユニットを、1つの処理ユニットに統合でき、あるいは各々のユニットが、物理的に単独で存在でき、もしくは2つ以上のユニットが1つのユニットへと統合される。
【０１８６】
機能がソフトウェア機能ユニットの形態で実現され、独立した製品として販売または使用される場合、それらの機能を、コンピュータにとって読み取り可能な記憶媒体に格納することができる。そのような理解に基づき、本発明の技術的解決策の本質、または先行技術に対する貢献部分、あるいは技術的解決策の一部を、ソフトウェア製品の形態で実現することができる。ソフトウェア製品は、記憶媒体に格納され、本発明の実施形態に記載の方法のステップのすべてまたは一部の実行をコンピュータ装置（パーソナルコンピュータ、サーバ、またはネットワーク装置であってよい）に指示するためのいくつかの命令を含む。上述の記憶媒体として、USBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ（ROM、Read−Only Memory）、ランダムアクセスメモリ（RAM、Random Access Memory）、磁気ディスク、または光ディスクなど、プログラムコードを格納することができる任意の媒体が挙げられる。
【０１８７】
以上の説明は、あくまでも本発明の特定の実施にすぎず、本発明の保護の範囲を限定しようとするものではない。本発明において開示された技術的範囲に包含される当業者であれば容易に想到できるあらゆる変種または置換が、本発明の保護の範囲に含まれる。したがって、本発明の保護の範囲は、特許請求の範囲の保護の範囲に従うものとする。
【符号の説明】
【０１８８】
2100  クラウド管理ノード
2110  アプリケーションオーケストレーションエンジン
2120  仮想化技術分析モジュール
2121  展開中分析サブモジュール
2122  実行中分析サブモジュール
2130  クラウドホスト管理および制御モジュール
2132  実行中分析サブモジュール
2140  クラウド監視制御モジュール
2150  ライフサイクル管理モジュール
2200  コンピュータ装置
2210  クラウドホスト管理エージェントモジュール
2220  インスタンス管理モジュール
2230  第1のインスタンス
2300  第2のコンピュータ装置
3000  アプリケーション移動方法
4000  クラウド管理ノード
4100  アプリケーションオーケストレーションエンジン
4200  仮想化技術分析モジュール
4300  クラウドホスト管理および制御モジュール
4400  クラウド監視制御モジュール
4500  ライフサイクル管理モジュール
5000  クラウド管理ノード
5100  クラウド監視制御モジュール
5200  仮想化技術分析モジュール
5300  クラウドホスト管理および制御モジュール
5400  ライフサイクル管理モジュール
6000  クラウド管理ノード
6100  プロセッサ
6200  トランシーバ
6300  メモリ
6400  バスシステム
7000  クラウド管理ノード
7100  プロセッサ
7200  トランシーバ
7300  メモリ
7400  バスシステム
【図１】
2019503535.tif 000012
【図２】
2019503535.tif 000013
【図３】
2019503535.tif 000014
【図４】
2019503535.tif 000015
【図５】
2019503535.tif 000016
【図６】
2019503535.tif 000017
【図７】
2019503535.tif 000018
【図８】
2019503535.tif 000019
【手続補正書】
【提出日】平成30年6月21日(2018.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動アプリケーション展開のための方法であって、前記方法が、クラウド管理ノードによって実行され、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つに展開され、前記方法は、
ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるステップと、
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップと、
前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するステップと、
前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するステップと、
第1のインスタンス作成コマンドを、前記第1のコンピュータ装置へと送信するステップであって、前記第1のインスタンス作成コマンドが前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用される、ステップと
を含む、方法。
【請求項２】
前記予め設定されたルールは、前記アプリケーションがスケーラブルではないアプリケーションである場合に、前記第1のインスタンス作成方法がベアメタル作成方法であること、または、
前記アプリケーションが実行状態になく、あるいは前記アプリケーションの実行状態が安定状態である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であること、または、
前記アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であること、または、
前記アプリケーションがOSvオペレーティングシステムをサポートする場合に、前記第1のインスタンス作成方法がOSv作成方法であることを含む、
請求項1に記載の方法。
【請求項３】
前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析する前記ステップは、
前記アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、前記アプリケーションがスケーラブルではないアプリケーションである旨を前記アプリケーションモデル特性が含むと判定するステップ、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションの処理内容情報に従って、前記アプリケーションが前記実行状態にない旨または前記アプリケーションの前記実行状態が前記安定状態である旨を前記アプリケーションモデル特性が含むと判定するステップ、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションのサービスレベル合意(SLA)に従って、前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である旨を前記アプリケーションモデル特性が含むと判定するステップ、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションによってサポートされるオペレーティングシステムに従って、前記アプリケーションが前記OSvオペレーティングシステムをサポートする旨を前記アプリケーションモデル特性が含むと判定するステップ
を特に含む、
請求項2に記載の方法。
【請求項４】
前記第1のインスタンス作成方法は、仮想マシンVM作成方法である、請求項1に記載の方法。
【請求項５】
前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するステップであって、前記リアルタイム監視情報が前記第1のインスタンスにおける前記アプリケーションの実行状況を反映する、ステップと、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するステップであって、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンス作成方法が前記第1のインスタンス作成方法とは異なる、ステップと
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記方法は、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定された場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するステップであって、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用される、ステップと、
前記アプリケーションを実行のために前記第2のインスタンスへと移動させるステップと
を含む、請求項5に記載の方法。
【請求項７】
前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項6に記載の方法。
【請求項８】
前記アプリケーションが実行状態にある場合に、前記アプリケーションを実行のために前記第2のインスタンスへと移動させる前記ステップは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示するステップ
を特に含む、請求項6または7に記載の方法。
【請求項９】
前記アプリケーションは、データベースであり、
前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定する前記ステップは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定するステップと、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定するステップであって、前記第2のインスタンスは前記コンテナ作成方法にて作成される、ステップと
を含む、請求項5から8のいずれか一項に記載の方法。
【請求項１０】
クラウドコンピューティングデータセンタのクラウド管理ノードであって、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つに展開され、前記クラウド管理ノードが、アプリケーションオーケストレーションエンジンと、仮想化技術分析モジュールと、クラウドホスト管理および制御モジュールとを備えており、
前記アプリケーションオーケストレーションエンジンは、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるように構成され、
前記アプリケーションオーケストレーションエンジンは、前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するようにさらに構成され、
前記仮想化技術分析モジュールは、前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するように構成され、
前記クラウドホスト管理および制御モジュールは、前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するように構成され、
前記クラウドホスト管理および制御モジュールは、第1のインスタンス作成コマンドを前記第1のコンピュータ装置へと送信するようにさらに構成され、前記第1のインスタンス作成コマンドが前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用される、
クラウド管理ノード。
【請求項１１】
前記予め設定されたルールは、前記アプリケーションがスケーラブルではないアプリケーションである場合に、前記第1のインスタンス作成方法がベアメタル作成方法であること、または、
前記アプリケーションが実行状態になく、あるいは前記アプリケーションの実行状態が安定状態である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であること、または、
前記アプリケーションのフェイルオーバーまでの制限時間が予め設定された値以下である場合に、前記第1のインスタンス作成方法がコンテナ作成方法であること、または、
前記アプリケーションがOSvオペレーティングシステムをサポートする場合に、前記第1のインスタンス作成方法がOSv作成方法であること
を含む、
請求項10に記載のクラウド管理ノード。
【請求項１２】
前記アプリケーションオーケストレーションエンジンは、
前記アプリケーションオーケストレーションテンプレート内の自動スケーリンググループ情報に従って、前記アプリケーションが前記スケーラブルではないアプリケーションである旨を前記アプリケーションモデル特性が含むと判定するか、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションの処理内容に従って、前記アプリケーションが前記実行状態にない旨または前記アプリケーションの前記実行状態が前記安定状態である旨を前記アプリケーションモデル特性が含むと判定するか、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションのサービスレベル合意(SLA)に従って、前記アプリケーションの前記フェイルオーバーまでの前記制限時間が前記予め設定された値以下である旨を前記アプリケーションモデル特性が含むと判定するか、または、
前記アプリケーションオーケストレーションテンプレート内の前記アプリケーションによってサポートされるオペレーティングシステムに従って、前記アプリケーションが前記OSvオペレーティングシステムをサポートする旨を前記アプリケーションモデル特性が含むと判定する
ように特に構成されている、
請求項11に記載のクラウド管理ノード。
【請求項１３】
前記第1のインスタンス作成方法は、仮想マシンVM作成方法である、請求項10に記載のクラウド管理ノード。
【請求項１４】
前記クラウド管理ノードがクラウド監視制御モジュールをさらに備えており、
前記クラウド監視制御モジュールは、前記第1のインスタンスにおける前記アプリケーションの実行のリアルタイム監視情報を取得するように構成され、前記リアルタイム監視情報は、前記第1のインスタンスにおける前記アプリケーションの実行状況を反映し、
前記仮想化技術分析モジュールは、前記リアルタイム監視情報に従って、前記アプリケーションを前記第1のインスタンスから第2のインスタンスへと移動させるか否かを決定するようにさらに構成され、前記第2のインスタンスが第2のインスタンス作成方法にて作成され、前記第2のインスタンス作成方法が前記第1のインスタンス作成方法とは異なる、
請求項10から13のいずれか一項に記載のクラウド管理ノード。
【請求項１５】
前記複数のコンピュータ装置は、第2のコンピュータ装置を含み、前記第2のコンピュータ装置は、前記第2のインスタンス作成方法に対応し、前記クラウド管理ノードは、ライフサイクル管理モジュールをさらに含んでおり、
前記クラウドホスト管理および制御モジュールは、前記仮想化技術分析モジュールが前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定した場合に、第2のインスタンス作成コマンドを前記第2のコンピュータ装置へと送信するように構成され、前記第2のインスタンス作成コマンドが前記第2のコンピュータ装置に対して前記第2のインスタンス作成方法に従って前記アプリケーションのための前記第2のインスタンスを作成するように指示するために使用され、
前記ライフサイクル管理モジュールは、前記アプリケーションを実行のために前記第2のインスタンスへと移動させるように構成されている、
請求項14に記載のクラウド管理ノード。
【請求項１６】
前記ライフサイクル管理モジュールは、
前記アプリケーションが前記第1のインスタンスにおいて実行されるときに使用されるデータソースに基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項15に記載のクラウド管理ノード。
【請求項１７】
前記アプリケーションが実行状態にある場合に、前記ライフサイクル管理モジュールは、
前記第1のインスタンスにおける前記アプリケーションの実行の実行状態を取得し、前記取得した実行状態に基づいて前記アプリケーションを前記第2のインスタンスにおいて実行するように前記第2のコンピュータ装置に対して指示する
ように特に構成されている、請求項14または15に記載のクラウド管理ノード。
【請求項１８】
前記アプリケーションは、データベースであり、前記仮想化技術分析モジュールは、
前記リアルタイム監視情報に従って、前記データベースがアイドル状態であると判定し、
前記アプリケーションを前記第1のインスタンスから前記第2のインスタンスへと移動させると決定し、前記第2のインスタンスが前記コンテナ作成方法にて作成される
ようにさらに構成されている、請求項14から17のいずれか一項に記載のクラウド管理ノード。
【請求項１９】
プロセッサによって実行される時、前記プロセッサに請求項1から9のいずれか一項に記載のステップを実行することを指示する命令を記憶する非一時的コンピュータ読み取り可能な記録媒体を含むコンピュータプログラム製品。
【国際調査報告】
2019503535.tif 000020
2019503535.tif 000021
2019503535.tif 000022
2019503535.tif 000023