(57)【特許請求の範囲】
【請求項１】
コンピュータにより実施される、ネットワーク化アプリケーションの弾力性を検証する方法であって、
前記コンピュータが、前記ネットワーク化アプリケーションの提供に使用されるネットワーク内の複数のアクティブなアプリケーション構成要素を識別すること、
前記コンピュータが、１つ又は複数の選択基準に基づいて、前記識別されたアプリケーション構成要素のうちの少なくとも１つを選択すること、
前記コンピュータが、前記選択されたアプリケーション構成要素に関連付けられたインスタンスＩＤに基づいて、該選択されたアプリケーション構成要素が除外リストに含まれていないことを確認することであって、前記除外リストにインスタンスＩＤが含まれるすべてのアプリケーション構成要素は、終了適格を有さないものであること、
前記コンピュータが、前記選択されたアプリケーション構成要素を終了すること、及び
前記コンピュータが、前記選択されたアプリケーション構成要素の前記終了に続き、前記ネットワーク内の１つ又は複数の残りのアクティブなアプリケーション構成要素を監視すること、
を含むことを特徴とする方法。
【請求項２】
前記複数のアクティブなアプリケーション構成要素のそれぞれは、クラウドコンピューティングで実行中の仮想マシンインスタンスを含み、前記アプリケーション構成要素を選択することは前記実行中の仮想マシンインスタンスのうちの少なくとも１つを選択することを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記仮想マシンインスタンスは、自動スケーリンググループ内で生成される仮想マシンインスタンスの最小数又は最大数を指定する前記自動スケーリンググループ内のメンバシップに基づいて選択されることを特徴とする、請求項２に記載の方法。
【請求項４】
前記選択されたアプリケーション構成要素を終了することは、前記クラウドコンピューティング内の前記選択された仮想マシンインスタンスの実行を終了することを含むことを特徴とする、請求項２に記載の方法。
【請求項５】
前記選択されたアプリケーション構成要素は、仮想マシンインスタンスで実行中の指定プロセスを含み、前記選択されたアプリケーション構成要素を終了することは、前記指定プロセスの実行を中断することを含むことを特徴とする、請求項１に記載のコンピュータ実施方法。
【請求項６】
前記コンピュータが、前記選択されたアプリケーション構成要素の終了に起因する残りのアクティブなアプリケーション構成要素に対する影響を記録する１つ又は複数のログエントリを作成することをさらに含むことを特徴とする、請求項１に記載のコンピュータ実施方法。
【請求項７】
処理ユニットにより実行されると、前記処理ユニットに、ネットワーク化アプリケーションの弾力性を検証する動作を実行させる命令を含むコンピュータ可読記憶媒体であって、前記動作は、
前記ネットワーク化アプリケーションの提供に使用されるネットワーク内の複数のアクティブなアプリケーション構成要素を識別すること、
１つ又は複数の選択基準に基づいて、前記識別されたアプリケーション構成要素のうちの少なくとも１つを選択すること、
前記選択されたアプリケーション構成要素に関連付けられたインスタンスＩＤに基づいて、該選択されたアプリケーション構成要素が除外リストに含まれていないことを確認することであって、前記除外リストにインスタンスＩＤが含まれるすべてのアプリケーション構成要素は、終了適格を有さないものであること、
前記選択されたアプリケーション構成要素を終了すること、及び
前記選択されたアプリケーション構成要素の前記終了に続き、前記ネットワーク内の１つ又は複数の残りのアクティブなアプリケーション構成要素を監視すること、
を含むことを特徴とする、コンピュータ可読記憶媒体。
【請求項８】
前記複数のアクティブなアプリケーション構成要素のそれぞれは、クラウドコンピューティングで実行中の仮想マシンインスタンスを含み、前記アプリケーション構成要素を選択することは前記実行中の仮想マシンインスタンスのうちの少なくとも１つを選択することを含むことを特徴とする、請求項７に記載のコンピュータ可読記憶媒体。
【請求項９】
前記仮想マシンインスタンスは、自動スケーリンググループ内で生成される仮想マシンインスタンスの最小数又は最大数を指定する前記自動スケーリンググループ内のメンバシップに基づいて選択されることを特徴とする、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記選択されたアプリケーション構成要素を終了することは、前記クラウドコンピューティング内の前記選択された仮想マシンインスタンスの実行を終了することを含むことを特徴とする、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記選択されたアプリケーション構成要素は、仮想マシンインスタンスで実行中の指定プロセスを含み、前記選択されたアプリケーション構成要素を終了することは、前記指定プロセスの実行を中断することを含むことを特徴とする、請求項７に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記動作は、前記選択されたアプリケーション構成要素の終了に起因する残りのアクティブなアプリケーション構成要素に対する影響を記録する１つ又は複数のログエントリを作成することをさらに含むことを特徴とする、請求項７に記載のコンピュータ可読記憶媒体。
【請求項１３】
システムであって、
プロセッサと、
プログラムを含むメモリと、
を備え、前記プログラムは、前記プロセッサで実行されると、ネットワーク化アプリケーションの弾力性を検証する動作を実行し、前記動作は、
前記ネットワーク化アプリケーションの提供に使用されるネットワーク内の複数のアクティブなアプリケーション構成要素を識別すること、
１つ又は複数の選択基準に基づいて、前記識別されたアプリケーション構成要素のうちの少なくとも１つを選択すること、
前記選択されたアプリケーション構成要素に関連付けられたインスタンスＩＤに基づいて、該選択されたアプリケーション構成要素が除外リストに含まれていないことを確認することであって、前記除外リストにインスタンスＩＤが含まれるすべてのアプリケーション構成要素は、終了適格を有さないものであること、
前記選択されたアプリケーション構成要素を終了すること、及び
前記選択されたアプリケーション構成要素の前記終了に続き、前記ネットワーク内の１つ又は複数の残りのアクティブなアプリケーション構成要素を監視すること、
を含むことを特徴とする、システム。
【請求項１４】
前記複数のアクティブアプリケーション構成要素のそれぞれは、クラウドコンピューティングで実行中の仮想マシンインスタンスを含み、前記アプリケーション構成要素を選択することは、前記実行中の仮想マシンインスタンスのうちの少なくとも１つを選択することを含むことを特徴とする、請求項１３に記載のシステム。
【請求項１５】
前記仮想マシンインスタンスは、自動スケーリンググループ内で生成される仮想マシンインスタンスの最小数又は最大数を指定する前記自動スケーリンググループ内のメンバシップに基づいて選択されることを特徴とする、請求項１４に記載のシステム。
【請求項１６】
前記選択されたアプリケーション構成要素を終了することは、前記クラウドコンピューティング内の前記選択された仮想マシンインスタンスの実行を終了することを含むことを特徴とする、請求項１４に記載のシステム。
【請求項１７】
前記選択されたアプリケーション構成要素は、仮想マシンインスタンスで実行中の指定プロセスを含み、前記選択されたアプリケーション構成要素を終了することは、前記指定プロセスの実行を中断することを含むことを特徴とする、請求項１３に記載のシステム。
【請求項１８】
前記動作は、前記選択されたアプリケーション構成要素の終了に起因する残りのアクティブなアプリケーション構成要素に対する影響を記録する１つ又は複数のログエントリを作成することをさらに含むことを特徴とする、請求項１３に記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２０１０年９月２０日に出願された米国特許出願第１２／８８６，１３８号明細書の利益を主張するものであり、この出願を参照により本明細書に援用する。
【技術分野】
【０００２】
本発明の実施形態は、包括的には、対話するサーバの集まりにより提供される分散計算サービスの弾力性を評価する技法に関する。
【背景技術】
【０００３】
広範囲の計算アプリケーションが、コンピュータネットワークを介してユーザに提供されている。往々にして、ネットワーク化アプリケーションは、複数の対話する計算サーバを使用して提供し得る。例えば、ウェブサイトは、ユーザからウェブページ要求を受信するウェブサーバ（１つの計算システムで実行される）を使用して提供し得る。要求はアプリケーションサーバ（別の計算システムで実行される）に渡すことができ、アプリケーションサーバは要求を処理し、ウェブサーバ、そして最終的にはユーザに返される応答を生成する。
【０００４】
別の例としては、ネットワークを介してアクセスをメディアタイトルに提供するために使用されるコンテンツ配信システムが挙げられる。通常、コンテンツ配信システムは、ゲームコンソール、計算システム、計算タブレット、携帯電話、ネットワークアウェアＤＶＤプレーヤ等のコンテンツプレーヤを使用してクライアントが接続するアクセスサーバ、コンテンツサーバ等を含み得る。コンテンツサーバは、コンテンツサーバからコンテンツプレーヤにダウンロードするために利用可能なファイル（又は「ストリーム」）を記憶する。各ストリームは、映画、テレビ番組、スポーツイベント、ユーザ生成コンテンツ、録画ビデオで捕捉されたステージ又はライブイベント等のデジタル版を提供し得る。ユーザは、コンテンツリストが利用可能なウェブサーバに接続することにより、サービスにアクセスする。特定のタイトルへの要求が受信されると、利用可能なコンテンツサーバへの接続を介してクライアントシステムにストリーミングし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これらのようなシステムで実行中のソフトウェアアプリケーションは、脆弱性又はエラーを修正するパッチでの進行中の開発結果並びに新しい特徴を提供するアップグレードとしてしばしば更新される。同時に、ネットワーク化アプリケーション内のサーバは、予測できず、又は非意図的なように互いに依存してもよく、一方のシステムの変更は、他方への非意図的な依存に繋がり得る。これが発生する場合、サーバが故障したとき、ネットワーク化アプリケーションへのアクセスが中断するおそれがある。
【課題を解決するための手段】
【０００６】
本明細書に開示される本発明の一実施形態は、ネットワーク化アプリケーションの弾力性を検証するコンピュータ実施方法を提供する。この方法は一般に、ネットワーク化アプリケーションの提供に使用されるネットワーク内の複数のアクティブアプリケーション構成要素を識別すること、及び１つ又は複数の選択基準に基づいて、識別されたアプリケーション構成要素のうちの少なくとも１つを選択することを含む。この方法は、選択されたアクティブアプリケーション構成要素を終了すること、及び選択されたアクティブアプリケーション構成要素の終了に続き、ネットワーク内の１つ又は複数の残りのアクティブアプリケーション構成要素を監視することを含むこともできる。
【０００７】
他の実施形態は、限定ではなく、処理ユニットが開示される方法の１つ又は複数の態様並びに開示される方法の１つ又は複数の態様を実施するように構成されたシステムを実施できるようにする命令を含むコンピュータ可読媒体を含む。
【０００８】
本発明の上記特徴を詳細に理解することができるように、上で簡単に要約された本発明のより具体的な説明を、実施形態を参照して行うことができ、その実施形態のうちのいくつかが添付図面に示される。しかし、添付の図面は、本発明の典型的な実施形態だけを示し、したがって、本発明の範囲を制限するものとみなされるべきでなく、本発明は、他の同等で有効な実施形態を許容することができると理解されたい。
【図面の簡単な説明】
【０００９】
【図１】本発明の１つ又は複数の態様を実施するように構成された計算基盤を示す。
【図２】本発明の一実施形態による、クラウド計算環境で対話する複数のサーバインスタンスを示す。
【図３】本発明の一実施形態による、弾力性監視アプリケーションを含む計算システムの図である。
【図４】本発明の一実施形態による、ネットワーク化アプリケーションの弾力性を検証する方法をさらに示す。
【発明を実施するための形態】
【００１０】
本発明の実施形態は、対話するサーバの集まりを使用して提供されるネットワーク化アプリケーションの弾力性を検証する技法を提供する。例えば、ネットワーク監視アプリケーションは、実行中のアプリケーションのインスタンスを終了させて、偶然の予期せぬ故障後に、故障したサーバに依存するシステムがなお正確に機能可能であるか否かを判断するように構成し得る。したがって、監視アプリケーションは、ネットワーク化アプリケーション内の他のシステムへのサーバ故障の影響を制御下で観測し得る。この手法は、任意のサーバが随時消えるおそれがあるクラウドに基づく展開で有用であり得る。
【００１１】
一実施形態では、ネットワーク監視アプリケーションは、実行中の各サーバ（又はアプリケーション）を非指定間隔で監視し、１つのサーバを選び、そのサーバを終了させる。クラウドに基づく展開の場合、これは、仮想マシンインスタンスの終了、サーバで実行中のプロセスの終了等を含み得る。データセンターでの物理的なサーバの場合、サーバをシャットダウンすること、サーバで実行中のプロセスを終了すること、サーバでのネットワーク接続を閉じること等を含み得る。しかし、実行されれば、選択されたサーバのネットワークアプリケーションへの参加は終了し、サーバ（又はアプリケーション）を残りのネットワークアプリケーションから遮断する。
【００１２】
残りのネットワークアプリケーションへの故障サーバの影響を観測することにより、プロバイダは、各構成要素が警告なしでの任意の単一インスタンス消失に耐えることができることを保証することができる。一実施形態では、ネットワーク監視アプリケーションは、アップデート又はパッチを実稼働環境でのサーバ（又はアプリケーション）に展開する前に、テスト環境で使用し得る。そうすることで、実稼働環境に展開せずに、アップデート又はパッチの影響を評価することができる。さらに、除外／包含リストを使用して、終了候補から特定のアプリケーション（又はホスト、又はシステム）を除外（又は包含）することができる。同様に、クラウドに基づく展開では、ネットワーク監視アプリケーションは、自動スケーリンググループのメンバであるサーバインスタンスを終了させるように構成することができる。そうすることで、自動スケーリングプロセスの機能を、ランダムに発生するサーバ故障に対して評価することができる。したがって、様々な実施形態では、ネットワーク監視アプリケーションは、実稼働システムがアップグレードされ、パッチ適用され、又は非意図的又は不要な依存性を生み出すようにその他の様式で変更された場合、本発明を用いない場合には時間の経過に伴って失われる可能性がある、対故障性の要件の実施に役立つ。より一般には、本明細書に記載のネットワーク監視アプリケーションによりシステムの任意の論理グループを定義し、テストし得る。
【００１３】
以下の説明において、本発明のより完全な理解を提供するために、多くの特定の詳細が記される。しかし、これらの特定の詳細の１つ又は複数なしで本発明を実施し得ることが当業者には明らかであろう。他の場合では、本発明を曖昧にするのを避けるために、周知の特徴については説明しなかった。
【００１４】
さらに、本発明の特定の実施形態について、データ通信ネットワークを介して映画、音楽、テレビ番組、ユーザ生成コンテンツ等をエンドユーザクライアント装置にストリーミングするために使用されるネットワーク化アプリケーションの例を使用して説明する。しかし、広範囲のネットワーク化アプリケーション又はサービスで個々のシステム故障に対する弾力性を検証するように、本発明の実施形態を適合し得ることを理解されたい。したがって、ストリーミングメディアサービスへの参照は単なる例示であり、限定ではない。
【００１５】
図１は、本発明の１つ又は複数の態様を実施するように構成される計算基盤１００を示す。この例では、計算基盤１００は、ネットワーク化アプリケーション又はサービスをクライアントシステムに提供するために使用される基盤を表す。示されるように、データセンター１３０におけるサーバシステム１３７及びクラウドプロバイダ１４０で実行中の仮想マシンインスタンス１４５を使用して、ネットワーク１２０を介してネットワークアプリケーション又はサービスをクライアント１０５１〜４に提供する。さらに、データセンター１３０は、可用性／信頼性監視システム１３５を含む。
【００１６】
上述したように、本発明の実施形態を使用して、クラウドプロバイダ１４０により提供されるクラウド計算基盤を使用して展開される仮想マシンインスタンス１４５の弾力性を評価し得る。クラウド計算とは一般に、ネットワークを介したサービスとしてスケーリング可能な計算リソースの提供を指す。より正式には、クラウド計算は、計算リソースと基底となる技術アーキテクチャ（例えば、サーバ、記憶装置、ネットワーク）との間での抽象化を提供し、最小の管理努力又はサービスプロバイダ介入で高速でプロビジョニングし解放可能な構成可能計算リソースプールへの好都合でオンデマンドなネットワークアクセスを可能にする計算能力として定義し得る。したがって、クラウド計算では、ユーザは、計算リソースの提供に使用される基底となる物理的システム（またはこれらシステムの配置）に関わりなく、「クラウド」内の、仮想計算リソース（例えば、記憶装置、データ、アプリケーション、さらには完全に仮想化された計算システム）にアクセスすることができる。
【００１７】
通常、クラウド計算リソースは、利用回数毎に料金を支払う形でユーザに提供され、その場合、ユーザには、実際に使用した計算リソース（例えば、ユーザが消費した記憶領域量又はユーザが生成した仮想マシンインスタンス数）に対しての料金のみが課される。ユーザは、クラウドに常駐する任意のリソースに任意の時間にどこからでもアクセスすることができる。プロビジョニングされると、仮想マシンインスタンス１４５は計算サーバの抽象化を提供し、ユーザは一般に、仮想マシンインスタンス１４５で表される物理的な計算サーバを制御する場合と同じように、アプリケーションを仮想マシンインスタンス１４５にインストールし実行することができる。
【００１８】
本発明の文脈の中では、サービスプロバイダは、サーバ又はアプリケーションを仮想マシンインスタンス１４５に展開し、クライアント１０５が、データセンター１３０内の物理的なサーバシステム１３７にアクセスするのと同じように、アプリケ−ション（例えば、ストリーミングメディアサービス）に接続し、アクセスできるようにする。同時に、サービスプロバイダは、単に追加の仮想マシンインスタンス１４５を生成することによりサービスを素早くスケーリングすることができる。これにより、プロバイダは、データセンター１３０に大きな計算基盤を構築して維持する必要なく、ピーク需要期間に対応することができる。クラウドプロバイダ１４０は、任意の所与の時間でのニーズに基づいて、所与のアプリケーション（又はアプリケーション構成要素）に割り振られる仮想マシンインスタンス１４５の数を自動的に拡大又は縮小するために使用される自動スケーリング特徴を提供し得る。
【００１９】
しかし、サービスプロバイダは、基底をなす計算ハードウェアを制御しないため、仮想マシンインスタンス１４５で実行中のサーバ又はアプリケーションは、警告なしでのあらゆる単一仮想インスタンス（又は仮想マシンインスタンスにより提供されるサービス）消失に耐えるように構成されるべきである。したがって、さらに詳細に後述するように、監視システム１３５は、サーバシステム１３７又は仮想マシンインスタンス１４５で実行中のアプリケーションのインスタンスを定期的に終了し、サービス全体への影響を観測する（実稼働環境又はテスト環境のいずれかで）ように構成されたアプリケーションプログラムを含み得る。仮想マシンインスタンスの終了に続き、自動スケーリンググループに関連付けられたインスタンスが適宜スケーリングされることを保証することもできる。未知又は不要な依存性が識別される場合、アプリケーションを適宜リファクタリングし得る。
【００２０】
図２は、本発明の一実施形態による計算クラウド２００内の対話する複数のサーバインスタンスを示す。例示的のために、計算クラウド２００は、クライアントシステムへのストリーミングメディアサービスの提供に使用される計算基盤の例を提供する。当然、上述したように、計算クラウド２００を使用して、広範囲の計算サービスをクライアント１０５に提供することができる。
【００２１】
示されるように、計算クラウド２００は、４つの異なる自動スケーリンググループ２０５１〜４に割り振られた仮想マシンインスタンス（２２０、２２５、２３０、及び２３５）を含む。各自動スケーリンググループには、サービスに対する需要に基づいて、プロビジョニングすべきインスタンスの最小数及び／又は最大数を関連付けることができる。この例では、第１の自動スケーリンググループ２０５１は、クライアントシステム１０５からの初期要求の受信に使用されるウェブサーバインスタンス２２０を含む。受信されると、要求は、第２の自動スケーリンググループ２０５４内のアプリケーションサーバインスタンス２３５の１つに渡され、そのアプリケーションサーバインスタンス２３５はウェブページのコンテンツを生成し得、コンテンツは元のウェブサーバインスタンス２２０に渡され、要求側クライアントシステム１０５に提供される。例えば、初期ウェブページは、ストリーミングメディアコンテンツにアクセスするために、ユーザが信用情報を提出することができる書式を含み得る。そのような場合、信用情報はウェブサーバインスタンス２２０及びアプリケーションサーバインスタンス２３５に渡される。そして次に、アプリケーションサーバ２３５は、第３の自動スケーリンググループ２０５３内のデータベースサーバインスタンス２３０の１つと通信することにより、信用情報を検証し得る。例えば、データベースサーバインスタンス２３０は、信用情報を使用して特定されるユーザの加入状態を示す情報をデータベース２１０から検索し得る。認証されると、アプリケーションサーバインスタンス２３５は、クライアント１０５又はウェブサーバインスタンス２２０に渡されるストリーミングに利用可能なメディアタイトルを示すウェブページを生成する。
【００２２】
その後、クライアントがタイトルのストリーミングを要求する場合、コンテンツストリーミングインスタンス２２５（第４の自動スケーリンググループ２０５２内）の１つは、ストリーミングメディアデータをコンテンツデータベース２１５から検索し、要求側クライアントシステム１０５に送信する。ストリーミングメディアサービスがプロバイダのデータセンターからホストされる場合、仮想マシンインスタンス２２０、２２５、２３０、及び２３５は一般に、データセンター内の物理的な計算システムに対応する。
【００２３】
一実施形態では、監視システム１３５は、計算クラウド２００（又はプロバイダのデータセンター内のシステム／アプリケーション）により提供されるストリーミングメディアサービスの弾力性を評価するように構成し得る。例えば、監視システム１３５は、インスタンス２２０、２２５、２３０、又は２３５（又は自動スケーリンググループ２０５１〜４のうちの指定された１つから選択されるインスタンス）の１つの終了を選択し得る。選択は、ランダムな間隔で行ってもよく、又はスケジュールに基づいて行ってもよい。インスタンスの終了により、プロバイダは、終了されたインスタンスに依存するシステムが、ランダムな予期しない故障後に正しく機能し続ける（又は穏やかに退行する）か否かを評価することができる。例えば、アプリケ−ションサーバインスタンス２３５の１つが終了した場合、コンテンツをクライアント１０５にストリーミングし続けるコンテンツストリーミングインスタンス２２５の能力を観測し得る。したがって、監視システム１３５では、ユーザは、ネットワーク化アプリケーション内の他のシステムへのサーバ故障の影響を制御下で観測することができる。
【００２４】
一実施形態では、インスタンス２２０、２２５、２３０、及び２３５のうちのいくつかは、監視システム１３５による終了に適格とされるものから除外し得る。個々のインスタンスは、除外リストを使用して除外し得る。そのようなリストは、インスタンスＩＤを使用して終了適格から個々のインスタンスを除外し得る。例えば、認証サーバとして使用されるインスタンスを終了適格から除外し得る。同様に、１つのインスタンス（又はそのインスタンスにより提供されるアプリケ−ション）の故障が他にとって破滅的であることが分かっている場合、そのインスタンスを終了適格から除外し得る。
【００２５】
さらに、インスタンスは、グループメンバシップに基づいて適用除外し得る。例えば、監視システム１３５は、指定された自動スケーリンググループ内のすべてのインスタンスを除外するように構成し得る。別の例は、特定のセキュリティグループに属するすべてのインスタンスを除外することである。この文脈の中では、セキュリティグループは、そのグループのメンバである任意のインスタンスにファイアウォールのようなアクセス規則グループが適用されるシステムのグループであることに留意する。例えば、データベースサーバインスタンス２３０は、アプリケーションサーバインスタンス２３５へのアクセスは許可するが、ウェブサーバインスタンス２２０へのアクセスを遮断する「データベース」グループのメンバであることができる。同様に、ウェブサーバインスタンス２２０は、「ウェブグループ」に属することができ、指定されたポート（例えば、ＨＴＴＰトラフィックの場合はポート８０）での公衆インターネットへのアクセスを認めることができる。当然、上で考察される自動スケーリング及びセキュリティグループの例から離れて、ネットワーク監視アプリケーションにより、システムの他の論理グループを定義し、テストすることもできる。
【００２６】
監視システム１３５は、計算クラウド２００の外部に示されるが、それ自体が、計算クラウド２００で生成される仮想マシンインスタンスを実行してもよいことに留意する。
【００２７】
図３は、本発明の一実施形態による、弾力性監視アプリケーションを含む監視システム１３５の図である。示されるように、監視システム１３５は、限定ではなく、中央演算処理装置（ＣＰＵ）２０５、ネットワークインタフェース３１５、相互接続３２０、メモリ３２５、及び記憶装置３３０を含む。監視システム１３５は、Ｉ／Ｏ装置２１２（例えば、キーボード、ディスプレイ、及びマウス装置）を監視システム１３５に接続するＩ／Ｏ装置インタフェース３１０も含み得る。
【００２８】
一般に、ＣＰＵ３０５は、メモリ３２５に記憶されたプログラミング命令を検索して実行する。同様に、ＣＰＵ３０５は、メモリ３２５にアプリケーションデータを記憶するとともに、メモリ３２５に常駐するアプリケ−ションデータを検索する。相互接続３２０は、ＣＰＵ３０５、Ｉ／Ｏ装置インタフェース３１０、記憶装置３３０、ネットワークインタフェース３１５、及びメモリ３２５の間でのプログラミング命令及びアプリケーションデータの伝送に役立つ。ＣＰＵ３０５は、単一のＣＰＵ、複数のＣＰＵ、複数の処理コアを有する単一のＣＰＵ等を表すために含まれる。そして、メモリ３２５は一般に、ランダムアクセスメモリを表すために含まれる。記憶装置３３０はディスクドライブ記憶装置であり得る。記憶装置３３０は、単一のユニットとして示されるが、固定ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、リムーバブルメモリカード、光学記憶装置、ネットワーク接続ストレージ（ＮＡＳ）、又はストレージエリアネットワーク（ＳＡＮ）等の固定記憶装置及び／又はリムーバブル記憶装置の組合せであり得る。
【００２９】
例示的に、メモリ３２５は監視アプリケーション３２１を含み、記憶装置３３０は監視ログ３３５を含む。示されるように、監視アプリケーション３２１は、終了構成要素３２３、復元モニタ３２７、及びインスタンス監視パラメータ３２９を含む。上述したように、監視アプリケーション３２１は、実行中の仮想マシンインスタンス、サーバ、アプリケーション、又はネットワーク化アプリケーションで使用される他の構成要素（例えば、計算クラウド２００内の仮想マシンインスタンス２２０、２２５、２３０、又は２３５の１つ又はプロバイダのデータセンター内のサーバで実行中のアプリケーション）を定期的に選択し終了させるように構成されたソフトウェアアプリケーションを提供し得る。便宜上、「インスタンス」の終了を参照するが、他の任意の構成要素の終了も意図されることが理解されよう。
【００３０】
一実施形態では、終了構成要素３２３は、監視パラメータ３２９に従ってどのインスタンスを終了するか（並びにインスタンスをいつ終了するか）を選択する。選択パラメータは、終了構成要素３２３が終了選択を行うために使用し得る除外インスタンス、除外インスタンスグループ、日時等の基準を指定し得る。例えば、監視パラメータ３２９は、任意の時間又は指定された時間間隔中にインスタンスをランダムに選択する（又はグループからランダムに選択する）ことを指定し得る。
【００３１】
インスタンスが選択される（且つ終了される）と、復元モニタ３２７は、ネットワーク化アプリケーションの残りのインスタンスの動作を観測し、対応する情報を生成し得、次に、復元モニタ３２７は情報をログ３３５に記憶する。ログ３３５の内容は、監視パラメータ３２９により指定される情報を含むとともに、インスタンス（又はインスタンスで実行中のアプリケーション）によりネイティブに作成されたログデータを含み得る。すなわち、インスタンスで実行中のアプリケーションは、そこで実行中のアプリケーションに応じてログ（例えば、ウェブサーバのアクセス履歴ログ）を生成し得る。
【００３２】
図４は、本発明の一実施形態によるネットワーク化アプリケーションの弾力性を検証する方法４００を示す。示されるように、方法４００はステップ４０５において開始され、監視アプリケーションが、監視パラメータにより指定される構成に従って初期化される。例えば、構成パラメータは、終了するインスタンスをいつ選択するかを決定する基準並びにどのインスタンス、アプリケーション、又はサーバを終了するものとして選択するかを決定する基準を指定し得る。ステップ４１０において、監視アプリケーションは、実行中のインスタンスを終了する時間に達するまで待つ。終了する時間に達すると、ステップ４１５において、監視アプリケーションは、ネットワークアプリケーションの提供に使用されている複数のアクティブアプリケーション構成要素（例えば、アクティブな仮想マシンインスタンス、アプリケーション、又はプロセス）を識別する。
【００３３】
ステップ４２０において、監視アプリケーションは、終了する仮想マシンインスタンス（又はプロセス、又はアプリケーション）を選択する。選択されると、監視アプリケーションは、選択されたインスタンスをキルするメッセージを送信する。例えば、仮想マシンインスタンスの場合、監視アプリケーションは、インスタンス終了メッセージをクラウドネットワークに送信し得る。或いは、監視アプリケーションは、仮想マシンインスタンス（またはデータセンターサーバ）のサーバプログラム（例えば、ＨＴＴＰウェブサーバ）をシャットダウンするか、又はオペレーティングシステムによって提供されるメカニズムを使用して、プロセスをキルし得る。
【００３４】
ステップ４２５において、監視アプリケーションは、選択されたインスタンスの終了（又は他の様式でのシャットダウン若しくは実行停止）を待つ。選択されたインスタンスの終了に続き、ステップ４３０において、監視アプリケーションは、残りのインスタンス（又はアプリケーション）の挙動を観測し、ログデータを記録して、終了したインスタンスの消失がネットワークアプリケーションの残りの部分にどのように影響するかを捕捉する。ネットワークアプリケーションの残りの部分に対する終了の影響を観測することにより、プロバイダは、各構成要素が警告なしでのいかなる単一インスタンス消失に耐えることが可能なことを保証することができる。
【００３５】
有利なことに、本発明の実施形態は、対話するサーバの集まりを使用して提供されるネットワーク化アプリケーションの弾力性を検証する技術を提供する。一実施形態では、ネットワーク監視アプリケーションは、実行中の各サーバ（又はアプリケーション）を観測し、非指定間隔で１つのサーバを選び、そのサーバを終了させる。クラウドに基づく展開の場合、これは、仮想マシンインスタンスを終了すること又はサーバで実行中のプロセスを終了することを含み得る。そうすることで、クラウドサービスプロバイダにより提供される自動スケーリング（又はシステムの他の論理グループ）の有効性をテストし得る。さらに、いくつかのシステム（又はシステムグループ）（例えば、セキュリティグループに属するシステム）を、ネットワーク監視アプリケーションによる終了定格から除外し得る。
【００３６】
上記は本発明の実施形態に向けられるが、本発明の基本範囲から逸脱せずに、本発明の他及びさらなる実施形態を考案し得る。例えば、本発明の態様は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組合せで実施し得る。本発明の一実施形態は、コンピュータシステムと併用されるプログラム製品として実施し得る。プログラム製品のプログラムは、実施形態（本明細書に記載の方法を含む）の機能を定義し、様々なコンピュータ可読記憶媒体に含めることができる。例示的なコンピュータ可読記憶媒体は、（ｉ）情報が永久的に記憶される非書き込み可能記憶媒体（例えば、ＣＤ−ＲＯＭドライブにより読み取り可能なＣＤ−ＲＯＭディスク等のコンピュータ内の読み取り専用メモリ装置、フラッシュメモリ、ＲＯＭチップ、又は任意の種類の固体状態不揮発性半導体メモリ）及び（ｉｉ）変更可能な情報が記憶される書き込み可能記憶媒体（例えば、ディスクドライブ内の「フロッピー」ディスク、又はハードディスクドライブ、又は任意の種類の固体状態ランダムアクセス半導体メモリ）を含むが、これらに限定されない。そのようなコンピュータ可読記憶媒体は、本発明の機能を指示するコンピュータ可読命令を有する場合、本発明の実施形態である。
【００３７】
したがって、本発明の範囲は以下の特許請求の範囲により決定される。
【図１】
0005898207.tif 000002
【図２】
0005898207.tif 000003
【図３】
0005898207.tif 000004
【図４】
0005898207.tif 000005