JP2017538204A - コンテナの管理及びスケジューリングのためのシステム - Google Patents

コンテナの管理及びスケジューリングのためのシステム Download PDF

Info

Publication number
JP2017538204A
JP2017538204A JP2017524393A JP2017524393A JP2017538204A JP 2017538204 A JP2017538204 A JP 2017538204A JP 2017524393 A JP2017524393 A JP 2017524393A JP 2017524393 A JP2017524393 A JP 2017524393A JP 2017538204 A JP2017538204 A JP 2017538204A
Authority
JP
Japan
Prior art keywords
container
cluster
service
instance
containers
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.)
Granted
Application number
JP2017524393A
Other languages
English (en)
Other versions
JP6522750B2 (ja
Inventor
ディーパック シン
ディーパック シン
アンソニー ジョセフ スアレズ
アンソニー ジョセフ スアレズ
ウィリアム アンドリュー サーストン
ウィリアム アンドリュー サーストン
アニルド バラチャンドラ アイタル
アニルド バラチャンドラ アイタル
ダニエル ロバート ゲルデスメイヤー
ダニエル ロバート ゲルデスメイヤー
ユーアン スカイラー ケンプ
ユーアン スカイラー ケンプ
キラン クマール メデュリ
キラン クマール メデュリ
ムハマド ウメール アザド
ムハマド ウメール アザド
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2017538204A publication Critical patent/JP2017538204A/ja
Application granted granted Critical
Publication of JP6522750B2 publication Critical patent/JP6522750B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

1つまたは複数のプロセッサによってクラスタに登録されたコンピュータシステムインスタンス内で実行されるように構成されたソフトウェアコンテナのソフトウェアイメージを取得するコンテナサービスのためのシステム及び方法。コンテナサービスは、タスク定義に従ってソフトウェアイメージを起動するためのリクエストを受信するように構成され、このタスク定義は、ソフトウェアコンテナのためのリソースの割り当てを特定する。コンテナサービスはその後、配置スキームに従って、タスク定義に従って中でソフトウェアイメージを起動するクラスタに登録された一揃いのコンテナインスタンスのサブセットを決定する。一揃いのコンテナインスタンスのサブセットを決定すると、コンテナサービスは、タスク定義に従って一揃いのコンテナインスタンス内の1つまたは複数の稼働中のソフトウェアコンテナとしてソフトウェアイメージを起動することができる。【選択図】図1

Description

関連出願の相互参照
本出願は、「SYSTEM FOR MANAGING AND SCHEDULING CONTAINERS」と題する2014年11月11日に出願された同時係属米国特許出願第14/538,663号の優先権を主張しており、その内容はその全体が参照により本明細書に組み込まれる。
それぞれのコンピューティングリソースを維持することに関連する費用及びオーバーヘッドを削減することを求める企業及び個人は代わりに、コンピューティングリソースサービスプロバイダによって顧客に提供される、多数の仮想マシンインスタンスにわたるリモートプログラム実行及びリモートデータストレージなどのリモートコンピューティングサービスを購入するようになっている。そのようなリモートコンピューティングサービスは、コンピューティングリソースサービスプロバイダの顧客の多様なコンピューティングニーズを満たすように構成可能でありスケーラブルであることが多い。しかしながら多数の仮想マシンインスタンス上で稼働している種々のアプリケーションを管理することは顧客にとって難しい場合もあり、そのようなアプリケーションは、他のコンピューティングシステムに対して移植することが不可能である、またはリソースに対する高まるニーズを満たすように拡張性がない場合もある。
1つまたは複数のプロセッサによってクラスタに登録されたコンピュータシステムインスタンス内で実行されるように構成されたソフトウェアコンテナのソフトウェアイメージを取得するコンテナサービスのためのシステム及び方法。コンテナサービスは、タスク定義に従ってソフトウェアイメージを起動するためのリクエストを受信するように構成され、このタスク定義は、ソフトウェアコンテナのためのリソースの割り当てを特定する。コンテナサービスはその後、配置スキームに従って、タスク定義に従って中でソフトウェアイメージを起動するクラスタに登録された一揃いのコンテナインスタンスのサブセットを決定する。一揃いのコンテナインスタンスのサブセットを決定すると、コンテナサービスは、タスク定義に従って一揃いのコンテナインスタンス内の1つまたは複数の稼働中のソフトウェアコンテナとしてソフトウェアイメージを起動することができる。
本開示による種々の実施形態を図面を参照して記載する。
一実施形態によるコンテナサービスと対話する顧客の一例を示す。 一実施形態によるコンテナサービスの一例を示す。 一実施形態によるコンテナサービスの仮想化の一例を示す。 一実施形態によるコンテナインスタンスの一例を示す。 一実施形態によるコンテナインスタンスにおけるリソースの割り当ての一例を示す。 一実施形態によるクラスタ上でタスクを起動するための一例のワークフローを示すブロック図である。 一実施形態によるクラスタを形成する一例を示すブロック図である。 一実施形態によるコンテナインスタンスの登録の一例を示すブロック図である。 一実施形態によるタスクの登録の一例を示すブロック図である。 一実施形態によるタスクの開始の一例を示すブロック図である。 一実施形態によるタスクの停止の一例を示すブロック図である。 一実施形態によるタスクの登録取り消しの一例を示すブロック図である。 一実施形態によるコンテナの登録取り消しの一例を示すブロック図である。 一実施形態によるクラスタの削除の一例を示すブロック図である。 一実施形態によるコンテナの管理及びスケジューリングのためのシステムの一例のサービス設計の図を示す。 種々の実施形態を実装することができる環境を示す。
以下の記載において種々の実施形態を記載することにする。説明する目的で、これらの実施形態の理解の徹底を期すために、特有の構成及び詳細が記載される。しかしながら、これらの実施形態はまたこの特有の詳細なしでも実施され得ることは当業者に明らかであろう。さらに、記載されている実施形態を不明確なものにしないために、よく知られた特徴は省略または簡略化される場合もある。
記載され提案される技術は、コンピューティングリソースサービスプロバイダの顧客のためにソフトウェアコンテナを稼働するためのソフトウェアコンテナインスタンスのクラスタを形成するためのシステム及び方法を含む。ソフトウェアコンテナインスタンスは、コンテナ化をサポートするように構成された仮想マシンインスタンスであって良く、ソフトウェアコンテナインスタンスは、顧客のニーズに適応するために必要に応じてクラスタに登録されたり、クラスタから登録を取り消したりすることができる。各々のソフトウェアコンテナインスタンスは、コンテナエージェントを含むことができ、これはコンピュータシステムの1つまたは複数のプロセッサによって実行される際、ソフトウェアコンテナ及びソフトウェアコンテナインスタンスによって種々のタスクを行うように構成されたアプリケーションであり、これらのタスクには、コンテナインスタンスを登録する、コンテナインスタンスの登録を取り消す、タスクを開始する、タスクを停止する、タスクの状態を提供する、タスクのハートビートを信号で知らせる、及びタスクイベントを報告するなどが含れる。ソフトウェアコンテナはデータ及び1つまたは複数のプロセスを含むことができ、これらのプロセスは、コンテナ化をサポートするように構成されたコンピュータシステムインスタンス内で実行される際、同一のコンピュータシステムインスタンス内で稼働中の他のプロセスから隔離させることができる。
ソフトウェアコンテナは、タスク定義に従ってタスクとして稼働するように構成されて良く、タスクの定義は、タスク定義ファイルとして記憶されて良い。タスク定義ファイルは、1つのグループとして開始するように指定された1つまたは複数のソフトウェアコンテナを記述することができる。ソフトウェアコンテナのソフトウェアイメージは、ソフトウェアコンテナインスタンス内において実行するように構成されたソフトウェアイメージが生成されたときのソフトウェアコンテナの特定の状態の完全なコピーを表すことができ、コンピューティングリソースサービスプロバイダまたはタスク定義において特定されたその場所に提供されて良い。タスク定義はまた、リソース要件、コンテナ間の関係、使用されるネットワークポート及び共有されるリソースを特定することもできる。
タスク定義のタスクを開始するためのリクエストを受信すると、スケジューラは、配置スキームに従って、クラスタ内のどのソフトウェアコンテナインスタンスがタスクを稼働するかを決定することができる。場合によっては、コンピューティングリソースサービスプロバイダが、どこでソフトウェアコンテナを稼働するかを決定するためのマルチテナントスケジューラを提供する場合もあり、また場合によっては、コンピューティングリソースサービスプロバイダは、顧客がそれぞれの独自のスケジューラを準備し、動作方法をカスタマイズするためにそれらを構成することを許可する場合もある。場合によっては、スケジューラは、タスク定義において特定されるリソース要件を考慮に入れて、ランダム選択スキームを利用してランダムに(何らかの確率的な分散スキームに従って)またはラウンドロビン式に所与のソフトウェアコンテナをホストするコンテナインスタンスを選択するように構成される場合もある。コンテナエージェントは、そのそれぞれのソフトウェアコンテナインスタンス内でタスクを開始するように構成されて良い。一部の実施形態では、テレメトリエージェントが、稼働中のソフトウェアコンテナに関する制御グループメトリック及びログイベント情報などのデータを収集し、そのデータをテレメトリサービスに報告するように構成される場合もある。テレメトリサービスは、そのコンテナインスタンス内のソフトウェアコンテナの状態を顧客が監視することを可能にすることができ、顧客は、テレメトリサービスを介して、収集したデータに基づいて警戒を高めるために様々なコンテナイベント及び基準に応じて行う行動を特定することができる。
記載され提案される技術は、ソフトウェアコンテナを管理するための一揃いのマルチテナントコンテナ化サービスを提供することによって、コンピューティングの分野、とりわけ仮想化及びコンテナ化の分野を向上させる。加えて記載され提案される技術は、コンピューティングシステムのリソースを効率的に割り当てることを可能にし、それらが互いの間でリソースを競い合うことがないように、ソフトウェアアプリケーションを隔離することによって、コンピュータシステムの機能性を向上させる。さらに記載され提案される技術は、移植性を改善し、マルチテナントサービスを提供し、かつ需要が増減するにつれてリソースを自動的にスケーリングすることによって、一般的な仮想化システム対して意義のある利点を与える。
図1は、一実施形態が実施され得る環境100の一態様を示す。図1に示されるように、環境100は、ネットワーク106を介してコンピューティングリソースサービスプロバイダ110のコンテナサービス108に対して、ソフトウェアコンテナ118に関するタスク定義ファイル104と共にタスクを起動するためのリクエストを送る顧客102を含むことができる。図2のスケジューラ208などのスケジューラが、タスク定義ファイル104において特定されるソフトウェアコンテナ118がコンテナインスタンスのクラスタ116のどのコンテナインスタンス114において起動されるべきかを決定することができる。一部の実施形態において、ソフトウェアコンテナは、例えばコンピューティングリソースサービスプロバイダ110のブロックレベルデータ記憶サービスによって提供される記憶ボリュームなど、コンピューティングリソースサービスプロバイダ110の他のサービス122によって提供されるリソース120を共有するように構成される場合もある。
顧客102は、コンテナサービスの顧客アカウントに対応付けられた個人であって良い、または顧客アカウントに対応付けられた個人に代わって行動するように認証された個人、システム、リソースコンピューティングデバイスまたは他のエンティティである場合もある。さらに顧客102のリソースは、他のユーザが利用できるようにされる場合もある。例えば顧客102は、コンテナインスタンス114を利用して他のユーザのためにオンライン市場を提供することができ、このような他のユーザはこのとき、コンテナサービスを通して顧客102によって提供されたオンライン市場を通して物品及びサービスを売買することができる。顧客102は、ネットワーク106を介してコンピューティングリソースサービスプロバイダ110のコンテナサービス108と通信することができ、このネットワーク106は、インターネット、イントラネット、インターネットサービスプロバイダ(ISP)ネットワーク及び/または以下に記載するような何らかの他のそのようなネットワークなどの通信ネットワークであって良い。
一部の例において、「タスク定義」または「タスク定義ファイル」は、1つのグループとして始動するように指定された一揃いのリンクされたコンテナ(すなわちホストコンピューティングシステム上で稼働する際、互いに対応付けられた一揃いのコンテナ)を特定するファイルを指すことができる。タスク定義ファイル104はさらに、コンテナ118が単一の物理的マシン上で共有することが可能なディスクまたはネットワークの場所を特定する場合もある。タスク定義ファイル104はこのとき、この一揃いのコンテナ118を起動するのに利用される場合もある。一部の実施態様では、タスク定義ファイル104は、複数の物理的マシンにわたって広がるコンテナ118を規定しリンクさせる場合もある。1つのタスク定義ファイル104が多くのタスクを包含しスケジュールに組み込む場合もある。一部の例では、「タスク」は、タスク定義ファイル104のインスタンス化を指す場合もあり、1つまたは複数のコンテナ118で構成される場合もある。タスクは、新たなタスクの定義をタスクに加えることによって修正される場合もある。
タスク定義ファイル104は、クラスタ116内にコンテナ118を配置するのに必要とされる全ての情報を包含することができ、クラスタ116はアプリケーションプログラミングインターフェースコールを通して管理することができる。
タスクの定義付けの一例は、
{ ‘db’:
{
‘Image(イメージ)’ : ‘forest/postgresql’,
‘Ports(ポート)’ : [‘5432’],
‘CPU’ : 1000,
‘Memory(メモリ)’ : 1073741824
},
‘web’ :
{
‘Image(イメージ)’ : ‘hub.web.com/rails:latest’,
‘Ports(ポート)’ : [‘8000:8000’],
‘links(リンク)’ : [‘db’],
‘CPU’ : 1000,
‘Memory(メモリ)’ : 1073741824
}
}
一例のタスク定義は、「db」という名称の第1のタスクがパス「forest/postgresql.」に配置されるソフトウェアイメージを有することを特定する。第1のタスクは、1000から1ギガバイトのメモリの処理用シェアが割り当てられ、第1のタスクはポート5432を使用する。同様にタスク定義はまた、「web」という名称の第2のタスクが、パス「hub.web.com/rails:latest.」に配置されるソフトウェアイメージを有することも特定する。第2のタスクは、1000から1ギガバイトのメモリの処理用シェアが割り当てられ、第2のタスクはポート8000:8000を使用する。タスク定義は、第2のタスク(「web」)が第1のタスク(「db」)にリンクすることが許されることを指摘する。この例で使用される一部の装置は、例えば中央処理装置シェアの固定された数字として与えられる処理能力など、固定された数字として提示されるが、動的なリソース割り当てを可能にするために、代わりに他の装置及び他のタイプの値(例えば総処理能力のパーセンテージ、総メモリのパーセンテージ)が使用される場合もあることが企図されることに留意されたい。
コンテナサービス108は、顧客102がクラスタ116内のコンテナ118を実行することを可能にするためにコンピューティングリソースサービスプロバイダ110によって提供されるサービスであって良い。コンテナサービス108は、図2に関連して記載されるコンテナサービス200と同様であって良い。コンピューティングリソースサービスプロバイダ110は、図15に関連して記載されるコンピューティングリソースサービスプロバイダ1502と同様のコンピューティングリソースサービスプロバイダであって良く、個別にまたは分散コンピュータシステムのサービスの組み合わせとしてその顧客に1つまたは複数のコンピューティングリソースサービスを提供することができる。コンピューティングリソースサービスプロバイダ110の1つまたは複数のコンピューティングリソースサービスは、ネットワーク106を介してアクセス可能であって良く、例えば仮想コンピュータシステムサービス、ブロックレベルデータ記憶サービス、暗号サービス、オンデマンドデータ記憶サービス、通知サービス、認証サービス、ポリシー管理サービス、タスクサービス及び/または他のそのようなサービスなどのサービスを含むことができる。記載される全ての実施形態が記載される全てのサービスを含むわけではなく、明白に記載されるものに加えて、またはその代替として追加のサービスが提供される場合もある。
一例として、コンピューティングリソースサービスプロバイダ110は、データ記憶サービス、仮想コンピュータシステムサービス及び/またはウェブサービスなどのコンピューティングリソースを提供するエンティティであって良い。。コンピューティングリソースサービスプロバイダ110の顧客は、ウェブサービスインターフェースまたは任意の他のタイプの顧客インターフェースであり得るインターフェースを介して1つまたは複数のサービスと通信することができる。コンピューティングリソースサービスプロバイダによって提供される各々のサービスは、その独自のインターフェースを有し、これらのサービスのサブセットは、共通のインターフェースに加えて、またはその代替としてこれに対応する個別のインターフェースを有する場合もある。
一部の例では、「コンテナインスタンス」は、ソフトウェアコンテナを起動及び稼働するように構成されたコンピュータシステムインスタンス(仮想または非仮想の、オペレーティングシステムを稼働する物理的コンピュータシステムなど)を指す場合もある。よってコンテナインスタンス114は、顧客102によって提供されるタスク定義ファイル104に従ってコンテナ118を稼働するように構成されて良い。1つまたは複数のコンテナインスタンスは、クラスタを備えることができる。一部の例では、「クラスタ」は、クラスタに登録された(すなわち、これに対応付けられた)1つまたは複数のコンテナインスタンスのセットを指す場合がある。よってコンテナインスタンス114は、クラスタ116に登録された多くの様々なコンテナインスタンスのうちの1つであって良く、クラスタ116の他のコンテナインスタンスは、コンテナ118と同一のまたは異なるタイプのコンテナを稼働するように構成されて良い。クラスタ内のコンテナインスタンスは、異なるインスタンスタイプまたは同一のインスタンスタイプであって良く、顧客102は、2つ以上のクラスタを有する場合もある。よって顧客102は、1つまたは複数のクラスタを起動し、その後、アプリケーションプログラミングインターフェースコールを介して各々のクラスタ内のコンテナ118のユーザとアプリケーションの隔離を管理することができる。クラスタに関するさらなる詳細は、図2の記載において見いだすことができる。
コンテナ(ソフトウェアコンテナまたは隔離されたユーザスペースインスタンスとも呼ばれる)は、プログラム、データ及びシステムライブラリを含めたコンピュータシステムインスタンスの下で稼働する軽量仮想化インスタンスであって良い。コンテナが稼働される際、稼働プログラム(すなわちプロセス)は、同一のコンピュータシステムインスタンスにおいて稼働中の他のプロセスから隔離される。よってコンテナ118は、コンテナインスタンス114のオペレーティングシステム上で稼働し、(例えばオペレーティングシステムによって割り当てられたメモリ、CPU及び記憶装置を使用して)かつ互いからの隔絶を達成することができる(例えば各々のコンテナは、オペレーティングシステムのファイルシステムの隔絶された視野を有することができる)。コンテナ118の各々はその独自のネーム空間を有することができ、コンテナ118内で稼働中のアプリケーションは、コンテナのネーム空間内で利用可能なリソースに対してのみアクセス権を有することによって隔離される。よってコンテナ118は、その独自のネーム空間内において1つまたは複数の単一のアプリケーションを稼働するための効率的な方法であり得る。コンテナカプセル化システムによって、別々のユーザ空間インスタンスを稼働するために仮想マシンを始動し維持することに関連するオーバーヘッドなしで、1つまたは複数のコンテナが単一のオペレーティングインスタンス内において稼働することが可能になる。コンテナカプセル化システムの一例はドッカーコンテナエンジンである。
コンテナ118は、コンテナインスタンス114に割り当てられたリソースから特定されたリソースのみを有するように起動させることができる、すなわちコンテナは、特定の量のメモリを有し、かつ特定された量の処理パワーを超えて利用しないように起動させることができる。コンテナ118のためのリソース割り当ては、タスクの定義ファイル104において特定されて良い。複数のコンテナが単一のホストコンピュータまたはホストコンテナインスタンス上で同時に稼働する場合もあり、ホストのリソースをコンテナ間で効率的に割り当てることができる。いくつかの実施形態において、1つのホストが、一人の顧客のみからコンテナインスタンスにおいて稼働するコンテナをサポートする場合もある。他の実施形態において、単一のホストによって、複数の顧客がホスト上で稼働コンテナインスタンスを有することを可能にする場合もある。後者の場合は、コンテナサービスがセキュリティを与えることで、顧客が他人のコンテナ、クラスタまたは他のコンテナインスタンスにアクセスすることができないことを保証しても良い。
異なるタイプのタスクは、異なるリソース要件を有し、異なる寿命を有する可能性がある。よってコンテナ118は、コンテナインスタンスの基礎となるオペレーティングシステムから独立して、コンテナサービス110内のスケジューラサービスによって稼働するように動的にスケジュール設定されて良く、したがってコンテナインスタンス114の基礎となるオペレーティングシステムは極めてベーシックなものであって良い。あるいは、コンテナ118は、クラスタ116のコンテナインスタンス114内にインストールされたスケジューラによって稼働するようにスケジュール設定される場合もある。
他のサービス122は、図15に関連して記載したコンピューティングリソースサービスプロバイダ1502のサービス1508〜20及び1524などのサービスであって良い。同様に、他のリソース120は、ブロック−レベルデータ記憶サービスの記憶ボリュームなどの仮想化されたインスタンス間で共有することができるリソースを含む場合がある。
図2は、本開示の一実施形態の一例のコンテナサービス200を示す。図2に示されるように、環境200は、1つまたは複数のコンテナインスタンス218内の1つまたは複数のコンテナを管理するフロント−エンドサービス204を介して通信するコンピューティングリソースサービスプロバイダの顧客202を含んで良い。指摘したように、コンテナサービス200によって提供される、またはコンテナサービス200に接続されるコンテナカプセル化システムによって、顧客が、コンテナをサポートするオペレーティングシステムのコンテナ内で1つまたは複数のアプリケーションを構成することを可能にすることができる。コンテナ内で稼働中のプロセス及びリソースは、親コンテナインスタンスの他のプロセスならびに同一のホストシステムの他のコンテナ内で稼働中のプロセス及びリソースから隔離させることができる。顧客は、コンテナに割り当てられるメモリの量及び処理能力を特定することができる。ベースコンテナならびにその中のアプリケーション及びデータはその後、コンテナインスタンスのオペレーティングシステム上で稼働するためにプログラムに必要とされる1つまたは複数のプログラム、データ及び任意のシステムの依存関係(例えばライブラリ、ファイルなど)を含めた1つのイメージとしてパッケージされて良い。一部の例では、「イメージ」は、そのイメージが生じたときのベースコンテナの特定の状態の完全なコピーを指す場合もある。その後このイメージを利用して1つまたは複数の同一のコンテナを起動することができ、このコンテナの各々は特定された量のリソースが割り当てられ、互いから隔離されて良い。コンテナは、同一または異なる物理マシン上で起動させることができ、各々のコンテナは、ベースコンテナとまさに同一の方法で稼働することを予想することができる。
コンテナインスタンス218の各々は、一対のエージェント、すなわちコンテナエージェント222と、テレメトリエージェント224とを含むように構成されて良く、これらによって、コンテナを管理することを可能にし、クラスタの状態の情報を提供することができ、かつロギング及びテレメトリデータ収集を可能にすることができる。コンテナサービス200は、テンプレートサービス206、1つまたは複数のスケジューラ208、ルータサービス210及びテレメトリサービス212を含めた一揃いのサービスで構成されて良い。コンテナサービス200は、マルチテナントサービス(すなわち、コンテナサービス200のリソースが同時に複数の顧客に奉仕しても良い)として構成され得るため、及びコンテナサービス200によって提供されるサービスが、コンテナインスタンス218の外に存在し、そこから隔てられているため、顧客202は、これらのサービスによって与えられる機能を実現するために、それぞれのコンテナインスタンス218内に個別のソフトウェアアプリケータをインストールする必要がない。顧客202は、フロント−エンドサービス204を介してウェブサービスアプリケータプログラミングインターフェースファンクションコールを作成することによって、これらのサービスによって提供される機能を利用することができ、このフロント−エンドサービスは、顧客202からリクエストを受け取り、そのリクエストを適切なコンテナマネージャバックエンドサービス214などの適切なサービスに転送するように構成されて良い。
指摘したように、顧客はフロント−エンドサービス204を介して1つまたは複数のクラスタを起動し、その後各々のクラスタ内でのユーザとアプリケーションの隔離を管理することができる。例えば顧客は、「インスタンス1−10」は第1のクラスタを有するべきであり、「インスタンス11−15」は第2のクラスタを有するべきであると特定することができる。その後、顧客がコンテナに対する起動リクエストを提示する際、顧客は、第1のクラスタにおけるコンテナを起動すべきか第2のクラスタにおけるコンテナを起動すべきかを特定することができる。
各々のクラスタは、クラスタを互いから一意に区別するクラスタ識別子(ID)を有することができる。クラスタは、そのそれぞれのクラスタIDを参照することによって特定することができる。顧客は、異なるタイプのタスクのために異なるクラスタを利用することができる。例えば顧客は、サービスの起動のために第1のクラスタを利用し、バッチジョブを実行するために第2のクラスタを利用することができる。第1のクラスタ内のインスタンスは、サーバを稼働するために最適化されており、第2のサーバのインスタンスは、バッチジョブなどの短期の非常駐ジョブを提示するために最適化されて良い。
クラスタに関して利用可能なアプリケーションプログラミングインターフェースファンクションコールには、CreateCluster(クラスタ形成)、DescribeCluster(クラスタ記述)、ListClusters(クラスタリスト)及びDeleteCluster(クラスタ削除)が含まれて良い。CreateClusterアプリケーションプログラミングインターフェースコールによって、クラスタを形成することができる。場合によっては、クラスタが形成された後、フロントエンドサービス204が、新たに形成されたクラスタのクラスタIDを顧客に提供することができる。このクラスタIDによって顧客がコンテナインスタンスをクラスタに登録することが可能になり、例えば顧客は、クラスタIDをパラメータとしてRegisterContainerInstance(登録コンテナインスタンス)アプリケーションプログラミングインターフェースコールに渡すことによって、コンテナインスタンスをクラスタに登録させることができる。加えてまたは代替として、顧客は、CreateClusterアプリケーションプログラミングインターフェースコールに対するパラメータとして顧客に属する1つまたは複数の既存のコンテナインスタンスを特定することで、クラスタの形成と同時に1つまたは複数の既存のコンテナインスタンスをクラスタに登録させることができる。同様に、場合によっては、顧客がCreateClusterアプリケーションプログラミングインターフェースコールのパラメータにおいて、クラスタを形成する際、形成されかつクラスタに登録されるべきコンテナインスタンスの量を特定する場合もある。クラスタ形成アプリケーションプログラミングインターフェースファンクションコールは、図7にさらに示される。
ひとたびクラスタが形成され稼働すると、クラスタに関する情報をリクエストするために、DescribeClusterアプリケーションプログラミングインターフェースコールが顧客202またはアプリケーションによって使用されて良い。DescribeClusterアプリケーションプログラミングインターフェースコールに応答して返される情報には、どのアプリケーションがクラスタ内で稼働しているかのリスト、クラスタが利用可能なリソース及びそのタイプが含まれて良い。DescribeClusterアプリケーションプログラミングインターフェースコールから返される情報をその後StartTask(タスク開始)アプリケーションプログラミングインターフェースコールのためのパラメータとして使用して、記述されるクラスタ内でタスクを起動することができる。
スケジューラ208は、記述されるクラスタ内でタスクを起動するように構成されて良い。あるいはスケジューラ208ではなく、顧客208がその独自のスケジューラを実装し、スケジュール設定されたタスクに関する配置の決定を行うために顧客のスケジューラの配置ロジックに関連してDescribeClusterアプリケーションプログラミングインターフェースコールによって取り出された情報を利用する場合もある。顧客は彼/彼女の独自のスケジューラによって使用されるべき配置アルゴリズムを設計及び/またはアップロードすることができる、あるいはコンピューティングリソースサービスプロバイダによって顧客に提供される可能な配置アルゴリズムのリストから選択する場合もある。コンテナサービス200は、利用可能なリソースに基づいて、顧客のスケジューラによってなされた配置決定を受け入れるか拒絶するかを決定することができる。
スケジューラ208は、一揃いのタスクをクラスタと共に稼働するように最適にスケジュール設定するように構成されたマルチテナントサービスであり得る。この方法では、顧客202は、タスクを実行すべき場所を選択する必要がない。スケジューラ208の配置スキームは、クラスタにわたって均等にタスクを分散するように構成されて良く(例えばラウンドロビン式、確率的な分散スキームなど)、利用可能なリソースの最も効率的な使用を行うためにクラスタによる現在のまたは予測されるリソース消費に基づいてタスクを分散するように構成される場合もある。スケジューラ208は、コンテナマネージャバックエンドサービス214を介してクラスタマネージャメタデータ及びクラスタ内のコンテナインスタンス218のアベイラビリティに関する他の情報を取得することができる。クラスタマネージャメタデータ及び他の情報は、このクラスタに割り当てられたコンテナインスタンス218の現在の状態、コンテナインスタンス内の利用可能なリソース、コンテナインスタンス内で稼働中のコンテナに関するデータ、及び配置決定を行うためにスケジューラ208が使用することができる他の情報を含むことができる。DescribeClusterアプリケーションプログラミングインターフェースコールによって、クラスタマネージャバックエンドサービスに特定されたクラスタに関するクラスタメタデータを提供させることができる。
スケジューラ208は、セキュリティルール、セキュリティグループ及び/またはセキュリティロールに少なくともある程度基づいて、アフィニティを有するタスクと、アンチアフィニティを有するタスクにタスクを分散する。例えば特定のセキュリティグループ内のタスクは、可能性がある、または実行可能であるときはいつでも同一のコンテナインスタンス上で起動されるように構成されて良い、あるいは逆に別々のコンテナインスタンス内で起動されるようにスケジュール設定される場合もある。別の例として、タスクが特定のセキュリティグループに割り当てられる、または特定のセキュリティロールを有するように指定され、割り当てられた特定のセキュリティグループまたは指定されたセキュリティロールに基づいてタスクが特有のクラスタまたは特有のクラスタインスタンスにおいて稼働するように割り当てられる、あるいは他のタスクに対してリソースに対する優先権を有する場合もある。アフィニティ/アンチアフィニティに基づいたタスクの分散は、コンテナ、コンテナインスタンス及びタスクにおける関係性を示す「タグ」の割り当てを含む。少なくともある程度アフィニティに基づいた分散の一例として、2つのコンテナインスタンスが、「一般用」としてタグ付けされ、1つのコンテナインスタンスが「データベース」としてタグ付けされる場合がある。タスク定義において、タスクは、そのタスクが、一般用としてタグ付けられたコンテナインスタンスのうちの1つ(または複数)において起動されるアフィニティを与える「一般用」の起動制約によって特定することができる。アンチアフィニティのタスク定義の一例として、特定のコンテナインスタンスが、「安全な−クレジット−カード−処理」としてタグ付けされ、特定の他のコンテナインスタンスが「http−ウェブサイト」としてタグ付けされる場合がある。http−ウェブサイトコンテナは、信頼できない外部エンティティからの取引を供給している可能性があるため、そのようなコンテナをクレジットカード処理タスクと共有しないことが望ましい場合がある。よってタスク定義は、「http−ウェブサイト」がクレジットカード処理タスクに対してアンチアフィニティであることで、クレジットカード処理コンテナが、「http−ウェブサイト」とタグ付けされたコンテナインスタンスにおいて起動されないことを保証することを示すように構成される。この例において、スケジューラ208は、タスク定義において任意のタグをパースし、それを使用して、タグに関連する判断基準を満たさないコンテナインスタンスを取り除くように構成することができる。次に、スケジューラ208は、取り除かれたセットからそのコンテナをホストするコンテナインスタンスを選択することができる。
いくつかの実施形態において、スケジューラ208は、コンテナエージェント222と直接通信することでタスクを起動する場合がある。他の実施形態では、スケジューラ208は、エージェント通信サービス220と通信する場合もあり、このエージェント通信サービス220がその後、その通信をコンテナエージェント222へと中継することができる。さらに他の実施形態では、スケジューラ208は、コンテナマネージャバックエンドサービス214に配置決定を伝えることができ、このコンテナマネージャバックエンドサービス214が通信をコンテナエージェント222またはエージェント通信サービス220に直接中継することができる。指摘したようにいくつかの実施形態において、顧客202は代替として、スケジューラ208を利用するのではなく、タスク管理のためにその独自のスケジューラを実装する場合もある
場合によっては、コンテナは、リソースを求めて競り合うように構成され、対立した場合には、特定のセキュリティロールに対応付けられたコンテナが他のコンテナに対して優先権を有することができる。全ての場合において、配置スキームはコンテナインスタンスにおける利用可能なリソース及びコンテナのリソース要件を考慮に入れることができることに留意されたい。例えば、特定のタスクがコンテナインスタンスにおいて利用可能なリソースを超えるリソース要件を有する場合、コンテナインスタンスが特定のタスクのために選択されない場合もある。しかしながら一部の実施態様では、コンテナインスタンスはなおも選択され得るが、特定のタスクの稼働をサポートするのに十分なリソースがコンテナインスタンス内で利用可能になるまで特定のタスクの起動を遅らせる場合もある。
コンテナはまた、コンピューティングリソースサービスプロバイダによって提供される他のリソースを利用するように構成される場合もある。例えば各々のコンテナは、仮想ネットワークインターフェースを有するように構成されることでコンテナが仮想ネットワークを介して他のコンテナ及び/またはコンピューティングリソースサービスプロバイダの他のリソースと通信することを可能にすることができる。同様に、セキュリティ証明書がコンテナ毎のベースで割り当てられることで、コンテナは、コンピューティングリソースサービスプロバイダによって提供される他のリソースにアクセスするためにその独自のセキュリティ証明書を有することができる。加えてコンテナサービスは、コンテナに向けられた仕事量をロードバランスするためにロードバランスサービスと一体化されるように構成される場合もある。例えば顧客は、顧客のコンテナ及び/または顧客のインスタンスの仮想ネットワークに対応付けられたインターネットプロトコルアドレスのリストをロードバランスサービスのロードバランサーに提示し、インターネットプロトコルアドレス間の仕事量のバランスを取ることができる。加えて、コンテナサービスは、自動スケーリングサービスと一体化されることでコンテナによって利用されるリソースを必要に応じて動的に調節することが可能になる場合もある。
例えば顧客は、単一のクラスタに対して複数のスケジューラを実装する場合があり、複数のスケジューラが、クラスタ内のどのインスタンスに関してコンテナを起動するかを決定する。複数のスケジューラが、例えばどこでコンテナを起動するかを決定するためにオプティミスティック同時実行制御法を使用することによって配置スキームに従って互いと競合する場合がある。例えばオプティミスティック同時実行を使用する各々のスケジューラは、一般にコンテナは互いに干渉することがなく、1つのコンテナが、別のコンテナが読み取った修正データを有するような状況において、読み取り用のコンテナが再始動し、修正データを再度読み取ることができる。
場合によっては、、スケジューラは、利用可能なリソースを最大限にするように構成される場合がある。例えばクラスタは長期稼働サービスを稼働するために主に利用されて良く、1つまたは複数の短い寿命のバッチジョブを稼働するための要望が生じている。そのような一例において、利用可能なリソースを最大限にするように構成されたスケジューラは、バッチジョブのために最も適した場所として、バッチジョブをサポートするためにまさに十分な処理パワーを備えたインスタンスを捜すことができる。あるいはスケジューラは、最も少ないその処理パワーを利用するインスタンスを捜し、このインスタンスに対してバッチジョブをスケジュール設定する場合もある。
一部の実施態様において、メタ−スケジューラが、1つまたは複数のスケジューラの頂点において階層的に稼働するように構成される場合もあり、メタ−スケジューラは、どこでバッチジョブを起動するかを決定することができる。例えば一実施態様において、2種類のタスク、すなわち短期間のバッチジョブタスクと、長期間のサービスがある場合がある。2種類のタスクは、異なる配置ルールを有する可能性があり、例えば1つまたは複数の特定されたクラスタ内の利用可能なコンテナインスタンスの間で均等にサービスタスクを分散するのが望ましいのに対して、バッチジョブタスクは、空間処理サイクルを有する任意の利用可能なコンテナインスタンスにおいて稼働するように構成される場合がある。場合によっては、各々のセットの配置ルールに対して異なるスケジューラが割り当てられる場合もある。しかしながらそのような配置ルールが互いに競合する、あるいは互いに矛盾する場合、または適切なスケジューラを決定し、特定のタスクに割り当てる必要があるケースでは、メタ−スケジューラは、どの競合するタスクを優先するべきかを決定し、スケジューラ間で情報を同期させる、またはタスクを配置するのに適切なスケジューラを決定することができる。
クラスタは、フロントエンドサービス204に対して行われるアプリケーションプログラミングインターフェースコールを介して管理されて良い。例えばアプリケーションプログラミングインターフェースコールは、どのクラスタが利用可能であるか、及びどのコンテナがどのクラスタで稼働中であり得るかのリストをリクエストするために行うことができる。ListClustersアプリケーションプログラミングインターフェースコールは、顧客がアクセス権を有する全てのクラスタをリストにすることができる。DeleteClusterアプリケーションプログラミングインターフェースコールは、指定されたクラスタを削除することができ、図14を参照してさらに記載される。
コンテナインスタンスのために利用可能なアプリケーションプログラミングインターフェースファンクションコールは、RegisterContainerInstance(コンテナインスタンス登録)、DescribeContainerInstance(コンテナインスタンス記述)及びDeregisterContainerInstance(コンテナインスタンスの登録取り消し)を含むことができる。RegisterContainerInstanceアプリケーションプログラミングインターフェースコールは、コンテナインスタンスがひとたびインスタン化されると、そのコンテナインスタンスをクラスタマネージャに登録するためにコンテナインスタンスのコンテナエージェントによって使用されて良い。一部の実施態様において、クラスタマネージャは、クラスタに関するメタデータで構成される(例えばコンテナインスタンスのグルーピング)。他の実施態様において、クラスタマネージャは、顧客によってインストールされた、またはコンピューティングリソースサービスプロバイダによって利用可能になった構成管理ソフトウェアを含む場合がある。スケジューラはその後、どのコンテナインスタンス内でコンテナを起動させるべきかを決定する際、クラスタマネージャに登録されたコンテナインスタンス218を参照することができる。RegisterContainerInstanceは図8を参照してさらに記載される。DescribeContainerInstanceアプリケーションプログラミングインターフェースコールは、コンテナインスタンスに対して利用可能なリソース及びコンテナインスタンス内で稼働中のタスクを含めた、コンテナインスタンスに関する情報を返すことができる。
コンテナは、クラスタ内に十分なリソースを備えたいかなる利用可能なコンテナインスタンスにおいても稼働され得るため、十分なコンテナインスタンスが利用可能であるならば、必要に応じてコンテナをクラスタ内でスケールアップまたはスケールダウンすることができる。クラスタ内のコンテナインスタンスの数が不十分である場合、追加のコンテナインスタンスを形成し、クラスタマネージャを通してクラスタに記録することができる。クラスタ内に過剰なコンテナインスタンスがある場合、クラスタマネージャを介して一部のコンテナインスタンスがクラスタから登録を取り消される場合もある。 DeregisterContainerInstanceアプリケーションプログラミングインターフェースコールを利用して、指定されたクラスタから、RegisterContainerInstanceアプリケーションプログラミングインターフェースコールを利用して登録されたコンテナインスタンスの登録を取り消すことができる。DeregisterContainerInstanceは図13に関連してさらに記載される。
タスク定義に関して利用可能なアプリケーションプログラミングインターフェースファンクションコールには、RegisterTaskDefinition(タスク定義登録)、DescribeTaskDefinition(タスク定義記述)、ListTaskDefinitions(タスク定義リスト)及びDeregisterTaskDefinition(タスク定義登録取り消し)が含まれて良い。RegisterTaskDefinitionアプリケーションプログラミングインターフェースコールは、タスクを起動するためにタスク定義を登録するのに使用されて良く、これは図9に関連してさらに記載される。DescribeTaskDefinitionアプリケーションプログラミングインターフェースコールは、タスク定義ファイルの内容を含めたタスク定義に関する情報を返すのに使用されて良い。ListTaskDefinitionsアプリケーションプログラミングインターフェースコールは、顧客にとって利用可能なタスク定義のリストを返すことができる、または特定のクラスタIDまたはコンテナインスタンスIDに対応付けられたタスク定義のリストを返すことができる。DeregisterTaskDefinitionアプリケーションプログラミングインターフェースコールは、RegisterTaskDefinitionアプリケーションプログラミングインターフェースコールを利用して登録されたタスク定義の登録を取り消すことができ、これは図12に関連してさらに記載される。
タスクに関するアプリケーションプログラミングインターフェースファンクションコールには、StartTask(タスク開始)、DescribeTask(タスク記述)、ListTasks(タスクリスト)及びStopTask(タスク停止)が含まれて良い。顧客はタスク定義ファイル(またはそのそれぞれの識別子)をパラメータとしてStartTaskアプリケーションプログラミングインターフェースコールに渡すことができ、コンテナインスタンスまたはクラスタをさらに特定することでコンテナインスタンスまたはクラスタ内の1つまたは複数のタスクを起動することができる。例えば顧客は、DescribeClusterアプリケーションプログラミングインターフェースコールに応答してクラスタの1つまたは複数のコンテナインスタンスIDを取得することができ、1つまたは複数の識別されたコンテナインスタンス上でタスク定義ファイルを実行するように指定することができる。顧客がタスクを直接稼働する場合、それらのタスクは、StartTaskアプリケーションプログラミングインターフェースを呼び出し、中で起動するコンテナインスタンスを特定することができる。あるいはスケジューラ208がStartTaskアプリケーションプログラミングインターフェースを利用してタスクを起動する場合もある。加えて顧客202が、StartTaskアプリケーションプログラミングインターフェースを利用してタスクを起動するようにその独自のスケジューラを構成する場合もある。
スケジューラ208または顧客がインストールしたスケジューラが、タスク定義ファイル内のタスクを開始するように構成され、クラスタ内でどこにタスクを配置すべきかを決定する場合もある。例えばスケジューラ208は、クラスタのコンテナインスタンスの間で均等にタスクを分散する、何らかのカイ二乗分布においてタスクを分散するように決定する場合があり、あるいは何らかの他の発見的方法または一揃いの制約に従ってクラスタのコンテナインスタンスの間でタスクを分散する場合もある。例えば複数のタスクを概説するタスク定義ファイルを渡すことによってStartTaskアプリケーションプログラミングインターフェースコールに渡されたパラメータは、複数のタスクが開始されるべきであることを特定することができる。一部の実施態様において、顧客202は、単一のクラスタまたはコンテナインスタンスを特定するのではなく、クラスタまたはコンテナインスタンスのリストを特定する場合があり、スケジューラ208は、どのコンテナインスタンスにおいてタスクを実行するかを決定することができる。StartTaskアプリケーションプログラミングインターフェースコールは、図10を参照してさらに記載される。
DescribeTaskアプリケーションプログラミングインターフェースコールは、割り当てられたリソース、寿命及び稼働状況に関する情報を含め、コンテナエージェント222から稼働中のタスクに関する情報を返すのに使用されて良い。ListTasksアプリケーションプログラミングインターフェースコールは、全ての稼働中のタスクのリストまたは特定されたクラスタまたはコンテナインスタンスにおいて稼働中の全てのタスクのリストを返すのに使用されて良い。StopTaskアプリケーションプログラミングインターフェースコールは、StartTaskアプリケーションプログラミングインターフェースコールを利用して開始された特定される稼働中のタスクを停止するためにコンテナエージェント222に命令するのに使用されて良い。StopTaskアプリケーションプログラミングインターフェースコールは、図11に関連してさらに記載される。
コンテナサービス200は、図15の認証システム1518などのコンピューティングリソースサービスプロバイダの認証システムと相互作用することで、フロントエンドサービス204に対してなされたアプリケーションプログラミングインターフェースコールを認証することができる。一部の実施形態において、別々のセキュリティグループ及びセキュリティロールが、単一のホスト上の異なるコンテナに対して構成され、これらの異なるコンテナに割り当てられる場合もある。コンテナサービス200はまた、仮想プライベートクラウド内のコンテナまたはコンテナインスタンス218を起動するように構成される場合もある。
一部の実施形態において、コンテナは、例えばブロック−レベルデータ記憶サービス及び/またはオン−デマンドデータ記憶サービスなどのコンピューティングリソースサービスプロバイダの他のサービスにアタッチするように構成される場合もある。場合によっては、コンテナは、アタッチしたサービスを他のコンテナと共有するように構成される場合もある。一例として、顧客のコンテナインスタンスは、コンピューティングリソースサービスプロバイダのブロック−レベル記憶サービスのブロック−レベル記憶ボリュームに対してマップされる場合があり、そのインスタンス内のコンテナは、ブロック−レベル記憶ボリュームから読み出す及び/またはそこに書き出すことが可能であるように各々構成されて良い。一部の例では、1つのクラスタまたは複数のクラスタ内の全てのコンテナインスタンスが、その稼働中のコンテナとブロック−レベル記憶ボリュームを共有することが可能になり得るように、ブロック−レベル記憶ボリュームは、例えば1つのクラスタまたは複数のクラスタ内の全てのコンテナインスタンスなど複数のコンテナインスタンス間で共有される場合もある。別の例として、コンテナインスタンスは、20の異なるブロック−レベル記憶ボリュームに対してマップされる場合もあるが、コンテナ用に特定されるのは2つのブロック−レベル記憶ボリュームのみである。
テンプレートサービス206は、顧客202がそのコンテナのためにタスク定義を定義することを可能にするように構成されて良い。一部の例では「タスク定義」は、例えばコンテナの数、そのタイプ、その構成要素、他のコンテナに対するその関係性、関連するインスタンスを記述する情報及び他のメタデータなどの、コンテナの1つのグループを定義し得るスクリプトまたは一揃いのメタデータを指す場合がある。タスク定義はまた、連係して起動されるべきコンテナのグループを特定する場合もある。テンプレートサービス206は、顧客202からタスク定義を受け取り、タスク定義をデータベース216内に記憶し、顧客202がそのタスク定義を形成する、見る、更新する、消去する及びそうでなければ管理することを可能にする。
テンプレートサービス206は、タスク定義を定義するための能力を顧客202に与えることができる。テンプレートサービス206は、能力を有する顧客が、タスク定義ファイルをアップロードすることによってタスク定義を提供することを可能にする、または顧客が種々のオプションから選択する及び/もしくは変更デフォルト設定を変更することでタスク定義ファイルを動的に形成することを可能にすることによってタスク定義を提供する場合もある。テンプレートサービス206は、顧客がタスク定義を登録することを可能にすることができる。テンプレートサービス206はまた、現在登録されているタスク定義を編集するために編集インターフェースを提供する場合もある。テンプレートサービス206は、コンテナマネージャバックエンドサービス214に対してタスク定義を提供してデータベース216内に記憶させることによって、少なくともある程度タスク定義を登録することができる。
一部の例では、「フリート」が、本開示のコンテナインスタンスまたはコンテナサービス200の他のアプリケーションなどのインスタンスを稼働中の一セットのコンピュータシステム(仮想または物理的)を指す場合がある。フリートはサブ−フリートにさらに分割されてよく、各々のサブ−フリートは、そのサブ−フリートに専用のコンテナマネージャバックエンドサービス及びエージェント通信サービスによってサポートされて良い。エージェント通信サービス220は、そのサブ−フリート内のコンテナインスタンス上に稼働するコンテナエージェント222及びテレメトリエージェント224と通信するように構成されて良い。
コンテナマネージャバックエンドサービス214は、このバックエンド上のサブ−フリートに対して、本開示において記載されるクラスタ管理ソフトウェアまたはクラスタマネージャメタデータなど他の管理サービス及びリソースを提供するように構成されて良い。コンテナマネージャバックエンドサービスは、テンプレートサービス206からタスク定義を受け取り、タスク定義をデータベース216内に記憶し、コンテナインスタンス218またはエージェント通信サービス220からクラスタマネージャメタデータを受け取り、リクエストがあり次第スケジューラ208または顧客がインストールしたスケジューラにタスク定義情報及びクラスタマネージャメタデータを提供するように構成されて良い。コンテナマネージャバックエンドサービスは、DescribeClusterアプリケーションプログラミングインターフェースコールに応答して、例えばクラスタマネージャメタデータなど、特定されたクラスタに関する情報を提供するように構成されて良い。
エージェント通信サービス220及びコンテナマネージャバックエンド214は、サブ−フリート内の別々のコンピュータシステム上に実装されて良く、サブ−フリート内の別々の仮想マシンインスタンスは、サブ−フリート内の同一のコンピュータシステム及び/または仮想マシンインスタンスを共有することができる、またはそれとは別のコンピュータシステム上で稼働するが、そのそれぞれのサブ−フリートと通信する場合もある。1つのサブ−フリートにつき複数のコンテナインスタンス218が存在する場合もある。場合によっては、、各々のサブ−フリートは単一のクラスタを表す場合もある。別の場合では、クラスタは、複数のサブ−フリートにまたがる場合もある。さらに別の場合では、各々のサブ−フリートは、2つ以上のクラスタをホストする場合もある。ルータサービス210は、フロント−エンドサービス204からのリクエストを適切なサブ−フリートに送るように構成されて良い。一部の実施形態において、ルータサービス210は、単一のサブ−フリートにリクエストを送ることができる。他の実施形態ではルータサービスが複数のサブ−フリート間でリクエストを送る場合もある。
テレメトリサービス212は、制御グループメトリック(例えばコンテナ内で稼働中のプロセスに関する情報)及びコンテナログを集約し、集約されたメトリックとログをリソース監視サービスに提供することで、顧客202が、そのそれぞれのコンテナインスタンスのプロセッサ、記憶装置及びネットワーク利用などのリソースの利用を監視することができるように構成されて良い。制御グループメトリックには、コンテナのプロセスによって使用されるメモリの量、プロセスが発生させたページフォールトの回数、コンテナのプロセスによる中央処理装置の利用、コンテナのプロセスに代わって中央処理装置がシステムコールを実行する時間、コンテナのプロセスによる読み取り及び書き込みの回数、ならびにコンテナのプロセスに関してキューに入れられた入/出力操作の回数などの情報が含まれる。
コンテナマネージャバックエンドサービス214は、フロント−エンドサービス204を介して顧客202からそれぞれのコンテナに関する配置リクエストを受け取るように構成されて良く、リクエストされたリソースがコンテナに対して利用可能であることを保証することができる。コンテナマネージャバックエンドサービス214はその後、所望されるコンテナの状態をデータベース216に書き出すことができる。一部の実施態様では、コンテナマネージャバックエンドサービスは、データベース216内に記憶され得るクラスタマネージャメタデータに対する責任を担っており、これは、リクエストされたとき、スケジューラ208または顧客がインストールしたスケジューラに提供されて良い。加えて、コンテナマネージャバックエンドサービスは、ライフサイクルイベント及びハートビート(例えば通常動作を示すためにコンテナエージェント222によって送信される周期的な信号)に関する情報など個々のコンテナエージェント222から規則的に情報を受け取ることができる。場合によっては、、このような情報は、フロント−エンドサービス204を介して適切な構成要素またはエンティティに伝達される場合もある。一部の実施態様では、コンテナエージェントは、エージェント通信サービス220を介してこのような情報を伝達し、エージェント通信サービス220がその後、この情報をコンテナマネージャバックエンドサービス214に直接伝達する場合もある、または他の実施態様では、情報をデータベース216に記憶し、それに対してコンテナマネージャバックエンドサービス214が情報を読み取ることができる。
データベース216は、コンテナサービス200の分散コンピューティングシステム内に配置されたデータ記憶装置であって良い、または例えばリレーショナルデータサービスなどの、コンピューティングリソースサービスプロバイダの種々のサービスのデータ記憶装置である場合もある。一部の実施形態において、データベース216は、トランザクションログを共有する一揃いの分散されたデータベースである場合もある。エージェント通信サービス220は、クラスタ内の全てのエージェントの状況を追跡するように構成されて良く、そのそれぞれのインスタンスに対してランコマンド及び状態遷移をプッシュすることができる。一部の実施形態において、コンテナサービスの他の構成要素によるコンテナ及びコンテナインスタンス218との通信は、エージェント通信サービス220を介して行われる。各々のフリートは、フリートのコンテナエージェント222間でメッセージを取り次ぐ少なくとも1つのエージェント通信サービスを有することができる。
コンテナエージェント222は、顧客202が所有するインスタンスにおいて稼働するように構成されたソフトウェアアプリケーションであって良く、そのそれぞれのコンテナインスタンス218と、コンテナマネージャバックエンドサービス214などの他のサービス及びエンティティとの間のインターフェースとして機能することができる。例えばコンテナエージェント222は、コンテナへのまたはコンテナからの全ての通信がコンテナエージェントを通過するように、そのそれぞれのコンテナインスタンス218の稼働中のタスクと、他のエンティティ及びサービスとの間の仲介手段として機能することができる。この方法において、コンテナエージェントは、コンテナサービス200によって稼働するコンテナと、特定のコンテナカプセル化システムの間でコマンドを解読し翻訳するように構成されて良い。これにより、タスクまたはタスク定義に対して更新を行う必要なしに特定のコンテナカプセル化システムに変更を行うことが可能になり、すなわち特定のカプセル化システムに対する変更を反映するにはコンテナエージェント222のみを更新させる必要がある。
よってコンテナインスタンス218の各々は、その中で稼働し、それぞれのコンテナマネージャバックエンドサービスと通信するそれぞれのコンテナエージェントを有することができる。コンテナエージェントはそれ自体が、そのそれぞれのコンテナインスタンスを監視するように構成されたコンテナであって良く、コンテナを起動し、コンテナを追跡し、かつクラスタ状態を監視するのに使用できる情報をシステムに提供することができる。コンテナエージェントはまた、そのそれぞれのコンテナインスタンスを登録する、及び登録を取り消す、そのそれぞれのコンテナインスタンス内でタスクを開始する及び停止する機能を果たすこともできる。コンテナエージェントはまた、そのそれぞれのコンテナインスタンスを記述するためのリクエスト、そのそれぞれのコンテナインスタンスにおいて稼働中のタスクをリストにするためのリクエスト、及びそのそれぞれのコンテナインスタンスにおいて稼働中のタスクを記述するためのリクエストに応じるように構成されて良い。コンテナエージェント222は、それぞれのコンテナインスタンス218内のコンテナの健全さを監視するように構成されて良く(例えばコンテナインスタンスが動作中であることを合図で示すハートビートを報告する、コンテナの寿命を報告する、及びコンテナの状況及びコンテナのエラーの発生を報告する)、特定のイベントの発生に基づいて行動を行うようにさらに構成されて良い。例えばコンテナがエラーに遭遇し、動作を止めたことをコンテナエージェントが検知した場合、コンテナエージェントは、自動的に新たなコンテナが生成されて正常に動作しないコンテナに置き換わるようにすることができる。他の実施形態においてスケジューラ208は、コンテナエージェント222によってそれに対して報告されたイベントに応じて特定の行動を採ることができる。上記の例では、新たなコンテナを生成させ正常に動作しないコンテナに置き換わるようにするのはスケジューラ208である場合もある。コンテナの所有者である顧客は、スケジューラ208及び/またはコンテナエージェントに対して状況、イベント及び行動を特定することができる。例えば顧客は、例えばエラーまたは停電などが原因で顧客のコンテナが動作を止めた場合、スケジューラ208またはコンテナエージェントが、動作しないコンテナのための置き換えコンテナを生成しないように指定する場合もある。代わりに顧客は、スケジューラ208またはコンテナエージェントが問題が発生したことを顧客に通知する(例えば状況指示器を変化させる、eメールを送るなどによって)ように指定する場合もある。
コンテナエージェント222及び/またはテレメトリエージェント224は、そのそれぞれのコンテナインスタンス218がインスタンス化される際、自動的に起動するように構成されて良い。新たなコンテナカプセル化システムがコンテナサービス200によって実装された場合、コンテナインスタンス218及びコンテナに対して必要な変更は、新たなコンテナカプセル化システムに適合するように構成された新たなコンテナエージェントが形成され、コンテナエージェント222がこの新たなコンテナエージェントと交換されることのみであり得る。そのような場合では、顧客202は、コンテナサービス200によって同一のアプリケーションプログラミングインターフェースを利用することが可能であるべきであり、新たなコンテナエージェントは、顧客202が新たなカプセル化システムに変更されたことに気づくことなく、同一のアプリケーションプログラミングインターフェースをサポートするように構成されるべきである。
コンテナエージェント222は、コンテナカプセル化システムに対して情報を伝達するようにコンテナカプセル化システムによってポーリングされて良い。コンテナエージェント222は、コンテナインスタンス218を登録するまたはその登録を取り消し、コンテナマネージャバックエンドサービス214から命令を受け取り、テレメトリエージェント224が始動され稼働中であることを保証することができる。コンテナエージェント222はまた、コンテナインスタンス218内のコンテナを更新し、イベントストリームを介してコンテナインスタンス218内で稼働中のコンテナの状態を監視することもできる。
テレメトリエージェント224は、制御グループメトリック及びコンテナカプセル化システムログなどのテレメトリデータを収集し、そのようなテレメトリデータをテレメトリサービス212に提供するように構成されて良い。テレメトリサービス212は、コンピューティングリソースサービスプロバイダのリソース監視サービスのためにテレメトリエージェント224から受信したデータを集約するように構成されて良く、このコンピューティングリソースサービスプロバイダは、集約されたデータに基づいて警告または何らかの他の行動をトリガーするように構成されて良い。例えばテレメトリエージェント224がコンテナのエラー状態を示すログをテレメトリサービス212に伝達した場合、テレメトリサービス212は、リソース監視サービスに対してエラー状況を提供することができ、このリソース監視サービスは、コンテナにエラーがあったことを顧客に通知する警告をトリガーすることによって対応する。別の例として、リソース監視サービスは、テレメトリサービス212によって提供されたメトリック(例えばコンテナのプロセスによる中央処理装置の利用)の1つが閾値を超えた場合、警告をトリガーする場合もある。一部の実施態様では、テレメトリサービス212は、警報状況及び閾値を特定するように構成可能である場合もあることに留意されたい。アラームをトリガする例には、コンテナの所有者の顧客に対してテキストメッセージを提供する、コンテナの所有者の顧客にeメールを送る、及び/または視覚的な指示(赤いアイコン、ポップアップウィンドウなど)をコンテナの状態を表示するインターフェースに表示するなどが含まれる。
コンテナサービス200はまた、データボリュームをコンテナにリンクすることを可能にすることもできる。そのようなデータボリュームは、コンテナ内の指定されたディレクトリであって良く、コンテナインスタンスのデフォルトファイルシステムを回避し得る1つまたは複数の他のコンテナと共有されて良い。この方法において、データは、持続的に記憶され、コンテナインスタンス内の他のコンテナの間で共有されて良い。データボリュームは、タスク定義ファイル内のエントリを介するように構成されて良い。一部の実施態様において、あるコンテナに対する1つまたは複数のデータボリュームの作成及び選択は、フロント−エンドサービス204に伝達する目的で構成されたユーザインターフェースを介して達成される場合もある。コンテナサービス200は、他のデータ記憶サービスを利用する場合もあり、例えばデータボリュームのための記憶装置を提供するためのコンピューティングリソースサービスプロバイダの、図2のオンデマンドデータ記憶サービス1514またはブロック−レベルデータ記憶サービス1510などである。他の実施態様では、データボリュームは、データボリュームのためのコンテナインスタンスの本来備わった記憶装置を利用する場合もある。
コンテナサービス200は、コンピューティングリソースサービスプロバイダの他のサービスと組み合わされる場合がある。例えばコンテナインスタンスは、コンピューティングリソースサービスプロバイダの自動スケーリングサービスの自動スケーリンググループにタグ付けされる及び/または割り当てられる場合がある。この方法において、自動スケーリングサービスは、コンテナインスタンスによるリソースの利用を監視し、コンテナインスタンスによるリソースの需要の急激な増加など、必要に応じてリソースを動的に調節する/割り当てることができる。同様にコンテナサービス200は、コンピューティングリソースサービスプロバイダのロード−バランサーサービスと組み合わされる場合もある。例えばロード−バランサーサービスは、コンテナインスタンス間の仕事量のバランスを取るために、コンテナまたはコンテナインスタンスへのトラフィックを分散させることができる。
一例として、顧客は、自動スケーリンググループに割り当てられたコンテナインスタンス218を利用してウェブサイトを操作することができる。ウェブサイトは、インターネットを介して複数のユーザからリクエストを受け取ることができ、ロード−バランサーサービスのロードバランサーは、ロード−バランシング分散スキームに従ってコンテナインスタンス218に対するリクエストを分散させることができる。ロード−バランサーサービスは、リソースの利用を最適化する及び/または任意の特定のホストコンピュータの過負荷を避けるために、ロードバランサーに割り当てられたコンテナインスタンス218へのリクエストを分散させるように構成されたコンピュータシステムまたは仮想コンピュータシステムであって良い。例えばロードバランサーは、サーバラックに接続された、またはそうでなければデータセンター内に含まれる物理ハードウェアを含むことができる。別の例では、ロードバランサーは、ホストコンピュータによってサポートされる1つまたは複数の仮想マシンを含む場合もある。同時に自動スケーリングサービスは、リクエストを受信するためにコンテナインスタンス218によって必要とされるリソースがより多くなるか、またはより少なくなるかを検知し、必要に応じてコンテナインスタンス218により多くのまたはより少ないリソースを割り当てることができる。
図3は、一実施形態が実施され得る環境300の一態様を示している。具体的には図3は、少なくとも1つの実施形態によってコンテナインスタンス320として構成される複数の仮想マシンを実行するコンテナサービス1522と同様のコンテナサービスを描いている。コンテナサービスは、コンピューティングリソースサービスプロバイダ304の顧客302に対してシステムハードウェア340を提供することで、コンテナ310内で計算サービスを行うコンテナサービスを提供することができる。システムハードウェア340は、ホストコンピュータシステムとも呼ばれる1つまたは複数のホスト342を含むことができる。ホスト342の各々は、データ計算、操作または記憶タスクを行うための命令を実行するように構成された、コンピュータまたはサーバなどの任意のデバイスまたは装置であって良い。ホスト342は、任意の必要とされる処理能力を備えることができ、これには例えば中央処理装置、グラフィックスプロセッシングユニットまたはデジタル信号プロセッサなどの1つまたは複数のプロセッサが含まれる。ホスト342はまた、メモリ(例えばスタティックメモリ及びダイナミックメモリ)、バス及びハンドシェーキング、通信またはデータ転送プロトコルに準拠する入/出力ポートを装備する場合もある。システムハードウェア340はまた、記憶ディスク及びテープなどの記憶デバイス及びネットワーキング設備を含む場合もある。記憶デバイスは、図15に関連して記載されるブロック−レベルデータ記憶サービス1510などのデータ記憶サービスによって管理されるネットワーク記憶デバイスであって良い。
システムハードウェア340における仮想化レイヤ344によって、システムハードウェア340を使用して、1つまたは複数のコンテナインスタンス320がその上で動作し得る計算リソースを提供することが可能になる。仮想化レイヤ344は、コンテナインスタンス320のための仮想コンピューティングプラットフォームを提供するのに使用される任意のデバイス、ソフトウェアまたはファームウェアであって良い。ホスト342上で実行する仮想化レイヤ344によって一揃いのシステムハードウェア340を使用して、コンテナインスタンス320をサポートするのに必要な計算リソースを提供することが可能になる。さらに物理ホスト342が、同一のシステムハードウェア340上の同一のまたは異なるタイプの複数の仮想レイヤをホストする場合もある。各々のコンテナインスタンス320は、種々の仮想コンピュータ構成要素、例えば1つまたは複数の仮想プロセッサ、仮想メモリ及び仮想記憶装置を含む場合がある。コンテナインスタンス320はコンピューティングリソースサービスプロバイダ304の顧客に提供されて良く、顧客は、各々のコンテナインスタンス320上でオペレーティングシステム306及びアプリケーションを稼働することができる。仮想レイヤ344の一つの例にはハイパーバイザが含まれる。
コンピューティングリソースサービスプロバイダ304によって作動される図2のフロント−エンドサービス204などのリクエストインターフェースによってリクエストを受信することができる。リクエストインターフェース314が、このリクエストを適切なコンテナインスタンスに向けることができる。各々のコンテナインスタンス320は1つまたは複数のソフトウェアエージェント308を含むことができる。ソフトウェアエージェント308は、顧客302がそのそれぞれのコンテナ310及びコンテナインスタンスを管理することを可能にするように構成されて良い。ソフトウェアエージェント308はさらに、イベントのロギングを行い、コンテナ310及びコンテナインスタンス320に関連するテレメトリデータを集めるように構成されて良い。そのようなソフトウェアエージェント308の例は、図2に関連して記載されるコンテナエージェント222及びテレメトリエージェント224である。
オペレーティングシステム306は、コンテナインスタンス320内で稼働するのに適した任意のオペレーティングシステムであって良く、これはコンテナ化スキームが、オペレーティングシステム306の下に稼働中の他のプロセスから、例えばコンテナ310などの仮想化インスタンスを隔離することを可能にする隔離技術を提供する。そのようなオペレーティングシステムの例には、Linuxカーネルにおけるリソース隔離機能をサポートするLinuxオペレーティングシステムの種々の実施態様が含まれる。指摘したように、コンテナ310は、1つまたは複数のタスク定義に従ってアプリケーションイメージから起動されたオペレーティングシステム306内の仮想化されたインスタンスであって良く、そのそれぞれのコンテナインスタンス320からリソースが割り当てられて良い。
図4は、一実施形態が実施され得る環境400の一態様を示している。図4に示されるように、環境400は、コンテナエージェント422によって監視されており、テレメトリエージェント424に対してメトリック及びログ情報を提供するコンテナインスタンス418内で起動された一揃いのコンテナ402を含むことができる。コンテナエージェント422は、エージェント通信サービス220と同様のエージェント通信サービス420などのエージェント通信サービスを介して監視情報を伝達することができる。コンテナエージェント422はまた、テレメトリエージェント424とも通信することができ、コンテナエージェント422は、テレメトリエージェント424の健全さを周期的に監視して、テレメトリエージェント424が稼働していることを保証することもできる。テレメトリエージェント424が稼働を停止する、またはそうでなければエラーに遭遇した場合、コンテナエージェント424は必要に応じてテレメトリエージェント424を再始動することができる。一部の実施形態において、コンテナエージェント222からの監視情報は、アプリケーションプログラミングインターフェースコールに応答してフロント−エンドサービス204に提供される場合もある。テレメトリエージェント424は、テレメトリサービス212と同様のテレメトリサービス412に対してメトリック及びログ情報を伝達することができる。。一部の実施形態において、テレメトリエージェントは、テレメトリサービス412と直接通信する場合もあり、他の実施形態ではテレメトリエージェント424は、フロント−エンドサービス404を介してテレメトリサービス412と通信する場合もある。
コンテナ402は、本開示の他の場所で考察したコンテナと同様であり、コンテナインスタンス内の他のプロセスから隔離された、様々な寿命の(例えば短期間のバッチジョブ、長期間のバックグラウンドプロセスなど)稼働中の仮想化インスタンス(タスクとも呼ばれる)であって良い。コンテナ402に関するメトリックは、テレメトリエージェント424によって集められ、集約され、テレメトリサービス412に提供されて良い。コンテナエージェント422は、コンテナ402と、コンテナ402のネーム空間外のリソース、サービス及び他のエンティティの間の媒介手段として機能する。一部の実施態様において、コンテナ402は、ブロック−レベルデータ記憶ボリュームなどの外部リソースを共有するように構成される場合もある。このような実施態様の一部では、コンテナ402によって共有される外部ソースへのアクセス及びそれとの通信は、コンテナエージェント422を介して行うことができる。他の実施態様では、コンテナインスタンス418またはコンテナインスタンス418のオペレーティングシステムが、コンテナ402が、コンテナエージェント422を介することなく、共有されるリソースにアクセスするまたはそれと通信することを可能にすることをサポートする場合もある。
クラスタマネージャ406は、どのコンテナインスタンス418の中でコンテナ402が起動されるべきかを決定するための一揃いのルールを有するように構成されたメタデータまたはクラスタ管理ソフトウェアであって良い。例えばコンテナインスタンス418がインスタント化される際、そのコンテナエージェント422は、コンテナインスタンス418がコンテナをホストするために顧客が利用可能であることを示す情報によってクラスタマネージャ406を更新することができる。その後、コンテナを起動するためのリクエストがフロント−エンドサービス404を介して顧客またはスケジューラから受信された場合、スケジューラは、クラスタマネージャ406を参照してコンテナインスタンス418を選択し、コンテナインスタンス418のコンテナエージェント422にコンテナを起動するように告げることができる。クラスタマネージャ406はまた、特定のタイプのコンテナイベントに応じてどんな行動を採るべきかを指定するように構成される場合もある。例えばコンテナ402の1つが正常に動作せず、かつ/または動作を止めた場合、コンテナエージェント422はクラスタマネージャ406を参照して正常に動作しないまたは動作不能のコンテナを再起動するかどうかを判断することができる。
一部の実施形態において、スケジューラは、エージェント通信サービス420と通信する、またはコンテナエージェント422と直接通信して、タスクを起動するようにコンテナエージェント422に命令する場合もあることに留意されたい。他の実施形態において、スケジューラは、配置及び起動命令をコンテナマネージャバックエンド414に伝達し、これがその後、例えば直接またはエージェント通信サービスを介してコンテナエージェント422に起動命令を伝達することによって、スケジューラからの配置オーダーに従ってコンテナを起動させる。クラスタマネージャ406は、マルチテナントであって良く、例えばクラスタマネージャ406は、コンピューティングリソースサービスプロバイダの複数の顧客のクラスタを管理するための情報を有するように構成されて良い。
指摘したように、コンテナマネージャバックエンド414は、例えばクラスタマネージャ406など、特定のサブ−フリート内のコンテナ及びコンテナインスタンスをサポートする他のプロセスのためにある環境を提供するように構成されて良い。コンテナエージェント422は、コンテナエージェント422によって監視されているコンテナ402に関する寿命及び健全さの情報をクラスタマネージャ406に提供するように構成されて良い。一部の実施態様では、コンテナエージェント422がメトリック及びログ情報を収集し、この情報をテレメトリエージェント424に渡す、または直接テレメトリサービスに渡す。同様に一部の実施態様において、コンテナエージェント422は、エージェント通信サービス420を介してクラスタマネージャ406を更新する場合もある。いくつかの実施形態において、コンテナエージェントと外部の構成要素間の通信は、コンテナエージェント422からエージェント通信サービス420及び外部の構成要素への一方向の通信である場合もある。他の実施形態において、コンテナエージェント422とエージェント通信サービス420間の通信は二方向である。他の実施態様では、コンテナエージェント422が、エージェント通信サービス420を介さずに、クラスタマネージャ406を直接更新する場合もある。コンテナエージェント422は、コンテナインスタンスが形成される際に起動されるソフトウェアコンテナであって良く、別の場合ではコンテナエージェント422は、コンテナ402と通信するコンテナインスタンスのオペレーティングシステムの下で稼働するプロセスである場合もあることに留意されたい。
指摘したように、テレメトリエージェント424は、コンテナインスタンス418内で稼働中のコンテナ402に関するメトリック及びログ情報を集め、集められたメトリック及びログ情報をテレメトリサービス412に渡すように構成されて良い。一部の実施態様において、テレメトリエージェント424は、コンテナインスタンス418が形成される際に起動するその独自の別個のコンテナである場合もある。他の実施態様では、テレメトリエージェントは、コンテナインスタンス418のオペレーティングシステムの下に稼働し、コンテナ402を介してまたはコンテナエージェント422を介して直接メトリック及びログ情報を受け取るように構成されるプロセスでも良い。本開示の全ての実施態様が、テレメトリエージェント424及び/またはテレメトリサービス412を必要とするわけではないことに留意されたい。
図5は、コンテナインスタンス502とコンテナインスタンス内のコンテナ504A〜04Bの間のリソース割り当ての一例500を示す。コンテナインスタンス502は、コンテナインスタンスをサポートするように構成された(コンテナ化)コンピュータシステムインスタンス(仮想または非仮想)であって良い。コンテナインスタンス502は、割り当てられた量の処理リソース506と、一定量のメモリリソース508とを有するように描かれている。コンテナ504A〜04Cの各々は、ソフトウェアイメージからコンテナインスタンス502内で起動され、処理リソース506及びメモリリソース508などのコンテナインスタンス502のリソースのプールからリソースの量が割り当てられて良い。示されるようにコンテナ506Aは、そのプロセス510Aを稼働するために、コンテナインスタンス502の35%の処理リソース506と、15%のメモリリソース508が割り当てられている。同様にコンテナ506Bは、そのプロセス510Bを稼働するために、コンテナインスタンス502の40%の処理リソース506と、50%のメモリリソース508が割り当てられている。同様にコンテナ504Cは、そのプロセス510Cを稼働するために、コンテナインスタンス502の10%の処理リソース506と、20%のメモリリソース508が割り当てられている。合計すると、コンテナインスタンス502の85%の処理リソース506と85%のメモリリソースが、コンテナ504A〜04Cに割り当てられている。
コンテナインスタンスは、コンテナエージェント512を含むことができる。コンテナエージェント512は、指摘したようにコンテナ504A〜04Cとコンテナインスタンス502の外部のエンティティの間を接続するように構成された別個の稼働中のコンテナであって良い。コンテナ504A〜04Cに対して割り当てるべきリソースの量は、タスク定義において特定されて良い。スケジューラが、本明細書に記載されるようにコンテナインスタンス502がその構成要素である一揃いのコンテナインスタンスにおける配置スキーム及び/または利用可能なリソースに基づいて、コンテナ504A〜04Cを起動するためのコンテナインスタンス502を決定することができる。その後すぐに、スケジューラは、タスク定義によって特定されたリソースの量をコンテナ504A〜04Cに割り当てるようにコンテナインスタンス502またはコンテナエージェント512に通知することができ、コンテナエージェント512は、スケジューラによって指示されたようにコンテナ504A〜04Cに対してリソースを割り当てることができる。追加として、ひとたびリソースがコンテナ504A〜04Cの各々に対して割り当てられると、その独自のネーム空間の範囲内で、かつそのそれぞれの割り当てられたリソースを専用に利用して稼働中のコンテナとして(すなわちタスク)コンテナ504A〜04Cの各々を起動するように、スケジューラはコンテナインスタンス502またはコンテナエージェント512に通知することができる。通知されると、コンテナエージェント512は、スケジューラによって指示されたようにコンテナインスタンス502内でコンテナ504A〜04Cを起動することができる。
図6は、種々の実施形態によるクラスタ内でタスクを起動するためのプロセス600の一例を示すブロック図である。プロセス600は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの任意の電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス600は一連の動作を含み、その中でコンテナに関するソフトウェアイメージ及びタスク定義が取得され、クラスタが形成され、コンテナインスタンスがクラスタに登録され、クラスタが記述され、タスク定義に従って決められたコンテナインスタンス内でイメージが起動され、クラスタの記述が更新される。
602において、コンピューティングリソースサービスプロバイダがコンピューティングリソースサービスプロバイダの顧客からソフトウェアイメージを受け取る。指摘したようにソフトウェアイメージは、ソフトウェアイメージを復元する/起動することによってソフトウェアアプリケーションをこの時点で復元させることができるように、それがイメージ化されたときのソフトウェアアプリケーションの全体の状態を表すデータを指すことができる。場合によっては、602における動作は、イメージではなく実行可能なインストレーションまたはアプリケーションファイルを取得することである場合もある。場合によっては、ソフトウェアイメージの受信は、例えばタスク定義ファイルにおいて指定されたリソースの場所を介してコンピューティングリソースサービスプロバイダにアクセス可能なソフトウェアイメージを有することを含むことに留意されたい。場合によっては、ソフトウェアイメージは、コンピューティングリソースサービスプロバイダの図2のデータベース216などのデータ記憶装置に記憶される場合もある。
604において、コンピューティングリソースサービスプロバイダは、1つまたは複数のインスタンス内で稼働するタスク/コンテナを記述するタスク定義を受け取ることができる。タスク定義は、タスク定義ファイルの形態であって良い、またはユーザインターフェースを介して顧客によって選択されたオプションに応じてコンピューティングリソースサービスプロバイダによって生成される場合もある。タスク定義は、タスク/コンテナの記述、タスク/コンテナに関してイメージを見つけるべき場所、タスク/コンテナに割り当てられるリソースの量、共有されるリソース、他のコンテナ間の関係及びその他の情報などの情報を特定することができる。指摘されるようにタスク定義は、コンピューティングリソースサービスプロバイダの図2のデータベース216などのデータ記憶装置に記憶される場合もある。
606において、コンテナインスタンスがインスタンス化されて良い。指摘したように、コンテナインスタンスは、コンテナ化をサポートする仮想マシンインスタンスであって良い。場合によっては、コンテナインスタンスのインスタンス化は、コンテナインスタンス内でコンテナエージェントを起動させることを含む。コンテナエージェントは、コンテナインスタンスのオペレーティングシステムの下に稼働することができ、コンテナエージェント自体がコンテナであって良い。
608において、1つまたは複数のクラスタが形成されて良い。指摘したように、クラスタは、1つまたは複数のコンテナインスタンスの論理的なグループ分けであって良い。クラスタは様々な目的に使用されて良く、機能によってタスクを分けること、異なるタイプのコンテナインスタンスを一緒にグループ分けすること、及びコンピューティングリソースサービスプロバイダインフラストラクチャ内の物理ホストマシンの場所に基づいてコンテナインスタンスをグループ分けすることが含まれる。ひとたびクラスタが形成されると、クラスタマネージャを介して1つまたは複数のコンテナインスタンスがそのクラスタの構成要素であるように登録されて良い。指摘したように、場合によっては、コンテナインスタンスは、2つ以上のクラスタの構成要素である場合もある。動作606〜08は一緒に行われる、または任意の順番で行われる場合もあることに留意されたい。例えばクラスタがコンテナインスタンスの前に形成される場合もあり、コンテナインスタンスがインスタンス化される際、コンテナインスタンス内のコンテナエージェントが自動的にそのコンテナインスタンスをクラスタに登録させる場合もある。
610において、コンピューティングリソースサービスプロバイダが、顧客またはタスクが起動されるようにリクエストする動作を担う可能性のある他のエンティティにクラスタまたはクラスタIDを提供する。場合によっては、このような他のエンティティは、コンテナサービスによって提供される図2のスケジューラ208または顧客によってインストールされたスケジューラなどのスケジューラである場合がある。クラスタIDは、608においてクラスタを形成するためのリクエストに応答して提供される場合もある。またある時には、ListClustersアプリケーションプログラミングインターフェースコールを行ったリクエストエンティティにクラスタIDが与えられる場合もある。
612において、顧客またはタスクが起動されるようにリクエストする動作を担うことが可能な他のエンティティ(例えばスケジューラ)からDescribeClusterアプリケーションプログラミングインターフェースコールが受信され、記述するクラスタを特定することができる(例えば610のクラスタIDをパラメータとして渡すことによって)。DescribeClusterアプリケーションプログラミングインターフェースコールに応答して、コンピューティングリソースサービスプロバイダが614においてクラスタに関する情報を提供することができ、これにはクラスタ内のコンテナインスタンスの数及びID、クラスタ内で利用可能なリソース、クラスタ内で使用されているリソース、稼働中のタスクなどが含まれる。このような情報は、顧客またはスケジューラによって利用されてどこで(例えばどのコンテナインスタンスで)特定のタスク(例えば特定のパフォーマンス目的を達成する、負荷のバランスを取るなど)を起動させるべきかを決定することができる。
616において、コンピューティングリソースサービスプロバイダは、604において取得したタスク定義において特定される情報に従って1つまたは複数のタスクを稼働するためのリクエストを受け取る。場合によっては、このリクエストは、どのコンテナインスタンス内で1つまたは複数のタスクを稼働するかを特定することができる。別の場合では、このリクエストは、1つまたは複数のタスクを稼働するクラスタを特定し、図2のスケジューラ216などのスケジューラが、どのコンテナインスタンス内で配置スキームに従ってタスクを起動させるべきかを決定することができる。配置スキームはラウンドロビン配置スキーム、確率的に割り当てられた配置、またはリソース利用または他の基準に基づいた発見的方法を含むことができる。
ひとたびタスクの目標とする場所が決定されると(例えば中でタスクを起動するコンテナインスタンスのインスタンスIDを特定した後)、618において、604のタスク定義に従って1つまたは複数のコンテナインスタンス内で602のソフトウェアイメージに対応するタスクを起動させることができる。場合によっては、タスクの起動は、特定されたコンテナインスタンス内で稼働中のコンテナエージェントによって実施される場合もある。618と620の間の点線は、点線より下の作業は、クラスタ内でタスクを起動するのに不可欠ではないが、602〜18において起動された稼働中のタスクに関する情報を提供することができる。
620において、612におけるリクエストと同様にクラスタを記述するためのリクエストが受信される。622において、コンピューティングリソースサービスプロバイダは、コンテナインスタンス内で稼働中のタスクに関する状態の情報を求めて、タスクを稼働するコンテナインスタンスの1つまたは複数のコンテナエージェントに問い合わせることができる。624において、コンピューティングリソースサービスプロバイダは、614の作業と同様に620のリクエストに応答してクラスタを記述する情報を提供することができる。しかしながらこの情報は、稼働中のタスク及び/またはクラスタ618内で起動された稼働中のタスクに割り当てられたリソースの作用に反映すべきである点で614とは区別される。602〜20において行われる動作の1つまたは複数は、並行することを含め、様々な順番及び組み合わせで実施され得ることに留意されたい。
図7は、種々の実施形態によるクラスタを形成するためのプロセス700の一例を示すブロック図である。プロセス700は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス700は一連の動作を含み、その中でCreateClusterアプリケーションプログラミングインターフェースコールを要求側から受信し、このリクエストが認証され、その後認証された場合、クラスタメタデータがデータベースに記憶され、クラスタIDが生成され、要求側に提供される。
702において、コンピューティングリソースサービスプロバイダは、顧客または他のエンティティからクラスタを形成するためのアプリケーションプログラミングインターフェースコールを受け取る。クラスタの形成には、そのクラスタに関するクラスタIDを生成することと、クラスタIDをそのクラスタに関する他のメタデータと共にデータベースに記憶することが含まれても良い。場合によっては、要求側は、クラスタが形成される際、CreateClusterアプリケーションプログラミングインターフェースコールを介してクラスタにコンテナインスタンスを登録するように指示する場合がある。そのような場合では、特定されたコンテナインスタンス(例えばアプリケーションプログラミングインターフェースコールにおいてパラメータとして渡された1つまたは複数のコンテナインスタンスのID)または利用可能なコンテナインスタンスが、クラスタを形成する際にクラスタIDに関連して登録されて良い。その他のそういった場合では、既存のコンテナインスタンスが特定されず、コンテナインスタンスが1つも利用できない場合、新たなコンテナインスタンスがインスタンス化され、クラスタを形成する際にクラスタに対して登録される場合もある。一部の実施態様において、コンピューティングリソースサービスプロバイダが、顧客にデフォルトクラスタを提供する場合もあり、そのような場合では、顧客は、CreateClusterアプリケーションプログラミングインターフェースを利用する必要がなく、追加のクラスタが必要とされない限り、またはデフォルトクラスタが削除されない限り、デフォルトクラスタに対してコンテナインスタンスをまさに登録することができることに留意されたい。
704において、コンピューティングリソースサービスプロバイダは、要求側がリクエストを満たすのに十分な特権を有するかどうかを判定する。例えば要求側は、CreateClusterアプリケーションプログラミングインターフェースコールにパラメータとして同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス700を実施するシステムは、プロセス700においてさらに進むことはできない。プロセス700を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証され、CreateClusterリクエストを満たすのに十分な特権を有すると判定された場合、プロセス700を実施するシステムは、706に進むことができる。
706において、プロセス700を実施するシステムは、例えば図2に関連して記載されるデータベース216などのデータストアにクラスタID及びクラスタメタデータを記憶することができる。指摘したように、場合によっては、クラスタは、1つまたは複数のコンテナインスタンス(例えばクラスタに対して登録されたコンテナインスタンス)に関連して記憶されたメタデータである場合もある。スケジューラは、クラスタ内のどのコンテナインスタンスにおいてコンテナを起動するのかを決定するためにクラスタマネージャを参照することができる。一部の例では「クラスタマネージャ」は、少なくともある程度クラスタメタデータを参照する。他の例では、クラスタマネージャは、クラスタメタデータを管理し、スケジューラと通信するソフトウェアアプリケーションまたはサービスである場合もある。一部の実施態様において、クラスタメタデータをデータストア内に記憶することは、クラスタIDを生成させ得ることに留意されたい。クラスタメタデータは、クラスタ内のコンテナインスタンスのホストの地理的領域、クラスタに指定された、または指定されることが許されたコンテナインスタンスの数、及びクラスタの形成の日にち/時間などの情報を含むことができる。
ひとたび記憶されると、708においてプロセス700を実施するシステムは、クラスタの形成が成功したことを要求側に通知することができる。場合によっては、この通知には、クラスタに登録された任意のコンテナインスタンスのID及び利用可能なリソース(例えばメモリ及び/または処理能力)を含め、クラスタに関する追加情報/メタデータが含まれる場合がある。その後、要求側が認証された場合、DescribeClusterアプリケーションプログラミングインターフェースコールを利用してクラスタIDをパラメータとして渡し、コンピューティングリソースサービスプロバイダは、メタデータ情報、特定されたクラスタに登録されたコンテナインスタンスのリスト、クラスタコンテナインスタンス内で稼働中のタスクのリスト、クラスタ内で利用可能なリソース、クラスタ内で使用されているリソース、図2のテレメトリサービス212などのテレメトリサービスによって収集されたクラスタのコンテナインスタンスに関するメトリック、クラスタまたはクラスタコンテナインスタンスに対応付けられたタスク定義及びクラスタに関する他の状況情報を含めた情報を提供することによって応答することができる。
図8は、種々の実施形態によるコンテナインスタンスを登録するためのプロセス800の一例を示すブロック図である。プロセス800は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス800は一連の動作を含み、その中でプロセス800を実施するシステムは、要求側からコンテナインスタンスを登録するためのアプリケーションプログラミングインターフェースコールを受信する。システムはその後、要求側を認証し、コンテナインスタンスを登録し、要求側に登録が成功したことを通知する。
802において、コンピューティングリソースサービスプロバイダは、コンテナインスタンスを登録するためのアプリケーションプログラミングインターフェースコールを受信する。場合によっては、このリクエストは、顧客またはコンテナサービスの外部の他のエンティティから受信される場合もある。このようなケースの一部において、リクエストは、フロントエンドサービスを介して受信され、コンテナエージェントに伝達され、このコンテナエージェントがコンテナインスタンスを登録する。別の場合では、このリクエストは、コンテナエージェントからフロント−エンドサービスに対して行われる場合もある。例えばコンテナインスタンスがコンテナエージェントを有するようにインスタンス化される際、このコンテナエージェントが自動的に、特定されたクラスタまたはデフォルトクラスタにコンテナインスタンスを登録しようとすることがある。コンテナインスタンスの登録には、コンテナ化をサポートするようにとりわけ構成された既存の仮想マシンインスタンスと対応付けること、またはコンテナ化をサポートする既存の仮想マシンインスタンスを特定のクラスタに対応付けることが含まれる場合がある。このような関係は、インスタンスのIDとクラスタIDの間の関係として図2のデータベース216などのデータベースに記憶されて良い。そのような場合では、要求側はRegisterContainerInstanceファンクションコールにおけるパラメータとしてインスタンスID(または他の識別用の特性)及びクラスタIDを提供することができる。
場合によっては、要求側が特定の既存のコンテナインスタンスを特定しない場合もあり、そのような場合では、コンピューティングリソースサービスプロバイダは、コンテナ化に適した一揃いの事前にインスタンス化されたコンテナインスタンスからコンテナを選択することができる。別の場合では、好適な事前にインスタンス化されたコンテナインスタンスが利用できない場合、コンピューティングリソースサービスプロバイダは、コンテナインスタンスに適した新たなコンテナインスタンスをインスタンス化し、新たにインスタンス化されたコンテナインスタンスを特定されたクラスタに登録する場合もある。一部の実施態様において、RegisterContainerInstanceアプリケーションプログラミングインターフェースコールを使用して、既存のコンテナインスタンスをそれが現在登録されているクラスタと異なるクラスタに登録する場合もある。そのような場合では、要求側は、アプリケーションプログラミングインターフェースコールのパラメータとしてコンテナインスタンスID及びクラスタIDを特定することができる。
804において、コンピューティングリソースサービスプロバイダは、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、RegisterContainerInstanceアプリケーションプログラミングインターフェースコールにパラメータとして同一性及び証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、その後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス800を実施するシステムは、プロセス800においてさらに進むことはできない。プロセス800を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証され、RegisterContainerInstanceリクエストを満たすのに十分な特権を有すると判定された場合、プロセス800を実施するシステムは、806に進むことができる。
806において、プロセス800を実施するシステムは、例えばデータベース216などの関連するデータベース内でコンテナインスタンスID(特定された場合)を捜そうと試みることができる。コンテナインスタンスIDが見つかり、別のクラスタIDに既に対応付けられていると判定した場合、場合によっては、プロセス800を実施するシステムは806において、コンテナインスタンスをそれが現在登録されているクラスタから登録を取り消し、特定されたクラスタに登録することができる。このような場合の一部では、このような登録の取り消し/再登録は、リクエストが認証された後自動的に行われることもある。別の場合では、プロセス800を実施するシステムは、システムが登録の取り消し/再登録作業を行う前に、それが現在登録されているクラスタからコンテナインスタンスの登録を取り消すための確認を要求側に促す場合もある。さらに他の実施態様では、コンテナインスタンスが複数のクラスタに同時に登録される場合もあり、そのような実施態様では、既に登録されたコンテナインスタンスを、それが現在登録されているクラスタから登録を取り消すことはできない。
コンテナインスタンスがまだクラスタに登録されていない場合、クラスタから登録を取り消されている場合、またはインプリメンテーションが複数のクラスタへのコンテナインスタンスの登録をサポートする場合、プロセス800を実施するシステムは、特定されたクラスタに関連するデータベースにコンテナインスタンスIDを記憶することができる。プロセス800を実施するシステムはその後、特定のクラスタへのコンテナインスタンスの登録が成功したことを要求側に通知することができ、また場合によっては、すなわち新たなコンテナインスタンスが形成された特定の場合では、システムは、応答の中にコンテナインスタンスIDを含む場合もある。その後のDescribeContainerInstanceアプリケーションプログラミングインターフェースコールにおいて、コンピューティングリソースサービスプロバイダは、認証された場合、要求側に、利用可能なリソース、コンテナインスタンス内で稼働中のタスク、及びどの1つまたは複数のクラスタにコンテナインスタンスが登録されるのかを含めたコンテナインスタンスに関する情報を提供することができる。
図9は、種々の実施形態によるタスクを登録するためのプロセス900の一例を示すブロック図である。プロセス900は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス900は一連の動作を含み、その中でプロセス900を実施するシステムは、要求側からタスク定義を登録するためのアプリケーションプログラミングインターフェースコールを受信する。システムはその後、要求側を認証し、タスク定義を登録し、タスク定義IDによって応答する。一部の実施態様において、タスク定義は、要求側のIDに登録される場合もある。例えば要求側がコンピューティングリソースサービスプロバイダの顧客である場合、タスク定義は、顧客のアカウントIDに対応付けられて登録される場合もある。他の実施態様では、タスク定義は、例えばオンライン市場を介して公共に利用可能である場合もあり、オンライン市場、購入者または任意の他のエンティティもしくはサービスに関連して登録される場合もある。
902において、コンピューティングリソースサービスプロバイダは、顧客または他のエンティティからタスクを登録するためのアプリケーションプログラミングインターフェースコールを受信する。タスクの登録は、タスク定義またはタスク定義ファイルをデータベースに記憶することを含んで良い。一部の実施態様において、要求側は別のタスク定義を形成しアップロードする必要がないが、但しコンピューティングリソースサービスプロバイダによって提供されるユーザインターフェースから種々のオプションを選択することが可能であり、コンピューティングリソースサービスプロバイダが、選択されたオプションに基づいてタスク定義を動的に生成する場合もある。場合によっては、コンピューティングリソースサービスプロバイダは、テキストエントリインターフェースを提供することで、顧客がインターフェースを介してタスク定義をタイプする、またはカット/ペーストすることを可能にする場合もある。場合によっては、タスクを登録するリクエストに、タスク定義において特定されたソフトウェアイメージに対応する1つまたは複数のソフトウェアイメージが付随する場合もある。一部の実施態様では、リクエストは、タスク定義に対応付けるための1つまたは複数のクラスタIDを特定する場合もある。他の実施態様では、リクエストは、タスク定義に対応付けるための1つまたは複数のコンテナインスタンスIDを特定する場合もある。さらに他の実施態様では、タスク定義は、任意の特定されたクラスタまたはコンテナインスタンスとは独立して登録される場合もある。
904において、コンピューティングリソースサービスプロバイダは、要求側がリクエストを満たすのに十分な特権を有するかどうかを判定する。例えば要求側は、RegisterTaskDefinitionアプリケーションプログラミングインターフェースコールにパラメータとして同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス900を実施するシステムは、プロセス900においてさらに進むことはできない。プロセス900を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証され、RegisterTaskDefinitionリクエストを満たすのに十分な特権を有すると判定された場合、プロセス900を実施するシステムは、906に進むことができる。
906において、プロセス900を実施するシステムは、図2に関連して記載されるデータベース216などのデータ記憶装置にタスク定義を記憶することができる。一部の実施形態ではタスク定義は、コンピューティングリソースサービスプロバイダのアカウントの顧客IDに関連して登録される場合もある。他の実施態様では、タスク定義は、ウェブサイトからタスク定義を取得したユーザ、コンピューティングリソースサービスプロバイダの同一性またはコンピューティングリソースサービスプロバイダ(例えばオンライン市場からのタスク定義の購入者)に対して登録される場合もある。さらに他の実施態様では、タスク定義は、1つまたは複数のクラスタID及び/またはコンテナインスタンスIDに記憶されリンクされる場合もある。ひとたび記憶されると、タスク定義に独自のタスク定義IDがコンピューティングリソースサービスプロバイダまたはデータベースによって生成されて良い。同様に、一部の実施態様では、データベースに既に記憶されたタスク定義を更新するために、タスク定義IDにRegisterTaskDefinitionアプリケーションプログラミングインターフェースコールが備わっている場合もあることに留意されたい。すなわち、要求側は、RegisterTaskDefinitionアプリケーションプログラミングインターフェースコールのパラメータとして、更新されたタスク定義及び既存のタスク定義IDを提示することができ、コンピューティングリソースサービスプロバイダは、既存のタスク定義IDに対応するタスク定義エントリを定め、更新されたタスク定義によってタスク定義IDに対応するタスク定義を更新することができる。
よって908において、プロセス900を実施するシステムは、タスク定義の登録が成功したことの確認として、かつ後日要求側がデータベースに記憶されたタスク定義を特定するための1つの方法としてタスク定義IDを要求側に提供することができる。場合によっては、1つまたは複数のソフトウェアイメージに、RegisterTaskDefinitionアプリケーションプログラミングインターフェースコールが付随する場合があり、このようなソフトウェアイメージは、タスク定義として同一または異なるデータ記憶装置に記憶させることができる。場合によっては、このようなソフトウェアイメージは、タスク定義IDによって参照される場合もあるが、別の場合ではソフトウェアイメージは、記憶されたタスク定義のタスク定義IDと共に要求側に提供され得るソフトウェアイメージIDを受け取る場合もある。
図10は、種々の実施形態によるタスクを開始するためのプロセス1000の一例を示すブロック図である。プロセス1000は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス1000は一連の動作を含み、その中でタスクを開始するためのリクエストが受信され、要求側が認証され、認証された場合、タスクを起動するのに適切な場所が決定され、タスクが起動される。
1002において、コンピューティングリソースサービスプロバイダがタスクを開始するためのアプリケーションプログラミングインターフェースコールを受信する。場合によっては、このアプリケーションプログラミングインターフェースコールは、顧客からまたはコンテナサービスの外部の他のエンティティからフロント−エンドサービスを介して受信される場合もある。別の場合では、このアプリケーションプログラミングインターフェースコールは、タスクを開始するためのスケジューラからの通信に応じてコンテナエージェントによって行われる場合もある。StartTaskアプリケーションプログラミングインターフェースを使用して、例えばソフトウェアコンテナのイメージから、または1つまたは複数の実行可能なアプリケーションファイルからソフトウェアコンテナの稼働を開始することができる。StartTaskアプリケーションプログラミングインターフェースコールは、データベース216などのデータストアに記憶されたタスク定義に関する1つまたは複数のタスク定義ID用のパラメータを含むことができる。場合によっては、タスク定義IDではなくタスク定義自体が、パラメータとしてStartTaskアプリケーションプログラミングインターフェースコールに渡される場合もある。別の場合では、1つまたは複数のタスク定義ファイルの場所を示すパラメータ(例えばユニフォームリソースロケータ、ネットワークリソースロケータ、ファイルパスなど)がパラメータとしてStartTaskアプリケーションプログラミングインターフェースコールに渡される場合もある。さらに別の場合では、コンテナサービスは、別のプログラム定義なしでタスクを開始するように構成される場合もあり、例えばStartTaskアプリケーションプログラミングインターフェースがデフォルトパラメータを有する場合があり、要求側から要求されるまたはデフォルトから逸脱するタスクを開始するための何らかの情報が、パラメータとしてStartTaskアプリケーションプログラミングインターフェースに渡される場合もある。
StartTaskアプリケーションプログラミングインターフェースはまた、パラメータとして、ベースコンテナイメージを表すソフトウェアイメージに関する1つまたは複数のイメージIDを容認する場合もある。場合によっては、イメージファイルの場所を示すパラメータがイメージファイルの代わりに渡される場合もある。さらに別の場合では、タスク定義は、タスクとして稼働を開始するようにコンテナソフトウェアを定めるための情報を包含する場合もある。要求側はまた、1つまたは複数のクラスタIDをStartTaskアプリケーションプログラミングインターフェースコールに対するパラメータとして特定することで、どのクラスタにおいて1つまたは複数のタスクが開始されるべきかを指示する場合もある。同様に、要求側は、1つまたは複数のコンテナインスタンスIDをStartTaskアプリケーションプログラミングインターフェースコールに対するパラメータとして特定することでどのコンテナインスタンスにおいて1つまたは複数のタスクが開始されるべきかを指示する場合もある。ListClustersアプリケーションプログラミングインターフェースコールを介してクラスタのIDが取得されて良い。登録されたコンテナインスタンスのIDは、DescribeClusterアプリケーションプログラミングインターフェースコールから取得することができる。
1004において、コンピューティングリソースサービスプロバイダが、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、StartTaskアプリケーションプログラミングインターフェースコールにパラメータとして同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス1000を実施するシステムは、プロセス1000においてさらに進むことはできない。プロセス1000を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、かつ/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証され、StartTaskリクエストを満たすのに十分な特権を有すると判定された場合、プロセス1000を実施するシステムは、1006に進むことができる。
1006において、プロセス1000を実施するシステムは、どのコンテナインスタンスにおいてタスクを開始するかを決定することができる。一部の実施形態において、図2に関連して記載されるスケジューラ208などのコンテナサービスのスケジューラが、特定されたクラスタのどのコンテナインスタンス及び/またはコンテナインスタンスのリストのどのコンテナインスタンスにおいて配置スキームに従って1つまたは複数のタスクが開始されるべきか決定する場合もある。配置スキームは、様々な配置スキームのいずれであってもよく、これにはラウンドロビン、擬似乱数確率的配置スキームまたはコンテナの状態(例えば利用可能なリソースの現在の量など)を考慮する配置スキームが含まれる。一部の実施態様において、アカウントの顧客が、仮想マシンインスタンス内にスケジューラアプリケーションをインストールさせる場合もある。そのような実施態様では、StartTaskアプリケーションプログラミングインターフェースコールは、パラメータとしてインストールされたスケジューラの場所を示すIDまたはリソースロケータを受け取る場合があり、プロセス1000はさらに、インストールされたスケジューラと通信するプロセス1000を実施するシステムを含むことで、どのコンテナインスタンスにおいて1つまたは複数のタスクを起動させるべきかを決定する場合もある。場合によっては、特定されたタスクが既に開始されている場合がある。そのような場合では、プロセス1000を実施するシステムは、稼働中のタスクを停止し、タスクを再始動することができる。このようなケースの一部では、プロセス1000を実施するシステムはタスクが既に開始されていることを通知し、稼働中のタスクを停止させタスクを再始動するかどうかの確認を要求する場合もある。
一部の状況において、プロセス1000を実施するシステムが、1つまたは複数のタスクを起動するのにクラスタまたはコンテナインスタンスのリストにおいて利用可能なリソースが不十分であると判断する場合がある。例えばタスク定義ファイルは、特定されるクラスタのコンテナインスタンスにおいて現在利用できるものよりも、より多くのメモリをソフトウェアコンテナに割り当てるべきと特定している場合がある。このような場合の一部では、プロセス1000を実施するシステムは、所定の期間(例えば10ミリ秒)の間待機し、再びタスクを開始するように試み、システムがタスクを開始することができるまで、または試行の閾値の回数が行われるまで繰り返す場合もある。
プロセス1000を実施するシステムが、タスクを開始することができない場合、システムは、特定の問題に遭遇したために、タスクを開始させることができないことを要求側に通知することができる。一部の実施態様では、タスクを開始するのに利用可能なリソースが不十分である場合、コンテナサービスは、自動スケーリングサービスと相互作用してタスクの開始をサポートするために追加のリソースを生成する場合もある。例えばプロセス1000を実施するシステムは、1つまたは複数の新たなコンテナインスタンスをインスタンス化しクラスタに登録し、この新たなコンテナインスタンスにおいて1つまたは複数のタスクを開始することができる。別の例として、プロセス1000を実施するシステムは、コンテナインスタンスのスナップショットを撮影し、更新されたリソース(例えば処理能力及びメモリ)によってコンテナインスタンスを再始動し、このスナップショットからコンテナインスタンスを復元する場合もある。
1008において、プロセス1000を実施するシステムは、決定されたコンテナインスタンスにおいてコンテナイメージまたは特定されたアプリケーションを起動することができる。指摘したように、コンテナイメージまたは特定されたアプリケーションをコンテナインスタンスにおいて起動することは、タスクに関して1つまたは複数のタスクIDを生成すること、決定されたコンテナインスタンスIDに関連する図2のデータベース216などのデータストアにタスクIDを記憶すること、コンテナのために別のネーム空間を特定すること、特定されたリソースをコンテナに割り当てること、及び特定されたコンテナイメージ及び/または特定されたアプリケーションをコンテナネーム空間において復元することを含んで良い。これは、タスク定義において定義された各々のコンテナに対して行われて良い。タスク定義はまた、コンテナ間の関連性を示す場合もあり、例えばウェブサービスとして機能するように構成されたコンテナが、データベースとして機能するように構成されたコンテナにリンクされる場合があり、2つのコンテナは、それらが起動される際、互いに通信するように構成されて良い。同様に一部の実施態様においては、コンテナが、コンピューティングリソースサービスプロバイダの他のサービスの特定されたリソースを共有する場合もある。例えばタスク定義ファイルは、2つのコンテナが特定のブロック−レベルデータ記憶ボリュームを共有することを特定する場合もある。
起動されると、プロセスを実施するシステムは、1つまたは複数のタスクの起動が成功したことを要求側に通知することができる。場合によっては、これは、タスクが開始され、タスクが特定のクラスタまたはインスタンスにおいて現在稼働中であることを示すように監視インターフェースのアイコンを変える状況である場合もある。別の場合では、これは、イベントのロギングの状況である場合もある。さらに別の場合では、要求側は、稼働中のタスクに対応する、システムから有効なタスクIDを受け取ることによって通知される場合もある。稼働中のタスクのリストはListTasksアプリケーションプログラミングインターフェースコールから取得することができる。DescribeTaskアプリケーションプログラミングインターフェースを使用してタスクIDを特定することによって、コンテナの健全性、コンテナの寿命及びコンテナによって利用されるリソースなどのタスクに関するデータを取得することができる。
図11は、種々の実施形態によるタスクを停止するためのプロセス1100の一例を示すブロック図である。プロセス1100は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス1100は一連の動作を含み、その中で停止させるタスクを特定する停止タスクリクエストが受信され、要求側が認証され、特定されたタスクが停止されることによってタスクに割り当てられたリソースを解放する。
1102において、コンピューティングリソースサービスプロバイダが、稼働中のタスクを停止するためのアプリケーションプログラミングインターフェースコールを受信する。場合によっては、このアプリケーションプログラミングインターフェースコールが、顧客またはコンテナサービスの外部の他のエンティティからフロントエンドサービスに受信される場合もある。別の場合では、コンテナエージェントは、タスクを停止するためのスケジューラからの通信に応じてアプリケーションプログラミングインターフェースコールを行う場合もある。StopTaskは、パラメータとして、稼働中のタスクの1つまたは複数のタスクIDを受け取ることができる。1104において、コンピューティングリソースサービスプロバイダが、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、パラメータとして、StopTaskアプリケーションプログラミングインターフェースコールに同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス1100を実施するシステムは、プロセス1100においてさらに進むことはできない。プロセス1100を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証されタスク停止(StopTask)リクエストを満たすのに十分な特権を有すると判定された場合、プロセス1100を実施するシステムは、1106に進むことができる。
1106において、特定された稼働中の1つまたは複数のタスクが停止されて良く、1つまたは複数のタスクに予め割り当てられたリソースが解放される/ガーベジコレクタされ、ホストコンテナインスタンスの利用可能なリソースに加えることができる。場合によっては、タスクIDが、ディスエーブルされる、アーカイブされる、またはデータストアから除去される場合もある。別の場合では、タスクの状況が「停止された」に更新される場合もあり、このような状況の変化は、稼働中のタスクの状況を確認するためにいずれのインターフェースに反映される場合もある。タスクIDに対応付けられたタスクの停止に成功したことが要求側に通知される場合もある。
図12は、種々の実施形態によるコンテナインスタンスの登録を取り消すためのプロセス1200の一例を示すブロック図である。プロセス1200は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス1200は一連の動作を含み、その中でタスク定義の登録を取り消すためのリクエストが受信され、要求側が認証され、要求側が十分な特権を有する場合、タスク定義の登録を取り消すことができる。
1202において、コンピューティングリソースサービスプロバイダが、タスクの登録を取り消すためのアプリケーションプログラミングインターフェースコールを受信する。場合によっては、このリクエストは、顧客または他のエンティティからコンテナサービスに受信される場合もある。タスクの登録の取り消しは、タスクをディスエーブルする、アーカイブするまたはタスクを登録するためのプロセス900に従って登録されたデータストアから除去することを含むことができる。よってプロセス900において生成されたタスク定義IDには、どのタスクが登録を取り消されるべきかを特定するためのDeregisterTaskDefinitionアプリケーションプログラミングインターフェースコールが備わっている場合がある。
1204において、コンピューティングリソースサービスプロバイダが、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、パラメータとして、DeregisterTaskDefinitionアプリケーションプログラミングインターフェースコールに同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス1200を実施するシステムは、プロセス1200においてさらに進むことはできない。プロセス1200を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証されDeregisterTaskDefinitionリクエストを満たすのに十分な特権を有すると判定された場合、プロセス1200を実施するシステムは、1206に進むことができる。
1206において、プロセス1200を実施するシステムは、タスク定義をディスエーブルする、アーカイブするまたは906においてタスク定義が記憶されたデータストアから除去することを含むことができる。タスク定義とクラスタ、コンテナインスタンス、ソフトウェアイメージまたは他のコンテナとの関係性を示すいかなるデータエントリも同様にディスエーブルされる、アーカイブされるまたは除去されて良い。場合によっては、タスク定義に対応付けられた1つまたは複数のタスクが稼働中である場合、タスクを停止するためのプロセス1100に従ってタスクを停止させることができる。タスクがひとたび登録を取り消されると、タスクの登録の取り消しが成功したことを要求側に通知することができる。
図13は、種々の実施形態によるコンテナインスタンスの登録を取り消すためのプロセス1300の一例を示すブロック図である。プロセス1300は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス1300は一連の動作を含み、その中でクラスタから登録されたコンテナインスタンスの登録を取り消すためのリクエストが受信され、要求側が認証され、コンテナインスタンスがクラスタから登録を取り消される。
1302において、コンピューティングリソースサービスプロバイダが、顧客または他のエンティティからコンテナインスタンスの登録を取り消すためのアプリケーションプログラミングインターフェースコールを受信する。コンテナインスタンスの登録取り消しには、コンテナインスタンスを登録するためのプロセス800に従って登録されたコンテナインスタンスを特定されたクラスタから分離することを含んで良い。この関連性は、DeregisterContainerInstanceアプリケーションプログラミングインターフェースコールのパラメータとして渡された登録されたコンテナインスタンスのIDと、クラスタIDとの関係として、図2のデータベース216などのデータベースにおいて見いだすことができる。場合によっては、このリクエストは、フロントエンドサービスから受信され、コンテナエージェントに伝達される場合もあり、このコンテナエージェントがそのそれぞれのコンテナインスタンスの登録を取り消す。別の場合では、このリクエストはコンテナエージェントからフロントエンドサービスに対して行われる場合もある。例えばコンテナインスタンスが設定を取り消され、クラスタから除去され、異なるクラスタに移動される際、コンテナエージェントは自動的に、コンテナインスタンスが現在登録されているクラスタからコンテナインスタンスの登録を取り消そうとすることができる。このような場合の一部では、要求側が、DescribeClusterアプリケーションプログラミングインターフェースコールによって明らかになり得る、登録されたコンテナのインスタンスIDを特定する場合もあり、プロセス1300を実施するシステムは、コンテナインスタンスが登録される全てのクラスタから特定されたコンテナインスタンスの登録を取り消すことができる。場合によっては、コンテナインスタンスが複数のクラスタに登録される場合、プロセス1300を実施するシステムが、どの1つまたは複数のクラスタからコンテナインスタンスの登録が取り消されるべきかの確認を要求側に促す場合もある。その別の場合では、インスタンスIDとクラスタIDの両方がパラメータとしてDeregisterContainerInstanceアプリケーションプログラミングインターフェースコールに渡される場合もあり、1304において判定されたように要求側が十分な特権を有することを前提として、特定されたクラスタからコンテナインスタンスの登録を取り消すことができる。
1304において、コンピューティングリソースサービスプロバイダが、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、パラメータとして、DeregisterContainerInstanceアプリケーションプログラミングインターフェースコールに同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、その後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス1300を実施するシステムは、プロセス1300においてさらに進むことはできない。プロセス1300を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証されRegisterContainerInstanceリクエストを満たすのに十分な特権を有すると判定された場合、プロセス1300を実施するシステムは、1306に進むことができる。
1306において、プロセス1300を実施するシステムは、コンテナインスタンスが登録されたデータストア内で特定されたインスタンスIDを捜すことができる。特定されたコンテナインスタンス内で稼働中のタスクは、コンテナインスタンスの登録が取り消される前に、タスクを停止するためのプロセス1100に従って停止させることができることに留意されたい。場合によっては、特定されたコンテナインスタンス内でタスクが稼働中である場合、プロセス1300を実施するシステムが、システムがコンテナインスタンスの登録を取り消す前に、稼働中のタスクを停止するために要求側からの確認を要求する場合もある。指摘したように、一部の実施態様において、コンテナインスタンスが、複数のクラスタに登録される場合もあり、要求側は、クラスタのサブセットから登録が取り消されるべきコンテナインスタンスのみを特定することができる。そのような実施態様では、クラスタの特定されたサブセットに対応付けられたタスクがコンテナインスタンス内で稼働中であり、停止させるべきと要求側から確認された場合、クラスタの特定されたサブセットに対応するタスクのみが停止されて良く、稼働中の残りのタスクはそのまま残されて良い。
1308において、インスタンスIDがデータベース内で見つけられ、関連するタスクが停止された後、インスタンスIDがディスエーブルされる、アーカイブされる、またはデータストアから除去することができる。場合によっては、インスタンスの状況を「登録が取り消された(Deregistered)」に更新させることができ、この状況の変化は、クラスタの状況をとらえるためにいずれのインターフェースにも反映され得る。コンテナインスタンスが複数のクラスタに登録される場合、特定されたコンテナインスタンスをクラスタの特定されたサブセットのみから分離させることができ、コンテナインスタンスは、クラスタの残りに登録されたままにすることができる。ひとたび登録が取り消されると、インスタンスに対応付けられたコンテナインスタンスが、それが登録された1つまたは複数のクラスタにおいて登録の取り消しが成功したことを要求側に通知することができる。
いずれのクラスタにも登録されないコンテナインスタンスは、本開示の一部の実施態様では設定が取り消され、コンテナインスタンスに割り当てられたいずれのリソースも自由にされて良い。あるいはコンテナインスタンスは、クラスタに登録されるように利用可能なインスタンスのキューに加えられる場合もある。この方法において、コンテナインスタンスをコンテナインスタンスを登録するためのプロセス800に従ってクラスタに登録させる必要がある場合、登録のために新たなコンテナインスタンスの設定作業のオーバーヘッドなしで、利用可能なコンテナインスタンスからコンテナインスタンスを選択することができる。
図14は、種々の実施形態によるクラスタを削除するためのプロセス1400の一例を示すブロック図である。プロセス1400は、データセンター内のサーバ、コンピューティングリソースサービスプロバイダの分散システムにおける複数のコンピューティングデバイスまたは図16に関連して記載される電子クライアントデバイス1602などの任意の電子クライアントデバイスなどの任意の好適なシステムによって実施されて良い。プロセス1400は一連の動作を含み、その中でクラスタを削除するためのリクエストが受信され、要求側が認証され、クラスタ内の任意のコンテナインスタンスが登録を取り消され、クラスタが削除される、またはそれ以外ではディスエーブルにされる。
1402において、コンピューティングリソースサービスプロバイダが、顧客または他のエンティティからクラスタを削除するためのアプリケーションプログラミングインターフェースコールを受信する。削除すべきクラスタは、コンピューティングリソースサービスプロバイダによって提供されたデフォルトクラスタであって良い、またはクラスタを形成するためのプロセス700に従って形成されたクラスタの場合もある。DeleteClusterアプリケーションプログラミングインターフェースが、パラメータとして、削除すべきクラスタのクラスタIDを受け取っても良い。クラスタID及びクラスタメタデータはその結果、図2のデータベース216などのデータストアに記憶されて良い。このクラスタIDは、クラスタが形成されたとき、要求側に提供されている、またはListClustersアプリケーションプログラミングインターフェースコールから特定される場合もある。
1404において、コンピューティングリソースサービスプロバイダが、要求側がリクエストを満たすのに十分な特権を有するかを判定する。例えば要求側は、パラメータとして、DeleteClusterアプリケーションプログラミングインターフェースコールに同一性及び信用証明書を所有する証拠を与えることができる。例えば要求側は、同一性に相当する信用証明書を所有する証拠として、パスワード、暗号ハッシュ/パスワードのダイジェスト、署名暗号キーによって生成される暗号デジタル署名、または要求側の同一性を認めるためにコンピューティングリソースサービスプロバイダによって検証可能な他のシークレットキーなどの信用証明書に対するアクセスを証明するのに十分な情報を提供することができる。コンピューティングリソースサービスプロバイダは、その同一性及び証拠を、図15の認証システム1518などの認証サービスに提供することができ、この認証システムがその後、要求側の同一性及び信用証明書の証拠を検証することができる。ひとたび要求側の同一性が検証されると、コンピューティングリソースサービスプロバイダまたは認証サービスは、同一性に関連するセキュリティポリシー及び/またはロールが、このリクエストが満たされることを許可するのに十分な特権を授与するかどうかを判定することができる。
コンピューティングリソースサービスプロバイダが同一性を判定することができない(例えばセキュリティデータベース内に見つからない)、信用証明書の証拠が同一性を証明するのに不十分である(例えば間違ったパスワード)、または要求側の同一性が他の点で確認することができない場合、プロセス1400を実施するシステムは、プロセス1400においてさらに進むことはできない。プロセス1400を実施するシステムは、要求側に対するエラーメッセージによって認証が失敗したことに対応する、及び/またはセキュリティログに認証の失敗を登録することができる。それ以外では、要求側が認証されDeleteClusterリクエストを満たすのに十分な特権を有すると判定された場合、プロセス1400を実施するシステムは、1406に進むことができる。
1406において、任意のコンテナインスタンスが特定のクラスタに登録される場合、コンテナインスタンスの登録を取り消すためのプロセス1300に従ってコンテナインスタンスの各々の登録をクラスタから取り消すことができる。1408において、特定されたクラスタIDに対応付けられたクラスタに関する1つまたは複数のエントリがデータストア内に定められ、ディスエーブルされる、アーカイブされる、またはデータストアから除去することができる。クラスタがディスエーブルされるまたはアーカイブされた場合、このクラスタに関するメタデータは保存され、クラスタは、それを行うため権限を有するエンティティによって復活させることができる。その後、クラスタの削除が成功し、コンテナインスタンスをもはやこのクラスタIDに登録することができないことを要求側に通知することができる。例えば、クラスタの状況を表示するインターフェースが、特定されたクラスタに関して「Deleted(削除された)」と表すように更新されて良く、このクラスタはもはや、ListClustersアプリケーションプログラミングインターフェースコール応答において反映されない。
図15は、少なくとも一実施形態によるコンピューティングリソースサービスプロバイダに接続された顧客の一例を示す。コンピューティングリソースサービスプロバイダ1502は、様々な種類のサービスを顧客1504に提供することができ、顧客1504は、インターフェース1526を介してコンピューティングリソースサービスプロバイダ1502と通信することができ、ウェブサービスインターフェースまたは任意の他のタイプの顧客インターフェースであって良い。図15は、コンピューティングリソースサービスプロバイダ1502のサービスに関して1つのインターフェース1526を示しているが、各々のサービスは、その独自のインターフェースを有することができ、一般に、サービスのサブセットは、インターフェース1526に加えて、またはその代替として対応するインターフェースを有することができる。顧客1504は、コンピューティングリソースサービスプロバイダ1502によって提供される1つまたは複数のサービスを利用して、情報を保持し、種々の地理的な場所に配置され得るその従業員に配信することができる1つの組織であって良い。加えて顧客1504は、コンピューティングリソースサービスプロバイダ1502のサービスを利用して離れた場所に位置する作業グループにコンテンツを配信する個人である場合もある。図15に示されるように、顧客1504は、ネットワーク1506を介して、コンピューティングリソースサービスプロバイダ1502と通信することができるため、ネットワーク1506は、インターネットまたはイントラネットまたはインターネットサービスプロバイダ(ISP)ネットワークなどの通信ネットワークであって良い。顧客1504からコンピューティングリソースサービスプロバイダ1502への何らかの通信によって、記載される1つまたは複数の実施形態またはその変形形態に従ってコンピューティングリソースサービスプロバイダ1502を動作させることができる。
コンピューティングリソースサービスプロバイダ1502は、その顧客に対して様々なコンピューティングリソースサービスを提供することができる。コンピューティングリソースサービスプロバイダ1502によって提供されるサービスには、この例では、仮想コンピュータシステムサービス1508、ブロック−レベルデータ記憶サービス1510、暗号サービス1512、オンデマンドデータ記憶サービス1514、通知サービス1516、認証システム1518、ポリシー管理サービス1520、コンテナサービス1522及び1つまたは複数の他のサービス1524が含まれる。記載される全ての実施形態が、図15を参照して記載されるサービス1508〜24を含むわけではなく、はっきりと記載されるサービスに加えて、またはその代替として追加のサービスが提供される場合もあることに留意されたい。記載されるように、サービス1508〜24の各々は、顧客1504がウェブサービスリクエストを介して、種々のサービスに対して適切に構成されたAPIコールを提示することを可能にする1つまたは複数のウェブサービスインターフェースを含むことができる。加えて、サービスの各々は、サービスが互いにアクセスすることを可能にする(例えば仮想コンピュータシステムサービス1508がオンデマンドデータ記憶サービス1514にデータを記憶するもしくはそこからデータを取り出すことを可能にする、及び/またはブロック−レベルデータ記憶サービス1510によって提供された1つまたは複数のブロック−レベルデータ記憶デバイスにアクセスすることを可能にする)1つまたは複数のサービスインターフェースを含むことができる。
仮想コンピュータシステムサービス1508は、顧客1504に代わって仮想マシンインスタンスをインスタンス化するように構成されたコンピュータリソースの集まりであって良い。顧客1504は、仮想コンピュータシステムサービス1508と対話することで(適切に構成され認証されたAPIコールを介して)、コンピューティングリソースサービスプロバイダ1502によってホストされ動作する物理的コンピューティングデバイス上でインスタンス化された仮想コンピュータシステムを準備し動作させることができる。仮想コンピュータシステムは、例えばウェブサイトをサポートするサーバとして動作する、ビジネスアプリケーションを動作させる、または顧客のための計算機能力として機能するなど様々な目的で使用されて良い。仮想コンピュータシステムに関する他の利用は、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション及び/または他のアプリケーションをサポートするためのものである場合もある。仮想コンピュータシステムサービス1508が図15に示されているが、仮想化またはインスタンス化を利用せず、代わりに専用または共有コンピュータ/サーバ及び/または他の物理デバイス上にコンピューティングリソースを備えるコンピュータシステムまたはコンピュータシステムサービスなどの他のコンピュータシステムまたはコンピュータシステムサービスがコンピューティングリソースサービスプロバイダ1502において利用される場合もある。
ブロック−レベルデータ記憶サービス1510は、ブロック−レベル記憶デバイス(及び/またはその仮想化)を利用して顧客1504のためにデータを記憶するように集団で作動する1つまたは複数のコンピューティングリソースを備えることができる。ブロック−レベルデータ記憶サービス1510のブロック−レベル記憶デバイスは、例えば仮想コンピュータシステムサービス1508によって提供される仮想コンピュータシステムに対して作動可能に装着されることで、コンピュータシステムに関する論理ユニット(例えば仮想ドライブ)として機能することができる。ブロック−レベル記憶デバイスは、対応する仮想コンピュータシステムによって使用される/生成されるデータの持続的な記憶を可能にすることができ、この場合仮想コンピュータシステムサービス1508は短時間しか続かないデータ記憶のみを提供することができる。
コンピューティングリソースサービスプロバイダ1502はまた、暗号サービス1512も含む。暗号サービス1512は、コンピューティングリソースサービスプロバイダ1502の1つまたは複数の暗号サービスを利用して、顧客のキーを暗号化された形態で記憶することができ、これによりこれらのキーは、暗号サービス1512の特定のデバイスのみにアクセス可能な顧客1504キーのみを解読するのに利用可能であって良い。
コンピューティングリソースサービスプロバイダ1502はさらに、オンデマンドデータ記憶サービス1514を含む。オンデマンドデータ記憶サービス1514は、データを記憶する及び/またはデータにアクセスするためのリクエストを同時に処理するように構成されたコンピュータリソースの集まりであって良い。オンデマンドデータ記憶サービス1514は、オンデマンドデータ記憶サービス1514がデータを迅速に捜し出し、取り出すことを可能にするコンピューティングリソース(例えばデータベース)を利用して動作することで、データに対するリクエストに応答してデータを提供することを可能にすることができる。例えばオンデマンドデータ記憶サービス1514は、データオブジェクトに対するリクエストが引き出される際、このリクエストに応答してデータオブジェクトを提供することができる(またはデータオブジェクトのストリーミングを開始することができる)ように記憶されたデータを保持することができる。指摘したように、オンデマンドデータ記憶サービス1514に記憶されたデータは、データオブジェクトに編成することができる。データオブジェクトは、場合によってはサイズに関する特定の制約以外は、任意のサイズを有することができる。よってオンデマンドデータ記憶サービス1514は、多様なサイズの多くのデータオブジェクトを記憶することができる。オンデマンドデータ記憶サービス1514は、オンデマンドデータ記憶サービス1514によって記憶されたデータオブジェクトに関連して他の動作を引き出すまたは実行するために顧客1504によって使用され得るデータオブジェクトの識別子に、データオブジェクトを対応付けるキー値ストアとして作動する場合もある。
図15に示される環境には通知サービス1516が含まれる。通知サービス1516は、ウェブサービスまたは他のインターフェース及びブラウザベースの管理コンソールを集団で提供するように構成されたコンピュータリソースの集まりを含むことができる。管理コンソールを使用して、顧客が通知を受信しようとするトピックを構成する、アプリケーション(またはピープル)を構成する、そのトピックに対してクライアントを記名する、メッセージを公開する、または選択のクライアントのプロトコルを介してメッセージの配信を構成する(すなわち中でもハイパーテキストトランスファープロトコル(HTTP)、eメール及びショートメッセージサービス(SMS))ことができる。通知サービス1516は、新たな情報及び最新情報を求めて周期的にチェックする、または「ポーリングする」必要なしに「プッシュ」機構を利用してクライアントに通知を提供することができる。通知サービス1516はさらに、仮想コンピュータシステムサービス1508内で実行中の監視アプリケーション、ワークフローシステム、時間に制約のある情報の更新、モバイルアプリケーション及び多くの他のものなどの種々の目的のために使用することもできる。
図15に示されるように、コンピューティングリソースサービスプロバイダ1502は、種々の実施形態において、認証システム1518と、ポリシー管理サービス1520とを含む。認証システム1518は、一実施形態において、顧客のユーザの認証に関連する動作を行うように構成されたコンピュータシステム(すなわちコンピュータリソースの集まり)である。例えばサービス1508〜1516及び1520〜24の1つは、ユーザからの情報を認証システム1518に提供し、それと引き替えにユーザのリクエストが本物かどうかを示す情報を受け取ることができる。
ポリシー管理サービス1520は一実施形態において、コンピューティングリソースサービスプロバイダ1502の顧客(例えば顧客1504)の代わりにポリシーを管理するように構成されたコンピュータシステムである。ポリシー管理サービス1520は、顧客がポリシーの管理に関連するリクエストを提示することを可能にするインターフェースを含むことができる。そのようなリクエストは、例えば追加する、削除する、変更するまたはそれ以外では顧客のために、もしくは既存のポリシーの登録簿を提供するなどの他の管理行動用にポリシーを改変するためのリクエストであって良い。
コンピューティングリソースサービスプロバイダ1502は種々の実施形態において、コンテナサービス1522も装備している。コンテナサービス1522は、図2のコンテナサービス200に関して記載したやり方でコンピューティングリソースサービスプロバイダの顧客1504のためにソフトウェアコンテナ及びコンテナインスタンスを形成し管理するように構成される。コンテナサービス1522は、例えばブロック−データ記憶サービス1510などのコンピューティングリソースサービスプロバイダ1502の他のリソースを使用するように構成される場合もある。例えばコンテナサービス1522によって、コンテナインスタンス内で稼働中のタスクが1つまたは複数の特定されたブロック−データ記憶ボリュームを共有するこを可能にすることができる。
コンピューティングリソースサービスプロバイダ1502は付加的に、その顧客1504の要望に少なくともある程度基づいた1つまたは複数の他のサービス1524を保持する。例えばコンピューティングリソースサービスプロバイダ1502は、その顧客1504のためにデータベースサービスを保持する場合がある。データベースサービスは、1つまたは複数の顧客1504のために1つまたは複数のデータベースを稼働するように集団で作動するコンピュータリソースの集まりであって良い。顧客1504は、適切に構成されたAPIコールを利用することによって、データベースサービスからあるデータベースを動作させ管理することができる。これにより、顧客1504がデータベースにおける動作を維持し、場合によっては拡大縮小することが可能になる。他のサービスには、これに限定するものではないがオブジェクト−レベルアーカイバルデータ記憶サービス及び他のサービスを管理及び/または監視するサービスが含まれる。
別途指定のない限り、開示される実施形態に記載する文脈において、通常は自力で行われない命令(例えばデータの伝送、計算など)の施行を実行する実行可能命令(コード、アプリケーション、エージェントなどとも呼ばれる)に関する表現の利用は、マシンによって実行され、これによりマシンが特定される作用を果たすようにする命令を指すことに留意されたい。
本開示の実施形態は、以下の条項を考慮して記載することができる。
1.実行可能命令を有するように構成された1つまたは複数のコンピュータシステムの制御の下で
クラスタ及びクラスタを識別するクラスタ識別子を形成し、前記クラスタが、このクラスタに対して登録され、1つまたは複数のソフトウェアコンテナを稼働するように構成された、コンピューティングリソースサービスプロバイダの顧客に対応付けられた一揃いのコンテナインスタンスを表すことと、
コンピュータシステムインスタンス内で実行するように構成されたソフトウェアコンテナのイメージを取得し、前記ソフトウェアコンテナがデータと、コンピュータシステムインスタンス内で実行される際、前記コンピュータシステムインスタンス内で稼働中の他のプロセスから隔離される1つまたは複数のプロセスとを含み、前記イメージが、前記イメージが生成されたときのソフトウェアコンテナの特定の状態の完全なコピーであることと、
タスク定義に従ってソフトウェアコンテナのイメージを含む一揃いのイメージを起動するためのリクエストを受信し、前記タスク定義が、前記ソフトウェアコンテナを含め1つのグループとして始動するように指定された一揃いのソフトウェアコンテナを識別し、前記一揃いのソフトウェアコンテナに対するリソースの割り当てを特定し、
前記リクエストが前記クラスタの前記クラスタ識別子を特定することと、
1つまたは複数のイメージを起動するリクエストに応答して、
一揃いのソフトウェアコンテナを中で起動する、前記クラスタ識別子によって特定された前記クラスタによって表される一揃いのコンテナインスタンスのサブセットを決定し、1つまたは複数のコンテナインスタンスが配置スキームに従って決定されることと、
タスク定義において特定されたリソースの割り当てに従って稼働中のソフトウェアコンテナにリソースが割り当てられるように、前記一揃いのコンテナインスタンスのサブセットにおいて稼働中のソフトウェアコンテナとして一揃いのイメージを起動することとを含む、コンピュータ実装式の方法。
2.前記一揃いのコンテナインスタンスのサブセットが、前記配置スキーム及び前記タスク定義に少なくともある程度基づいて一揃いのコンテナインスタンスのサブセットを決定するように構成されたマルチテナントスケジューラサービスによって決定される、条項1に記載のコンピュータ実装式の方法。
3.前記一揃いのイメージが、一揃いのコンテナインスタンスのサブセットにおいて稼働中の個々のコンテナエージェントによって起動させられ、前記個々のコンテナエージェントは、それぞれのコンテナインスタンスにおいて稼働し、稼働中のソフトウェアコンテナと、前記それぞれのコンテナインスタンスの外部のエンティティとの間の媒介手段として作用するように各々構成されたソフトウェアアプリケーションである、条項1または2に記載のコンピュータ実装式の方法。
4.前記方法がさらに、前記稼働中のソフトウェアコンテナに関するメトリック及びログ情報をテレメトリサービスに提供することを含み、前記テレメトリサービスが、前記メトリック及びログ情報を集約し、前記集約されたメトリック及びログ情報をリソース監視サービスに提供する、条項1〜3のいずれかに記載のコンピュータ実装式の方法。
5.1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行される際、
対応する一揃いのコンテナエージェントをホストする前記一揃いのコンテナインスタンスに関する配置リクエストを受信し、
タスク定義によって特定されたリソースが前記一揃いのコンテナインスタンスにおいて利用可能であることを保証し、
前記一揃いのコンテナインスタンス内の一揃いの稼働中のコンテナの状態に関して前記一揃いのコンテナエージェントから情報を受信し、
その情報をスケジューラに提供する、
バックエンドサービスと、
配置スキーム、前記タスク定義及び前記バックエンドサービスによって提供された情報に少なくともある程度基づいて、
前記一揃いのコンテナの個々のコンテナを中に配置すべきクラスタに登録された前記一揃いのコンテナインスタンスのサブセットを決定し、
前記タスク定義によって特定された前記個々のコンテナに割り当てるべきリソースに従って前記サブセット内の前記個々のコンテナに対してリソースを割り当てるように前記コンテナエージェントに通知し、
前記サブセットにおいて及び前記タスク定義によって特定されたソフトウェアイメージの場所から、前記一揃いの稼働中のコンテナとして前記一揃いのコンテナを起動するように前記コンテナエージェントに通知するスケジューラとを
少なくともシステムに実施させる命令を含むメモリとを備えるシステム。
6.前記一揃いのコンテナインスタンスのサブセットが、コンピューティングリソースサービスプロバイダのマルチテナントスケジューラサービスによって決定される、条項5に記載のシステム。
7.前記一揃いのコンテナインスタンスのサブセットが、コンピューティングリソースサービスプロバイダの顧客によってインストールされたスケジューラアプリケーションによって決定される、条項5または6に記載のシステム。
8.前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、前記一揃いの稼働中のコンテナ内で稼働中のプロセスについてテレメトリサービスのためにデータを収集するテレメトリエージェントをシステムに実装させる命令を含み、前記テレメトリサービスが前記データを集約し、前記集約されたデータをリソース監視サービスに提供する、条項5〜7のいずれかに記載のシステム。
9.前記システムに前記一揃いのコンテナインスタンスのサブセットを決定させる命令が、前記1つまたは複数のプロセッサによって実行される際、前記一揃いのコンテナの個々のコンテナに割り当てるべきリソース、及び前記クラスタに登録された前記一揃いのコンテナインスタンスの個々のコンテナインスタンスにおいて利用可能なリソースの量に少なくともある程度基づいて、システムに前記一揃いのコンテナインスタンスのサブセットを決定させる命令を含む、条項5〜8のいずれかに記載のシステム。
10.前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、前記タスク定義が、前記一揃いのコンテナに関して、前記一揃いのコンテナの個々のコンテナに関するソフトウェアイメージの場所及び前記一揃いのコンテナの個々のコンテナに割り当てるべきリソースを特定するように、前記タスク定義を生成するテンプレートサービスを前記システムに実装させる命令を含む、条項5〜9のいずれかに記載のシステム。
11.前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、
前記一揃いのコンテナインスタンスを前記クラスタに登録し、
前記リソースを割り当てるためのスケジューラからの通知に応答して前記一揃いのコンテナインスタンスに対してリソースを割り当て、
前記一揃いのコンテナを起動するためのスケジューラからの通知に応答して前記一揃いの稼働中のコンテナとして前記一揃いのコンテナを起動し、
前記一揃いのコンテナインスタンスにおいて前記一揃いの稼働中のコンテナの状態を監視し、かつ
その状態に関する情報を前記バックエンドサービスに提供する、
前記一揃いのコンテナインスタンスにおいて稼働中の前記一揃いのコンテナエージェントをシステムに実装させる命令を含む、条項5〜10のいずれかに記載のシステム。
12.前記一揃いのコンテナエージェントが、前記個々のコンテナの通常の動作、前記個々のコンテナの状況、及び前記個々のコンテナによるエラーの発生を示す1つまたは複数の周期的な信号を提供するようにさらに構成される、条項11に記載のシステム。
13.前記一揃いのコンテナエージェントを実装する命令がさらに、前記1つまたは複数のプロセッサによって実行される際、
前記一揃いの稼働中のコンテナを稼働しないように停止させ、
前記一揃いのコンテナインスタンスの登録を前記クラスタから取り消し、かつ
前記クラスタを削除するように、前記システムに前記一揃いのコンテナエージェントを実装させる命令を含む、条項11または12に記載のシステム。
14.コンピュータシステムの1つまたは複数のプロセッサによって実行される際、前記コンピュータシステムに少なくとも
コンピュータシステムインスタンス内で実行するように構成されたソフトウェアコンテナのソフトウェアイメージを取得し、
前記ソフトウェアコンテナのためのリソースの割り当てを特定するタスク定義に従ってソフトウェアイメージを起動するためのリクエストを受信し、
配置スキームに従って、前記タスク定義に従って前記ソフトウェアイメージを中で起動すべき一揃いのコンテナインスタンスを決定し、
前記タスク定義に従って前記一揃いのコンテナインスタンス内の1つまたは複数の稼働中のソフトウェアコンテナとして前記ソフトウェアイメージを起動するようにさせる、そこに記憶された実行可能命令を有する非一時的なコンピュータ可読記憶媒体。
15.前記配置スキームが、ラウンドロビン配置スキームまたは確率的に指定された配置スキームの一方である、条項14に記載の非一時的なコンピュータ可読記憶媒体。
16.前記命令が、前記1つまたは複数のプロセッサによって実行される際、
アプリケーションプログラミングインターフェースコールに応答して、前記コンピュータシステムに一揃いのコンピュータシステムインスタンスを表すクラスタを形成させ、前記コンピュータシステムインスタンスがこのセットの1要素である命令をさらに含む、条項14または15に記載の非一時的なコンピュータ可読記憶媒体。
17.前記コンピュータシステムに前記一揃いのコンテナインスタンスを決定させる命令がさらに、前記1つまたは複数のプロセッサによって実行される際、前記ソフトウェアイメージに割り当てられた1つまたは複数のセキュリティグループまたはセキュリティロールに少なくともある程度基づいて前記コンピュータシステムに一揃いのコンテナインスタンスを決定させる命令を含む、条項14〜16のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
18.前記命令が、前記1つまたは複数のプロセッサによって実行される際、アプリケーションプログラミングインターフェースコールに応答して、前記コンピュータシステムに、一揃いのコンテナインスタンスを表すクラスタにコンピュータシステムインスタンスを登録させる命令をさらに含む、条項14〜17に記載のいずれかの非一時的なコンピュータ可読記憶媒体。
19.前記命令が、前記1つまたは複数のプロセッサによって実行される際、アプリケーションプログラミングインターフェースコールに応答して、前記コンピュータシステムに、コンピューティングリソースサービスプロバイダの顧客のアカウントにタスク定義を登録させる命令をさらに含む、条項14〜18のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
20.前記ソフトウェアイメージを起動するためのリクエストが、前記タスク定義に従って前記ソフトウェアイメージを起動するためのアプリケーションプログラミングインターフェースコールを介して受信されるリクエストである、条項14〜19のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
21.前記一揃いのコンテナインスタンスが、クラスタに対して登録されたコンテナインスタンスのサブセットであり、前記命令が、前記1つまたは複数のプロセッサによって実行される際、アプリケーションプログラミングインターフェースコールに応答して、前記コンピュータシステムに、前記クラスタに登録された前記コンテナインスタンス内でどのソフトウェアイメージが稼働中であるかに関する情報、及び前記クラスタに登録されたコンテナインスタンスにおいてどのリソースが利用可能であるかに関する情報を返すようにさせる命令をさらに含む、条項14〜20のいずれかに記載の非一時的なコンピュータ可読記憶媒体。
図16は、種々の実施形態による実施態様に関する一例の環境1600の態様を示す。理解されるように、説明する目的でウェブベースの環境が使用されるが、種々の実施形態を実施するのに必要に応じて異なる環境が使用される場合もある。環境は、電子クライアントデバイス1602を含み、これは適切なネットワーク1604を介してリクエスト、メッセージまたは情報を送受信するように、また一部の実施形態では情報をデバイスのユーザに戻すように伝達するように動作可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、手持ち式メッセージデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、エンベデッドコンピュータシステム、電子ブックリーダーなどが含まれる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、サテライトネットワークまたは任意の他のネットワーク及び/またはその組み合わせなどを含めた任意の適切なネットワークを含むことができる。そのようなシステムのために使用される構成要素は、選択されるネットワーク及び/または環境のタイプに少なくともある程度左右される可能性がある。そのようなネットワークを経由して通信するプロトコル及び構成要素はよく知られているため、詳細には考察しないことにする。ネットワークを介する通信は、有線または無線接続及びその組み合わせによって可能にすることができる。この例では、環境が、リクエストを受信し、それに応答してコンテンツを供給するためにウェブサーバ1606を含むため、ネットワークはインターネットを含むが、当業者に明白であるように、他のネットワークの場合、同様の目的を提供する代替のデバイスが使用される場合もある。例示の環境は、アプリケーションサーバ1608と、データストア1610とを含む。複数のアプリケーションサーバ、レイヤまたは他の要素、プロセスまたは構成要素が存在する場合もあり、これらはチェーンされる、またはそれ以外の方法で構成される場合があり、これらは適切なデータストアからデータを取得するなどのタスクを果たすために相互に作用することができることを理解されたい。サーバは使用される際、ハードウェアデバイスまたは仮想コンピュータシステムなど様々な方法で実装されて良い。一部の文脈において、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指す場合もある。使用される際、そうでないことが述べられるまたは文脈から明白でない限り、用語「データストア」は、データを記憶する、データにアクセスする、及びデータを取り出すことが可能な任意のデバイスまたはデバイスの組み合わせを指し、これらは任意の標準的、分散式、仮想またはクラスタ化された環境におけるデータサーバ、データベース、データ記憶デバイス及びデータ記憶媒体の何らかの組み合わせならびにそのうちのいくつかを含む場合がある。アプリケーションサーバは、クライアントサービスのための1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと結びつき、アプリケーションのためのデータアクセス及びビジネスロジックの一部または全てを扱う任意の適切なハードウェア、ソフトウェア及びファームウェアを含むことができる。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供することができ、テキスト、グラフィック、音響、ビデオ及び/またはユーザに提供するために利用できる他のコンテンツを含めたコンテンツを生成することが可能であり、これらはハイパーテキストマークアップ言語(「HTML」)、エクステンシブルマークアップ言語(「XML」)、ジャバスクリプト、カスケーディングスタイル・シート(「CSS」)または別の適切なクライアントサイドの構造化言語の形態でウェブサーバによってユーザに提供されて良い。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理され、可聴式、視覚式ならびに/または触覚、味覚及び/もしくは臭覚を含めた他の感覚を介してユーザに知覚させることが可能な形態を含めた1つまたは複数の形態でコンテンツを提供することができる。全てのリクエスト及び応答ならびに電子クライアントデバイス1602とアプリケーションサーバ1608間のコンテンツの受け渡しのハンドリングは、PHP、すなわちハイパーテキスト・プレプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、またはこの例における別の適切なサーバサイドの構造化言語を使用してウェブサーバによって対処することができる。考察される構造化コードは、他の場所で考察したような任意の適切なデバイスまたはホストマシン上でも実行させることができるため、ウェブ及びアプリケーションサーバは不可欠ではなく、単なる一例の構成要素であることを理解されたい。さらに単一のデバイスによって行われるように記載される動作は、そうでないことが文脈より明白でない限り、分散式及び/または仮想システムを形成し得る複数のデバイスによって集合式に行われる場合もある。
データストア1610は、複数の別個のデータテーブル、データベース、データドキュメント、ダイナミックデータ記憶スキーム及び/または他のデータ記憶機構、ならびに本開示の特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば例示されるデータストアは、製品側に関するコンテンツを提供するのに使用することができる製品データ1612と、ユーザ情報1616を記憶するための機構とを含んで良い。データストアはまた、報告、分析または他の目的のために使用することができるログデータ1614を記憶するための機構も含むように示される。例えばページイメージ情報及びアクセス権情報など、データストア内に記憶される必要がある多くの他の態様が存在する可能性があり、これらは必要に応じて上記に列記した機構のいずれかに記憶させることができる、またはデータストア1610内の追加の機構に記憶させることができることを理解されたい。データストア1610は、それに関連するロジックを介してアプリケーションサーバー1608から命令を受け取り、それに対して応答してデータを取得する、更新する、またはそうでなければ処理するように動作動可能である。アプリケーションサーバー1608は、受信した命令に応じて、静的、動的または静的データと動的データの組み合わせを提供することができる。記載されるサーバ側の構造化言語によって、ウェブログ(ブログ)で使用されるデータなどの動的データ、ショッピングアプリケーション、ニュースサービス及び他のアプリケーションが生成されて良い、またはアプリケーションサーバー上で、もしくはその制御の下で動作するコンテンツ管理システム(「CMS」)によって提供される場合もある。一例において、ユーザは、ユーザによって操作されるデバイスを介して、特定の種類のアイテムに対するサーチリクエストを発信する場合がある。このような場合では、データストアは、ユーザ情報にアクセスして、ユーザの同一性を検証し、カタログの詳細情報にアクセスすることでその種のアイテムに関する情報を取得することができる。この情報はその後、ユーザが電子クライアントデバイス1602上のブラウザを介して見ることが可能なウェブページ上に列記される結果として、ユーザに返すことができる。興味のある特定のアイテムに関する情報を専用ページまたはブラウザのウィンドウで見ることができる。しかしながら本開示の実施形態は、必ずしもウェブページの文脈に限定されるわけではないが、これは、リクエストが、コンテンツにとって必須なリクエストではない場合に、概してリクエストを処理するのにより一般的に利用可能であり得ることに留意されたい。
各々のサーバは典型的には、そのサーバの総括的な管理及び動作に関する実行可能なプログラム及び命令を提供するオペレーティングシステムを含み、典型的には、サーバのプロセッサによって実行される際、サーバがその意図される機能を果たすことを可能にする命令を記憶するコンピュータ可読記憶媒体(例えばハードディスク、ランダムアクセスメモリ、読出し専用メモリなど)を含む。サーバのオペレーティングシステム及び一般的な機能に関する好適な実施態様は既知である、または商業的に利用可能であり、とりわけ本開示に照らして当業者によって容易に実装される。
環境は一実施形態において、1つまたは複数のコンピュータネットワークまたは直接的な接続を用いて通信リンクを介して相互に接続された複数のコンピュータシステム及び構成要素を利用する分散式及び/または仮想コンピューティング環境である。しかしながらそのようなシステムは、図16に例示されるものより少ないまたはこれより多くの数の構成要素を有するシステムにおいても同様に十分に作動することができることは当業者によって理解されるであろう。よって図16における一例の環境1600の描写は、本質的に例示であると受け取るべきであり、本開示の範囲を限定するものではない。
種々の実施形態はさらに、幅広い種類の動作環境において実施させることができ、これは場合によっては、いくつかのアプリケーションを動作させるのに使用することができる1つまたは複数のユーザコンピュータ、コンピューティングデバイスまたはプロセッシングデバイスを含むことができる。標準的なオペレーティングシステムを稼働するデスクトップ、ラップトップまたはタブレットコンピュータなどのいくつかの汎用パーソナルコンピュータ、ならびにモバイルソフトウェアを稼働させ、いくつかのネットワーキング及びメッセージングプロトコルをサポートすることが可能な携帯電話、無線及び手持ち式デバイスのいずれかを含むことができる。そのようなシステムはまた、多様な種類の商業的に利用可能なオペレーティングシステム、ならびに開発及びデータベース管理などが目的のその他の既知のアプリケーションのいずれかを稼働するいくつかのワークステーションを含むこともできる。このようなデバイスはまた、ダミーターミナル、シンークライアント、ゲーミングシステム及びネットワークを介して通信することが可能な他のデバイスなどの他の電子デバイスを含む場合もある。これらのデバイスはまた、仮想マシン、ハイパーバイザ及びネットワークを介して通信することが可能な他の仮想デバイスなどの仮想デバイスを含む場合もある。
本開示の種々の実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステム相互接続の種々のレイヤにおいて動作するプロトコル(「OSI」)モデル、ファイル伝送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、コモンインターネットファイルシステム(「CIFS:)及びアップルトークなどの様々な種類の商業的に利用可能なプロトコルのいずれかを用いて通信をサポートするために当業者によく知られるネットワークを利用している。ネットワークは、例えばローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク及びそのいずれかの組み合わせであって良い。
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、コモンゲートウェイインターフェース(「CGI」)サーバ、データサーバ、ジャバサーバ、アパッチサーバ及びビジネスアプリケーションサーバを含めた多様な種類のサーバまたは中間層アプリケーションのいずれかを稼働することができる。サーバ(複数可)はまた、例えばJava(登録商標)、C、C#もしくはC++などの任意のプログラミング言語、またはRuby、PHP、Perl、PythonもしくはTCLなどの任意のスクリプト言語、またはそれらの組み合わせで書かれた1つまたは複数のスクリプトまたはプログラムとして実装され得る1つまたは複数のウェブアプリを実行することなどによって、ユーザデバイスからのリクエストに応答してプログラムまたはスクリプトを実行することも可能であって良い。1つまたは複数のサーバはまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)及びIBM(登録商標)ならびにMySQL(登録商標)、Postgres、SQLite(登録商標)、MongoDB(登録商標)及び構造化または非構造化データを記憶する、取り出す及びそれにアクセスすることが可能な任意の他のサーバなどのオープンソースサーバより商業的に利用可能なものを含めたデータベースサーバを含む場合もある。データベースサーバは、タブレットベースのサーバ、ドキュメントベースのサーバ、非構造化サーバ、関連サーバ、非関連サーバまたはこれらの及びもしくは他のデータベースサーバの組み合わせを含むことができる。
環境は、上記で考察したような多様なデータストア及び他のメモリ及び記憶媒体を含むことができる。これらは、例えば1つまたは複数のコンピュータに対してローカルな、またはネットワークにわたってコンピュータのいずれかまたは全てからリモートな記憶媒体上などの様々な場所に備わることができる。特定の一揃いの実施形態では、情報は、当業者によく知られたストレージ−エリアネット(「SAN」)に備わる場合がある。同様に、コンピュータ、サーバまたは他のネットワークデバイスに帰する機能を果たすための任意の必須ファイルが、必要に応じてローカルに及び/またはリモートに記憶される場合もある。システムがコンピュータ化されたデバイスを含む場合、各々のそのようなデバイスは、バスを介して電気的に結合され得るハードウェア要素を含むことができ、この要素には、例えば中央処理装置(「CPU」)、入力デバイス(例えばマウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド)、及び出力デバイス(例えばディスプレイデバイス、プリンタまたはスピーカー)が含まれる。そのようなシステムはまた、例えばディスクドライブ、光学記憶デバイス及びランダムアクセスメモリ(「RAM」)または読み出し専用メモリ(「ROM」)などのソリッドステート記憶デバイス、ならびに取り外し可能なメディアデバイス、メモリカード、フラッシュカードなどの1つまたは複数の記憶デバイスを含むことができる。
そのようなデバイスはまた、上に記載したようなコンピュータ可読記憶媒体リーダ、通信デバイス(例えばモデム、無線または有線ネットワークカード、赤外線通信デバイスなど)及びワーキングメモリを含むこともできる。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定式及び/または取り外し可能な記憶デバイスを代表するコンピュータ可読記憶媒体ならびにコンピュータ可読情報を一次的及び/またはより永続的に包含する、記憶する、転送する及び取り出すための記憶媒体と接続させる、または受信するように構成することができる。システム及び種々のデバイスはまた典型的には、オペレーティングシステム及びクライアントアプリケーションもしくはウェブブラウザなどのアプリケーションプログラムを含めた、ワーキングメモリデバイス内に配置されたいくつかのソフトウェアアプリケーション、モジュール、サービスまたは他の要素を含む。代替の実施形態は、上に記載したものから多数の変形を有する可能性があることを理解されたい。例えばカスタマイズされたハードウェアが使用される及び/または特定の要素がハードウェア、ソフトウェア(アップルなどのポータブルソフトウェアを含めた)またはその両方に実装される場合もある。さらにネットワーク入/出力デバイスなどの他のコンピューティングデバイスへの接続が利用される場合もある。
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体は、RAM、ROM、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、フラッシュメモリ、もしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(「CD-ROM」)、デジタル多目的ディスク(DVD)もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイスを含めた、例えばコンピュータ可読命令、データ構造、プログラムモジュールもしくは他のデータなどの情報の記憶及び/または伝達に関する任意の方法または技術において実装された揮発性及び不揮発性の取り外し可能及び非取り外し可能な媒体などの記憶媒体及び通信媒体、またはシステムデバイスによってアクセスすることができ、所望の情報を記憶するのに使用することができる任意の他の媒体を含めた当分野で既知のまたは使用される任意の適切な媒体を含むことができる。提供される開示及び教示に基づいて、当業者は、種々の実施形態を実施するための他のやり方及び/または方法を理解するであろう。
故に明細書及び図面は、限定的な意味ではなく、例示とみなすべきである。しかしながら特許請求の範囲に記載されるより広範な本発明の精神及び範囲から逸脱することなく、種々の修正及び変更をそれに対して行うことができることは明白である。
他の変形形態も本開示の精神の範囲内にある。よって本教示は種々の修正形態及び代替構造も受け入れることができ、その特定の例示の実施形態が図面に示され、上に詳細に記載されてきた。しかしながら、本発明を開示される特有の1つまたは複数の形態に限定することは全く意図されておらず、その反対に、その意図は、添付の特許請求の範囲において定義される本発明の精神及び範囲内にある全ての修正形態、代替構造及び等価物も網羅することを理解されたい。
用語「a」、「an」及び「the」ならびに実施形態を記載する文脈における同様の指示用語の使用は(とりわけ以下の特許請求の範囲の文脈において)、別途指定のない限り、または文脈によって明らかに否定されない限り、単数と複数の両方を対象として含むものと解釈すべきである。用語「備える(comprising)」、「有する(having)」、「含む(including)」及び「包含する(containing)」は、そうでないことが指摘されなければオープンエンドな用語(すなわち「これに限定するものではないが以下を含む」ことを意味する)として解釈すべきである。用語「接続される(connected)」は、修飾されず、物理的な接続を指す場合、何か介在するものがあったとしても、一部がまたは全体が中に含まれる、そこに装着される、または併せて結合されるものと解釈すべきである。値の範囲の記述は、その範囲内にある各々別々の値を個別に指す略記法として機能することが単に意図されるだけであり、別途指定のない限り、各々別々の値は、あたかもそれが個別に記載されたかのように明細書に組み込まれる。用語「一揃いの」(例えば「一揃いのアイテム」)または「サブセット」の使用は、そうでないことが指摘されなければ、または文脈によって否定されなければ、1つまたは複数の要素を備える空でない集まりとして解釈すべきである。さらにそうでないことが指摘されなければ、または文脈によって否定されなければ、対応するセットの用語「サブセット」は、必ずしも対応するセットの適切なサブセットを指すわけではないが、サブセットと対応するセットは対等であり得る。
「A、B、及びCの少なくとも1つ」または「A、B及びCの少なくとも1つ」という形式のフレーズなどの接続語は、特に別途指定のない限り、または文脈によって明らかに否定されなければ、アイテム、用語などがAもしくはBもしくはCのいずれか、またはA及びB及びCのセットの任意の空でないサブセットであり得ることを提示するのに一般に使用されるように、その文脈と合わせて理解される。例えば3つの要素を有するセットの例示の例では、「A、B、及びCの少なくとも1つ」または「A、B及びCの少なくとも1つ」という接続フレーズは、以下のセット{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}のうちのいずれかを指す。そのような接続語は、特定の実施形態がAの少なくとも1つ、Bの少なくとも1つ及びCの少なくとも1つが各々存在すべきであることを要求することを暗に意味することは一般に意図されていない。
記載されるプロセスの動作は、そうでないことが指摘されなければ、または文脈によってあきらかに否定されなければ好適な順序で行うことができる。記載されるプロセス(またはその変形形態及び/または組み合わせ)は、実行可能な命令を有するように構成された1つまたは複数のコンピュータシステムの制御の下で行われて良く、1つまたは複数のプロセッサ上で、またはハードウェアによってもしくはその組み合わせによって集団で実行するコードとして(例えば実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)実施されて良い。このコードは、例えば1つまたは複数のプロセッサによって実行可能な命令を含むコンピュータプログラムの形態でコンピュータ可読記憶媒体上に記憶されて良い。コンピュータ可読記憶媒体は、非一時的であり得る。
任意の例、または提供される例示の言語(例えば「など」)の使用は、本発明をより適切に解明することが単に意図されており、そうでないことが主張されなければ、本発明の範囲に対する限定を有するわけではない。明細書におけるいかなる言語も、本発明を実施するのに必須である何らかの主張されない要素を示すものとして解釈されるべきではない。
本発明を実施するために本発明者等に知られる最適な態様を含めた本開示の実施形態が記載される。上述の記載を読めば、そのような実施形態の変形形態が当業者には明らかになるであろう。本発明者等は、当業者が必要に応じてそのような変形形態を利用することを期待し、本発明者等は、本開示の実施形態が特別に記載されるもの以外の方法で実施されることを企図している。したがって本開示の範囲は、適用可能な法律によって許可されるような、そこに添付される特許請求の範囲に記載される主題の全ての修正形態及び等価物を含む。さらに、その全ての可能な変形形態における上記に記載した要素のいかなる組み合わせも、別途指定のない限り、または文脈によって明らかに否定されなければ、本開示の範囲によって包含される。
公報、特許出願及び特許を含めた全ての参考文献は、あたかも各々の参考文献が参照により組み込まれることが個別にかつ具体的に指摘され、その全体において記載されるのと同程度に参照によりここに引用される。

Claims (15)

  1. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行される際、少なくとも
    対応する一揃いのコンテナエージェントをホストする一揃いのコンテナインスタンスに関する配置リクエストを受信し、
    タスク定義によって特定されたリソースが前記一揃いのコンテナインスタンス内において利用可能であることを保証し、
    前記一揃いのコンテナインスタンス内の前記一揃いの稼働中のコンテナの状態に関して一揃いのコンテナエージェントから情報を受信し、
    前記情報をスケジューラに提供する、
    バックエンドサービスと、
    配置スキーム、前記タスク定義及び前記バックエンドサービスによって提供された情報に少なくともある程度基づいて、
    前記一揃いのコンテナの個々のコンテナを中に配置すべきクラスタに登録された前記一揃いのコンテナインスタンスのサブセットを決定し、
    前記タスク定義によって特定された前記個々のコンテナに割り当てるべきリソースに従って前記サブセット内の前記個々のコンテナに対してリソースを割り当てるように前記コンテナエージェントに通知し、
    前記サブセット内において及び前記タスク定義によって特定されたソフトウェアイメージの場所から、一揃いの稼働中のコンテナとして前記一揃いのコンテナを起動するように前記コンテナエージェントに通知するスケジューラとを
    システムに実装させる命令を含むメモリとを備えるシステム。
  2. 前記一揃いのコンテナインスタンスの前記サブセットが、コンピューティングリソースサービスプロバイダのマルチテナントスケジューラサービスによって決定される、請求項1に記載のシステム。
  3. 前記一揃いのコンテナインスタンスのサブセットが、コンピューティングリソースサービスプロバイダの顧客によってインストールされたスケジューラアプリケーションによって決定される、請求項1に記載のシステム。
  4. 前記1つまたは複数のプロセッサによって実行される際、前記一揃いの稼働中のコンテナ内で稼働中のプロセスについてテレメトリサービスのためにデータを収集するテレメトリエージェントを前記システムに実装させる命令をさらに含み、前記テレメトリサービスが前記データを集約し、前記集約されたデータをリソース監視サービスに提供する、請求項1に記載のシステム。
  5. 前記システムに前記一揃いのコンテナインスタンスのサブセットを決定させる前記命令が、前記1つまたは複数のプロセッサによって実行される際、前記一揃いのコンテナの前記個々のコンテナに割り当てるべきリソース、及び前記クラスタに登録された前記一揃いのコンテナインスタンスの前記個々のコンテナインスタンスにおいて利用可能なリソースの量に少なくともある程度基づいて、前記システムに前記一揃いのコンテナインスタンスのサブセットを決定させる命令を含む、請求項1に記載のシステム。
  6. 前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、前記タスク定義が、前記一揃いのコンテナに関して、前記一揃いのコンテナの個々のコンテナに関する前記ソフトウェアイメージの場所及び前記一揃いのコンテナの前記個々のコンテナに割り当てるべきリソースを特定するように、前記タスク定義を生成するテンプレートサービスを前記システムに実装させる命令を含む、請求項1に記載のシステム。
  7. 前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、
    前記一揃いのコンテナインスタンスを前記クラスタに登録し、
    前記リソースを割り当てるための前記スケジューラからの通知に応答して前記一揃いのコンテナインスタンスに対して前記リソースを割り当て、
    前記一揃いのコンテナを起動するための前記スケジューラの通知に応答して前記一揃いの稼働中のコンテナとして前記一揃いのコンテナを起動し、
    前記一揃いのコンテナインスタンスにおいて前記一揃いの稼働中のコンテナの状態を監視し、かつ
    前記状態に関する情報を前記バックエンドサービスに提供する、
    前記一揃いのコンテナインスタンス内において稼働中の前記一揃いのコンテナエージェントを前記システムに実装させる命令を含む、請求項1に記載のシステム。
  8. 前記一揃いのコンテナエージェントを実装する前記命令がさらに、前記1つまたは複数のプロセッサによって実行される際、
    前記一揃いの稼働中のコンテナを稼働しないように停止させ、
    前記一揃いのコンテナインスタンスの登録を前記クラスタから取り消し、かつ
    前記クラスタを削除するように、前記システムに前記一揃いのコンテナエージェントを実装させる命令を含む、請求項7に記載のシステム。
  9. コンピュータシステムインスタンス内で実行するように構成されたソフトウェアコンテナのソフトウェアイメージを取得し、
    前記ソフトウェアコンテナのためのリソースの割り当てを特定するタスク定義に従って前記ソフトウェアイメージを起動するためのリクエストを受信し、
    配置スキームに従って、前記タスク定義に従って前記ソフトウェアイメージを中で起動すべき一揃いのコンテナインスタンスを決定し、
    前記タスク定義に従って前記一揃いのコンテナインスタンス内の1つまたは複数の稼働中のソフトウェアコンテナとして前記ソフトウェアイメージを起動することを含む、
    コンピュータ実装式の方法。
  10. 配置スキームが、ラウンドロビン配置スキームまたは確率的に指定された配置スキームの一方である、請求項9に記載の方法。
  11. アプリケーションプログラミングインターフェースコールに応答して、一揃いのコンピュータシステムインスタンスを表すクラスタを形成し、前記コンピュータシステムインスタンスが前記セットの1要素であることをさらに含む、請求項9に記載の方法。
  12. 前記ソフトウェアイメージに割り当てられた1つまたは複数のセキュリティグループまたはセキュリティロールに少なくともある程度基づいて前記一揃いのコンテナインスタンスを決定することをさらに含む、請求項9に記載の方法。
  13. アプリケーションプログラミングインターフェースコールに応答して、一揃いのコンピュータシステムインスタンスを表すクラスタに前記コンピュータシステムインスタンスを登録することをさらに含む、請求項9に記載の方法。
  14. アプリケーションプログラミングインターフェースコールに応答して、コンピューティングリソースサービスプロバイダの顧客のアカウントに前記タスク定義を登録することをさらに含む、請求項9に記載の方法。
  15. アプリケーションプログラミングインターフェースコールに応答して、前記クラスタに登録された前記コンテナインスタンス内でどのソフトウェアイメージが稼働中であるかに関する情報、及び前記クラスタに登録された前記コンテナインスタンスにおいてどのリソースが利用可能であるかに関する情報を返すことをさらに含む、請求項9に記載の方法。
JP2017524393A 2014-11-11 2015-11-10 コンテナの管理及びスケジューリングのためのシステム Active JP6522750B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/538,663 2014-11-11
US14/538,663 US9256467B1 (en) 2014-11-11 2014-11-11 System for managing and scheduling containers
PCT/US2015/059983 WO2016077367A1 (en) 2014-11-11 2015-11-10 System for managing and scheduling containers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019082701A Division JP6856696B2 (ja) 2014-11-11 2019-04-24 コンテナの管理及びスケジューリングのためのシステム

Publications (2)

Publication Number Publication Date
JP2017538204A true JP2017538204A (ja) 2017-12-21
JP6522750B2 JP6522750B2 (ja) 2019-05-29

Family

ID=54771180

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017524393A Active JP6522750B2 (ja) 2014-11-11 2015-11-10 コンテナの管理及びスケジューリングのためのシステム
JP2019082701A Active JP6856696B2 (ja) 2014-11-11 2019-04-24 コンテナの管理及びスケジューリングのためのシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019082701A Active JP6856696B2 (ja) 2014-11-11 2019-04-24 コンテナの管理及びスケジューリングのためのシステム

Country Status (9)

Country Link
US (5) US9256467B1 (ja)
EP (1) EP3218808A1 (ja)
JP (2) JP6522750B2 (ja)
KR (2) KR101952573B1 (ja)
CN (1) CN107111519A (ja)
AU (3) AU2015346530C1 (ja)
RU (3) RU2704734C2 (ja)
SG (2) SG11201703680WA (ja)
WO (1) WO2016077367A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019149192A (ja) * 2014-11-11 2019-09-05 アマゾン テクノロジーズ インコーポレイテッド コンテナの管理及びスケジューリングのためのシステム
JP2020527791A (ja) * 2017-07-18 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation セキュア実行プラットフォームのクラスタ
US10979436B2 (en) 2016-05-17 2021-04-13 Amazon Technologies, Inc. Versatile autoscaling for containers
US11347549B2 (en) 2016-11-22 2022-05-31 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
JP7496807B2 (ja) 2021-09-28 2024-06-07 Kddi株式会社 コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステム

Families Citing this family (369)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019732B2 (en) * 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
JP2015197845A (ja) * 2014-04-02 2015-11-09 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US9912609B2 (en) * 2014-08-08 2018-03-06 Oracle International Corporation Placement policy-based allocation of computing resources
US9961017B2 (en) 2014-08-08 2018-05-01 Oracle International Corporation Demand policy-based resource management and allocation system
US10693946B2 (en) 2014-09-16 2020-06-23 Amazon Technologies, Inc. Instance backed mobile devices
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US9886306B2 (en) 2014-11-21 2018-02-06 International Business Machines Corporation Cross-platform scheduling with long-term fairness and platform-specific optimization
US9749195B2 (en) 2014-12-05 2017-08-29 Accenture Global Services Limited Technical component provisioning using metadata structural hierarchy
US9882968B1 (en) 2014-12-09 2018-01-30 Amazon Technologies, Inc. Virtual network interface multiplexing
US9692666B2 (en) * 2014-12-22 2017-06-27 Rovio Entertainment Ltd. Container manager
US10592985B2 (en) 2015-03-02 2020-03-17 Dell Products L.P. Systems and methods for a commodity contracts market using a secure distributed transaction ledger
US10484168B2 (en) * 2015-03-02 2019-11-19 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
US9967333B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US9967334B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9965628B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Device reporting and protection systems and methods using a secure distributed transactional ledger
EP3274828B1 (en) * 2015-03-24 2020-05-06 Telefonaktiebolaget LM Ericsson (publ) Methods and nodes for scheduling data processing
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
CN106155764A (zh) 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置
CN106201839B (zh) 2015-04-30 2020-02-14 阿里巴巴集团控股有限公司 一种业务对象的信息加载方法和装置
CN106209741B (zh) 2015-05-06 2020-01-03 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
CN106293869A (zh) * 2015-05-26 2017-01-04 阿里巴巴集团控股有限公司 一种资源分配方法和装置
US9781124B2 (en) * 2015-06-11 2017-10-03 International Business Machines Corporation Container-based system administration
US10379889B2 (en) * 2015-06-15 2019-08-13 Microsoft Technology Licensing, Llc Monitoring and reporting performance of collaboration services using a monitoring service native to the collaboration service
US10270475B1 (en) 2015-06-16 2019-04-23 Amazon Technologies, Inc. Layered redundancy coding for encoded parity data
US10298259B1 (en) 2015-06-16 2019-05-21 Amazon Technologies, Inc. Multi-layered data redundancy coding techniques
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
EP3311323A1 (en) * 2015-06-22 2018-04-25 Draios Inc. Monitoring of applications isolated in containers
US9747119B2 (en) * 2015-06-23 2017-08-29 Vmware, Inc. Methods and apparatus to monitor virtual computing environments
US10609122B1 (en) 2015-06-29 2020-03-31 Amazon Technologies, Inc. Instance backed building or place
US11061969B1 (en) 2015-06-29 2021-07-13 Amazon Technologies, Inc. Instance backed mobile devices with multiple instances
US10394762B1 (en) 2015-07-01 2019-08-27 Amazon Technologies, Inc. Determining data redundancy in grid encoded data storage systems
CN106708819A (zh) 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据缓存的预热方法及其装置
CN106445473B (zh) * 2015-08-06 2019-12-06 华为技术有限公司 一种容器部署方法及装置
US9690622B1 (en) 2015-08-24 2017-06-27 Amazon Technologies, Inc. Stateless instance backed mobile devices
US10911404B1 (en) 2015-08-24 2021-02-02 Amazon Technologies, Inc. Attribute based authorization
CN106487708B (zh) 2015-08-25 2020-03-13 阿里巴巴集团控股有限公司 网络访问请求控制方法和装置
US9853913B2 (en) * 2015-08-25 2017-12-26 Accenture Global Services Limited Multi-cloud network proxy for control and normalization of tagging data
US11422840B2 (en) * 2015-08-28 2022-08-23 Vmware, Inc. Partitioning a hypervisor into virtual hypervisors
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US10599833B2 (en) 2015-10-01 2020-03-24 Twistlock, Ltd. Networking-based profiling of containers and security enforcement
US10223534B2 (en) * 2015-10-15 2019-03-05 Twistlock, Ltd. Static detection of vulnerabilities in base images of software containers
US10915628B2 (en) 2015-10-01 2021-02-09 Twistlock, Ltd. Runtime detection of vulnerabilities in an application layer of software containers
US10586042B2 (en) 2015-10-01 2020-03-10 Twistlock, Ltd. Profiling of container images and enforcing security policies respective thereof
US10664590B2 (en) 2015-10-01 2020-05-26 Twistlock, Ltd. Filesystem action profiling of containers and security enforcement
US10922418B2 (en) 2015-10-01 2021-02-16 Twistlock, Ltd. Runtime detection and mitigation of vulnerabilities in application software containers
US10693899B2 (en) 2015-10-01 2020-06-23 Twistlock, Ltd. Traffic enforcement in containerized environments
US10567411B2 (en) 2015-10-01 2020-02-18 Twistlock, Ltd. Dynamically adapted traffic inspection and filtering in containerized environments
US10943014B2 (en) 2015-10-01 2021-03-09 Twistlock, Ltd Profiling of spawned processes in container images and enforcing security policies respective thereof
US9940470B2 (en) * 2015-10-06 2018-04-10 Symantec Corporation Techniques for generating a virtual private container
US10778446B2 (en) * 2015-10-15 2020-09-15 Twistlock, Ltd. Detection of vulnerable root certificates in software containers
US9569180B1 (en) * 2015-10-29 2017-02-14 International Business Machines Corporation Application development in cloud based environment
US10782990B1 (en) 2015-11-24 2020-09-22 Amazon Technologies, Inc. Container telemetry
US10394789B1 (en) 2015-12-07 2019-08-27 Amazon Technologies, Inc. Techniques and systems for scalable request handling in data processing systems
US10642813B1 (en) 2015-12-14 2020-05-05 Amazon Technologies, Inc. Techniques and systems for storage and processing of operational data
US10324790B1 (en) 2015-12-17 2019-06-18 Amazon Technologies, Inc. Flexible data storage device mapping for data storage systems
US10032032B2 (en) 2015-12-18 2018-07-24 Amazon Technologies, Inc. Software container registry inspection
US10002247B2 (en) 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US10261782B2 (en) 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
US11455190B2 (en) 2016-02-05 2022-09-27 Sas Institute Inc. Implicit status in many task computing
US11775341B2 (en) 2016-02-05 2023-10-03 Sas Institute Inc. Automated job flow generation to provide object views in container-supported many task computing
US11513850B2 (en) 2016-02-05 2022-11-29 Sas Institute Inc. Coordinated performance controller failover in many task computing
US11474863B2 (en) 2018-06-22 2022-10-18 Sas Institute Inc. Federated area coherency across multiple devices in many-task computing
US10360187B1 (en) * 2016-03-05 2019-07-23 Virtuozzo International Gmbh Hybrid storage for virtual machines and containers
US11379416B1 (en) * 2016-03-17 2022-07-05 Jpmorgan Chase Bank, N.A. Systems and methods for common data ingestion
US9898354B2 (en) 2016-03-21 2018-02-20 Microsoft Technology Licensing, Llc Operating system layering
US10268514B1 (en) * 2016-03-22 2019-04-23 Amazon Technologies, Inc. Performance analysis of stateless compute functions using function call intercept
US10592336B1 (en) 2016-03-24 2020-03-17 Amazon Technologies, Inc. Layered indexing for asynchronous retrieval of redundancy coded data
US10324766B1 (en) * 2016-03-24 2019-06-18 Amazon Technologies, Inc. Task profile collection
US10678664B1 (en) 2016-03-28 2020-06-09 Amazon Technologies, Inc. Hybridized storage operation for redundancy coded data storage systems
US10061668B1 (en) 2016-03-28 2018-08-28 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US10013213B2 (en) * 2016-04-22 2018-07-03 EMC IP Holding Company LLC Container migration utilizing state storage of partitioned storage volume
WO2017200878A1 (en) * 2016-05-17 2017-11-23 Amazon Technologies, Inc. Versatile autoscaling
WO2017205220A1 (en) * 2016-05-23 2017-11-30 William Turner Hyperconverged system architecture featuring the container-based deployment of virtual machines
US11394685B2 (en) * 2016-05-27 2022-07-19 Walmart Apollo, Llc Systems and methods of database instance container deployment
KR20170139872A (ko) * 2016-06-10 2017-12-20 삼성에스디에스 주식회사 멀티 테넌트 기반의 서비스 제공 시스템 및 방법
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
US10305747B2 (en) * 2016-06-23 2019-05-28 Sap Se Container-based multi-tenant computing infrastructure
US10013265B2 (en) 2016-06-23 2018-07-03 International Business Machines Corporation Management of container host clusters
EP3475815A1 (en) * 2016-06-28 2019-05-01 Telefonaktiebolaget LM Ericsson (PUBL) Managing a lifecycle of a software container
WO2018005297A1 (en) * 2016-06-30 2018-01-04 Intel Corporation Technologies for implementing consolidated device infrastructure systems
US10169156B2 (en) 2016-07-21 2019-01-01 International Business Machines Corporation Automatic restarting of containers
US10394541B2 (en) * 2016-07-27 2019-08-27 Optim Corporation System, method, and program for distributing container image
US10615998B2 (en) 2016-08-17 2020-04-07 Red Hat, Inc. State analysis of remote computing images
US10366091B2 (en) 2016-08-18 2019-07-30 Red Hat, Inc. Efficient image file loading and garbage collection
US10210024B2 (en) * 2016-08-23 2019-02-19 Samsung Electronics Co., Ltd. Intelligent controller for containerized applications
US10432638B2 (en) 2016-08-29 2019-10-01 Cisco Technology, Inc. Infrastructure aware adaptive resource allocation
CN109416646B (zh) * 2016-09-08 2022-04-05 华为技术有限公司 一种容器分配的优化方法及处理设备
WO2018053717A1 (en) * 2016-09-21 2018-03-29 Accenture Global Solutions Limited Dynamic resource allocation for application containers
US10154065B1 (en) 2016-09-22 2018-12-11 Trend Micro Incorporated Policy management in software container computing environments
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11106734B1 (en) * 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US10657097B1 (en) 2016-09-28 2020-05-19 Amazon Technologies, Inc. Data payload aggregation for data storage systems
US10437790B1 (en) 2016-09-28 2019-10-08 Amazon Technologies, Inc. Contextual optimization for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US10496327B1 (en) 2016-09-28 2019-12-03 Amazon Technologies, Inc. Command parallelization for data storage systems
US10871995B2 (en) * 2016-09-29 2020-12-22 Amazon Technologies, Inc. Managed container instances
US10614239B2 (en) 2016-09-30 2020-04-07 Amazon Technologies, Inc. Immutable cryptographically secured ledger-backed databases
US10303388B1 (en) * 2016-09-30 2019-05-28 EMC IP Holding Company LLC Storage filtering using container images
US10412022B1 (en) 2016-10-19 2019-09-10 Amazon Technologies, Inc. On-premises scaling using a versatile scaling service and an application programming interface management service
US10732951B2 (en) * 2016-10-28 2020-08-04 Hewlett Packard Enterprise Development Lp Container images
US10523581B2 (en) 2016-10-31 2019-12-31 Microsoft Technology Licensing Llc Flighting of node controller in pilot mode in resource management system
US10521447B2 (en) 2016-11-14 2019-12-31 International Business Machines Corporation Container application execution using image metadata
US10296764B1 (en) 2016-11-18 2019-05-21 Amazon Technologies, Inc. Verifiable cryptographically secured ledgers for human resource systems
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US10346189B2 (en) * 2016-12-05 2019-07-09 Red Hat, Inc. Co-locating containers based on source to improve compute density
US11507283B1 (en) 2016-12-20 2022-11-22 Amazon Technologies, Inc. Enabling host computer systems to access logical volumes by dynamic updates to data structure rules
US10921991B1 (en) 2016-12-20 2021-02-16 Amazon Technologies, Inc. Rule invalidation for a block store management system
US10268593B1 (en) 2016-12-20 2019-04-23 Amazon Technologies, Inc. Block store managamement using a virtual computing system service
US10809920B1 (en) * 2016-12-20 2020-10-20 Amazon Technologies, Inc. Block store management for remote storage systems
US11023215B2 (en) 2016-12-21 2021-06-01 Aon Global Operations Se, Singapore Branch Methods, systems, and portal for accelerating aspects of data analytics application development and deployment
US10572226B2 (en) * 2016-12-21 2020-02-25 Aon Global Operations Ltd (Singapore Branch) Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment
US10423634B1 (en) 2016-12-27 2019-09-24 EMC IP Holding Company LLC Temporal queries on secondary storage
US10353603B1 (en) 2016-12-27 2019-07-16 EMC IP Holding Company LLC Storage container based replication services
US10394599B2 (en) * 2017-01-05 2019-08-27 International Business Machines Corporation Breaking dependence of distributed service containers
US10169023B2 (en) 2017-02-06 2019-01-01 International Business Machines Corporation Virtual container deployment
US10909136B1 (en) 2017-02-08 2021-02-02 Veritas Technologies Llc Systems and methods for automatically linking data analytics to storage
US11093297B2 (en) * 2017-02-08 2021-08-17 Dell Products L.P. Workload optimization system
US10685033B1 (en) 2017-02-14 2020-06-16 Veritas Technologies Llc Systems and methods for building an extract, transform, load pipeline
US10360053B1 (en) * 2017-02-14 2019-07-23 Veritas Technologies Llc Systems and methods for completing sets of computing tasks
US10216455B1 (en) * 2017-02-14 2019-02-26 Veritas Technologies Llc Systems and methods for performing storage location virtualization
US20180285494A1 (en) * 2017-02-22 2018-10-04 Woodside Energy Technologies Pty Ltd Model management system
US10318314B2 (en) * 2017-02-24 2019-06-11 International Business Machines Corporation Techniques for managing software container dependencies
US10691816B2 (en) 2017-02-24 2020-06-23 International Business Machines Corporation Applying host access control rules for data used in application containers
US10613885B2 (en) * 2017-02-24 2020-04-07 International Business Machines Corporation Portable aggregated information calculation and injection for application containers
US10176106B2 (en) 2017-02-24 2019-01-08 International Business Machines Corporation Caching mechanisms for information extracted from application containers including applying a space guard and a time guard
US10606682B2 (en) 2017-03-09 2020-03-31 International Business Machines Corporation System and method of collecting serviceability data in containers based cloud infrastructure
US10606646B1 (en) 2017-03-13 2020-03-31 Veritas Technologies Llc Systems and methods for creating a data volume from within a software container and initializing the data volume with data
US10936549B2 (en) 2017-03-16 2021-03-02 Cisco Technology, Inc. Cluster-wide container optimization and storage compression
US10356048B2 (en) * 2017-03-17 2019-07-16 Verizon Patent And Licensing Inc. Container deployment for a network
US10341198B2 (en) * 2017-03-17 2019-07-02 Verizon Patent And Licensing Inc. Configuring a back-end container and a corresponding front-end proxy container on a network device
EP3379413A1 (en) * 2017-03-21 2018-09-26 Nokia Solutions and Networks Oy Optimization of a software image layer stack
US10540191B2 (en) 2017-03-21 2020-01-21 Veritas Technologies Llc Systems and methods for using dynamic templates to create application containers
US10614117B2 (en) 2017-03-21 2020-04-07 International Business Machines Corporation Sharing container images between mulitple hosts through container orchestration
US20180316547A1 (en) * 2017-04-27 2018-11-01 Microsoft Technology Licensing, Llc Single management interface to route metrics and diagnostic logs for cloud resources to cloud storage, streaming and log analytics services
US10547672B2 (en) 2017-04-27 2020-01-28 Microsoft Technology Licensing, Llc Anti-flapping system for autoscaling resources in cloud networks
KR101826498B1 (ko) * 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
US10387204B2 (en) 2017-05-12 2019-08-20 International Business Machines Corporation Resource pooling in a virtualized cloud container environment
US10922205B2 (en) * 2017-05-16 2021-02-16 Vmware, Inc. Monitoring applications running on containers
US10467046B2 (en) * 2017-05-30 2019-11-05 Red Hat, Inc. Fast and greedy scheduling machine based on a distance matrix
US11100243B2 (en) * 2017-06-06 2021-08-24 Microsoft Technology Licensing, Llc Selective persistence of data utilized by software containers
US11140455B1 (en) 2017-06-09 2021-10-05 Amazon Technologies, Inc. Video encoder network sandboxing
US10650139B2 (en) 2017-06-12 2020-05-12 Daniel Maurice Lerner Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers
US10909165B2 (en) 2017-06-20 2021-02-02 Red Hat, Inc. Sharing filesystems between containers
US10719354B2 (en) 2017-06-20 2020-07-21 Samsung Electronics Co., Ltd. Container workload scheduler and methods of scheduling container workloads
US10466899B2 (en) 2017-07-28 2019-11-05 Hewlett Packard Enterprise Development Lp Selecting controllers based on affinity between access devices and storage segments
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10459769B2 (en) * 2017-08-04 2019-10-29 Unisys Corporation Elastic container management system
US10592315B2 (en) * 2017-08-28 2020-03-17 General Electric Company Software container messaging mechanism
US10691480B2 (en) * 2017-08-30 2020-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for configuring and enabling virtual applications
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
JP6612826B2 (ja) * 2017-09-29 2019-11-27 株式会社日立製作所 コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム
CN111279309A (zh) 2017-09-30 2020-06-12 甲骨文国际公司 基于环境要求的容器部署
US10740143B2 (en) 2017-10-06 2020-08-11 International Business Machines Corporation Controlling asynchronous tasks
CN107844371A (zh) * 2017-10-12 2018-03-27 北京京东尚科信息技术有限公司 任务处理方法、系统及电子设备
CN109710397A (zh) * 2017-10-26 2019-05-03 阿里巴巴集团控股有限公司 数据处理方法、装置、存储介质、处理器和系统
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
WO2019090523A1 (zh) * 2017-11-08 2019-05-16 华为技术有限公司 一种无服务器架构下业务部署的方法和函数管理平台
US10956563B2 (en) * 2017-11-22 2021-03-23 Aqua Security Software, Ltd. System for securing software containers with embedded agent
KR102310515B1 (ko) * 2017-11-22 2021-10-08 한국전자기술연구원 지능형 컴포넌트를 위한 컨테이너 기반 관리 방법
KR102310509B1 (ko) * 2017-11-22 2021-10-08 한국전자기술연구원 컨테이너 기반 지능형 컴포넌트에 대한 원격 호출 방법
US11055134B2 (en) * 2017-11-30 2021-07-06 International Business Machines Corporation Performing an action on a composite of software instances
KR102016238B1 (ko) 2017-12-05 2019-08-29 숭실대학교산학협력단 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체
US11030016B2 (en) 2017-12-07 2021-06-08 International Business Machines Corporation Computer server application execution scheduling latency reduction
KR20190070659A (ko) * 2017-12-13 2019-06-21 주식회사 넥스클라우드 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
WO2019133326A1 (en) * 2017-12-27 2019-07-04 Daniel Maurice Lerner Securing temporal digital communications
US20190034716A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Privacy-preserving demographics identification
US10833955B2 (en) * 2018-01-03 2020-11-10 International Business Machines Corporation Dynamic delivery of software functions
US11023529B2 (en) 2018-01-04 2021-06-01 Red Hat, Inc. System and method for generating container image suggestions
US10997283B2 (en) * 2018-01-08 2021-05-04 Aqua Security Software, Ltd. System for securing software containers with encryption and embedded agent
US10740132B2 (en) 2018-01-30 2020-08-11 Veritas Technologies Llc Systems and methods for updating containers
US11010185B2 (en) * 2018-01-30 2021-05-18 Vmware, Inc. Monitoring applications running on containers
US10956593B2 (en) 2018-02-15 2021-03-23 International Business Machines Corporation Sharing of data among containers running on virtualized operating systems
US10083059B1 (en) * 2018-03-19 2018-09-25 Capital One Services, Llc Method and system of hydrating of virtual machines
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
CN108920259B (zh) * 2018-03-30 2022-06-24 华为云计算技术有限公司 深度学习作业调度方法、系统和相关设备
US10585714B2 (en) 2018-04-05 2020-03-10 International Business Machines Corporation Workload management with data access awareness using an ordered list of hosts in a computing cluster
US10768998B2 (en) 2018-04-05 2020-09-08 International Business Machines Corporation Workload management with data access awareness in a computing cluster
US10761891B2 (en) 2018-04-05 2020-09-01 International Business Machines Corporation Workload management with data access awareness by aggregating file locality information in a computing cluster
US11132293B2 (en) 2018-04-10 2021-09-28 Red Hat Israel, Ltd. Intelligent garbage collector for containers
US20190317825A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. System for managing deployment of distributed computing resources
US11307980B2 (en) 2018-04-20 2022-04-19 Seagate Technology Llc Distributed data storage system with passthrough operations
US10732903B2 (en) 2018-04-27 2020-08-04 Hewlett Packard Enterprise Development Lp Storage controller sub-LUN ownership mapping and alignment
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11169996B2 (en) 2018-05-15 2021-11-09 Red Hat, Inc. Query optimizer injection for dynamically provisioned database containers
US11132324B2 (en) 2018-06-18 2021-09-28 Seagate Technology, Llc Data network with container virtualization
KR102092458B1 (ko) * 2018-06-19 2020-03-23 한국과학기술원 서버리스 컴퓨팅 환경에서 가상화된 gpu 자원 지원 방법 및 시스템
KR102092459B1 (ko) * 2018-06-20 2020-03-23 한국과학기술원 컨테이너 기반 가상화 환경에서 gpu 메모리 자원 관리 및 스케줄링 방법 및 시스템
CN109062658B (zh) * 2018-06-29 2021-06-04 优刻得科技股份有限公司 实现计算资源服务化的调度方法、装置、介质、设备及系统
CN109067840A (zh) * 2018-06-29 2018-12-21 优刻得科技股份有限公司 人工智能在线服务的方法、系统和存储介质
US11263098B2 (en) * 2018-07-02 2022-03-01 Pivotal Software, Inc. Database segment load balancer
CN108874549B (zh) * 2018-07-19 2021-02-02 北京百度网讯科技有限公司 资源复用方法、装置、终端和计算机可读存储介质
JP7037059B2 (ja) * 2018-07-23 2022-03-16 日本電信電話株式会社 リソース管理システム、および、リソース割当プログラム
CN110764882A (zh) * 2018-07-25 2020-02-07 北京京东尚科信息技术有限公司 分布式管理方法、分布式管理系统及装置
WO2020036482A1 (en) * 2018-08-15 2020-02-20 Mimos Berhad System and method for identifying container image and dynamically creating the container image
US11057273B2 (en) * 2018-08-22 2021-07-06 Verizon Media Inc. Decentralized auto-scaling of network architectures
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11070590B2 (en) * 2018-09-14 2021-07-20 Northrop Grumman Systems Corporation System and method for secure multitenant operations of a distributed computing cluster
CN110955501A (zh) * 2018-09-27 2020-04-03 北京京东尚科信息技术有限公司 服务请求处理方法、装置、电子设备及可读介质
US11146474B2 (en) * 2018-09-28 2021-10-12 Atlassian Pty Ltd. Systems and methods for testing resilience of a distributed network
US10860078B2 (en) * 2018-10-25 2020-12-08 Dell Products, L.P. Managing power request during cluster operations
US11210361B2 (en) * 2018-11-01 2021-12-28 Bank Of Montreal Systems and methods for generating a snapshot view of virtual infrastructure
KR102160119B1 (ko) * 2018-11-07 2020-09-25 숭실대학교산학협력단 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법
CN109491762B (zh) * 2018-11-09 2021-07-09 网易(杭州)网络有限公司 容器状态控制方法及装置、存储介质、电子设备
CN109542600B (zh) * 2018-11-15 2020-12-25 口碑(上海)信息技术有限公司 分布式任务调度系统及方法
US11086908B2 (en) 2018-11-20 2021-08-10 International Business Machines Corporation Ontology for working with container images
KR102650976B1 (ko) * 2018-11-26 2024-03-26 삼성전자주식회사 전자장치 및 그 제어방법
KR101992066B1 (ko) * 2018-11-30 2019-06-21 건국대학교 산학협력단 컨테이너 관리 방법 및 장치
US10841153B2 (en) 2018-12-04 2020-11-17 Bank Of America Corporation Distributed ledger technology network provisioner
US10909740B2 (en) * 2018-12-07 2021-02-02 Intel Corporation Apparatus and method for processing telemetry data in a virtualized graphics processor
US10922123B2 (en) * 2018-12-12 2021-02-16 Microsoft Technology Licensing, Llc Container migration in computing systems
CN109918180A (zh) * 2018-12-14 2019-06-21 深圳壹账通智能科技有限公司 一种任务调度方法、装置、计算机系统及可读存储介质
US11579908B2 (en) 2018-12-18 2023-02-14 Vmware, Inc. Containerized workload scheduling
KR102125354B1 (ko) * 2018-12-19 2020-06-22 주식회사 와이즈넛 마이크로 서비스 아키텍처를 사용하는 스트리밍 빅데이터 처리 모듈 관리를 위한 수퍼바이저 시스템 및 그 방법
KR102032521B1 (ko) * 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
US10831399B2 (en) * 2019-01-28 2020-11-10 EMC IP Holding Company LLC Method and system for enabling agentless backup and restore operations on a container orchestration platform
US10810003B2 (en) * 2019-01-30 2020-10-20 Salesforce.Com, Inc. Method and system for optimization of container image layering
US11726758B2 (en) * 2019-02-07 2023-08-15 Microsoft Technology Licensing, Llc Efficient scaling of a container-based application in a distributed computing system
KR102223141B1 (ko) * 2019-02-12 2021-03-04 성균관대학교산학협력단 컨테이너 환경에서의 스토리지 드라이버의 동작 방법 및 스토리지 드라이버 장치
US11194610B2 (en) 2019-02-22 2021-12-07 Vmware, Inc. Service rule processing and path selection at the source
CN109656723A (zh) * 2019-03-13 2019-04-19 联想(北京)有限公司 容器资源调度方法及装置
KR20200109819A (ko) * 2019-03-14 2020-09-23 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN110012087B (zh) * 2019-03-28 2022-02-01 中国工商银行股份有限公司 数据处理系统及数据处理方法
CN111752701B (zh) * 2019-03-29 2024-01-26 北京数安鑫云信息技术有限公司 一种系统集群及其资源调度方法
KR102101602B1 (ko) * 2019-04-04 2020-04-17 한국전자통신연구원 트래픽 관리 장치 및 방법
US20200341789A1 (en) * 2019-04-25 2020-10-29 Vmware, Inc. Containerized workload scheduling
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11836505B2 (en) * 2019-05-07 2023-12-05 Ab Initio Technology Llc Dynamic distribution of container images
US20220229635A1 (en) * 2019-05-10 2022-07-21 Nec Corporation Environment construction support system, apparatus, environment construction support method, and program
DE102019112485A1 (de) * 2019-05-13 2020-11-19 Eberhard-Karls-Universität Tübingen Verfahren zum selektiven Ausführen eines Containers
CN110187869B (zh) * 2019-05-14 2020-09-01 上海直真君智科技有限公司 一种大数据异构存储计算模型间的统一互操作系统及方法
CN110262871B (zh) * 2019-05-17 2024-01-23 平安科技(深圳)有限公司 容器应用的容器实例启停方法、装置、计算机设备及存储介质
CN110134519A (zh) * 2019-05-21 2019-08-16 中国太平洋保险(集团)股份有限公司 一种基于容器平台实现网站管理的控制方法及装置
CN110209380B (zh) * 2019-05-30 2020-11-03 上海直真君智科技有限公司 一种面向大数据异构模型的统一动态元数据处理方法
US10922125B2 (en) 2019-06-13 2021-02-16 Micro Focus Llc Capability liveness of containerized services
US11093288B2 (en) * 2019-06-13 2021-08-17 Vmware, Inc. Systems and methods for cluster resource balancing in a hyper-converged infrastructure
CN110333939B (zh) * 2019-06-17 2023-11-14 腾讯科技(成都)有限公司 任务混合调度方法、装置、调度服务器及资源服务器
CN110347476B (zh) * 2019-06-27 2022-03-22 苏州浪潮智能科技有限公司 一种信息化系统的耗时任务管理方法和装置
CN110311973B (zh) * 2019-06-28 2021-06-01 东北大学 一种面向多租户的影像云服务系统及方法
WO2021006899A1 (en) * 2019-07-10 2021-01-14 Hewlett-Packard Development Company, L.P. Executing containers during idle states
RU2722576C1 (ru) * 2019-07-23 2020-06-01 Общество с ограниченной ответственностью "РадиоТех" Способ автоматизированного беспроводного мониторинга наполнения и очистки мусорного контейнера и устройство для его осуществления
US11669246B2 (en) * 2019-08-19 2023-06-06 International Business Machines Corporation Storage allocation enhancement of microservices
CN110580194A (zh) * 2019-08-29 2019-12-17 上海仪电(集团)有限公司中央研究院 基于内存热插拔技术的容器调度方法及管理节点调度器
US11294733B2 (en) * 2019-09-12 2022-04-05 Pivotal Software, Inc. Dynamic autoscaler for cloud platform
CN110764903B (zh) * 2019-09-19 2023-06-16 平安科技(深圳)有限公司 弹性执行热容器方法、装置、设备和存储介质
CN114651456A (zh) 2019-09-20 2022-06-21 桑纳特斯公司 用于交通工具外通信控制的系统、方法和装置
US11538287B2 (en) 2019-09-20 2022-12-27 Sonatus, Inc. System, method, and apparatus for managing vehicle data collection
CN110602253B (zh) * 2019-09-30 2022-04-26 新华三大数据技术有限公司 一种任务调度方法、装置及系统
CN110838939B (zh) * 2019-10-11 2022-04-08 许继集团有限公司 一种基于轻量级容器的调度方法及边缘物联管理平台
US11436033B2 (en) * 2019-10-11 2022-09-06 International Business Machines Corporation Scalable virtual memory metadata management
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
CN110955490A (zh) * 2019-10-25 2020-04-03 北京浪潮数据技术有限公司 一种资源的异步创建方法、装置、设备及介质
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11475022B2 (en) * 2019-11-13 2022-10-18 Nutanix, Inc. System and method for constructing a compound object in a distributed object storage system
WO2021167659A1 (en) * 2019-11-14 2021-08-26 Trideum Corporation Systems and methods of monitoring and controlling remote assets
KR20210059229A (ko) * 2019-11-15 2021-05-25 한국전자기술연구원 클라우드 기반 서버리스 플랫폼에서의 실시간성 서비스 제공 방법
US11537809B2 (en) 2019-11-21 2022-12-27 Kyndryl, Inc. Dynamic container grouping
CN111078356A (zh) * 2019-11-22 2020-04-28 北京达佳互联信息技术有限公司 Gpu集群资源控制系统、方法、装置、设备及存储介质
US11392422B1 (en) * 2019-11-27 2022-07-19 Amazon Technologies, Inc. Service-managed containers for container orchestration service
US11422844B1 (en) 2019-11-27 2022-08-23 Amazon Technologies, Inc. Client-specified network interface configuration for serverless container management service
CN112882827A (zh) * 2019-11-29 2021-06-01 伊姆西Ip控股有限责任公司 用于负载均衡的方法、电子设备和计算机程序产品
CN111176830B (zh) * 2019-12-03 2024-04-26 先进新星技术(新加坡)控股有限公司 信息流的分配方法、装置及服务器系统
KR102090911B1 (ko) 2019-12-16 2020-03-19 주식회사 케이비시스 컨테이너 기반의 클라우드 서비스 제공 시스템
US11334364B2 (en) 2019-12-16 2022-05-17 Microsoft Technology Licensing, Llc Layered composite boot device and file system for operating system booting in file system virtualization environments
EP4078363B1 (en) * 2019-12-19 2024-05-01 Koninklijke Philips N.V. Dynamic personalized platform generation based on on-the-fly requirements
KR102318863B1 (ko) * 2019-12-30 2021-10-28 주식회사 카카오 클라우드 서비스를 제공하는 서버의 동작 방법
CN111240822B (zh) * 2020-01-15 2023-11-17 华为技术有限公司 任务调度方法、装置、系统及存储介质
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
JP7476541B2 (ja) 2020-01-28 2024-05-01 コニカミノルタ株式会社 情報処理システム、制御装置、周辺装置制御方法および周辺装置制御プログラム
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
JP7455601B2 (ja) 2020-02-05 2024-03-26 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
US11772583B2 (en) 2020-03-06 2023-10-03 Sonatus, Inc. System, method, and apparatus for managing vehicle automation
EP4097923A4 (en) * 2020-03-06 2024-04-10 Sonatus Inc SYSTEM, METHOD AND APPARATUS FOR VEHICLE DATA COLLECTION MANAGEMENT
KR102209044B1 (ko) * 2020-03-12 2021-01-29 주식회사 케이비시스 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템
US11487571B2 (en) * 2020-03-30 2022-11-01 Wipro Limited Method and system for efficient utilization of resources in containers
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
CN111539198B (zh) * 2020-04-15 2023-07-04 北京宝兰德软件股份有限公司 一种基于Java的表单验证方法及装置
US11632294B2 (en) * 2020-05-19 2023-04-18 Microsoft Technology Licensing, Llc Configuration techniques for managed host operating systems and containerized applications instantiated thereby
US11687379B2 (en) * 2020-05-27 2023-06-27 Red Hat, Inc. Management of containerized clusters by virtualization systems
CN113821331A (zh) * 2020-06-18 2021-12-21 北京字节跳动网络技术有限公司 一种服务获取方法、装置、终端设备及介质
US11403150B1 (en) 2020-06-23 2022-08-02 Amazon Technologies, Inc. Replenishment-aware resource usage management
US11573816B1 (en) 2020-06-26 2023-02-07 Amazon Technologies, Inc. Prefetching and managing container images using cluster manifest
US11487591B1 (en) * 2020-06-29 2022-11-01 Amazon Technologies, Inc. Automatically configuring execution of a containerized application
CN111813497A (zh) * 2020-06-30 2020-10-23 绿盟科技集团股份有限公司 一种容器环境异常检测的方法、装置、介质及计算机设备
US11748161B1 (en) 2020-06-30 2023-09-05 Stripe, Inc. Cluster job submission
CN111970240B (zh) * 2020-07-10 2023-03-24 北京金山云网络技术有限公司 集群纳管方法、装置及电子设备
CN111831450B (zh) * 2020-07-20 2023-07-28 北京百度网讯科技有限公司 用于分配服务器资源的方法、装置、电子设备及存储介质
CN111935110B (zh) * 2020-07-24 2022-05-06 北京金山云网络技术有限公司 一种对租户访问容器实例的权限的控制方法和装置
CN111880899B (zh) * 2020-07-27 2022-08-16 山东迪特智联信息科技有限责任公司 一种基于云原生架构的大数据流处理方法和装置
US11336504B2 (en) * 2020-08-24 2022-05-17 Juniper Networks, Inc. Intent-based distributed alarm service
US11474873B2 (en) * 2020-09-22 2022-10-18 Rockwell Automation Technologies, Inc. Implementing serverless functions using container orchestration systems and operational technology devices
US11422871B1 (en) 2020-09-30 2022-08-23 Amazon Technologies, Inc. Event archiving and replay
CN116648948A (zh) * 2020-09-30 2023-08-25 诺基亚技术有限公司 任务责任协调
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
US11836523B2 (en) 2020-10-28 2023-12-05 Red Hat, Inc. Introspection of a containerized application in a runtime environment
US11256493B1 (en) 2020-11-03 2022-02-22 Bank Of America Corporation Container image optimizer
CN112035221B (zh) * 2020-11-03 2021-01-26 江苏苏宁银行股份有限公司 一种基于定时调度的PaaS平台无效容器清理方法和系统
US11762850B2 (en) 2020-11-09 2023-09-19 International Business Machines Corporation Content-aware node selection for container creation
KR102446717B1 (ko) * 2020-11-12 2022-09-27 한국과학기술정보연구원 컨테이너 처리 방법, 컨테이너 처리 장치 및 컨테이너 처리 시스템
US20220156112A1 (en) * 2020-11-16 2022-05-19 Diamanti Inc. Method and system for storing snapshots in hyper-converged infrastructure
CN112486513B (zh) * 2020-11-25 2022-08-12 湖南麒麟信安科技股份有限公司 一种基于容器的集群管理方法及系统
US20220171646A1 (en) * 2020-11-30 2022-06-02 Red Hat, Inc. Scalable visualization of a containerized application in a multiple-cluster environment
US11853807B1 (en) 2020-12-01 2023-12-26 Amazon Technologies, Inc. Cluster scaling based on task state information
US11366650B1 (en) * 2020-12-04 2022-06-21 International Business Machines Corporation Automatic generation of affinity and anti-affinity rules
US11941453B2 (en) 2020-12-08 2024-03-26 International Business Machines Corporation Containerized computing environments
US11481254B2 (en) * 2020-12-14 2022-10-25 Adp, Inc. Payroll data processing server
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) * 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11995350B2 (en) 2020-12-23 2024-05-28 Red Hat, Inc. Prefetching container data in a data storage system
CN112698914B (zh) * 2020-12-30 2022-12-27 北京理工大学 一种工作流任务容器生成系统及方法
CN113010261A (zh) * 2021-02-20 2021-06-22 博普乐科技(北京)有限公司 一种虚拟编程环境构建方法
US11797287B1 (en) 2021-03-17 2023-10-24 Amazon Technologies, Inc. Automatically terminating deployment of containerized applications
CN113342359B (zh) * 2021-05-13 2023-03-24 烽火通信科技股份有限公司 容器镜像文件智能生成方法、装置、设备及存储介质
US20220385532A1 (en) * 2021-05-26 2022-12-01 Red Hat, Inc. Adding host systems to existing containerized clusters
CN113254156B (zh) * 2021-05-31 2024-04-09 深信服科技股份有限公司 一种容器组部署方法、装置、电子设备及存储介质
CN113364706B (zh) * 2021-06-03 2023-01-31 上海中通吉网络技术有限公司 服务流量集中的方法
US11989586B1 (en) 2021-06-30 2024-05-21 Amazon Technologies, Inc. Scaling up computing resource allocations for execution of containerized applications
US11995466B1 (en) 2021-06-30 2024-05-28 Amazon Technologies, Inc. Scaling down computing resource allocations for execution of containerized applications
US11892418B1 (en) 2021-06-30 2024-02-06 Amazon Technologies, Inc. Container image inspection and optimization
US11782764B2 (en) 2021-07-07 2023-10-10 International Business Machines Corporation Differentiated workload telemetry
US11651090B2 (en) * 2021-07-13 2023-05-16 Graphcore Ltd. Terminating distributed trusted execution environment via confirmation messages
US11651089B2 (en) * 2021-07-13 2023-05-16 Graphcore Ltd. Terminating distributed trusted execution environment via self-isolation
CN113467817B (zh) * 2021-07-14 2022-11-15 广域铭岛数字科技有限公司 一种应用管理方法、系统、介质及电子终端
US11947954B2 (en) * 2021-08-12 2024-04-02 Qnap Systems, Inc. Electronic apparatus adapted for container and software updating method for running container system
CN114615340B (zh) * 2022-03-08 2023-10-20 抖音视界有限公司 一种请求处理方法、装置、计算机设备和存储装置
US11765098B1 (en) * 2022-03-22 2023-09-19 Amazon Technologies, Inc. Customized cross-premise resource selection for containerized applications
US11914637B2 (en) * 2022-07-25 2024-02-27 Sap Se Image scaling cloud database

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134453A (ja) * 1999-09-28 2001-05-18 Internatl Business Mach Corp <Ibm> コンピュータ環境の区画のグループを管理する方法、システム、およびプログラム製品
US20130191527A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Dynamically building a set of compute nodes to host the user's workload
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム
US8621069B1 (en) * 2010-09-03 2013-12-31 Adobe Systems Incorporated Provisioning a computing application executing on a cloud to a client device
JP2014514659A (ja) * 2011-04-12 2014-06-19 ヴイエムウェア インコーポレイテッド マルチノードアプリケーションのデプロイメント・システム
JP2016541183A (ja) * 2013-11-25 2016-12-28 アマゾン・テクノロジーズ・インコーポレーテッド 分散システムにおける顧客志向ネットワークの限界

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727211A (en) * 1995-11-09 1998-03-10 Chromatic Research, Inc. System and method for fast context switching between tasks
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
FI116166B (fi) * 2002-06-20 2005-09-30 Nokia Corp Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite
US7383550B2 (en) * 2002-12-23 2008-06-03 International Business Machines Corporation Topology aware grid services scheduler architecture
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7814491B1 (en) * 2004-04-14 2010-10-12 Oracle America, Inc. Method and apparatus for managing system resources using a container model
US8069443B2 (en) * 2004-06-29 2011-11-29 Novell, Inc. Techniques for providing services and establishing processing environments
US7506338B2 (en) * 2004-08-30 2009-03-17 International Business Machines Corporation Method and apparatus for simplifying the deployment and serviceability of commercial software environments
US8732182B2 (en) 2004-12-02 2014-05-20 Desktopsites Inc. System and method for launching a resource in a network
US7752624B2 (en) * 2004-12-21 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for associating workload management definitions with computing containers
US20060168575A1 (en) * 2005-01-21 2006-07-27 Ankur Bhatt Defining a software deployment
US7950010B2 (en) * 2005-01-21 2011-05-24 Sap Ag Software deployment system
US7805706B1 (en) * 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US20070118657A1 (en) * 2005-11-22 2007-05-24 Motorola, Inc. Method and system for sharing podcast information
US8250559B2 (en) * 2006-04-12 2012-08-21 Oracle America, Inc. Supporting per-program classpaths with class sharing in a multi-tasking virtual machine
WO2008021128A2 (en) * 2006-08-08 2008-02-21 Siemens Energy & Automation, Inc. Devices, systems, and methods for communicating with a plc
US8621030B2 (en) * 2006-09-28 2013-12-31 Intel Corporation Techniques to copy an operating system
US8752059B2 (en) * 2007-03-27 2014-06-10 International Business Machines Corporation Computer data processing capacity planning using dependency relationships from a configuration management database
US8219987B1 (en) * 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US8156502B1 (en) 2007-06-08 2012-04-10 Hewlett-Packard Development Company, L.P. Computer resource allocation as a function of demand type
US20090100435A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Hierarchical reservation resource scheduling infrastructure
US8893141B2 (en) * 2008-01-28 2014-11-18 Microsoft Corporation System and method for describing applications for manageability and efficient scale-up deployment
US8935692B2 (en) * 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
US20100153941A1 (en) * 2008-12-12 2010-06-17 Lazar Borissov Flexible content update via deployment order template
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8412810B1 (en) 2010-07-02 2013-04-02 Adobe Systems Incorporated Provisioning and managing a cluster deployed on a cloud
US8484353B1 (en) * 2010-09-28 2013-07-09 Amazon Technologies, Inc. Resource placement templates for virtual networks
US9552215B2 (en) * 2011-03-08 2017-01-24 Rackspace Us, Inc. Method and system for transferring a virtual machine
US9471384B2 (en) * 2012-03-16 2016-10-18 Rackspace Us, Inc. Method and system for utilizing spare cloud resources
CN103649910A (zh) * 2011-07-11 2014-03-19 惠普发展公司,有限责任合伙企业 虚拟机放置
US8788855B2 (en) * 2011-09-23 2014-07-22 Microsoft Corporation Cluster computational capacity level switching based on demand prediction and stability constraint and power consumption management
WO2012167529A1 (zh) * 2011-10-24 2012-12-13 华为技术有限公司 在Linux容器中启动应用程序的方法和系统
US9003141B2 (en) 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
US9720668B2 (en) * 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
KR101781063B1 (ko) * 2012-04-12 2017-09-22 한국전자통신연구원 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
US8843935B2 (en) * 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
EP2898410B1 (en) * 2012-09-20 2022-04-27 Amazon Technologies, Inc. Automated profiling of resource usage
US20140173618A1 (en) * 2012-10-14 2014-06-19 Xplenty Ltd. System and method for management of big data sets
KR101540631B1 (ko) * 2012-12-28 2015-07-30 삼성에스디에스 주식회사 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체
US20140196038A1 (en) 2013-01-08 2014-07-10 Commvault Systems, Inc. Virtual machine management in a data storage system
US10552774B2 (en) 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
EP3227779A1 (en) * 2014-12-04 2017-10-11 Nokia Solutions And Networks Management International GmbH Steering of virtualized resources
US10609122B1 (en) * 2015-06-29 2020-03-31 Amazon Technologies, Inc. Instance backed building or place
US10261782B2 (en) * 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
US10572226B2 (en) * 2016-12-21 2020-02-25 Aon Global Operations Ltd (Singapore Branch) Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment
US10884790B1 (en) * 2018-05-02 2021-01-05 Amazon Technologies, Inc. Eliding redundant copying for virtual machine migration

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134453A (ja) * 1999-09-28 2001-05-18 Internatl Business Mach Corp <Ibm> コンピュータ環境の区画のグループを管理する方法、システム、およびプログラム製品
US8621069B1 (en) * 2010-09-03 2013-12-31 Adobe Systems Incorporated Provisioning a computing application executing on a cloud to a client device
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム
JP2014514659A (ja) * 2011-04-12 2014-06-19 ヴイエムウェア インコーポレイテッド マルチノードアプリケーションのデプロイメント・システム
US20130191527A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Dynamically building a set of compute nodes to host the user's workload
JP2016541183A (ja) * 2013-11-25 2016-12-28 アマゾン・テクノロジーズ・インコーポレーテッド 分散システムにおける顧客志向ネットワークの限界

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HIEN NGUYEN VAN, JEAN-MARC MENAUD: "SLA-Aware Virtual Resource Management for Cloud Infrastructures", PROCEEDINGS OF NINTH IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION TECHNOLOGY 2009 (CIT, JPN6018025932, 11 October 2009 (2009-10-11), US, pages 357 - 362, XP031563843, ISSN: 0003832838 *
SIJIN HE, ET AL.: "Elastic Application Container : A Lightweight Approach for Cloud Resource Provisioning", PROCEEDINGS OF 26TH INTERNATIONAL CONFERENCE ON ADVANCED INFORMATION NETWORKING AND APPLICATIONS (AI, JPN6018025933, 26 March 2012 (2012-03-26), pages 15 - 22, XP032169603, ISSN: 0003832839, DOI: 10.1109/AINA.2012.74 *
内田誠悟: "本番環境の構築とDockerコンテナのデプロイ", WEB+DB PRESS, vol. 第86巻, JPN6018025931, 25 May 2015 (2015-05-25), JP, pages 106 - 113, ISSN: 0003832837 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019149192A (ja) * 2014-11-11 2019-09-05 アマゾン テクノロジーズ インコーポレイテッド コンテナの管理及びスケジューリングのためのシステム
US10838756B2 (en) 2014-11-11 2020-11-17 Amazon Technologies, Inc. System for managing and scheduling containers
US11314541B2 (en) 2014-11-11 2022-04-26 Amazon Technologies, Inc. System for managing and scheduling containers
US11669362B2 (en) 2014-11-11 2023-06-06 Amazon Technologies, Inc. System for managing and scheduling containers
US10979436B2 (en) 2016-05-17 2021-04-13 Amazon Technologies, Inc. Versatile autoscaling for containers
US11347549B2 (en) 2016-11-22 2022-05-31 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
JP2020527791A (ja) * 2017-07-18 2020-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation セキュア実行プラットフォームのクラスタ
JP7015904B2 (ja) 2017-07-18 2022-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュア実行プラットフォームのクラスタ
JP7497940B2 (ja) 2019-07-05 2024-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテナベースのアプリケーション
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
JP7496807B2 (ja) 2021-09-28 2024-06-07 Kddi株式会社 コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステム

Also Published As

Publication number Publication date
RU2018130629A3 (ja) 2019-05-20
US10838756B2 (en) 2020-11-17
AU2015346530A1 (en) 2017-06-01
AU2015346530C1 (en) 2019-09-05
CN107111519A (zh) 2017-08-29
US11669362B2 (en) 2023-06-06
EP3218808A1 (en) 2017-09-20
US20160162320A1 (en) 2016-06-09
RU2666475C1 (ru) 2018-09-07
US9256467B1 (en) 2016-02-09
AU2019204805B2 (en) 2020-09-24
RU2704734C2 (ru) 2019-10-30
KR102042988B1 (ko) 2019-11-11
JP6522750B2 (ja) 2019-05-29
WO2016077367A1 (en) 2016-05-19
KR20190020843A (ko) 2019-03-04
SG11201703680WA (en) 2017-06-29
AU2019204805A1 (en) 2019-07-25
AU2020289775B2 (en) 2022-10-27
US20190108049A1 (en) 2019-04-11
KR20170085072A (ko) 2017-07-21
SG10201913839VA (en) 2020-03-30
US20220357972A1 (en) 2022-11-10
JP6856696B2 (ja) 2021-04-07
RU2751576C2 (ru) 2021-07-15
US20200301726A1 (en) 2020-09-24
US9996380B2 (en) 2018-06-12
AU2015346530B2 (en) 2019-04-04
US11314541B2 (en) 2022-04-26
KR101952573B1 (ko) 2019-02-27
AU2020289775A1 (en) 2021-04-01
RU2018130629A (ru) 2019-03-15
RU2019131233A3 (ja) 2021-04-05
RU2019131233A (ru) 2021-04-05
JP2019149192A (ja) 2019-09-05

Similar Documents

Publication Publication Date Title
JP6856696B2 (ja) コンテナの管理及びスケジューリングのためのシステム
US10853142B2 (en) Stateless instance backed mobile devices
US10397240B2 (en) Versatile autoscaling for containers
US10657061B1 (en) Resource distribution using attributes of versioned hash rings
US10938668B1 (en) Safe deployment using versioned hash rings
US10228979B1 (en) Dynamic virtual partitioning for delayed queues
WO2017200878A1 (en) Versatile autoscaling
US10931741B1 (en) Usage-sensitive computing instance management
US10789273B1 (en) Resource identifier allocation during network partitions
US10176059B2 (en) Managing server processes with proxy files

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190424

R150 Certificate of patent or registration of utility model

Ref document number: 6522750

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250