JP2018198068A - 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証 - Google Patents

分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証 Download PDF

Info

Publication number
JP2018198068A
JP2018198068A JP2018134938A JP2018134938A JP2018198068A JP 2018198068 A JP2018198068 A JP 2018198068A JP 2018134938 A JP2018134938 A JP 2018134938A JP 2018134938 A JP2018134938 A JP 2018134938A JP 2018198068 A JP2018198068 A JP 2018198068A
Authority
JP
Japan
Prior art keywords
cloud
resource
application requirement
resources
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018134938A
Other languages
English (en)
Inventor
エリシャ・ローゼンツワイク
Rosensweig Elisha
エッティ・シャレブ
Shalev Etti
シャロン・メンデル−ブリン
Mendel-Brin Sharon
ディミトリー・クラスネンコ
Krasnenko Dmitri
イファト・アフェク
Afek Ifat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of JP2018198068A publication Critical patent/JP2018198068A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Abstract

【課題】クラウドプロバイダによってサービス水準合意(SLA)の規定を満たすリソースをクラウドネットワーク内で移動させる。【解決手段】クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信し、少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析することであって、アプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる。さらに、少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別し、第1のデバイスから第2のデバイスへとリソースを移動させる。【選択図】図7

Description

本明細書に開示されている様々な例示的な実施形態は、概して、クラウドコンピューティングに関する。
多くのクラウドオペレータは現在、相対的に集中型動作を提供する、いくつかの大型データセンターを使用したクラウドサービスをホストしている。そのようなシステムにおいて、要求者は、クラウドコントローラに1つまたは複数のリソースを使用することを要求することができ、クラウドコントローラは、要求されたリソースを、要求者による使用のためにデータセンターから配分することができる。しかしながら、この集中型動作は、厳密な遅延または信頼性要件を有するもののような、様々なタイプのアプリケーションをホストするには十分に適していない場合がある。
他方、分散型データセンターアーキテクチャは、地理的に分散されている場合があるより多数のより小型のデータセンターを提供する。データセンターは、インターネットまたはキャリアネットワークのようなネットワークを通じて1つまたは複数のクラウドコントローラの制御下にあるままであることができる。そのような分散型システムの下で、ネットワーク伝搬遅延の影響は、地理的距離またはネットワーク距離に関して、集中型クラウドが提供することが可能であり得るよりも、様々な顧客により近いクラウドアプリケーションを提供することによって低減され得る。
両方のタイプのクラウドネットワークにおいて、利用可能なデバイスの間で顧客に対してプロビジョニングされるリソースを再構成することが有利であることがある。たとえば、接続性が劣化させられることに起因して、ネットワーク状態の変化によってデバイスが顧客リソースを継続してサポートするのに適しなくなってしまう場合があり、リソース間通信において顧客アプリケーションへの依存が高められる結果として、そのようなリソースを地理的に互いに近くに移動することが所望されるようになる場合があり、または、1つのデバイスに対する負荷が増大される結果として、あまり重い負荷のかけられていないデバイスにリソースを移動することが所望されるようになる場合がある。
様々な例示的な実施形態の簡潔な概要が下記に提示される。いくつかの単純化および省略が以下の概要において行われている場合があり、概要は、様々な例示的な実施形態のいくつかの態様を強調および紹介するように意図されており、本発明の範囲を限定するようには意図されていない。当業者が本発明の概念を作成および使用することを可能にするのに十分な好ましい例示的な実施形態の詳細な説明は、続いて後の節に記載する。
本明細書に記載されている様々な実施形態は、クラウドネットワーク内でリソースを移動させるためにクラウドコントローラによって実施される方法に関し、方法は:クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信することと、少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析することであって、少なくとも1つのアプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる、分析することと、少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することと、第1のデバイスから第2のデバイスへとリソースを移動させることとを含む。
本明細書に記載されている様々な実施形態は、クラウドネットワーク内でリソースを移動させるためのクラウドコントローラに関し、クラウドコントローラは:ネットワークインターフェースと、メモリと、メモリと通信しているプロセッサとを含み、プロセッサは、ネットワークインターフェースを介して、クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信することと、少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析することであって、少なくとも1つのアプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる、分析することと、少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することと、第1のデバイスから第2のデバイスへとリソースを移動させることとを行うように構成されている。
本明細書に記載されている様々な実施形態は、クラウドネットワーク内でリソースを移動させるためにクラウドコントローラによって実行するための命令を符号化されている一時的でない機械可読記憶媒体に関し、媒体は:クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信するための命令と、少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析するための命令であって、少なくとも1つのアプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる、分析するための命令と、少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別するための命令と、第1のデバイスから第2のデバイスへとリソースを移動させるための命令とを含む。
少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することは、リソースの第2のデバイスへの移動が少なくとも1つのアプリケーション要件を順守すると決定することを含む、様々な実施形態が記載される。
少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することは、リソースの第2のデバイスへの移動が所定量未満だけ、少なくとも1つのアプリケーション要件に違反すると決定することを含む、様々な実施形態が記載される。
リソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することは、顧客と関連付けられる明示的なサービス水準合意(SLA)にさらに基づく、様々な実施形態が記載される。
少なくとも1つのアプリケーション要件がデバイスレベル性能メトリックを含む、様々な実施形態が記載される。
少なくとも1つのアプリケーション要件がアプリケーションレベル性能メトリックを含む、様々な実施形態が記載される。
リソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別することは、クラウドに属する複数のデバイスの間でのリソースセットの新たな構成を計算することを含む、様々な実施形態が記載される。
様々な例示的な実施形態をより良好に理解するために、添付の図面が参照される。
クラウドリソースを提供するための例示的なネットワークを示す図である。 例示的なクラウドコントローラの構成要素図である。 例示的なクラウドコントローラのハードウェア図である。 デバイスレベル性能メトリックを記憶するための例示的なデータ構成を示す図である。 アプリケーションレベル性能メトリックを記憶するための例示的なデータ構成を示す図である。 アプリケーション要件を記憶するための例示的なデータ構成を示す図である。 クラウドネットワーク内で顧客リソースを移動させるための例示的な方法を示す図である。
理解を促進するために、実質的に同じもしくは同様の構造または実質的に同じもしくは同様の機能を有する要素を示すために同一の参照符号が使用されている。
本明細書および図面は、本発明の原理を示す。したがって、本明細書において明示的に記載または図示されていなくても、本発明の原理を具現化し、その範囲内に含まれる様々な構成を当業者が考案することが可能になることが諒解されよう。さらに、本明細書に記載されるすべての例は、原則的に、教育上の目的のためのものであるように明確に意図されており、そのような特に記載されている例および条件に限定されないものとして解釈されるべきである。加えて、別途指示されていない(たとえば、「その他(or else)」または「または代替形態において(or in the alternative)」)かぎりにおいて、「または(or)」という用語は本明細書において非排他的である。また、いくつかの実施形態は新たな実施形態を形成するために1つまたは複数の他の実施形態と組み合わされてもよいため、本明細書に記載されている様々な実施形態は、必ずしも相互に排他的ではない。
クラウドネットワーク内での顧客リソースの移動は多くの文脈において有利であり得るが、そのような移動後の顧客の経験を維持することも望ましい。本明細書において使用される場合、「顧客」という用語は、クラウドネットワークからサービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのソフトウェア(SaaS)を受け取るためにクラウドプロバイダとインターフェースするユーザを指すものとして理解される。たとえば、クラウドプロバイダおよび顧客は、顧客のアプリケーションに提供される最小限の性能要件を規定するサービス水準合意(SLA)を交わしている場合がある。たとえば、SLAは、特定量の計算能力またはリソース間の特定の最大待ち時間を指定することができる。リソースがクラウドネットワーク内で移動されると、クラウドプロバイダは、SLAの規定を満たすリソースをサポートするためのデバイスを選択することによって、SLAを順守するように試行することができる。
さらに、いくつかの事例において、最小限の許容可能な性能を規定し得るSLAを順守するのに加えて、顧客が慣れている顧客経験を維持することが望ましい場合がある。たとえば、20msのリソース間通信遅延が許容可能であるとSLAは規定するが、顧客は10msのリソース間通信遅延を平均とし、それゆえ、期待する場合がある。そのため、移動されたときに、SLAの規定を上回って超える顧客経験を維持することが望ましい場合がある。
ここで図面を参照すると、同様の参照符号が同様の構成要素またはステップを参照しているが、様々な例示的な実施形態の広範な態様が開示される。
図1は、クラウドリソースを提供するための例示的なクラウドアーキテクチャ100を示す。クラウドアーキテクチャ100は、ネットワーク接続されたクラウドアーキテクチャを実装することができ、クライアントデバイス110、ネットワーク115、クラウドコントローラ120、およびデータセンター130、140、150を含むことができる。
クライアントデバイス110は、1つまたは複数のクラウドリソースを利用するように構成されている任意のデバイスであってもよい。様々な実施形態において、クライアントデバイス110は、デスクトップコンピュータ、ラップトップ、タブレット、モバイルデバイス、サーバ、またはブレードであってもよい。クライアントデバイス110は、ネットワーク115を介して、クラウドコントローラ120のような他のデバイスと通信することができる。クライアントデバイス110は、クラウドコントローラ120に、1つまたは複数のクラウドリソースを求める要求を送信することができる。たとえば、クライアントデバイス110は、1つまたは複数の仮想マシン(VM)、仮想マシングループ、記憶デバイス、メモリ、またはクラウドネットワーク100内の他のリソースを使用することを要求することができる。追加のタイプのクラウドリソースが諒解されよう。クライアントデバイス110は、クラウドコントローラ120から分散型クラウドアプリケーションの配備を要求する顧客のデバイスを表してもよく、または、クライアントデバイス110は、様々なクラウドデバイス131、132、133、144、155、166によってサポートされるそのようなリソースと直接通信することによって、そのような分散型クラウドアプリケーションの1つまたは複数の構成要素を使用することを要求するそのような顧客の顧客を表してもよい。複数の追加のクライアントデバイス(図示せず)がネットワーク115と通信していてもよく、そのような追加のクライアントデバイスは、追加の顧客に属してもよいことが諒解されよう。
ネットワーク115は、例示的なクラウドアーキテクチャ100の様々なデバイス間の通信を有効にすることが可能なデバイスまたは伝送媒体の任意のネットワークであってもよい。たとえば、ネットワーク115は、データパケットを交換し、様々な宛先に向けてルーティングするように構成されている多数のデバイスを含んでもよい。様々な実施形態において、ネットワーク115は、インターネットまたは1つもしくは複数のキャリアネットワークを含んでもよい。
クラウドコントローラ120は、ネットワーククラウドの動作を制御するように構成されているデバイスであってもよい。クラウドコントローラ120は、図3に関連してより詳細に説明されるように、記憶デバイス、メモリ、または1つもしくは複数のプロセッサのような様々なハードウェアを含んでもよい。本明細書において使用される場合、「プロセッサ」という用語は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、および他の同様の処理デバイスのような様々なデバイスを包含するものとして理解される。様々な実施形態において、クラウドコントローラ120は、たとえば、サーバ、ブレード、パーソナルコンピュータ、ラップトップ、タブレット、またはモバイルデバイスを含んでもよい。いくつかのそのような実施形態において、クラウドコントローラ120は、たとえば、クラウドデバイス131、132、133によって提供されるハードウェアリソースのようなクラウドリソースを利用する仮想マシンであってもよい。クラウドコントローラ120は、データセンター130のようなデータセンターに存在してもよく、または、他の場所に存在してもよい。クラウドコントローラ120は、クラウドリソース配分の管理を含む、様々なクラウド管理機能を実施することができる。そのため、クラウドコントローラ120は、クライアントデバイス110のようなクライアントデバイスから、クラウドアプリケーションの確立を求める要求を受信することができる。そのような要求を受信すると、クラウドコントローラ120は、要求されたリソースを、クライアントデバイスによって使用するために、クラウドデバイス131、132、133、144、155、156の1つまたは複数から配分することができる。様々な実施形態において、例示的なクラウドアーキテクチャ100は、複数のクラウドコントローラ(図示せず)を含んでもよい。複数のクラウドコントローラの動作を協調させるための様々な技法が諒解されよう。
データセンター130、140、150は各々、クラウドリソースを提供する1つまたは複数のデバイスをサポートする場所であり得る。たとえば、データセンター130はクラウドデバイス131、132、133をホストすることができ、データセンター140はクラウドデバイス144をホストすることができ、データセンター150はクラウドデバイス155、156をホストすることができる。データセンター130、140、150は、地理的に分散されていてもよく、または、クライアントデバイス110から異なるネットワーク距離に配置されてもよい。たとえば、クラウドデバイス110はワシントンD.C.に位置してもよく、データセンター140はシカゴに位置してもよく、データセンター150はパリに位置してもよく、データセンター130は東京に位置してもよい。この例によれば、クライアントデバイス110は、データセンター140と通信するときに、データセンター130と通信するときよりも経験するネットワーク待ち時間が少なくなり得る。クラウドアーキテクチャ100は、多数の追加のデータセンター(図示せず)を含んでもよいこと、および、各データセンターは任意の数のクラウドデバイスを含んでもよいことが諒解されよう。
クラウドデバイス131、132、133、144、155、156の各々は、クライアントデバイスによって使用するためのクラウドリソースを提供するように構成されているデバイスであってもよい。様々な実施形態において、クラウドデバイス131、132、133、144、155、156の各々は、デスクトップコンピュータ、ラップトップ、タブレット、モバイルデバイス、サーバ、またはブレードであってもよい。そのため、クラウドデバイス131、132、133、144、155、156は、たとえば、記憶デバイス、メモリ、または1つもしくは複数のプロセッサのような様々なハードウェアを含んでもよい。クラウドデバイス131、132、133、144、155、156は、クライアントデバイス110のようなクライアントデバイスによって使用するために、処理、記憶装置、メモリ、VM、またはVMグループを提供するように構成されてもよい。
図1に示されている実施形態のような様々な実施形態において、クラウドコントローラ120は、需要のあるクラウドアプリケーションを配備しその後スケーリングするために、アプリケーションマネージャ(図示せず)を含むか、または、アプリケーションマネージャとインターフェースしてもよい。アプリケーションマネージャは、たとえば、デスクトップコンピュータ、ラップトップ、タブレット、モバイルデバイス、サーバ、またはブレードであってもよく、仮想マシンを含んでもよい。
定期的に、クラウドコントローラ120は、クラウドネットワーク100内でクラウドデバイス110に対してプロビジョニングされるリソースを移動させることが有利であることを決定することができる。たとえば、クラウドコントローラは、クライアントデバイス110と関連付けられているVMをサポートするデバイス155が過負荷になっていること、および、VMが別のデバイス131、132、133、144、156に再配置されるべきであることを決定することができる。いずれのデバイス131、132、133、144、156が移動されたVMをサポートすべきかを決定するに当たって、クラウドコントローラ120は、クライアントデバイスの顧客と関連付けられる明示的なSLAと、顧客の最近の性能経験を反映するアプリケーション要件を含む顧客プロファイルの両方を考慮することができる。この情報を使用して、クラウドコントローラは、明示的なSLAおよびアプリケーション要件を順守する可能性が高いデバイス131、132、133、144、156を選択することができる。
図2は、例示的なクラウドコントローラ200の構成要素図を示す。クラウドコントローラ200は、例示的なクラウドネットワーク100のクラウドコントローラ120に対応することができる。クラウドコントローラ200は、ネットワークインターフェース210、クラウドモニタ220、クラウド状態記憶装置230、分析エンジン240、黙示的SLA記憶装置250、明示的SLA記憶装置260、および作業負荷移動器270を含むことができる。
ネットワークインターフェース210は、少なくとも1つの他のデバイスと通信するように構成されている、ハードウェア、または、機械可読記憶媒体上に符号化されている実行可能命令を含むインターフェースであってもよい。ネットワークインターフェース210は、1つまたは複数の物理的ポートを含むことができ、たとえば、TCP、IP、またはEthernet(登録商標)のような1つまたは複数のプロトコルに従って通信することができる。
クラウドモニタ220は、性能データについて様々なクラウドデバイスをポーリングするように構成されている、ハードウェア、または、機械可読記憶媒体上の実行可能命令を含んでもよい。たとえば、クラウドモニタ220は、性能メトリックを要求するメッセージを定期的に生成し、ネットワークインターフェース210を介してクラウドデバイスにこのメッセージを送信することができる。これに応答して、ポーリングされているデバイスは、CPU利用状況、メモリ使用状況、記憶装置使用状況、ネットワークパケット遅延、パケット遅延変動(ジッタ)、ネットワーク帯域幅、または他のデバイスレベル性能メトリックのような性能メトリックによって応答することができる。付加的にまたは代替的に、デバイスは、VMもしくは他のリソースの性能、リソース間通信メトリック、または、スケジュールされている保守点検情報のようなクラウド特有の情報のような、アプリケーションレベル性能メトリックを報告してもよい。様々な代替的な実施形態において、クラウドモニタ220は、いくつかのデバイスをポーリングするように構成されなくてもよく、代わりに、それぞれのデバイスによってプッシュされる性能更新を受信してもよい。性能メトリックを受信すると、クラウドモニタ220は、このデータを後に使用するためにクラウド状態記憶装置230に記憶することができる。
クラウド状態記憶装置230は、クラウドネットワークに属する様々なデバイスによって報告される様々な性能メトリックを記憶するデバイスであってもよい。クラウド状態記憶装置230は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および/または同様の記憶媒体のような機械可読記憶媒体を含んでもよい。図4−図5の例に関連して下記に説明されるように、クラウド状態記憶装置230は、デバイスレベルメトリックまたはアプリケーションレベルメトリックを記憶することができる。
分析エンジン240は、最近の顧客経験をプロファイルまたは「黙示的SLA」の形態でモデル化するために、クラウド状態記憶装置230に記憶されている性能メトリックを分析するように構成されている、ハードウェア、または、機械可読記憶媒体上の実行可能命令を含むことができる。たとえば、分析エンジンは、分析下の現在の顧客について、その顧客に対してプロビジョニングされるリソースおよびそれらのリソースをサポートするデバイスと関連付けられる性能メトリックを取り出すことができる。その後、分析エンジンは、顧客によって経験される性能の概要を形成するために、このデータを使用することができる。顧客経験に関連するクラウド性能データに対して分析を実施する様々な付加的なまたは代替的な方法が諒解されよう。顧客によって最近経験された性能メトリックを示す1つまたは複数のアプリケーション要件を含む黙示的SLAが生成された後、分析エンジン240は、黙示的SLA記憶装置250に黙示的SLAを記憶することができる。
黙示的SLA記憶装置250は、分析エンジン240によって生成される黙示的SLAを記憶するデバイスであり得る。黙示的SLA記憶装置250は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および/または同様の記憶媒体のような機械可読記憶媒体を含んでもよい。図6の例に関連して下記に説明されるように、黙示的SLA記憶装置250は、特定の顧客にとってアプリケーション要件としての役割を果たすための、デバイスレベルメトリックまたはアプリケーションレベルメトリックを記憶することができる。
明示的SLA記憶装置260は、クラウドプロバイダおよび顧客によって入力される明示的SLAを記憶するデバイスであり得る。明示的SLA記憶装置260は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および/または同様の記憶媒体のような機械可読記憶媒体を含んでもよい。明示的SLA記憶装置260は、特定の顧客にとって明示的SLAとしての役割を果たすための、デバイスレベルメトリックまたはアプリケーションレベルメトリックを記憶することができる。
作業負荷移動器270は、リソース移動がアプリケーションにとって適切であるか否かを決定し、移動されたリソースをサポートするための新たなデバイスを選択し、ネットワークインターフェース210を介してそのような移動を実行するように構成されているハードウェア、または、機械可読記憶媒体上の実行可能命令を含んでもよい。リソースが移動されるべきであることを決定するための様々な方法が諒解されよう。新たなデバイスを選択するに当たって、作業負荷移動器270は、1つまたは複数の黙示的SLAまたは明示的SLAを考慮するように構成され得る。たとえば、作業負荷移動器270は、移動されるべきリソースがプロビジョニングされる顧客の黙示的SLA記憶装置250に記憶されている黙示的SLAからアプリケーション要件を取り出すことができる。その後、作業負荷移動器270は、アプリケーション要件を満たすことが可能である可能性が高いデバイスを選択することができる。たとえば、アプリケーション要件が、リソースによって経験される全体的パケット遅延が10msであると指定する場合、作業負荷移動器270は、クラウド状態記憶装置に記憶されているデータによって反映されるものとしての、10msまたはより良好な全体的パケット遅延を報告していることが分かっているデバイスを選択することができる。このように、作業負荷移動270は、黙示的SLA記憶装置250に記憶されている複数のアプリケーション要件または明示的SLA記憶装置260に記憶されている明示的SLAの規定を考慮に入れることができる。
様々な代替的な実施形態において、作業負荷移動器270は、リテラル差値または割合の変動のような、アプリケーション要件からの所定量だけの変動を許容するように構成されてもよい。たとえば、アプリケーション要件が10msのパケット遅延を記述しており、作業負荷移動が顧客またはリソースタイプについて最大100%の変動を許容するように構成されている場合、作業負荷移動器270は、20msの全体的パケット遅延を経験するデバイスを選択することができる。
新たなデバイスが選択された後、作業負荷移動器270はリソースの実際の移動を実行することができる。たとえば、作業負荷移動器270は、リソースをサポートしている現在のデバイスに、リソースが保留されるべきであること、または、リソースのイメージが新たなデバイスもしくはクラウドコントローラ200に送信されるべきであることを示すメッセージを送信することができる。付加的にまたは代替的に、作業負荷移動器270は、新たなデバイスに、新たなデバイスが移動されたリソースのサポートを開始すべきであることを示すメッセージを送信してもよい。様々な実施形態において、このメッセージは、サポートされるべきリソースのイメージを含むかまたは他の様態で識別することができる。リソース移動を実施するための様々な追加の動作および方法が諒解されよう。
図3は、例示的なクラウドコントローラ300のハードウェア図を示す。例示的なクラウドコントローラ300は、図2の例示的なクラウドコントロール200または図1の例示的なクラウドコントローラ120に対応することができる。クラウドコントローラ300は、プロセッサ310、データ記憶装置320、および入出力(I/O)インターフェース330を含むことができる。
プロセッサ310は、システムバスを介して、クラウドコントローラ300の動作を制御し、データ記憶装置320およびI/Oインターフェース330と協働することができる。本明細書において使用される場合、「プロセッサ」という用語は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、および他の同様の処理デバイスのような様々なデバイスを包含するものとして理解される。
データ記憶装置320は、クラウド内のリソースを管理するのに有用な様々なプログラムのようなプログラムデータを記憶することができる。たとえば、データ記憶装置320は、当業者に知られている、クラウドネットワーク内のリソースを管理するための様々な方法を実施するためのクラウド管理命令321を記憶することができる。たとえば、クラウド管理命令321は、クラウド内の顧客に対してリソースをプロビジョニングおよび解放するための命令を含むことができる。クラウド管理命令321は、1つまたは複数のアプリケーションマネージャと協働し、様々なデータセンター、ハイパーバイザ、または仮想マシンの動作を協調させるのに有用なさらなる命令または方法を含んでもよい。
クラウド管理命令321はまた、図7に関連してより詳細に説明されるような、作業負荷移動中に黙示的SLAを順守するための命令をも含んでもよい。図示されているように、クラウド管理命令321は、クラウドモニタ220と関連付けられる機能を実施するためのクラウドモニタリング命令322、分析エンジン240と関連付けられる機能を実施するための分析命令323、および、作業負荷移動器270と関連付けられる機能を実施するための作業負荷移動命令324を含むことができる。
データ記憶装置320はまた、クラウド管理命令321の実行に使用される様々なデータをも記憶することができる。たとえば、データ記憶装置320は、クラウドネットワーク内の他のデバイスによって報告されるクラウド状態情報325、クラウドプロバイダと顧客との間で合意されている明示的SLA326、および、クラウド状態情報325または他のデータに基づいてクラウドコントローラ300によって生成される黙示的SLA327を記憶することができる。このデータを記憶するための様々な例示的なデータ構成が、図4−図6に関連して下記により詳細に説明される。
I/Oインターフェース330は、1つまたは複数の通信チャネルを介した通信をサポートするために、プロセッサ310と協働することができる。たとえば、I/Oインターフェース330は、キーボードおよびモニタのようなユーザインターフェース、ならびに/または、1つまたは複数のEthernetポートのようなネットワークインターフェースを含むことができる。
いくつかの実施形態において、プロセッサ310が、プロセッサ/CPUコアのようなリソースを含んでもよく、I/Oインターフェース330が任意の適切なネットワークインターフェースを含んでもよく、または、データ記憶装置320が、メモリもしくは記憶デバイスを含んでもよい。その上、クラウドコントローラ300は、プロセッサ、メモリ、ネットワークインターフェースまたは記憶デバイスのような構成要素から構成される1つまたは複数のサーバまたはブレードのような任意の適切な物理的ハードウェア構成であってもよい。これらの実施形態のいくつかにおいて、クラウドコントローラ300は、互いから遠隔しているクラウドネットワークリソースを含んでもよい。
いくつかの実施形態において、クラウドコントローラ300は、1つまたは複数の仮想マシンを含んでもよい。これらの実施形態のいくつかにおいて、仮想マシンは、異なる物理的機械からの構成要素を含んでもよく、または、地理的に分散されていてもよい。たとえば、データ記憶装置320およびプロセッサ310は、2つの異なる物理的機械中に存在してもよい。いくつかの実施形態において、クラウドコントローラ300は、本明細書に記載されている方法を実施するようにプログラムされている汎用コンピュータであってもよい。プロセッサ実行可能プログラムがプロセッサ310上で実施されると、プログラムコードセグメントは、特定の論理回路と同様に動作する固有のデバイスを提供するために、プロセッサと組み合わさる。
たとえば、プログラムおよび論理がデータ記憶装置およびメモリ内に記憶されており、メモリがプロセッサに通信可能に接続されている実施形態に関連して本明細書に図示および記載されているが、そのような情報は、任意の適切な構成のデバイスに通信可能に接続されている任意の適切な構成のメモリ、記憶装置またはデータベースを使用して、任意の適切な組合せのメモリ(複数可)、記憶装置(複数可)または内部もしくは外部データベース(複数可)に情報を記憶して、あるいは、任意の適切な数のアクセス可能な外部メモリ、記憶装置またはデータベースを使用して、任意の他の適切な様式で(たとえば、任意の適切な数のメモリ、記憶装置またはデータベースを使用して)記憶されてもよいことが諒解されるべきである。そのため、本明細書において参照されるデータ記憶装置という用語は、メモリ(複数可)、記憶装置(複数可)、およびデータベース(複数可)のすべての適切な組合せを包含するように意図されている。
図4は、デバイスレベル性能メトリックを記憶するための例示的なデータ構成400を示す。本明細書において使用される場合、「デバイスレベル」という用語は、デバイスがサポートする特定のアプリケーションには関係なく、ハードウェアデバイスの全体としての経験に関係するものとして理解される。データ構成400は、例示的なクラウドコントローラ200のクラウド状態記憶装置230の内容を反映することができ、報告されるクラウド状態情報を表すことができる。例示的なデータ構成400は抽象化であってもよいこと、および、データは、たとえば、アレイ、リスト、ツリー、または当業者に知られている他のデータ構造のような様々な様式で記憶されてもよいことが理解される。データ構成400は、ノードフィールド405、タイムスタンプフィールド410、CPU使用状況フィールド415、メモリ使用状況フィールド420、記憶装置利用状況フィールド425、遅延フィールド430、および帯域幅フィールド435を含んでもよい。デバイス性能を追跡するための様々な代替的なまたは付加的な性能メトリックが諒解されよう。
ノードフィールド405は、レコードが適用されるハードウェアデバイスの識別情報(たとえば、識別子またはアドレス)を記憶することができる。タイムスタンプフィールド410は、特定のレコードにおいて担われるメトリックが報告された時刻を示すタイムスタンプを記憶することができる。たとえば、いくつかの実施形態において、クラウドコントローラは、各ノードの性能メトリックの履歴を維持することができ、報告の間で区別するためにタイムスタンプを利用することができる。他の実施形態において、クラウドコントローラは、履歴を維持しなくてもよく、代わりに、たとえば、最も近い報告のみを維持してもよく、または、最近報告された性能メトリックの「平均」を維持してもよい。そのような実施形態において、タイムスタンプフィールド410は存在しなくてもよい。
残りのフィールド415−435は、様々な報告される性能メトリックを示してもよい。CPU使用状況フィールド415、メモリ使用状況フィールド420、および記憶装置利用状況フィールド425は、デバイスまたはそのハードウェア構成要素の現在の状態に関する性能メトリックを記憶することができる。遅延フィールド430および帯域幅フィールド435は、ネットワーク接続品質の測定値のような、外部デバイスまたはサービスを利用しているデバイスの現在の経験に関する性能メトリックを記憶することができる。様々なフィールドが複数のノード間の関係を説明してもよいことが理解される。たとえば、遅延フィールド415は、代替的に、すべてのそのようなノードの間での平均ではなく、アプリケーションにおいてノードと他の各ノードとの間の遅延測定値を記憶するための構造であってもよい。たとえば、ページファイル使用状況またはネットワークジッタのような、現在のクラウド状態および顧客経験の分析に有用な様々な追加の性能メトリックが諒解されよう。
一例として、レコード440は、時刻「1376603040」において、ノード「1」が、そのCPUが40%利用されており、そのメモリが90%満たされており、その記憶装置が50%満たされていたことを報告したことを示している。さらに、レコードは、デバイスのためのネットワーク接続のパケット遅延が平均して12msであり、帯域幅が下流で10mbpsおよび上流で5mbpsであったことを示し得る。例示的なレコード445および450の意味は、上記に照らして諒解されよう。データ構成400は、多数の追加のレコード455を含んでもよい。
図5は、アプリケーションレベル性能メトリックを記憶するための例示的なデータ構成500を示す。本明細書において使用される場合、「アプリケーションレベル」という用語は、クラウドネットワークの1つまたは複数のハードウェアデバイスを利用するリソースの経験に関係するものとして理解される。理解されるように、リソースは、顧客のためのアプリケーションを実施するために他のリソースと協働することができる。データ構成500は、例示的なクラウドコントローラ200のクラウド状態記憶装置230の内容を反映することができ、報告されるクラウド状態情報を表すことができる。例示的なデータ構成500は抽象化であってもよいこと、および、データは、たとえば、アレイ、リスト、ツリー、または当業者に知られている他のデータ構造のような様々な様式で記憶されてもよいことが理解される。データ構成500は、顧客アプリケーションフィールド505、被使用ノードフィールド510、リソースフィールド515、およびリソース間待ち時間フィールド520を含むことができる。アプリケーション性能を追跡するための様々な代替的なまたは付加的な性能メトリックが諒解されよう。
顧客アプリケーションフィールド505は、レコードが適用される顧客アプリケーションの指示(たとえば、顧客識別子またはアプリケーション識別子)を含むことができる。被使用ノードフィールド510は、顧客アプリケーションと関連付けられるリソースをサポートする1つまたは複数の物理的デバイスの識別情報を含むことができる。リソースフィールド515は、顧客アプリケーションの各ノードに対してプロビジョニングされる1つまたは複数のリソースの指示を含むことができる。リソース間待ち時間フィールド520は、そのような各リソースの性能メトリックを含むことができる。図示されているように、リソース間待ち時間フィールド520は、アプリケーションの他のリソースとの通信にわたるリソースによる平均待ち時間経験を示すことができる。
様々な他の構成およびフィールドが使用されてもよいことが諒解されよう。たとえば、データ構成500は、タイムスタンプフィールドを利用してもよく、被使用ノードフィールド510を含まなくてもよく、各リソースのメトリックを含まなくてもよく、代わりに、すべてのリソースにわたる単一のメトリックを含んでもよく、または、様々なリソース対のリソースメトリックを含んでもよい。様々な他の修正が諒解されよう。
一例として、レコード525は、顧客アプリケーション「A」が3つのリソースの使用を報告していることを示し得る。リソース「VM1」がノード「1」を利用し得、5msのリソース間待ち時間を経験しているものであり得る。これは、DB1またはVM2との最近の通信の平均が、平均して5msの待ち時間をもたらしていることを示し得る。リソース「DB1」がノード「1」を利用し得、17msのリソース間待ち時間を経験しているものであり得る。リソース「VM2」がノード「2」を利用し得、30msのリソース間待ち時間を経験しているものであり得る。上記に照らして、例示的なレコード530の意味が諒解されよう。データ構成500は、多数の追加のレコード535を含んでもよい。
図6は、アプリケーション要件を記憶するための例示的なデータ構成600を示す。データ構成600は、例示的なクラウドコントローラ200の黙示的SLA記憶装置250の内容を反映することができ、分析を使用して生成される黙示的SLAを表すことができる。いくつかの実施形態において、データ構成600は明示的SLA記憶装置260の内容を反映することができ、顧客およびクラウドプロバイダが合意している明示的SLAを表すことができる。例示的なデータ構成600は抽象化であってもよいこと、および、データは、たとえば、アレイ、リスト、ツリー、または当業者に知られている他のデータ構造のような様々な様式で記憶されてもよいことが理解される。データ構成600は、顧客フィールド605および規則フィールド610を含むことができる。黙示的または明示的SLAを規定するための様々な代替的なまたは付加的なフィールドが諒解されよう。
顧客フィールド605は、レコードが適用される顧客の識別情報(たとえば、顧客識別子またはアプリケーション識別子)を記憶することができ、一方、規則フィールド610は、作業負荷配置または移動の間に考慮するための1つまたは複数の規則を記憶することができる。
一例として、レコード615は顧客「X」に対する複数の規則を識別することができる。第1の規則は、リソース「VM1」が40%のCPU利用状況を報告しているノードに位置すべきであるか、または、最近位置していたことを示し得る。第2の規則は、2つのリソース「VM1」および「DB1」がそれらの間で2msの平均待ち時間を経験すべきであるか、または、最近経験していることを示し得る。レコード615は複数の追加の規則を含んでもよい。上記に照らして、例示的なレコード620の意味が諒解されよう。データ構成600は、多数の追加のレコード625を含んでもよい。
図7は、クラウドネットワーク内で顧客リソースを移動させるための例示的な方法700を示す。方法700は、たとえば、クラウドモニタ220、分析エンジン240、または作業負荷移動器270のような、クラウドコントローラ200の構成要素によって実施され得る。依然として本明細書に記載されている方法の目標を達成しながら、方法700に様々な修正が行われてもよいことが理解される。たとえば、方法700は、たとえば、クラウド状態情報について定期的にポーリングするプロセス、黙示的SLAを定期的に生成するプロセス、および、クラウド内のリソースを定期的に移動させるプロセスのような複数の独立したプロセスとして実施されてもよい。さらなる修正が諒解されよう。
方法700は、ステップ705において開始し、ステップ710に進むことができ、クラウドコントローラ200が性能メトリックについて1つまたは複数のノードをポーリングすることができる。たとえば、クラウドコントローラ200は、要求メッセージを生成して適切なデバイスに送信することができる。応答が受信された後、クラウドコントローラ200は、報告された性能メトリックを後の分析のために記憶することができる。いくつかの実施形態において、クラウドコントローラ200は、データを単純に報告されたとおりに記憶することができ、一方、他の実施形態においては、クラウドコントローラ200は、記憶する前に、最初に受信されたデータを処理することができ、たとえば、性能データを以前に報告された性能データと平均するなどである。
次に、クラウドコントローラ200は、ステップ720において、分析されるべき顧客を選択することによって、黙示的SLAを生成するプロセスを開始することができる。たとえば、いくつかの実施形態において、クラウドコントローラ200は、顧客グループを通じて定期的に反復してもよく、ステップ720は、そのようなグループ内の次の顧客を選択することを含んでもよい。その後、ステップ725において、クラウドコントローラ200は、いずれのリソースまたはデバイスが顧客またはそれに属するアプリケーションと関連付けられるかを決定することができる。たとえば、クラウドコントローラは、その顧客のために展開されている現在のアプリケーションを定義または他の様態で説明する、顧客と関連付けられるレコードを取り出すことができる。分析下にある顧客と関連付けられるリソースまたはデバイスが識別された後、クラウドコントローラ200は、ステップ730において、そのリソースまたはデバイスのクラウド状態情報を取り出すことができる。そのようなクラウド状態情報は、ステップ710および715において取り出され記憶されているクラウド状態情報を含むことができる。
取り出されたクラウド状態情報を使用して、クラウドコントローラ200は、ステップ735において、顧客の最近の経験をモデル化するための分析を実施することができる。クラウドコントローラ200は、当業者に知られている任意の方法に従ってそのような分析を実施することができる。たとえば、クラウドコントローラは、クラウド使用状況に関するメトリック(たとえば、帯域幅消費、CPU使用状況、メモリ使用状況、記憶装置使用状況、リソース間遅延、データセンター負荷など)、挙動に間接的に影響を及ぼす周辺情報(たとえば、日付、月、年、近い休日、嵐または地震のような予測される自然現象)、または顧客サービスプロファイル情報(たとえば、ユーザの数、負荷または使用権のような値の顧客によって提供される予測)のような情報を考慮することができる。この情報を使用して、クラウドコントローラ200は、たとえば、1つもしくは複数のメトリックに関連する平均的なもしくは最悪の事例の挙動、または、日付/時間特有の平均的なもしくは最悪の事例の挙動のようなユーザ経験を評価するために様々なモデルを使用することができる。日付または時間に基づいて挙動を追跡する1つの方法は、理解されるようなベイズネットワークを使用することを含んでもよい。
そのようなモデルが生成された後、クラウドコントローラ200は、ステップ740において、分析下の顧客と関連付けられる黙示的SLAを更新することができる。そのようなステップは、黙示的SLAがその顧客について以前に生成されていない場合に、新たな黙示的SLAを作成することを含んでもよい。SLAに対する更新は、最近の顧客経験のモデル、および、その顧客について以前に生成され、黙示的SLAの以前のバージョンによって保持されている任意の規則を考慮に入れることができる。たとえば、新たな黙示的SLAは、1つまたは複数の以前に作成された規則を保持してもよく、または、以前の規則から所定量分のみ逸脱するように修正されている規則を含んでもよい。様々な他の修正が諒解されよう。
黙示的SLAが更新されてからしばらく後、クラウドコントローラ745は、顧客についてのプロセスまたは作業負荷移動を開始することができる。ステップ745において、クラウドコントローラ745は、顧客と関連付けられる1つまたは複数のリソースが移動されるべきであることを決定することができる。この決定は、当業者に知られている任意の方法に従って行われてもよく、ネットワーク状態、クラウドデバイスの作業負荷、予測されるSLA違反、または、リソースが移動されるべきであることを決定するのに有用な任意の他の要因のような要因に基づいてもよい。
次に、ステップ750において、クラウドコントローラ200は、移動されるリソースをサポートするための候補宛先としてのクラウドデバイスを選択することができる。このステップは、当業者に知られている任意の方法に従って実施されてもよい。たとえば、2012年10月10日付で出願された米国特許出願第13/648,628号、および、2013年2月28日付で出願された米国特許出願第13/779,920号に記載されている方法および概念を使用した配置エンジン、それらの開示の全体は、あらゆる目的のために引用により本明細書に組み込まれている。いくつかの実施形態において、ステップ750は、移動されるアプリケーションに属する複数のまたはさらにはすべてのリソースについての新たなリソース−デバイスマッピングを計算することを含んでもよい。
候補宛先が選択された後、クラウドコントローラ200は、ステップ755において、候補デバイスおよび任意の他の関連デバイスと関連付けられる任意のクラウド状態情報を取り出すことによって、任意の適切なSLAに対して候補宛先を評価することを開始することができる。ステップ760および765において、クラウドコントローラ200は、提案されている移動がそれぞれ任意の明示的SLAまたは黙示的SLAに違反するか否かを決定することができる。たとえば、クラウドコントローラは、クラウド状態情報に記憶されている候補デバイスの性能メトリックが、SLAの任意のアプリケーション要件に違反するか否かを決定することができる。別の例として、クラウドコントローラは、プロセス間待ち時間のアプリケーション要件が移動後に満たされる可能性が高いか否かを推定するために、候補デバイスについて以前に報告されたネットワーク性能、または、候補デバイスと関連付けられる他のリソースについて報告されたプロセス間待ち時間を利用してもよい。いくつかの実施形態において、クラウドコントローラは、リテラル値または割合のような、所定量未満しか逸脱しないアプリケーション要件違反を許容するように構成されてもよい。別の代替形態として、黙示的SLAが明示的SLAを満たすために経時的に劣化することを可能にすることによって、サービス品質の漸進的劣化をもたらすために黙示的SLAが使用されてもよい。また別の特徴は、適合されたサービス提供をもたらしてもよい。たとえば、明示的SLAと黙示的SLAとの間の著しい差がある場合、クラウドコントローラ200または他のエンティティは、最近の性能を識別し、明示的SLAを黙示的SLAにより近くするためのサービスアップグレードを提供するメッセージを顧客に送信することができる。様々な他の修正が諒解されよう。
ステップ760または765のいずれかにおいて、候補宛先が許容不可能であることが分かった場合、方法700はステップ750にループバックすることができ、クラウドコントローラは、異なる候補宛先またはアプリケーションデバイスマッピングを評価のために選択するよう試行することができる。そうでない場合、方法700はステップ770に進むことができ、クラウドコントローラは、たとえば、クラウドデバイスにリソースを候補デバイスへと移動させるよう命令する1つまたは複数のメッセージをクラウドデバイスに送信することによって、選択された移動を実行することができる。その後、方法700は、ステップ775において終了するために進み得る。
様々な実施形態において、明示的SLAまたは黙示的SLAを維持する候補宛先を選択することが常に可能または実践可能でなくてもよいことが理解される。そのような事例において、クラウドコントローラは、上または複数のSLAに違反する宛先を選択してもよい。そのような選択を実行するための様々な方法およびSLAが違反されるときの影響を軽減するための方法は諒解されよう。
移動されるサーバをサポートするための適切なデバイスを選択するための様々な代替的な方法が利用されてもよいことが諒解されよう。たとえば、候補宛先を選択するステップ自体が、任意の明示的SLAまたは黙示的SLAを考慮に入れてもよく、ステップ760、765は実施されなくてもよい。明示的SLAおよび黙示的SLAを維持しながら作業負荷を移動させるための様々な他の修正および方法が諒解されよう。
上記によれば、様々な実施形態は、クラウドプロバイダおよび顧客によって合意されている任意の明示的SLAを上回って超える顧客経験を維持しながら、リソースの移動を可能にする。たとえば、最近の顧客経験をモデル化することによって、クラウドコントローラは、顧客の経験に対する悪影響を回避するために、作業負荷移動中に明示的SLAと同様に使用され得る「黙示的SLA」を生成することができる。上記に照らして、様々な他の利点が諒解されよう。
上記の説明から、本発明の様々な例示的実施形態は、ハードウェアによって実装されてもよいことが諒解されるべきである。さらに、様々な例示的実施形態は、本明細書に詳細に説明されている動作を実施するために少なくとも1つのプロセッサによって読み出され実行され得る、機械可読記憶媒体上に記憶されている命令として実装されてもよい。機械可読記憶媒体は、パーソナルコンピュータまたはラップトップコンピュータ、サーバ、または他のコンピューティングデバイスのような機械によって読み出し可能な形態で情報を記憶するための任意のメカニズムを含んでもよい。したがって、有形で一時的でない機械可読記憶媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および同様の記憶媒体を含んでもよい。
本明細書における任意のブロック図は、本発明の原理を具現化する例示的な回路の概念図を表すことが、当業者には諒解されるべきである。同様に、任意のフローチャート、流れ図、状態遷移図、疑似コードなどは、実質的に機械可読媒体において表されてもよく、そのため、コンピュータまたはプロセッサが明示的に図示されているか否かにかかわらず、そのようなコンピュータまたはプロセッサによって実行されてもよい様々なプロセスを表すことが諒解されよう。
様々な例示的実施形態がその特定の例示的な態様を特に参照して詳細に説明されているが、本発明は他の実施形態が可能であり、その詳細は、様々な明白な点で修正が可能であることが理解されるべきである。当業者には容易に諒解されるように、本発明の精神および範囲内にあるままでありながら、変形および修正が実行されてもよい。したがって、上記の開示、説明、および図面は例示のみを目的とするものであり、特許請求の範囲のみによって規定される本発明を決して限定するものではない。

Claims (10)

  1. クラウドネットワーク内でリソースを移動させるためにクラウドコントローラによって実施される方法であって、
    クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信すること(710)と、
    少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析すること(735)であって、少なくとも1つのアプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる、分析すること(735)と、
    少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)と、
    第1のデバイスから第2のデバイスへとリソースを移動させること(770)とを含む、方法。
  2. 少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)が、リソースの第2のデバイスへの移動が少なくとも1つのアプリケーション要件を順守すると決定すること(765)を含む、請求項1に記載の方法。
  3. 少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)が、リソースの第2のデバイスへの移動が所定量未満だけ、少なくとも1つのアプリケーション要件に違反すると決定すること(765)を含む、請求項1に記載の方法。
  4. リソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)が、顧客と関連付けられる明示的なサービス水準合意(SLA)にさらに基づく、請求項1から3のいずれか一項に記載の方法。
  5. 少なくとも1つのアプリケーション要件がデバイスレベル性能メトリックを含む、請求項1から4のいずれか一項に記載の方法。
  6. 少なくとも1つのアプリケーション要件がアプリケーションレベル性能メトリックを含む、請求項1から5のいずれか一項に記載の方法。
  7. リソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)が、クラウドに属する複数のデバイスの間でのリソースセットの新たな構成を計算することを含む、請求項1から6のいずれか一項に記載の方法。
  8. クラウドネットワーク内でリソースを移動させるためのクラウドコントローラであって、
    ネットワークインターフェース(210)と、
    メモリ(320)と、
    メモリと通信しているプロセッサ(310)とを備え、プロセッサは、
    ネットワークインターフェースを介して、クラウドネットワーク内の少なくとも1つのデバイスから性能メトリックを受信すること(710)と、
    少なくとも1つのアプリケーション要件を生成するために性能メトリックを分析すること(735)であって、少なくとも1つのアプリケーション要件は、顧客に対してプロビジョニングされるリソースと関連付けられる最近の性能を示し、リソースは、クラウドネットワーク内の第1のデバイスによってサポートされる、分析すること(735)と、
    少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別すること(750、760、765)と、
    第1のデバイスから第2のデバイスへとリソースを移動させること(770)とを行うように構成されている、クラウドコントローラ。
  9. 少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別する(750、760、765)識別において、プロセッサが、リソースの第2のデバイスへの移動が少なくとも1つのアプリケーション要件を順守すると決定する(765)ように構成されている、請求項8に記載のクラウドコントローラ。
  10. 少なくとも1つのアプリケーション要件に基づいてリソースをサポートするために、クラウドネットワーク内の第2のデバイスを識別する(750、760、765)識別において、プロセッサが、リソースの第2のデバイスへの移動が所定量未満だけ、少なくとも1つのアプリケーション要件に違反すると決定する(765)ように構成されている、請求項8に記載のクラウドコントローラ。
JP2018134938A 2013-07-29 2018-07-18 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証 Pending JP2018198068A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/953,197 2013-07-29
US13/953,197 US9929918B2 (en) 2013-07-29 2013-07-29 Profile-based SLA guarantees under workload migration in a distributed cloud

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016530630A Division JP2016525757A (ja) 2013-07-29 2014-07-11 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証

Publications (1)

Publication Number Publication Date
JP2018198068A true JP2018198068A (ja) 2018-12-13

Family

ID=51903944

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016530630A Pending JP2016525757A (ja) 2013-07-29 2014-07-11 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証
JP2018134938A Pending JP2018198068A (ja) 2013-07-29 2018-07-18 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016530630A Pending JP2016525757A (ja) 2013-07-29 2014-07-11 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証

Country Status (5)

Country Link
US (1) US9929918B2 (ja)
EP (1) EP3028406B1 (ja)
JP (2) JP2016525757A (ja)
CN (1) CN105432040A (ja)
WO (1) WO2015015297A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146395B2 (en) * 2014-05-06 2018-12-04 T-Mobile Usa, Inc. Quality of experience diagnosis and analysis in wireless communications
US9491054B2 (en) * 2014-06-06 2016-11-08 Microsoft Technology Licensing, Llc Network-state management service
US9602351B2 (en) 2014-06-06 2017-03-21 Microsoft Technology Licensing, Llc Proactive handling of network faults
US9887878B2 (en) 2014-06-06 2018-02-06 Microsoft Technology Licensing, Llc Dynamic scheduling of network updates
US9749208B2 (en) * 2014-06-30 2017-08-29 Microsoft Technology Licensing, Llc Integrated global resource allocation and load balancing
US10353745B1 (en) * 2015-03-27 2019-07-16 Amazon Technologies, Inc. Assessing performance of disparate computing environments
US9699109B1 (en) * 2015-03-27 2017-07-04 Amazon Technologies, Inc. Assessing performance of networked computing environments
US10853111B1 (en) * 2015-09-30 2020-12-01 Amazon Technologies, Inc. Virtual machine instance migration feedback
US10331383B2 (en) 2016-06-24 2019-06-25 International Business Machines Corporation Updating storage migration rates
US9680696B1 (en) * 2016-07-18 2017-06-13 Capital One Financial Corporation Cloud migration and maintenance controls
US10162676B2 (en) * 2016-08-15 2018-12-25 International Business Machines Corporation Social objectives-based workload resolution in a cloud environment
CN106597881A (zh) * 2016-11-03 2017-04-26 深圳量旌科技有限公司 基于分布式决策算法的云服务机器人
CN107360210B (zh) * 2017-06-16 2020-07-07 佛山科学技术学院 云计算数据中心兼顾能耗与访问延迟的虚拟机分配方法
KR101926394B1 (ko) 2017-09-19 2018-12-07 경희대학교 산학협력단 클라우드 컴퓨팅 시스템 및 클라우드 시스템에서의 부하 분리 방법
CN108549981B (zh) * 2018-03-30 2022-06-03 安徽大学 一种提高大批量并行业务流程服务质量的方法
US10606575B2 (en) * 2018-04-03 2020-03-31 Accenture Global Solutions Limited Efficiency of computing resource consumption via improved application portfolio deployment
US11159650B2 (en) * 2018-11-02 2021-10-26 Lg Electronics Inc. Broadcast signal transmission apparatus, broadcast signal transmission method, broadcast signal reception apparatus and broadcast signal reception method
US11210124B2 (en) 2019-01-11 2021-12-28 Hewlett Packard Enterprise Development Lp Movement of virtual machine data across clusters of nodes
US11695654B2 (en) * 2019-02-27 2023-07-04 Hewlett Packard Enterprise Development Lp High performance compute infrastructure as a service
EP3932024A4 (en) * 2019-02-27 2022-07-06 Singapore Telecommunications Limited DATA COMMUNICATION OPTIMIZATION SYSTEM
US20210263667A1 (en) * 2020-02-11 2021-08-26 Pure Storage, Inc. Multi-cloud orchestration as-a-service
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11650797B2 (en) * 2020-04-17 2023-05-16 Jpmorgan Chase Bank, N.A. Cloud portability code scanning tool
US11915106B2 (en) 2020-07-09 2024-02-27 Kyndryl, Inc. Machine learning for determining suitability of application migration from local to remote providers
US11611474B2 (en) * 2020-12-28 2023-03-21 Juniper Networks, Inc. Edge controller with network performance parameter support
US11652710B1 (en) 2021-12-14 2023-05-16 International Business Machines Corporation Service level agreement aware resource access latency minimization
US11863404B1 (en) * 2022-08-23 2024-01-02 Verizon Patent And Licensing Inc. Systems and methods for calculating optimum customer access paths for applications provided by multi-cloud providers through private networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134687A (ja) * 2007-11-29 2009-06-18 Hitachi Ltd アプリケーションマイグレーションのための候補データセンタを見つける方法および装置[0001]
WO2012120664A1 (ja) * 2011-03-09 2012-09-13 株式会社日立製作所 仮想計算機のマイグレーション評価方法及び仮想計算機システム
US20130111033A1 (en) * 2011-10-31 2013-05-02 Yun Mao Systems, methods, and articles of manufacture to provide cloud resource orchestration

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464163B1 (en) * 2000-07-27 2008-12-09 International Business Machines Corporation Service provisioning via attribute-based subscription
US7810090B2 (en) * 2003-12-17 2010-10-05 Sap Ag Grid compute node software application deployment
US20060064481A1 (en) * 2004-09-17 2006-03-23 Anthony Baron Methods for service monitoring and control
US7730486B2 (en) 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US8799431B2 (en) * 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
US20070204266A1 (en) 2006-02-28 2007-08-30 International Business Machines Corporation Systems and methods for dynamically managing virtual machines
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
US8380880B2 (en) * 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
US9678803B2 (en) * 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US8266618B2 (en) * 2008-11-21 2012-09-11 International Business Machines Corporation Graphics hardware resource usage in a fully virtualized computing environment
US9037692B2 (en) * 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9069730B2 (en) 2009-06-29 2015-06-30 Hewlett-Packard Development Company, L. P. Coordinated reliability management of virtual machines in a virtualized system
CN101937357B (zh) * 2009-07-01 2013-11-06 华为技术有限公司 一种虚拟机迁移决策方法、装置及系统
US8140682B2 (en) * 2009-12-22 2012-03-20 International Business Machines Corporation System, method, and apparatus for server-storage-network optimization for application service level agreements
WO2011091056A1 (en) * 2010-01-19 2011-07-28 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8504689B2 (en) * 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US9104458B1 (en) * 2010-09-30 2015-08-11 Amazon Technologies, Inc. Managing virtual computing nodes using isolation and migration techniques
US8645529B2 (en) * 2010-10-06 2014-02-04 Infosys Limited Automated service level management of applications in cloud computing environment
WO2012066640A1 (ja) * 2010-11-16 2012-05-24 株式会社日立製作所 計算機システム、マイグレーション方法及び管理サーバ
US8612577B2 (en) * 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for migrating software modules into one or more clouds
US9195509B2 (en) * 2011-01-05 2015-11-24 International Business Machines Corporation Identifying optimal platforms for workload placement in a networked computing environment
US9612855B2 (en) * 2011-01-10 2017-04-04 International Business Machines Corporation Virtual machine migration based on the consent by the second virtual machine running of the target host
US8984104B2 (en) * 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US8904384B2 (en) * 2011-06-14 2014-12-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reducing data transfer overhead during live migration of a virtual machine
US8954961B2 (en) * 2011-06-30 2015-02-10 International Business Machines Corporation Geophysical virtual machine policy allocation using a GPS, atomic clock source or regional peering host
WO2013019185A1 (en) * 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating virtual machines
US9054917B2 (en) * 2012-03-08 2015-06-09 Empire Technology Development Llc Secure migration of virtual machines
US20130282919A1 (en) * 2012-04-20 2013-10-24 Sungard Availability Services Lp Data Migration Into And Out Of The Cloud Via A Data Kiosk/System
EP2852890A1 (en) * 2012-06-27 2015-04-01 Qatar Foundation An arrangement and method for use in managing resources of a plurality of computing devices
WO2014073024A1 (en) * 2012-11-09 2014-05-15 Hitachi, Ltd. Management computer, computer system, and instance management method
WO2014116936A2 (en) * 2013-01-26 2014-07-31 Lyatiss, Inc. Methods and systems for detecting, locating and remediating a congested resource or flow in a virtual infrastructure
US9602598B2 (en) * 2013-05-29 2017-03-21 International Business Machines Corporation Coordinating application migration processes
US20140359127A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Zero touch deployment of private cloud infrastructure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134687A (ja) * 2007-11-29 2009-06-18 Hitachi Ltd アプリケーションマイグレーションのための候補データセンタを見つける方法および装置[0001]
WO2012120664A1 (ja) * 2011-03-09 2012-09-13 株式会社日立製作所 仮想計算機のマイグレーション評価方法及び仮想計算機システム
US20130111033A1 (en) * 2011-10-31 2013-05-02 Yun Mao Systems, methods, and articles of manufacture to provide cloud resource orchestration

Also Published As

Publication number Publication date
US20150032894A1 (en) 2015-01-29
CN105432040A (zh) 2016-03-23
EP3028406A2 (en) 2016-06-08
US9929918B2 (en) 2018-03-27
EP3028406B1 (en) 2020-06-17
WO2015015297A2 (en) 2015-02-05
JP2016525757A (ja) 2016-08-25
WO2015015297A3 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
JP2018198068A (ja) 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証
CN112153700B (zh) 一种网络切片资源管理方法及设备
Bhamare et al. Optimal virtual network function placement in multi-cloud service function chaining architecture
KR102154446B1 (ko) 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법
US10389800B2 (en) Minimizing execution time of a compute workload based on adaptive complexity estimation
US10616370B2 (en) Adjusting cloud-based execution environment by neural network
US20200019841A1 (en) Neural network model for predicting usage in a hyper-converged infrastructure
US8423646B2 (en) Network-aware virtual machine migration in datacenters
Vakilinia et al. Modeling of the resource allocation in cloud computing centers
US20180254998A1 (en) Resource allocation in a cloud environment
US9722930B2 (en) Exploiting probabilistic latency expressions for placing cloud applications
KR20150054998A (ko) 클라우드 내에서 지리적으로 분산된 애플리케이션의 자동화 배치를 위한 방법 및 장치
US10705872B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
WO2017010922A1 (en) Allocation of cloud computing resources
US10841369B2 (en) Determining allocatable host system resources to remove from a cluster and return to a host service provider
WO2020114608A1 (en) Method and apparatus for mapping network slices onto network infrastructures with sla guarantee
US9769022B2 (en) Timeout value adaptation
US9860303B1 (en) Data center growth control
Venâncio et al. Beyond VNFM: Filling the gaps of the ETSI VNF manager to fully support VNF life cycle operations
US10877814B2 (en) Profiling workloads in host systems allocated to a cluster to determine adjustments to allocation of host systems to the cluster
Hwang et al. FitScale: scalability of legacy applications through migration to cloud
US11784944B2 (en) Dynamic bandwidth allocation in cloud network switches based on traffic demand prediction
US11693766B2 (en) Resource allocation in microservice architectures
Liberati et al. Service mapping
de Oliveira Atalaia Support for Scalable Emulation of Distributed Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200707