特許第6113849号(P6113849)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルカテル−ルーセントの特許一覧

特許6113849クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置
<>
  • 特許6113849-クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置 図000005
  • 特許6113849-クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置 図000006
  • 特許6113849-クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置 図000007
  • 特許6113849-クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置 図000008
  • 特許6113849-クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6113849
(24)【登録日】2017年3月24日
(45)【発行日】2017年4月12日
(54)【発明の名称】クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20170403BHJP
【FI】
   G06F9/46 465Z
【請求項の数】15
【全頁数】22
(21)【出願番号】特願2015-536234(P2015-536234)
(86)(22)【出願日】2013年9月30日
(65)【公表番号】特表2015-534696(P2015-534696A)
(43)【公表日】2015年12月3日
(86)【国際出願番号】IB2013002408
(87)【国際公開番号】WO2014057347
(87)【国際公開日】20140417
【審査請求日】2015年6月8日
(31)【優先権主張番号】13/648,628
(32)【優先日】2012年10月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】ローゼンツワイク,エリシャ
(72)【発明者】
【氏名】シャレブ,エッティ
(72)【発明者】
【氏名】メンデル,シャロン
(72)【発明者】
【氏名】ローゼンフェルド,アミール
(72)【発明者】
【氏名】ブラジレイ,シバン
(72)【発明者】
【氏名】ハイビー,ラニー
(72)【発明者】
【氏名】エシェット,イタマール
【審査官】 大塚 俊範
(56)【参考文献】
【文献】 米国特許出願公開第2011/0295999(US,A1)
【文献】 特開2012−173869(JP,A)
【文献】 特開2012−069056(JP,A)
【文献】 米国特許出願公開第2011/0119381(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
クラウド内にアプリケーションの構成要素を確立するためのクラウドコントローラによって実行される方法であって、
要求するデバイスから構成要素を確立する要求を受信するステップ(425)と、
アプリケーションについて少なくとも1つのセグメントを定義し、少なくとも1つのセグメントの第1のセグメントについて少なくとも1つの制約を定義する、アプリケーションに関連するポリシーファイルを識別するステップと、
構成要素の確立について第1のセグメントを選択するステップ(430)と、
少なくとも1つの制約に整合する位置であって、構成要素の確立についての位置を選択するステップ(440)と、
選択された位置で構成要素を確立するステップ(445)とを含む、方法。
【請求項2】
少なくとも1つの制約が、第1のセグメントに属する構成要素について制約を指定する個々のセグメント制約を含む、請求項1に記載の方法。
【請求項3】
少なくとも1つの制約が、第1のセグメントに属する少なくとも2つの構成要素間の制約を指定するセグメント内制約を含む、請求項1から2のいずれか一項に記載の方法。
【請求項4】
少なくとも1つの制約が、第1のセグメントに属する少なくとも1つの構成要素と少なくとも1つのセグメントの第2のセグメントに属する少なくとも1つの構成要素の間の制約を指定するセグメント間制約を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
方法が、
要求するデバイスにラベルと共に構成要素の確立を通知するステップ(450)と、
要求するデバイスからラベルを含むスケール要求を受信するステップ(510)と、
第1のセグメントをラベルに関連するものとして識別するステップ(520)と、
第1のセグメントに対してスケーリングオペレーションを実行するステップ(535)とをさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
方法が、第1のセグメントを識別した後、
ポリシーファイルから第1のセグメントについて少なくとも1つの制約を識別するステップ(525)と、
少なくとも1つの制約に整合する位置であって、スケーリングオペレーションに関する位置を選択するステップ(530)とをさらに含み、
スケーリングオペレーションを実行するステップ(535)が、選択された位置でスケーリングオペレーションを実行することを含む、請求項5に記載の方法。
【請求項7】
方法が、
要求するデバイスからアプリケーションについて追加の構成要素を確立する要求を受信するステップ(425)と、
追加の構成要素の確立のために少なくとも1つのセグメントの第のセグメントを選択するステップ(430)と、
のセグメント内における追加の構成要素の確立のための位置を選択するステップ(440)と、
選択された位置で追加の構成要素を確立するステップ(445)とをさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
のセグメントを選択するステップ(430)が、少なくとも1つのセグメントのポリシーファイルの定義および第1のセグメント内における構成要素の確立を反映するシステム状態情報に基づいて、追加の構成要素の確立のための第のセグメントを選択することを含む、請求項7に記載の方法。
【請求項9】
クラウド内にアプリケーションの構成要素を確立するためのクラウドコントローラであって、
データストレージ(320)と、
データストレージと通信するプロセッサ(310)とを含み、プロセッサが、
要求するデバイスから構成要素を確立する要求を受信し(425)、
アプリケーションについて少なくとも1つのセグメントを定義し、少なくとも1つのセグメントの第1のセグメントについて少なくとも1つの制約を定義するポリシーファイルであって、データストレージに格納されアプリケーションに関連するポリシーファイルを識別し、
構成要素の確立について第1のセグメントを選択し(430)、
少なくとも1つの制約に整合する位置であって、構成要素の確立についての位置を選択し(440)、および、
選択された位置で構成要素を確立する(445)ように構成される、クラウドコントローラ。
【請求項10】
少なくとも1つの制約が、第1のセグメントに属する個々の構成要素について制約を指定する個々のセグメント制約を含む、請求項9に記載のクラウドコントローラ。
【請求項11】
少なくとも1つの制約が、第1のセグメントに属する少なくとも2つの構成要素間の制約を指定するセグメント内制約を含む、請求項9から10のいずれか一項に記載のクラウドコントローラ。
【請求項12】
少なくとも1つの制約が、第1のセグメントに属する少なくとも1つの構成要素と少なくとも1つのセグメントの第2のセグメントに属する少なくとも1つの構成要素の間の制約を指定するセグメント間制約を含む、請求項9から11のいずれか一項に記載のクラウドコントローラ。
【請求項13】
プロセッサ(310)が、
要求するデバイスにラベルと共に構成要素の確立を通知し(450)、
要求するデバイスからラベルを含むスケール要求を受信し(510)、
第1のセグメントをラベルに関連するものとして識別し(520)、および、
第1のセグメントに対してスケーリングオペレーションを実行する(535)ようにさらに構成される、請求項9から12のいずれか一項に記載のクラウドコントローラ。
【請求項14】
プロセッサ(310)が、第1のセグメントを識別した後、
ポリシーファイルから第1のセグメントについて少なくとも1つの制約を識別し(525)、および、
少なくとも1つの制約に整合する位置であって、スケーリングオペレーションに関する位置を選択する(530)ようにさらに構成され、
スケーリングオペレーションを実行するステップ(535)において、プロセッサ(310)が選択された位置でスケーリングオペレーションを実行するように構成される、請求項13に記載のクラウドコントローラ。
【請求項15】
プロセッサ(310)が、
要求するデバイスからアプリケーションについて追加の構成要素を確立する要求を受信し(425)、
追加の構成要素の確立のために少なくとも1つのセグメントの第のセグメントを選択し(430)、
のセグメント内における追加の構成要素の確立のための位置を選択し(440)、および、
選択された位置で追加の構成要素を確立する(445)ようにさらに構成され、
のセグメントを選択するステップ(430)において、プロセッサ(310)が、少なくとも1つのセグメントのポリシーファイルの定義および第1のセグメント内における構成要素の確立を反映するシステム状態情報に基づいて、追加の構成要素の確立のための第のセグメントを選択するように構成される、請求項9から14のいずれか一項に記載のクラウドコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書において開示される様々な例示的実施形態は、一般に、クラウドコンピューティングに関する。
【背景技術】
【0002】
今日、クラウドオペレータの多くはいくつかの大規模なデータセンターを用いてクラウドサービスをホストし、比較的集中型のオペレーションを提供する。このようなシステムでは、要求側はクラウドコントローラに1つまたは複数のリソースの使用を要求することができ、そして次に、要求側によって使用するために、クラウドコントローラは要求されたリソースをデータセンターから割り当てることができる。しかしながら、この集中型のオペレーションは、たとえば厳格な遅延または信頼性の要求を有するような様々なタイプのアプリケーションをホストするには十分に適切でない場合がある。
【0003】
一方、分散型データセンターのアーキテクチャは、地理的に分散され得る、多数のより小規模なデータセンターを設置する。これらのデータセンターは、インターネットまたはキャリアネットワークなどのネットワークを介して、1つまたは複数のクラウドコントローラの制御下にあってよい。このような分散型システムの下では、集中型クラウドが提供し得るよりも、地理的またはネットワーク距離の観点から様々な顧客により近いクラウドアプリケーションを提供することによって、ネットワーク伝搬遅延の影響は減少され得る。
【発明の概要】
【課題を解決するための手段】
【0004】
様々な例示的実施形態の概要は、以下に示される。下記の概要においては、簡略化および省略されるものもあるが、これは様々な例示的実施形態のいくつかの態様を強調および紹介することを意図するものであって、本発明の範囲を限定するものではない。当業者が本発明の概念を構想および使用できるようにするのに適した好ましい例示的実施形態は、後節において詳述される。
【0005】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションの構成要素を確立するクラウドコントローラによって実行される方法に関し、この方法は、要求するデバイスから構成要素を確立する要求を受信すること、アプリケーションについて少なくとも1つのセグメントを定義し、この少なくとも1つのセグメントの第1のセグメントについて少なくとも1つの制約を定義する、アプリケーションに関連するポリシーファイルを識別すること、構成要素の確立について第1のセグメントを選択すること、少なくとも1つの制約に整合する位置であって、構成要素の確立についての位置を選択すること、および、この選択された位置で構成要素を確立することを含む。
【0006】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションの構成要素を確立するクラウドコントローラに関し、このクラウドコントローラは、データストレージと、このデータストレージと通信するプロセッサとを含み、このプロセッサは、要求するデバイスから構成要素を確立する要求を受信し、アプリケーションについて少なくとも1つのセグメントを定義し、かつ、この少なくとも1つのセグメントの第1のセグメントについて少なくとも1つの制約を定義するポリシーファイルであって、データストレージに格納されアプリケーションに関連するポリシーファイルを識別し、構成要素の確立について第1のセグメントを選択し、少なくとも1つの制約に整合する位置であって、構成要素の確立についての位置を選択し、および、この選択された位置で構成要素を確立するように構成される。
【0007】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションの構成要素を確立するクラウドコントローラによって実行するための命令で符号化される、非一時的な機械可読記憶媒体に関し、この媒体は、要求するデバイスから構成要素を確立する要求を受信する命令と、アプリケーションについて少なくとも1つのセグメントを定義し、この少なくとも1つのセグメントの第1のセグメントについて少なくとも1つの制約を定義するポリシーファイルであって、アプリケーションに関連するポリシーファイルを識別する命令と、構成要素の確立について第1のセグメントを選択する命令と、少なくとも1つの制約に整合する位置であって、構成要素の確立についての位置を選択する命令と、この選択された位置で構成要素を確立する命令とを含む。
【0008】
少なくとも1つの制約が、第1のセグメントに属する構成要素について制約を指定する個々のセグメント制約を含む、様々な実施形態が記述される。
【0009】
少なくとも1つの制約が、第1のセグメントに属する少なくとも2つの構成要素間の制約を指定するセグメント内制約を含む、様々な実施形態が記述される。
【0010】
少なくとも1つの制約が、第1のセグメントに属する少なくとも1つの構成要素と少なくとも1つのセグメントの第2のセグメントに属する少なくとも1つの構成要素の間の制約を指定するセグメント間制約を含む、様々な実施形態が記述される。
【0011】
様々な実施形態は、要求するデバイスにラベルと共に構成要素の確立を通知すること、要求するデバイスからラベルを含むスケール要求を受信すること、第1のセグメントをラベルと関連するものとして識別すること、および第1のセグメントに対してスケーリングオペレーションを実行することをさらに含む。
【0012】
様々な実施形態は、第1のセグメントを識別した後、ポリシーファイルから第1のセグメントについて少なくとも1つの制約を識別すること、および、少なくとも1つの制約に整合する位置であって、スケーリングオペレーションに関する位置を選択することをさらに含み、スケーリングオペレーションを実行することは、この選択された位置でスケーリングオペレーションを実行することを含む。
【0013】
様々な実施形態は、要求するデバイスからアプリケーションについて追加の構成要素を確立する要求を受信すること、追加の構成要素の確立のために少なくともセグメントの第2のセグメントを選択すること、この第2のセグメント内における追加の構成要素の確立のための位置を選択すること、およびこの選択された位置で追加の構成要素を確立することをさらに含む。
【0014】
第2のセグメントを選択することが、少なくともセグメントのポリシーファイルの定義および第1のセグメント内における構成要素の確立を反映するシステム状態情報に基づいて、追加の構成要素の確立のために第2のセグメントを選択することを含む、様々な実施形態が記述される。
【0015】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションを確立するためのクラウドコントローラによって実行される方法に関し、この方法は、ユーザからアプリケーションについて複数の構成要素を定義するレシピファイルを受信すること、ユーザからアプリケーションについて複数のセグメントを定義するポリシーファイルを受信すること、および、複数のセグメントに従ってアプリケーションが分散されるように構成要素が確立される、クラウド内に複数の構成要素を確立することを含む。
【0016】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションを確立するクラウドコントローラに関し、このクラウドコントローラは、データストレージと、このデータストレージと通信するプロセッサとを含み、このプロセッサは、ユーザからアプリケーションについて複数の構成要素を定義するレシピファイルを受信し、ユーザからアプリケーションについて複数のセグメントを定義するポリシーファイルを受信し、および、クラウド内に、複数のセグメントに従ってアプリケーションが分散されるよう確立される複数の構成要素を確立するように構成される。
【0017】
本明細書において記述される様々な実施形態は、クラウド内にアプリケーションを確立するクラウドコントローラによって実行するための命令で符号化される、機械可読記憶媒体に関し、この媒体は、ユーザからアプリケーションについて複数の構成要素を定義するレシピファイルを受信するための命令と、ユーザからアプリケーションについて複数のセグメントを定義するポリシーファイルを受信するための命令と、複数のセグメントに従ってアプリケーションが分散されるように構成要素が確立される、クラウド内に複数の構成要素を確立する命令とを含む。
【0018】
ポリシーファイルが複数のセグメントの第1のセグメントに対して少なくとも1つの制約をさらに定義し、複数のセグメントに従ってアプリケーションが分散されるように複数の構成要素を確立することが、第1のセグメントに第1の構成要素を割り当てること、および少なくとも1つの制約に整合する位置において第1の構成要素を確立することを含む、様々な実施形態が記述される。
【0019】
少なくとも1つの制約が第1のセグメントに割り当てられた構成要素が確立される地理的地域を指定し、少なくとも1つの制約に整合する位置において第1の構成要素を確立することが、その地理的地域内に構成要素を確立することを含む、様々な実施形態が記述される。
【0020】
少なくとも1つの制約が第1のセグメントに割り当てられた構成要素間のアフィニティを指定し、少なくとも1つの制約に整合する位置において第1の構成要素を確立することが、第1のセグメントに割り当てられた少なくとも1つの他の構成要素に近くなるように選択された位置で第1の構成要素を確立することを含む、様々な実施形態が記述される。
【0021】
少なくとも1つの制約が、第1のセグメントと複数のセグメントの第2のセグメント間のアンチアフィニティを指定し、少なくとも1つの制約に整合する位置において第1の構成要素を確立することが、第2のセグメントに割り当てられた少なくとも1つの他の構成要素から遠くなるように選択された位置で第1の構成要素を確立することを含む、様々な実施形態が記述される。
【0022】
ポリシーファイルが、複数の構成要素の第1の構成要素および複数のセグメントの第1のセグメントに関連する第1の割合と、第1の構成要素および複数のセグメントの第2のセグメントに関連する第2の割合とを指定する、様々な実施形態が記述される。
【0023】
複数のセグメントに従ってアプリケーションが分散されるように複数の構成要素を確立することが、第1のセグメント内に第1の数の第1の構成要素を確立すること、および、第2のセグメント内に第2の数の第1の構成要素を確立することを含み、第1の数および第2の数が第1の割合および第2の割合に基づいて選択される、様々な実施形態が記述される。
【0024】
様々な実施形態は、アプリケーションマネジャーにレシピファイルを転送すること、クラウドコントローラでポリシーファイルを格納すること、および、アプリケーションマネジャーから構成要素を確立する要求を受信することをさらに含み、複数の構成要素を確立することは、受信された要求および格納されたポリシーファイルに基づいて構成要素を確立することを含む。
【0025】
様々な例示的実施形態をより理解するために、添付の図面を参照する。
【図面の簡単な説明】
【0026】
図1】クラウドリソースを提供する例示のネットワークを示す図である。
図2】例示のセグメント化されたアプリケーションを示す図である。
図3】例示のクラウドコントローラを示す図である。
図4】クラウド内にアプリケーションを確立する例示の方法を示す図である。
図5】クラウド内のアプリケーションをスケールする例示の方法を示す図である。
【発明を実施するための形態】
【0027】
理解を容易にするため、実質的に同一もしくは類似の構造または実質的に同一もしくは類似の機能を備える要素を示すために、同じ参照番号が用いられている。
【0028】
記述および図面は、本発明の原理を示す。したがって、当業者であれば、本明細書において明確に記述または図示されないものであっても、本発明の原理を実施し、本発明の範囲に含まれる様々な構成を案出できるであろうことが理解されよう。さらに、本明細書において説明されるすべての例は、主に、本発明の原理および当技術を促進させるために発明者(複数可)によって与えられた概念を読み手が理解するのを助ける教育上の目的のみであることが明確に意図され、また、このように特に説明される例および条件に限定されないものとして解釈される。加えて、本明細書において用いられる「または」という用語は、別段の指示(たとえば、「さもなければ」、または「または別法では」など)が無い限り非排他的な「または」を意味する。また、1つまたは複数の他の実施形態と組み合わされて新たな実施形態を形成する実施形態もあり得るため、本明細書において記述される様々な実施形態は必ずしも相互に排他的である必要はない。
【0029】
様々な方法は、ユーザが分散型のクラウドアプリケーション用に配備されることになる構成要素を定義することを可能にし得るが、このような方法は、ユーザがどこに構成要素が確立されるかについて指定するか、そうでなければこれに影響を与えることをさらに可能にするものではない。このことから、ユーザは、顧客ベースの知識および他の情報に基づいてボトルネックを減少させるためにクラウドの分散型の特質を利用する権限を与えられることはできない。したがって、クラウドの中でアプリケーションがどのように分散されるかに対する影響力をユーザに与えつつ、分散型のクラウドアプリケーションを自動的に配備することができるシステムの必要性が存在する。
【0030】
前述によると、本明細書において記述される様々な実施形態は、ユーザが、クラウドアプリケーションが分散される複数の「セグメント」を指定できるようにする。ユーザはまた、これらの各セグメントの構成要素が存在する地理的位置、および各セグメントに属するアプリケーションの構成要素を指定することができる。このように、アプリケーションの一部を形成する各構成要素が地理的にどこに配置されるかに対する影響力がユーザに与えられる。様々な、さらなる特徴および実施の詳細は、図に関連して、以下でより詳細に記述される。
【0031】
図面を参照すると、同様の番号が同様の構成要素またはステップを意味し、様々な例示的実施形態の広範囲の態様が開示される。
【0032】
図1は、クラウドリソースを提供する例示のクラウドアーキテクチャ100を示す。このクラウドアーキテクチャ100は、ネットワーク化されたクラウドアーキテクチャを実施することができ、クライアントデバイス110と、ネットワーク115と、クラウドコントローラ120と、データセンター130、140および150と、アプリケーションマネジャー160とを含んでよい。
【0033】
クライアントデバイス110は、1つまたは複数のクラウドリソースを利用するように構成された任意のデバイスであってよい。様々な実施形態において、クライアントデバイス110は、デスクトップコンピュータ、ラップトップ、タブレット、モバイルデバイス、サーバまたはブレードであってよい。クライアントデバイス110は、ネットワーク115を介して、クラウドコントローラ120などの他のデバイスと通信することができる。クライアントデバイス110は、クラウドコントローラ120に1つまたは複数のクラウドリソースの要求を送信することができる。たとえば、クライアントデバイス110は、1つまたは複数の仮想マシン(VMs)、一群の仮想マシン(VMs)、ストレージデバイスまたはメモリの使用を要求することができる。クラウドリソースのさらなるタイプは明らかになるだろう。クライアントデバイス110は、分散型のクラウドアプリケーションの配備をクラウドコントローラ120に要求するユーザのデバイスを表すことができ、または、クライアントデバイス110は、リソース131、132、133、144、155、166と直接通信することによってこのような分散型のクラウドアプリケーションの1つまたは複数の構成要素の使用を要求するユーザのような顧客を表すことができる。複数の追加のクライアントデバイス(図示せず)がネットワーク115と通信することができ、また、このような追加のクライアントデバイスは追加のユーザおよび顧客に属してよいことは明らかであろう。
【0034】
ネットワーク115は、例示のクラウドアーキテクチャ100の様々なデバイス間での通信を可能にすることができるデバイスまたは伝送媒体の任意のネットワークであってよい。たとえば、ネットワーク115は、様々な宛先に対するデータパケットを交換およびルーティングするように構成された多数のデバイスを含んでよい。様々な実施形態において、ネットワーク115はインターネット、または1つまたは複数のキャリアネットワークを含んでよい。
【0035】
クラウドコントローラ120は、ネットワーク化されたクラウドのオペレーションを制御するように構成されたデバイスであってよい。図3に関連してより詳細に後述されるように、クラウドコントローラ120は、ストレージデバイス、メモリ、または1つまたは複数のプロセッサなどの様々なハードウェアを含んでよい。本明細書において用いられる「プロセッサ」という用語は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGAs)、特定用途向け集積回路(ASICs)、および他の類似の処理デバイスなど様々なデバイスを包含することが理解されよう。様々な実施形態において、クラウドコントローラ120は、たとえば、サーバ、ブレード、パーソナルコンピュータ、ラップトップ、タブレットまたはモバイルデバイスを含んでよい。このようないくつかの実施形態では、クラウドコントローラ120は、たとえば、クラウドデバイス131、132、133によって提供されるハードウェアリソースなどのクラウドリソースを利用する仮想マシンであってよい。クラウドコントローラ120は、データセンター130のようなデータセンター、または他の場所に存在してよい。クラウドコントローラ120は、クラウドリソース割当の管理を含む様々なクラウド管理機能を実行することができる。このため、クラウドコントローラ120は、クライアントデバイス110のようなクライアントデバイスから、クラウドアプリケーションの確立の要求を受信することができる。このような要求を受信すると、クライアントデバイスによって使用するために、クラウドコントローラ120は、クラウドデバイス131、132、133、144、155、156の1つまたは複数から要求されたリソースを割り当てることができる。様々な実施形態において、例示のクラウドアーキテクチャ100は、複数のクラウドコントローラ(図示せず)を含んでよい。複数のクラウドコントローラのオペレーションを調整する様々な技術は明らかであろう。
【0036】
データセンター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は、多数のさらなるデータセンター(図示せず)を含んでよく、また、各データセンターは任意の数のクラウドデバイスを含んでよいことは明らかであろう。
【0037】
各クラウドデバイス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のようなクライアントデバイスによって使用するための処理、ストレージ、メモリ、仮想マシン(VMs)、または一群の仮想マシン(VMs)を提供するように構成されてよい。
【0038】
様々な実施形態において、図1に示される実施形態のように、クラウドコントローラ120はアプリケーションマネジャー160とインターフェースで接続して、要求に応じてクラウドアプリケーションを配備し、その後、スケールすることができる。アプリケーションマネジャー160は、たとえば、デスクトップコンピュータ、ラップトップ、タブレット、モバイルデバイス、サーバまたはブレードであってよく、仮想マシンを含んでもよい。アプリケーションマネジャー160は、クライアント110またはクラウドコントローラ120から「レシピファイル」を受信することができる。本明細書において用いられる「レシピファイル」という用語は、アプリケーションについて配備されることになる構成要素のあらゆる定義を意味することが理解されよう。さらに、「ファイル」という用語は、従来知られているようなファイルだけではなく、このような定義を保持するのに適した任意の他のストレージ構造も意味することが理解されよう。たとえば、レシピファイルは、アプリケーションがフロントエンドウェブサーバごとにデータベースサーバおよびフロントエンドウェブサーバを含むことを指定することができる。レシピファイルによって定義されることになる様々な代替のアプリケーションは明らかであろう。レシピファイルを受信すると、アプリケーションマネジャー160はレシピファイルを解釈し、次いで、クラウドコントローラ120がレシピファイルで定義されたアプリケーションを構成する構成要素を確立するよう要求することができる。その後、アプリケーションマネジャー160は、顧客のトラフィックによって様々な構成要素にかけられる負荷を監視し、クラウドコントローラ120に過負荷である構成要素をスケールアップし、または、十分に利用されていない構成要素をスケールダウンするよう要求することができる。たとえば、アプリケーションマネジャー160はアプリケーションに属するフロントエンドウェブサーバが過負荷であることを判定し、次いで、クラウドコントローラ120に追加のフロントエンドウェブサーバを確立することによってスケールアップするよう要求することができる。たとえば、クラッシュした、または機能しない仮想マシン(VMs)に対処し、続いて、クラッシュした、または機能しない仮想マシン(VM)に予め存在する構成要素を再配備するなどの、アプリケーションマネジャー160に関する様々な他の機能は明らかであろう。
【0039】
確立またはスケールする要求を受信すると、クラウドコントローラ120は、ユーザから提供された「ポリシーファイル」を用いて、要求されたオペレーションに適した位置を決定することができる。本明細書において用いられる「ポリシーファイル」という用語は、アプリケーションにおける構成要素の配置に対する制約またはセグメント化のあらゆる定義を意味することが理解されよう。たとえば、ポリシーファイルは、フロントエンドサーバの60%は米国内に位置する第1のセグメントに配置されるべきであり、一方、フロントエンドサーバの40%は欧州内に位置する第2のセグメントに配置されるべきであると指定することができる。以下でより詳細に記述されるように、ポリシーファイルはまた、構成要素の配置に対する様々なセグメント内制約およびセグメント間制約を定義することができる。構成要素を確立またはスケールするとき、クラウドコントローラ120は、ポリシーファイルで定義された様々な制約に整合する位置を選択することができる。
【0040】
図2は、例示のセグメント化されたアプリケーション200を示す。このセグメント化されたアプリケーション200は、たとえば、図1に示すクラウドアーキテクチャ100などのクラウドアーキテクチャで実施され得る。図示の通り、例示のアプリケーションは、5つのウェブサーバ214、216、224、226、228、および5つのデータベースサーバ212、222、232、234、236を含んでよい。図示の通り、様々な構成要素212、214、216、222、224、226、228、232、234、236は直接相互に接続されていなくてもよく、その代わりに、たとえばインターネットなどの媒介デバイスの1つまたは複数のネットワークを介して通信可能であることが理解されよう。さらに、構成要素212、214、216、222、224、226、228、232、234、236は、異なる機能を実行する、クラウドアーキテクチャ内に配備された様々な仮想マシンを表すことができる。様々な構成要素は、ユーザから提供されたポリシーファイルによって指定された通りに、3つのセグメント210、220、230の間で分散され得る。ポリシーファイルは、たとえば拡張マークアップ言語(XML)、スクリプト言語、プロプライエタリなポリシーファイルマークアップ言語、または、セグメントおよび制約を定義するのに有用な任意の他の言語など、様々な形式で定義され得る。このようなポリシーファイルは、たとえば以下の通り読める。
【0041】
【数1】
【0042】
理解される通り、例のポリシーファイルは3つのセグメントを定義する:セグメント1 210、セグメント2 220およびセグメント3 230である。例のポリシーファイルはまた、セグメント210、220、230間のアプリケーションの構成要素の分散を定義する。たとえば、ポリシーファイルは、データベースサーバの20パーセントおよびウェブサーバの40パーセントがセグメント1に割り当てられるべきであると指定する。このため、5つのデータベースサーバと5つのウェブサーバを分散する場合、クラウドコントローラ120は、1つのデータベースサーバ212と、2つのウェブサーバ214および216とをセグメント1に割り当てることができる。セグメントごとに指定される数、パーセンテージまたは他の割合は、常に正確に達成できるものでなくてよく、その場合、クラウドコントローラ120は、単にポリシーファイルで指定された分散を近似する割当分散を選択してよいということが理解されよう。たとえば、6つのウェブサーバが確立されることになる場合、クラウドコントローラ120は、追加のウェブサーバ(図示せず)を、50−50−0で分散するためにセグメント1 210に配置してもよいし、または、33−67−0で分散するためにセグメント2 220に配置してもよい。
【0043】
3つのセグメント210、220、230を定義するとき、例のポリシーファイルはまた、3つのセグメント210、220、230それぞれに個々のセグメント制約を指定する。具体的には、「<geography>」タグ内では、ポリシーファイルは、各セグメント210、220、230に割り当てられる構成要素が確立されることになる国または他の地理的地域を指定する。たとえば、ポリシーファイルは、セグメント1 210は、欧州内に確立されることになると指定する。このように、クラウドコントローラは、パリに位置するデータセンター150および欧州内に位置する任意の他のデータセンター(図示せず)の中にセグメント1 210に割り当てられた構成要素212、214、216を確立することができる。地理的制約に加えて、個々のセグメント制約が他のタイプの制約を指定し得ることが理解されよう。たとえば、個々のセグメント制約は、構成要素がLinux(登録商標)マシンに配置されることになること、または、選択されたマシンがそこで作動する仮想マシン(VMs)を管理する特定のハイパーバイザを使用することを指定し得る。
【0044】
ポリシーファイルはまた、個々のセグメント制約に加えて、他の2つのタイプの制約を指定することができる:セグメント内制約およびセグメント間制約である。セグメント内制約は、同一のセグメント内の他の構成要素との関係で構成要素がどこに配置されるかに対する制約であり得、「<segment>」タグ内にある「<affinityRules>」タグの内部で定義され得る。示されている通り、制約は、各構成要素が他のノードに関する制約に拘束される、NODE(ノード)レベル制約の点から定義され得、または、1つのグループ(たとえばウェブサーバ)に属する構成要素が他のグループ(たとえばデータベースサーバ)に属する構成要素に関する制約に拘束される、ZONE(ゾーン)レベル制約の点から定義され得る。例示の制約はまた、制約のタイプが「AFFINITY(アフィニティ)」タイプであるか「ANTI_AFFINITY(アンチアフィニティ)」タイプであるかを指定する。AFFINITY(アフィニティ)タイプの制約の場合、クラウドコントローラ120は、セグメント内の他の構成要素の比較的近くに構成要素を配置しようとする。このような制約は、たとえば相互に通信するデバイス間での遅延を減少させるのに有用である。近さの概念は、地理的距離(たとえばマイル)、ネットワーク距離(たとえばホップ)、支援するデータセンターの共有性、または待ち時間の点から定義されることが理解されよう。反対に、ANTI_AFFINITY(アンチアフィニティ)タイプの制約の場合、クラウドコントローラ120は、セグメント内の他の構成要素から比較的遠くに構成要素を配置しようとする。このような制約は、たとえば、地理的地域においてカバレッジを広げ、または、プライマリ構成要素に影響を与えた電源障害などの事象の範囲外にある可能性がより高い冗長要素を提供するのに有用である。一例として、ポリシーファイルはセグメント1 210についてZONE(ゾーン)レベルのアフィニティ制約を指定する。この制約を守るとき、クラウドコントローラ120は、他の制約を維持しつつ、可能な限りデータベースサーバ212の近くにウェブサーバ214、216を確立しようとする。可能であれば、クラウドコントローラ120は、データベースサーバ212を支援するデータセンターと同一のデータセンター内にウェブサーバ214、216を確立してもよい。
【0045】
セグメント間制約は、異なるセグメントに割り当てられた構成要素間で実行され得、「<interSegmentConstrains>」タグ内にある「<constraint>」タグの内部で定義され得る。セグメント間制約は、「<segments>」タグ内の制約の影響を受けるセグメントを定義し、「<affinityRules>」タグ内の制約タイプを指定することができる。たとえば、ポリシーファイルは、セグメント1 210とセグメント2 220の間にNODE(ノード)レベルのアンチアフィニティ制約が存在することを指定することができる。アプリケーション200を確立するとき、クラウドコントローラ120は、セグメント2 220に割り当てられた構成要素222、224、226、228をセグメント1 210に割り当てられた構成要素212、214、216から比較的遠くに配置することによって、この制約を守ることができる。場合によっては、個々のセグメント制約が、このようなセグメント間制約を既に引き受けていてもよい。たとえばこの場合、セグメント1 210は欧州内に位置し、セグメント2 220は米国内に位置するというポリシーファイルの指定は、構成要素が互いに十分遠くにあることを、場合により確実にする。様々な実施形態において、クラウドコントローラ120は、たとえば東欧および米国西部に位置するデータセンターに構成要素を確立することによって、構成要素がより遠くに離れることをさらに確実にし得る。
【0046】
アフィニティ制約およびアンチアフィニティ制約を指定する様々な代替の方法が存在し得ることが理解されよう。たとえば、代替のポリシーファイルは、アフィニティ制約に関して最大の構成要素間距離を、また、アンチアフィニティ制約に関して最小の構成要素間距離を指定してよい。様々な代替の実施は明らかであろう。さらに、アフィニティタイプおよびアンチアフィニティタイプの制約以外の代替の制約が使用されてもよい。たとえば、セグメント内制約またはセグメント間制約は、セグメントの構成要素が特定のクラウド標準またはハイパーバイザを使用することを指定することができる。
【0047】
図3は、例示のクラウドコントローラ300を示す。この例示のクラウドコントローラ300は、例示のクラウドアーキテクチャ100のクラウドコントローラ120に対応し得る。クラウドコントローラ300は、プロセッサ310、データストレージ320、および入出力(I/O)インターフェース330を含んでよい。
【0048】
プロセッサ310は、クラウドコントローラ300のオペレーションを制御し、システムバスを介してデータストレージ320および入出力(I/O)インターフェース330と協働することができる。本明細書において用いられる「プロセッサ」という用語は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGAs)、特定用途向け集積回路(ASICs)、および他の類似の処理デバイスなど様々なデバイスを包含することが理解されよう。
【0049】
データストレージ320は、クラウド内でリソースを管理するのに有用な様々なプログラムなどのプログラムデータを格納することができる。たとえば、データストレージ320は、たとえば図4および図5に関連して後述されるような1つまたは複数の方法を実行するクラウド管理命令322を格納することができる。このクラウド管理命令322は、1つまたは複数のアプリケーションマネジャーと協働し、様々なデータセンター、ハイパーバイザまたは仮想マシンのオペレーションを調整するのに有用なさらなる命令または方法を含んでよい。
【0050】
データストレージはまた、以前の割当324の記録を格納することができる。たとえば、クラウドコントローラ300が確立しセグメントに割り当てる各構成要素について、クラウドコントローラは割当324中の記録を格納することができる。このように、関連するポリシーファイルによって指定された割合が守られることを確実にするために新たな構成要素を準備する場合、クラウドコントローラ300は、以前の割当324を参照することができる。様々な代替の実施形態において、クラウドコントローラ300は、以前の割当としてのシステム状態情報を格納することよりもむしろ、様々なデータセンターに問い合わせを行うことによってシステム状態情報を取得することができる。図4および図5に関連してより詳細に後述されるように、さらに、適切なセグメントについて将来スケーリング要求が実行され得るように、クラウドコントローラ324は、各割当324と共に構成要素またはセグメントを識別するラベルを格納することができる。
【0051】
様々な実施形態において、クラウドコントローラ300はまた、将来の使用のためにユーザから受信したレシピファイル326およびポリシーファイル328を格納することができる。様々な代替の実施形態において、クラウドコントローラ300は、これらのファイル326および328の1つまたは複数を、格納することなく単にアプリケーションマネジャーに渡してもよい。
【0052】
入出力(I/O)インターフェース330は、プロセッサ310と協働して1つまたは複数の通信チャネルを通じた通信を支援することができる。たとえば、入出力(I/O)インターフェース330は、キーボードおよびモニターなどのユーザインターフェース、および/または、1つまたは複数のイーサネット(登録商標)ポートなどのネットワークインターフェースを含んでよい。
【0053】
いくつかの実施形態において、プロセッサ310はプロセッサ/CPUコアなどのリソースを含むことができ、入出力(I/O)インターフェース330は任意の適当なネットワークインターフェースを含むことができ、または、データストレージ320はメモリまたはストレージデバイスを含むことができる。さらに、クラウドコントローラ300は任意の適当な物理的ハードウェア構成であってよく、たとえば、1つまたは複数のサーバ、プロセッサ、メモリ、ネットワークインターフェースまたはストレージデバイスなどの構成要素からなるブレードなどである。これらの実施形態のいくつかでは、クラウドコントローラ300は互いに遠く離れたクラウドネットワークリソースを含んでよい。
【0054】
いくつかの実施形態において、クラウドコントローラ300は1つまたは複数の仮想マシンを含むことができる。これらの実施形態のいくつかでは、仮想マシンは、異なる物理的マシンからの構成要素を含むことができ、または、地理的に分散されていてもよい。たとえば、データストレージ320およびプロセッサ310は、2つの異なる物理的マシンに存在することができる。
【0055】
いくつかの実施形態において、クラウドコントローラ300は、方法400、500を実行するようにプログラム化された汎用コンピュータであってよい。
【0056】
プロセッサ実行可能なプログラムがプロセッサ310に実装されると、プログラムコードセグメントはプロセッサと組み合わさって、特定の論理回路に類似して動作する固有のデバイスを提供する。
【0057】
たとえばプログラムおよび論理がデータストレージに格納され、また、メモリが伝達的にプロセッサに接続される実施形態に関して本明細書において図示および記述されるが、これらの情報は任意の他の適当な方法(たとえば、任意の適当な数のメモリ、ストレージまたはデータベースを使用すること)に格納され得ることを理解されたい。すなわち、任意の適当な構成のデバイスに伝達的に接続される任意の適当な構成のメモリ、ストレージまたはデータベースを使用すること、メモリ(複数可)、ストレージ(複数可)、または、内部データベースまたは外部データベース(複数可)の任意の適当な組合せに情報を格納すること、または、任意の適当な数のアクセス可能な外部メモリ、ストレージまたはデータベースを使用することである。このため、本明細書において用いられるデータストレージという用語は、メモリ(複数可)、ストレージ(複数可)およびデータベース(複数可)のすべての適当な組合せを包含するよう意図されている。
【0058】
図4は、クラウド内にアプリケーションを確立する例示の方法400を示す。方法400は、たとえば、クラウドコントローラ120またはクラウドコントローラ300などのクラウドコントローラによって実行され得る。
【0059】
方法400は、ステップ405で開始し、クラウドコントローラ120がユーザからレシピファイルを受信するステップ410に進むことができる。レシピファイルは、ユーザが確立されることを望むクラウドアプリケーションを定義することができる。次にステップ415において、クラウドコントローラ120はユーザからポリシーファイルを受信する。このポリシーファイルは、ステップ410で受信されたレシピファイルで定義された、アプリケーションを確立およびスケールするときに用いられる多数のセグメントおよび構成要素の配置に対する制約を定義することができる。クラウドコントローラ120は、たとえば、ユーザがファイルをアップロードする、ユーザがクラウドコントローラ提供のGUIでファイルを生成する、ユーザがクラウドコントローラ120またはアプリケーションマネジャー160に存在するファイルを選択する、または、ユーザがURLによるなど他の場所に格納されたファイルを識別するなど、複数の方法でファイルを受信し得ることが理解されよう。
【0060】
次にステップ420において、クラウドコントローラ120は、アプリケーションマネジャー160にレシピファイルを転送することができる。アプリケーションマネジャー160は、次に、要求に応じてどの構成要素が確立されるべきか、または後に、アプリケーションを確立およびスケールすることが終了されるべきかを調整する役割を担うことができる。レシピファイルに基づいて、アプリケーションマネジャー160は1つまたは複数の構成要素を確立する要求を送信することができ、この要求は、ステップ425においてクラウドコントローラ120が受信することができる。アプリケーションマネジャー160は、構成要素について複数の要求を含む単一のメッセージを送信し、または要求ごとに1つのメッセージを送信することができる。
【0061】
ステップ425において要求を受信した後、クラウドコントローラ120は、ポリシーファイルに基づいて確立されることになる新たな構成要素についてセグメントを選択することができる。様々な実施形態において、クラウドコントローラ120はポリシーファイルを参照して、定義された各セグメント間で要求されたタイプの構成要素の指定された分割を決定することができる。次に、要求されたタイプのいくつの構成要素が各セグメントに割り当てられているかにも基づいて、クラウドコントローラ120は新たな構成要素についてセグメントを選択することができる。たとえば、セグメント1とセグメント2の間で50−50の分割のウェブサーバをポリシーファイルが定義し、かつ、セグメント1で確立されているウェブサーバがただ一つの場合、クラウドコントローラ120は、分割が2つのセグメント間で50−50となるように新たなウェブサーバをセグメント2に割り当てることができる。
【0062】
次にステップ435において、クラウドコントローラ120は、ポリシーファイルを参照することによって選択されたセグメントについてあらゆる制約を識別することができる。前述の通り、制約は、個々のセグメント制約、セグメント内制約およびセグメント間制約を含んでよい。関連する制約を識別した後、ステップ440において、クラウドコントローラ120は新たな構成要素の配置について識別された制約に整合する位置を選択する。たとえば、セグメントが「米国」の個々のセグメント制約および欧州内の別のセグメントに関するアンチアフィニティのセグメント間制約を有する場合、クラウドコントローラ120は、ニューヨーク市のデータセンターを越えてサンディエゴまたはシアトルに位置するデータセンターに新たな構成要素を配置するよう選択することができる。位置を選択した後、クラウドコントローラ120は、ハイパーバイザまたは他の構成要素に新たな構成要素を確立するよう命令するメッセージを選択されたデータセンターに送信することによって、新たな構成要素を確立することができる。一旦構成要素が確立されると、クラウドコントローラ120は、新たな構成要素に関する情報と共に、アプリケーションマネジャー160に確立の通知を返すことができる。たとえば、アプリケーションマネジャー160が構成要素の負荷または性能を監視し、かつ適切なスケーリングの判断を行うことができるように、クラウドコントローラ120は新たな構成要素の名称または位置を提供することができる。クラウドコントローラ120はまた、クラウドコントローラ120が将来割り当てられるセグメントを識別するのに有用なラベルを提供することができる。ラベルは、セグメントを名付ける別個のラベルであってよく、または、たとえば構成要素の名称などアプリケーションマネジャー160に既に提供された値に組み込まれてもよい。図5に関連してより詳細に後述されるように、アプリケーションマネジャー160は、ラベルを格納し、このラベルをスケーリング要求と共に返送するように構成され得る。
【0063】
構成要素の確立を通知した後、ステップ455において、クラウドコントローラ120は、確立すべき追加の構成要素がまだ残っているかを判断することができる。たとえば、クラウドコントローラ120は、アプリケーションマネジャー160から既に受信したメッセージが追加の要求を含むか、または、クラウドコントローラ120が追加の要求を伝達する追加のメッセージのために一定期間待つことができるかについて判断することができる。確立すべき追加の構成要素がまだ残っている場合、方法400はループしてステップ425に戻る。そうでなければ、方法400はステップ460に進み停止してよい。
【0064】
図5は、クラウド内のアプリケーションをスケールする例示の方法500を示す。方法500は、たとえば、クラウドコントローラ120またはクラウドコントローラ300などのクラウドコントローラによって実行され得る。
【0065】
方法500は、ステップ505で開始し、クラウドコントローラ120がアプリケーションマネジャー160からスケール要求を受信するステップ510に進むことができる。このスケール要求は、1つまたは複数の新たな構成要素を確立する要求、または1つまたは複数の構成要素を終了させる要求を含むことができる。確立または終了させるこの要求は、スケールされるよう要求された1つまたは複数の存在する構成要素を識別することができ、または、スケールされることになる構成要素が初めに確立されたときに、方法400のステップ450においてアプリケーションマネジャー160に送信されたラベルを単に含むことができる。ステップ515において、クラウドコントローラは受信した要求からこのラベルを抽出し、次にステップ520において、このラベルが対応するセグメントを識別する。そうすることによって、クラウドコントローラ120は、スケールされることになる構成要素が初めに割り当てられたセグメントを識別することができる。
【0066】
関連するセグメントを識別した後、クラウドコントローラ525は、スケールされることになるアプリケーションに対応するポリシーファイルに基づいてセグメントについてあらゆる関連する制約を識別することができる。このステップ525は、方法400のステップ435に類似してよい。次にステップ530において、クラウドコントローラ120は、識別された制約に整合するスケーリングオペレーションに関する位置を選択することができる。スケーリングオペレーションが新たな構成要素の確立を含む場合、クラウドコントローラ120は、制約に整合する確立について位置を選択することができる。このような確立は、ポリシーファイルよって定義された1つまたは複数の構成要素の分散を乱してよいということが理解されよう。たとえば、ポリシーファイルが、2つのセグメントの間でウェブサーバの50−50の分散を定義し、かつ、第1のセグメントが唯一現存するウェブサーバを含む場合、アプリケーションマネジャーは具体的にセグメント1をスケールされることになるセグメントとして識別したため、クラウドコントローラ120は、たとえこのことが50−50により近い分散をもたらさないとしても第1のセグメントに新たなウェブサーバを確立することができる。このような方法で、クラウドコントローラ120は、負荷の増大に直面されている場所で新たな構成要素が確立され、それゆえ、新たに確立された構成要素が増大する負荷の要求に応えることに対してもたらす効果が高まることを確実にすることができる。
【0067】
スケーリングオペレーションが構成要素の終了を含む場合、ステップ530において、構成要素の除去がセグメント内に残存する構成要素に制約を違反させないように、クラウドコントローラは既に存在する構成要素の位置を選択することができる。たとえば、2つの他のウェブサーバの間に配置されたウェブサーバを除去することが、2つの残存するウェブサーバの間に距離を生じさせて、アフィニティのセグメント内制約を違反する場合、クラウドサーバ120は、代わりに終了されることになる別の構成要素を見つけようとする。スケールアップするのと同様に、クラウドコントローラ120は、ポリシーファイルによって定義された構成要素の分散が維持されないように、アプリケーションをスケールダウンすることができる。たとえば、アプリケーションマネジャー160が米国セグメントのウェブサーバがスケールダウンされることを要求する場合、たとえそうすることがポリシーファイルで指定された50−50の分散を乱すことになるとしても、クラウドコントローラ120は米国セグメント(したがって、米国に配置されそうなセグメント)に割り当てられたウェブサーバを除去しようとする。そうすることによって、クラウドコントローラ120は、過少利用に直面していない地域からリソースが除去されないよう確実にすることができ、そのかわり、すべての確立されたリソースがローカル要求に遅れをとらないようにする必要があり得る。
【0068】
次にステップ535において、クラウドコントローラ120は、選択された位置でスケーリングオペレーションを実行する。たとえば、クラウドコントローラ120は、新たな構成要素を確立し、または存在する構成要素を終了させることができる。次にステップ540において、クラウドコントローラ120は、アプリケーションマネジャーにスケーリングオペレーションを通知する。スケーリングオペレーションが追加の構成要素を確立することを含む場合、ステップ540はステップ450に類似してよい。このため、クラウドコントローラ120は、将来のスケーリングオペレーションで使用するために、セグメントを識別するラベルをアプリケーションマネジャー160に送信することができる。そして、方法500はステップ545に進み停止してよい。
【0069】
上記によれば、様々な実施形態は、ユーザが分散型のクラウドアプリケーションの配備を要求し、また、アプリケーションの構成要素がどこに配置されるかに影響を与えることができるようにする。ポリシーファイルを受信し利用するクラウドコントローラ120を備えることによって、ユーザは、分散型のクラウドアプリケーションをセグメントに分割し、定義されたセグメントごとに様々な配置の制約を定義する柔軟性を与えられる。さらに、アプリケーションマネジャーにセグメントを識別するラベルを提供することによって、将来のスケーリングオペレーションはこれらの制約を考慮して実行され得る。前述したことを考慮すると、本明細書において記述される方法およびシステムの様々なさらなる利点は明らかであろう。
【0070】
上記の記述から、本発明の様々な例示的実施形態がハードウェアまたはファームウェアで実施され得ることは明らかである。さらに、様々な例示的実施形態は、機械可読記憶媒体上に記憶される命令として実施され得、この命令は、少なくとも1つのプロセッサによって読取りおよび実行されて、本明細書において詳細に記述されるオペレーションを実行し得る。機械可読記憶媒体はパーソナルコンピュータ、ラップトップコンピュータ、サーバ、または他のコンピューティングデバイスなどの、機械によって読み取ることができる形式の情報を記憶するための任意の機構を含んでよい。したがって、有形かつ非一時的な機械可読記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および類似の記憶媒体を含んでよい。
【0071】
本明細書におけるあらゆるブロック図は、本発明の原理を実施する例証となる回路の概念図を表すということが、当業者には理解されよう。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどは、機械可読媒体中に実質的に表現され得、また、コンピュータまたはプロセッサが明確に示されているか否かに関わらず、コンピュータまたはプロセッサによって実質的に実行され得る様々な処理を表すということが理解されよう。
【0072】
様々な例示的実施形態について、特定の例示的態様を特に参照して詳細に記述してきたが、本発明は他の実施形態が可能であり、また、その詳細は様々な明白な点において修正形態が可能であることを理解されたい。当業者には容易に明らかとなるように、本発明の精神および範囲内で、変形形態および修正形態がもたらされ得る。したがって、上記の開示、記述および図は例証のみを目的とし、決して本発明を限定するものではなく、本発明は特許請求の範囲によってのみ定められる。
図1
図2
図3
図4
図5