JP2017515206A - コンテナの配置及び実行を調整するサービスの実施態様 - Google Patents

コンテナの配置及び実行を調整するサービスの実施態様 Download PDF

Info

Publication number
JP2017515206A
JP2017515206A JP2016558406A JP2016558406A JP2017515206A JP 2017515206 A JP2017515206 A JP 2017515206A JP 2016558406 A JP2016558406 A JP 2016558406A JP 2016558406 A JP2016558406 A JP 2016558406A JP 2017515206 A JP2017515206 A JP 2017515206A
Authority
JP
Japan
Prior art keywords
container
resource
request
dns
client device
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
JP2016558406A
Other languages
English (en)
Other versions
JP6261758B2 (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 JP2017515206A publication Critical patent/JP2017515206A/ja
Application granted granted Critical
Publication of JP6261758B2 publication Critical patent/JP6261758B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

組織はビジネスを管理するためにより高速でより低コストのコンピュータ・システムを常に求めているが、仮想化技術の現在の標準では仮想マシンを使用することが含まれ、要求に対処する前にインスタンス化するまでの時間が長く、リソースを多く使用する。コンテナなどの仮想リソースを開始するためにDNSサーバに対するドメイン・ネーム・システム(DNS)クエリを指標として使用することにより、システムは、エンド・ユーザがそのコンテナに格納されたリソースについて第1の要求を送信する前に、コンテナをインスタンス化することができる。必要に応じて非常に高速で有効化されるので、コンテナを、要求の指示に基づき初期化し、要求プロセスが終わると停止させ、次の要求について再び初期化することができる。また、DNSクエリを、ネットワーク・コンポーネントのキャッシュを暖機することの指標として使用することによって、システム・コンポーネントを即座に使用することができ、要求されたリソースでプリロードすることができる。【選択図】図1

Description

本出願は、同時係属中の2014年3月28日出願の米国特許出願第14/229702号「IMPLEMENTATION OF A SERVICE THAT COORDINATES THE PLACEMENT AND EXECUTION OF CONTAINERS(コンテナの配置及び実行を調整するサービスの実施態様)」の優先権を主張し、その全体を参照により本明細書に組み込む。
本発明は、コンテナの配置及び実行を調整するサービスの実施態様に関する。
世界中の企業、組織及び個人が、コンピューティング・デバイスと動作可能に相互接続して、事業支援、リソース提供及びサービス配信を行うコンピュータ・ネットワークを運営している。そのような当事者の多くは、世界中のデータ・センタでの物理的コンピューティング・デバイスをホストするサービス・プロバイダからソフトウエア・アプリケーションへのアクセスを受ける。近年、サービス・プロバイダは、これらの企業について、ソフトウエア・アプリケーションへアクセスをするための仮想化システムを提供するようになっている。しかしながら、仮想マシンなどの従来の仮想化技術では、要求に対してサービスを提供するために必要なリソースを削減する能力、及び仮想コンピュータ・システムのスピン・アップと分解にかかるコスト償却に本質的な限界がある。例えば、多くのアプリケーションの場合、仮想コンピュータ・システムが使用される頻度は比較的低い。仮想マシンが要求に対してサービスを提供できるようになるためには、仮想マシンを動作状態に維持しなければならず、これによって、コンピュータ・システムのオペレーティング・システム用のコンピューティング・リソース、及び他のリソース(例えばネットワーク・リソースなど)が必要となる。こうしたコンピュータ・システムが十分に活用されない場合、任意の所与の時間で利用可能なリソース全体のうちわずか一部しか使用されておらず、そのようなコンピュータ・システムに割り当てられるリソースの少なくともいくつかが、他の用途でほぼ利用不可能となる。
組織はビジネスを管理するためにより高速でより低コストのコンピュータ・システムを常に求めているが、仮想化技術の現在の標準では仮想マシンを使用することが含まれ、要求に対処する前にインスタンス化するまでの時間が長く、リソースを多く使用する。コンテナなどの仮想リソースを開始するためにDNSサーバに対するドメイン・ネーム・システム(DNS)クエリを指標として使用することにより、システムは、エンド・ユーザがそのコンテナに格納されたリソースについて第1の要求を送信する前に、コンテナをインスタンス化することができる。必要に応じて非常に高速で有効化されるので、コンテナを、要求の指示に基づき初期化し、要求プロセスが終わると停止させ、次の要求について再び初期化することができる。また、DNSクエリを、ネットワーク・コンポーネントのキャッシュを暖機することの指標として使用することによって、システム・コンポーネントを即座に使用することができ、要求されたリソースでプリロードすることができる。
本開示に係る様々な実施形態を、図面を参照しながら説明する。
様々な実施形態を実施することが可能な環境の一例を示す図である。 様々な実施形態を実施することが可能なブロック図の一例を示す図である。 少なくとも1つの実施形態に係る環境の一例を示す図である。 少なくとも1つの実施形態に係る、ドメイン・ネーム・システムのクエリ解決プロセスの一例を示す図である。 少なくとも1つの実施形態に係る、仮想化リソース状態の判定プロセスの一例を示す図である。 少なくとも1つの実施形態に係る、DNS情報のレコード・リソースへの関連付けプロセスの一例を示す図である。 少なくとも1つの実施形態に係る環境の一例を示す図である。 様々な実施形態を実施することが可能な環境の一例を示す図である。
以下の記載では、様々な実施形態について説明する。説明の目的ために、実施形態が完全に理解されるように、具体的な構成及び詳細を記載する。しかしながら、実施形態は具体的な詳細がなくとも実施され得ることも、当業者には明らかであろう。さらに、記載する実施形態が不明瞭にならないように、公知の特徴を省略または簡略化することがある。
本明細書で記載し、示唆する技術には、要求処理の高速化、コンピューティング・リソースの高効率化、及び待ち時間の短縮のために、コンテナなどのリソースの配置及び実行を調整するサービスの実施態様が含まれる。コンテナが実行中でない場合、デスク・スペース以外のリソースが全く利用されない、例えば、停止したコンテナ、つまり動作状態に維持されていないコンテナは、中央処理装置(CPU)またはメモリなどのリソースを全く使用しない。
例示的な実施形態は、例えば、仮想マシンに関連するオーバヘッドが生じることなく、コンピュータ・リソース及びシステムを仮想化するためのドメイン・ネーム・システム(DNS)、ロード・バランサ、データベース及びコンテナを活用するウェブ・サービスを含む。DNSサーバが、ウェブ・サービス上でホストされるサイトについてDNSルックアップを受信すると、サーバは、リソースについてのユーザ要求の経路を指定するのに(例えば待ち時間に関して)最良な領域を決定し、ユーザ・データグラム・プロトコル・パケットなどの小さなメッセージをその領域内でサービスをホストしているロード・バランサに送信し、その後DNSルックアップに応答するよう構成される。ロード・バランサを、エンド・ユーザが最初のGET、PUTまたは他の要求をするまでに、コンテナが既にインスタンス化されるように、DNSサービスの通知を使用して、コンテナを起動するように構成してもよい。いくつかの例示としての実施形態において、あるユーザ要求が、追加の要求があるかもしれないと示すことがしばしばあるので、コンテナは所定の期間動作状態を維持することができ、ロード・バランサはコンテナの状態の情報をデータベースに維持することができる。DNSサーバ及びロード・バランサを、追加の要求の経路を既に実行しているコンテナに指定するためにこの情報を使用するようにさらに構成してもよい。コンテナがもはや不要になると、ロード・バランサ、コンテナを保持するオペレーティング・システムまたは他のシステム・コンポーネントが、コンピュータ、メモリ及びネットワーク・リソースを必要なときのみ使用して、必要に応じて非常に高速で初期化できるように、コンテナの停止または再インスタンス化を開始することができる。
ドメイン・ネーム・システム(DNS)サービスが、エンド・ユーザの経路を1つ以上の通信ネットワーク・アプリケーションに指定する方法をカスタマに与えるように構成してもよい。例えば、DNSサービスを、ユニフォーム・リソース・ロケータ(URL)など人間が読み取り可能な名称を、インターネットを介して互いに接続するためにコンピュータ・システム同士が使用する数値インターネット・プロトコル(IP)アドレスに変換するよう構成してもよい。このように、コンピューティング・リソース・サービス・プロバイダが提供する1つ以上のサービスへのアクセス要求を、データ・ゾーン内で動作するインフラに接続させるようにDNSサービスを構成してもよい。
例示としての実施形態は、DNSクエリが識別子または仮想マシンに関連する固有の識別子を含んでなるDNSサービスによる、クライアント・デバイスのDNSクエリを処理方法及びシステムを含む。いくつかの実施形態において、実際の要求がクライアント・デバイスから送られる前に、リソースを有効にする、または起動する(リソースの消費がより少ない停止状態から覚醒させる)ために、DNSクエリを使用して、クライアント・デバイスがアクセス要求をしているリソースへのメッセージ送信を開始することができる。
クライアント側コンピューティング・デバイスを、クライアント・デバイスが送信したDNSクエリを解決するために、1つ以上のサービス・プロバイダ及び/またはネットワークを通じたネットワーク・プロバイダと通信するよう構成することも可能であり、ここで、サービス・プロバイダはDNSサービス・プロバイダに関連するコンピューティング・デバイスに対応する。サービス・プロバイダを、例えば、サーバ、ルータなどを収納する物理的な場所など、コンピューティング・ネットワーク上のノードに対応する任意の数の存在点(PoP)インタフェースを含む、様々なコンピューティング・リソースと関連付けることができる。ネットワークのクライアント・デバイスを与えるように、PoPの場所を、物理的通信ネットワーの端から端まで地理的に分散させることもできる。サービス・プロバイダは、さらに、クライアント・デバイスからのDNSクエリを解決するのに使用されるDNSサーバのコンピューティング・デバイスを含み得るDNSコンポーネントを含むことができる。DNSコンポーネントは、さらに、ロード・バランシングなど通信を容易にするハードウエア及び/またはソフトウエア・コンポーネントを含んでいてもよい。サービス・プロバイダは、さらに、ネットワークのネットワーク・リソース、デバイス及び/またはコンポーネントの状態に関する情報を維持するために使用されるリソース・キャッシュ・コンポーネントを含むことができる。
クライアント・デバイスは、コンテナ、仮想マシン、自動スケーリング・グループ、ファイル・ベースのデータベース・ストレージ・システム、ブロック・ストレージ・サービス、冗長データ・ストレージ・サービス、データ・アーカイブ・サービス、データ・ウェアハウジング・サービス、ユーザ・アクセス管理サービス、コンテンツ・管理サービス、及び及び/または他のそのようなコンピュータ・システム・サービスなど、コンピュータ・サービスへのアクセスを含んでよい、サービス・プロバイダによって提供されるサービスへアクセスしてもよい。追加のサービスとしては、ディレクトリ・サービス、及びディレクトリ・サービスに関連するユーザ・リソース、ポリシー・リソース、ネットワーク・リソース及び及び/またはストレージ・リソースなど、コンピュータ・システム・サービスへのアクセスが含まれていてもよい。いくつかの分散型及び/または仮想化コンピュータ・システム環境において、コンピュータ・サービスに関連するリソースは、物理的デバイス、仮想デバイス、物理的及び/または仮想デバイスの組み合わせ、または他のそのようなデバイスの実施形態であってよい。
ネットワーク・プロバイダは、仮想マシン、仮想リソースまたはコンテナなど、複数の仮想化方法を介して、アプリケーションをホストするネットワーク・コンポーネントを含むことができる。ネットワーク・コンポーネントは、複数の仮想マシンを提供する、またはコンテナもしくは仮想マシンなど仮想マシンの作成を動的に行わせるのに必要なハードウエア及びソフトウエアを含むコンピューティング・デバイスと動作可能に相互接続する、またはコンピューティング・デバイスを含むことができる。ネットワーク・コンポーネントはさらに、クライアント・デバイス、サービス・プロバイダ、DNSサービスなど、他のネットワーク・デバイスと通信するためのソフトウエア/ハードウエア・コンポーネントを使用する、または含むことができ、ここで、仮想化マシンを選択するためにネットワーク・コンポーネントを使用して、情報をDNSサーバに提供し、経路指定要求を容易にすることができる。
クライアント・デバイスのカスタマとネットワーク・プロバイダが通信していなければ、カスタマとネットワーク・プロバイダとの通信プロセスは、ネットワーク・プロバイダが、利用可能なリソースにアクセスするために、登録プロセスから開始すればよい。登録プロセスは多種の情報を含むことができ、例えば、ネットワーク・プロバイダとの登録プロセスは、クライアント・デバイスのハードウエア及び/またはソフトウエアの種類の特定、セキュリティ・パラメータの構成、序列、サービスの質、識別情報などを含むことができる。クライアント・デバイスのカスタマは、さらに、類似する機能についてサービス・プロバイダで登録してもよく、サービス・プロバイダがまだDNS処理の許可を得ていなければ、サービス・プロバイダがドメインについてのDNSクエリを処理し、リソースを管理するよう要求してもよい。
クライアント・デバイスは、ユニバーサル・リソース・アイデンティファイアとも呼ばれるユニフォーム・リソース・アイデンティファイア(URI)などのリソース識別子、より具体的にはURLを使用して、ネットワーク・プロバイダのコンポーネントまたはコンピューティング・デバイスと対話することができる。URLは、通常、ウェブページなどのリソースを参照するための具体的なストリングである。URLは、通信ネットワークの異なるネットワーク・コンポーネントに対する指示に類似する多数の情報を与える。URLは、通常、例えば識別子、ページ・アドレス、フォルダ名、マシン名など、リソースのプロトコル、ホスト、及び可能な経路を含む。例えば、
http://www.domain_name.com/path_information
URLは、クエリ、ポート番号または具体的なリソースに関連する他の詳細などの追加情報を含んでいてもよい。
ドメイン名は、通常英数字からなり、具体的なリソースについて数値インターネット・プロトコル(IP)アドレスに変換される。URLのドメイン名の部分は、リソースを管理するためにネットワーク・プロバイダが使用する識別子に対応する固有識別子など、追加情報を含んでいてもよい。例えば、上で挙げたURLの例の代わりに、URLに含まれる固有識別子は次のようなものでよい。
http://www.unique.domain_name.com/path_information
他の一例としての実施形態において、URLのドメイン名の部分は、サービス・レベル情報、金融情報、地理情報、存在点情報を直接または間接的に特定するための追加情報を含んでいてもよい。例えば、URLは次のようなものでよい。ttp://www.billing.unique.host_domain.com/path_informatio
(クライアントなどの)ブラウザのアドレス・バーに入力するURLを、DNSクエリ内のユーザのコンピュータがDNSサーバに送信するが、DNSサーバは、URLで与えられたドメイン情報(DNSクエリのDNS部分)をIPアドレスに変換するよう通常構成されている。代替の一例としての実施形態は、ハイパーリンクを用いたユーザによる項目クリックの後にDNSクエリが送られること、自動プロセスによってクエリが作成されることなどを含む。DNSクエリを解決した上で、DNSサーバは、クライアント・デバイスにロード・バランサのIPアドレスを与える応答を送信する。しかしながら、DNSサーバがクライアント・デバイスからリソースについてのクエリを受信するのと同時またはほぼ同時に、DNSサーバは、ロード・バランサにメッセージを送信して、ロード・バランサに、要求したリソースが位置する仮想リソースを有効にするよう要求する。クライアント・デバイスがIPアドレスを受信すると同時、またはほぼ同時に(コンテナが有効になった時間と同時、またはほぼ同時という場合と同様に)、クライアント・デバイスは、リソースについてロード・バランサに要求を送信する。ロード・バランサは、その要求を、仮想リソースが動作可能に相互接続される仮想リソース・ストアに転送し、仮想リソース及びロード・バランサが要求をユーザに戻す。DNSサーバは、DNSサービスまたはDNS処理システムなど、より大きなシステムのコンポーネントであってもよいことを理解されたい。
例えば、ユーザは画像データベースのウェブサイトから画像を取り出したいとする。この状況で、ユーザは、画像データベースのウェブサイトのURLを自身のブラウザに入力して、DNSクエリを送信し、応答を待つが、このDNSクエリ及び解決プロセスはユーザに効果的に不可視化される。ユーザが要求したURLについてIPアドレスを受信した上で、ユーザのデバイスは、画像についての要求をプロキシ・サーバに送信するが、プロキシ・サーバは、ロード・バランサなどの中間サーバでありうる。要求されたデータは、コンテナ・サービス内のコンテナに格納されているので、ロード・バランサは、要求されたデータの場所を判定し、データを非常に早くユーザに提供することができる。
図1は、様々な実施形態に係る態様を実施するための環境100の一例としての実施形態である。説明のために、インターネット環境100を使用するが、様々な実施形態を実施するよう、適宜別の環境を使用してもよいことは理解されよう。環境は、電子クライアント・デバイス102を含み、クライアント102には、好適なネットワーク101を介して要求、メッセージまたは情報を送り、いくつかの実施形態においては、情報をデバイスのユーザに送り返すよう動作可能な好適なデバイスが含まれる。このようなクライアント・デバイスの例として、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージ・デバイス、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、パーソナル・データ・アシスタント(PDA)、埋め込み型コンピュータ・システム、電子ブック・リーダなどが挙げられる。ネットワークとしては、イントラネット、インターネット、セルラー・ネットワーク、ローカル・エリア・ネットワーク、衛星ネットワーク、または他のネットワーク及び/またはこれらの組み合わせを含む任意の好適なネットワークを挙げることができる。このようなシステムで使用されるコンポーネントは、ネットワークの種類及び/または選択した環境に少なくとも一部依存する。このようなネットワークを介した通信のためのプロトコル及びコンポーネントは公知であるので、ここで詳細に述べない。ネットワークを介した通信は、有線または無線接続及びその組み合わせにより有効になる。
一例としての実施形態は、ドメイン・ネーム・システム(DNS)サーバ105にインターネットなどのネットワーク101を介して接続されるクライアント・デバイス102を含む。クライアント・デバイスのユーザが、クライアント・デバイスでウェブ・ブラウザ(クライアント)にユニバーサル・リソース・ロケータ(URL)を入力すると、これが(不図示の)DNSリゾルバを有効にする。DNSリゾルバはDNSのクライアント側にあり、問い合わせをしたリソースを完全に変換するために、例えばドメイン名をインターネット・プロトコル(IP)アドレスに変換するために、クライアントのクエリを開始して、順番付けるよう構成される。このプロセスはユーザに可視化されている。
図1に戻って、DNSリゾルバは、要求したドメインについてのIPアドレスを受信するために、DNSクエリ106をDNSサーバに送信する。DNSサーバがDNSクエリを受信すると、DNSサーバは、少なくとも2つの動作を同時またはほぼ同時に実行するように構成される。代替の一例としての実施形態では、複数の動作は、任意のシーケンス及びタイミング配置で実行される。第1の動作は、メッセージをロード・バランサ110に送ること134であり、第2の動作は、DNSクエリを解決して、クライアント・デバイスに応答することである(以下で詳細に説明する)。第1の動作の一例としての実施形態では、DNSサーバは、ハードウエアまたはソフトウエアであってよいロード・バランサにメッセージを送信する。メッセージには、ユーザ・データグラム・プロトコル(UDP)メッセージが含まれてよく、UDPメッセージはデータグラムと呼ばれ、1から2キロバイトの短いメッセージで、ロード・バランサまたはロード・バランシング・レイヤに、コンテナのリソースについて、要求を作成中または作成予定であることを通知するものであってよい。メッセージは、要求をより効率的に処理するため、要求の受信を予想してインスタンス化するよう要求するためのものである。
代替の一例としての実施形態は、DNSクエリ自体を転送するなど、より複雑なメッセージを送信してもよい。代替の一例としての実施形態では、DNSサーバは、コンテナに関連するURIまたはURLの結果としてメッセージを選択的に与えるようさらに構成され、識別子がいずれのコンテナとも関連がない場合はメッセージをさらに送ることはない。さらに別の一例としての実施形態は、メッセージ134などのメッセージを、リソースを起動するために、その種類のメッセージを受信するよう構成された任意のネットワーク・コンポーネントに送信することを含む。例えば、リソースはキャッシュ内のある項目であってよく、その場合、メッセージはブロック・レベルのデータ・ストレージ・サービスに送信され、サービスに画像をメモリにロードするよう要求する。代替の一例としての実施形態は、メッセージを第1の場所から仲介を伴わないバックエンド・ネットワーク・コンポーネントに送信することを含むようにしてもよい。
ロード・バランサ110は、通常、プロキシ・サーバもしくは仲介のネットワーク・コンポーネント上で実行されるソフトウエア・アプリケーション、または、クライアントが与えるバックエンド・サーバつまりネットワーク・コンポーネント、もしくは別のネットワーク・コンポーネントに要求を転送することを含む複数の目的で使われるハードウエア・ロード・バランサである。この一例としての実施形態では、ロード・バランサは、クライアント・デバイスが要求したリソースを格納するコンテナを有効にするよう要求するメッセージをDNSサーバから受信する。通常、ロード・バランサは多数の追加の特徴を有しており、ここで示す一例としての実施形態でも同様に使用され、例えば、ロード・バランサはサーバの有効化、直接的なサーバ復帰、ヘルス・チェック、HTTPをキャッシュに格納、優先度付きキューイングなどを優先させることができる。図1の一例としての実施形態では、ロード・バランサは、固有識別子、ユニフォーム・リソース・インジケータ(URI)、ユニフォーム・リソース・ロケータ(URL)などによって識別されてよいリソースの名前に基づいて、リソースを格納するコンテナの場所を知る。
ロード・バランサ110がメッセージを転送し(138)が、メッセージ138は少なくともコンテナ121のURIまたはURLを含み、コンテナ121はリソース・サービス120に格納されている何千または何百万ものコンテナの一つであってよい。メッセージ138は、コンテナにリソースが要求される予定であること、差し迫る要求に効率的に応答するために、コンテナを動作状態にする(起動させる)必要があることを通知する。メッセージを受信すると、コンテナは起動またはインスタンス化されて動作状態になる。いくつかの例としての実施形態では、一旦インスタンス化されると、コンテナは、パブリックまたはプライベートIPアドレスである、自身のIPアドレスを持つ。ロード・バランサは、トラフィックをコンテナに転送するために、ロード・バランサのローカル・データべースまたはロード・バランサと動作可能に相互接続したローカル・データベースの検索を実行して、新たにインスタンス化されたコンテナのパブリックまたはプライベートIPアドレスを判定する。
いくつかの例としての実施形態において、要求されているリソースがロード・バランサまたはDNSサーバに知られている場合、コンテナを、複数のリソースがコンテナに格納されているかぎり、正確なリソース131を特定するよう構成することができる。通常、コンテナは、任意の種類のリソース、例えば、静止したウェブサイトのコピー、ウェブ・リソース、ウェブサイト、画像、ウェブ・フォーム、実行可能なコード、アプリケーション・プログラミング・インタフェース(API)などを収納することができる。いくつかの一例としての実施形態では、データまたはリソースに、ネットワーク・デバイスなど別の場所からコンテナがアクセスしてもよい。
図1に戻って、上述のとおり、DNSサーバは、ほぼ同時に2つの動作を行う。第2の動作は、DNSクエリを解決して、応答メッセージをDNSサーバからクライアント・デバイスに送信して(107)、要求されたリソースのIPアドレスを与える。クライアント・デバイスが要求したIPアドレスを受信すると、クライアント・デバイスは、所定のリソースについての要求メッセージを送信することができる(132)。この一例としての実施形態では、要求は、仲介のネットワーク・コンポーネント(ロード・バランサ)を通じてクライアントから送られ、その後、要求が、有効化されたコンテナに転送される(141)。代替の一例としての実施形態では、要求をコンテナもしくはリソースに直接提供する、または2つ以上の仲介もしくはプロキシ・サーバを介して送信するようにしてもよい。リソース131についての要求を受信すると、コンテナは、ロード・バランサを介して即座に要求を戻し142、次に要求をクライアント・デバイスに与える133。
図2は、仮想マシン225及びコンテナ・リソース245を示すブロック図200の一例を示す。通常、仮想マシンは、物理的マシンのようにプログラムを実行するマシン(すなわちコンピュータ)内のソフトウエア実装の仮想化である。従来の仮想化では、各仮想マシンについてオペレーティング・システムのフル画像が必要となる。通常、仮想マシン(VM)は、ホストのオペレーティング・システム226を実行しているホスト・マシンから、仮想化されたデバイス及びネットワークを介してリソースにアクセスする。通常、仮想マシンは、リソースが大量にあり、ホスト・マシンは所与の時間で限られた数のVMしか実行させることができない。システムの仮想マシンの場合、各々が完全なオペレーティング・システム227a―227c、完全なリソースのセット228a―228c、各特定の仮想マシンに適用可能な任意のプロセス229a―229cを維持する。
例えば、要求を処理する仮想マシンを、要求を処理するためにインスタンス化することができる。特に、物理的なホストを使用して、要求についてサービスを提供するという特定の目的のために仮想マシンをインスタンス化する。物理的なホストまたは物理的なホストと通信する別のコンピュータ・システムが要求を受信すると、物理的なホストはデータ・ストレージからの情報にアクセスし、物理的なホストは要求を処理するのに好適なアプリケーションを含む仮想マシンをインスタンス化することができる。要求に関連して、仮想マシンがもはや必要でなくなると、仮想マシンを非インスタンス化してもよい。物理的なホストは、他の仮想マシンなどの他の目的でコンピューティング・リソースを使用できるように、仮想マシンに割り当てられていたコンピューティング・リソースの割り当てを停止してもよい。このように、物理的なホストは、要求についてサービスを提供するために仮想マシンが使用されていない場合、コンピューティング・リソースが仮想マシンの専用になることを回避する。今後要求を受信することがあれば、物理的なホストは、適宜少なくとも1つの仮想マシンをインスタンス化すればよい。
コンテナ245は、単一の制御ホスト246上で、複数の孤立システム、ここではコンテナまたはコンテナと呼ぶ、を実行させるためのオペレーティング・システム・レベルの仮想化方法である。単一のオペレーティング・システム(OS)を有するコンテナの一例としての実施形態は、コンテナの仮想化によってゲストを分離させるが、ホスト・マシンのハードウエアの仮想化をしようとしないので、通常より効率的である。ハードウエア仮想化の代わりに、コンテナの仮想化では、アプリケーションのプロセス248a―248gなど、各仮想環境についてコンテナを作成し、コンテナはカーネルなどのユーザ・ツールを使用して実行させることができ、ユーザ・ツールは、各コンテナが同一のカーネル下でファイル・システム、プロセス、メモリ、デバイスなどを管理するようにリソース管理を行い、プロセスを分離することができる。コンテナの一例としての実施形態は、単一のOS及び他のリソース247(例えば、バイナリ・ファイル、ライブラリ・リソースなど)を管理、共有することができる。コンテナの実施形態は、ホスト・マシンなど同一のカーネル上で実行されるが、所望であれば異なるパッケージ・ツリーまたは分散を実行させることができる。コンテナは通常同一のOSから展開されるので、コンテナの作成及び維持は、仮想マシンと比較してはるかに単純である。
いくつかの実施形態において、単一のハードウエア、例えば、コンピュータまたはサーバは、何千ものコンテナを実行させることができ、コンテナが物理的な電気機器のディスク上のカーネルを共有し、そのハードウエア上のコンテナが、マシンのリソースすべて、例えば、メモリ、CPUなどを共有する。コンテナを伴うオーバヘッドの削減は、非常に多くのコンテナ(例えば数十万)の作成、提供が可能となり、各コンテナのスタートアップ及びシャットダウン速度を高速化することができるという利点のさらなる追加につながる。いくつかの一例としてのコンテナでは、ホスト―マシン・アップデートなど、システム全体に及ぶ変更は各コンテナにおいて見ることができる。コンテナは、オンデマンドすなわちユーザまたは動作可能に相互接続したデバイスからの要求を受けて、インスタンス化し、命令を受けて停止または休止状態になってから再インスタンス化することができるように構成されるので、コンテナが実行していない場合、ホスト・マシンのハード・ドライブ・スペースを除きほぼ全くリソースを消費しない。コンテナは例示のために広範囲に使用しているが、本明細書で提供する技術を、例えば、オンデマンドでインスタンス化される仮想マシンなどの他のリソースについて使用することもできる。本明細書は、2013年8月12日出願の米国特許第13/964,977号、「PER REQUEST COMPUTER SYSTEM INSTANCE(要求毎のコンピュータ・システムのインスタンス化)」の全開示をあらゆる目的のために参照により本明細書に組み込む。
図3は、キャッシュの暖機に使用されるドメイン・ネーム・システム(DNS)のクエリを示す環境300の一例を示している。知られているとおり、キャッシュは、情報またはデータについての今後の要求を迅速に行えるよう、透過的に情報またはデータを格納するように構成されたネットワーク・コンポーネントである。サーバのようなネットワークまたはネットワークのコンポーネントのいずれのレベルにおいてもキャッシュをサポートする場合の課題の一つが、クライアント・デバイスのカスタマがリソースまたは情報について要求をしていない場合は特に、キャッシュを最新(フレッシュ)で空でない(暖機)状態で維持することである。
暖機したキャッシュによって、カスタマの要求への応答が速くなり、情報についての要求がされ、キャッシュを非動作状態から起動させなくてはならない場合に発生する待ち時間を削減することができる。いくつかの実施形態において、キャッシュが非動作状態(コールド)の場合、カスタマの要求またはアプリケーションの要求を受信した際、待ち時間及び処理量の削減などの性能問題が生じる。キャッシュを暖機状態に維持することにより、多くの効果が得られる。例えば、キャッシュが起動するたびにボリュームまたはデータベースのキャッシュで同一または類似のクエリを受信する場合、ボリュームまたはデータベースへの新しいクエリの実行時間を短縮化し、性能を向上させる。
キャッシュをリロード(暖機)する一例としての実施形態は、サーバが、サーバのボリュームまたはサーバと動作可能に相互接続したデータベースが過去に記録したデータまたはファイルを包含かどうかを判定することを含む。ボリュームが過去に記録した情報を包含する場合、サーバを、空でない状態にキャッシュを維持するために、キャッシュに情報をロードするように構成してもよい。
図3の一例としての実施形態において、クライアント・デバイス302のカスタマは、ネットワーク301を介して、URLに関連するIPアドレスを要求するDNSクエリ306をDNSサーバ305に送信する。ほぼ同時刻または同時に、DNSサーバは、キャッシュの初期化を要求する334メッセージをプロキシ・サーバ330に送信し、DNSクエリを解決して、IPアドレスを含むメッセージ307をクライアント・デバイスに与えるように構成される。プロキシ・サーバ330へのDNSメッセージ334一例としての実施形態は、データグラムと呼ばれるユーザ・データグラム・プロトコル(UDP)メッセージが含まれ、データグラムは、キャッシュ335に、情報についての要求が到来しつつあることを通知する1から2キロバイトの短いメッセージ、またはデータベース336からのキャッシュのプリロード・ファイル337を要求する、より長いデータグラムであってよい。データベース336及びキャッシュ335は、追加のネットワーク・コンポーネントを介して直接または間接的に動作可能に相互接続すればよい。このような一例としての実施形態では、プロキシ・サーバへのファイルについてのクライアント要求が送信される(332)と、プロキシ・サーバは、キャッシュを暖機し、要求された情報をキャッシュにプリロードするような効率的な方法で、要求に応える(333)ように構成される。キャッシュを予め暖機するまたは暖機することには、高速仮想マシン、データ・ファイル、ストレージ・システム、データベースまたは仮想コンピュータ・システムを予め暖機することが含まれる。プロキシ・サーバは、DNSとクライアント間の任意の仲介サーバであってよく、例えば、プロキシ・サーバはロード・バランサであるかロード・バランシング・レイヤを含む。
代替の一例としての実施形態では、DNSサーバでのキャッシュへの格納は、クライアント・デバイスからDNSクエリを受信後のDNS解決処理中に行うことができる。要求またはクエリの記録は、ネットワーク・オーバヘッド及び要求を解決するDNSサーバへの負荷を軽減するために、キャッシュ妥当性または有効期間として知られている期間中にキャッシュに格納すればよい。クエリの記録は、所定期間DNSサーバに関連するキャッシュに残るため、ネットワーク・アクティビティに従って動的に調整されるか、ネットワーク・アドミニストレータなどに従って予め決定することができる。別の例としての実施形態は、DNSサービス・コンポーネントを、DNSクエリにより効率的に応答するために、対応のIPアドレスに関連するドメイン名をキャッシュに格納するように構成することを含むことができる。
図4は、図1に関連して記載し、例示したDNSサーバ105などのDNSサーバによるDNSクエリに応答するのに使用されるプロセス400の一例を示す。1つの実施形態において、プロセス400は、DNSクエリをクライアント・デバイスから受信すること(402)を含み、DNSクエリは、クライアント・デバイスによって、上述のようにネットワークを介して提示されるものでよい。要求は、例えば、クライアント・デバイスのカスタマによって、DNSサーバまたは図1に関連して述べたようなDNS用のサービス処理システムで受信される。図4を参照すると、DNSサービス・サーバは、ユーザ・データグラム・プロトコル(UDP)メッセージをロード・バランサに送信する(404)。ロード・バランサは、ハードウエア、またはソフトウエア・アプリケーション内のロード・バランシング・レイヤでありうる。代替の実施形態は、DNSサーバが、UDPメッセージをプロキシ・サーバもしくは別のネットワーク・コンポーネントに送信する、またはUDPメッセージを複数の仲介コンポーネントを介して送信することを含むことができる。代替の一例としての実施形態は、DNSサーバが、UDP以外のプロトコルを使用して、異なるメッセージまたは要求を送信することを含む。
UDPメッセージの送信と並行して、DNSサービスは、DNSクエリを解決して、ロード・バランサのインターネット・プロトコル(IP)アドレスを、DNSクエリを送信したクライアントのクライアント・デバイスに送信するように構成される(410)。代替の例としての実施形態は、IPアドレスの送信とは別の時間にUDPメッセージをクライアント・デバイスに送信することを含む。プロセス400が継続すると、ロード・バランサのIPアドレスがクライアント・デバイスに送信された後、クライアント・デバイスはロード・バランサに接続すればよい(412)。
プロセス400が継続すると、DNSサーバがUDPメッセージをロード・バランサに送信後、DNSサーバは、図1に関連して例示し説明したコンテナ121などのコンテナを有効にする旨の通知を送信する(406)。DNSサーバは、コンテナ、コンテナを管理するリソース・サービス、コンテナをサポートするハードウエア・コンポーネントもしくはファーム、ロード・バランサもしくはロード・バランシング・レイヤ、またはコンテナと通信可能な他のネットワーク・コンポーネントに直接通知を送信してもよい。図4に戻って、DNSサーバまたは他のネットワーク・コンポーネントは、DNSクエリに関連するリソースを格納するコンテナの識別子をロード・バランサに転送する(408)ように構成してもよい。1つの例示としての実施形態では、ロード・バランサのIPアドレスは、DNSがホストするパブリックIPアドレスである。代替の一例としての実施形態では、ロード・バランサのIPアドレスは、異なるまたは別のウェブ・サービスによってホストされ、追加のアクションを必要とする。例えば、コンテナはプライベートIPアドレスを持っているので、IPアドレスはインターネットで公的に人目に触れることはなく、したがって、このような場合、ロード・バランサは、すべてのトラフィックをプロキシする、例えば、ロード・バランサをプロキシするよう構成される。さらに別の例としての実施形態は、インスタンス化されているコンテナが、パブリックIPアドレスを受信するので、コンテナはインターネットで人目に触れ、したがって、クライアント及びコンテナは、ロード・バランサまたは他のプロキシを必要とすることなく直接通信する。
プロセス400が継続されると、UDPメッセージの送信と並行して、DNSサーバは、DNSクエリを解決して、ロード・バランサのIPアドレスをクライアント・デバイスに送信し(410)、クライアント・デバイスがロード・バランサと接続する(412)。代替の例としての実施形態では、クライアント・デバイスを、コンテナと直接接続するように構成してもよい。
図5は、図1に関連して例示し、説明したコンテナ121などの仮想リソースが有効かどうかを判定するのに使用されるプロセス500の一例を示す。プロセス500は、DNSサーバまたはサービスにより、仮想リソースのリソース識別子に関連するDNSクエリを獲得する(502)ことにより開始する。リソース識別子は、DNSクエリの一部に含まれる固有識別子であってよい。DNSサーバは、さらに、仮想リソースに関連するもしくは動作可能に相互接続されたロード・バランシング・レイヤまたはロード・バランサに、ステータス要求通知を送信する(504)。ロード・バランサが、仮想リソースのステータスが有効かどうかを判定する(506)、例えば、コンテナが現在インスタンス化されているかどうかを判定することによって、プロセス500は継続する。コンテナが有効である場合、DNSサーバはDNSクエリを解決してもよい(512)。コンテナが有効でない場合、DNSサーバまたは他のネットワーク・コンポーネントは、仮想リソースを有効化するようメッセージを送信する(508)ように構成される。DNSサーバまたは他のネットワーク・コンポーネントは、仮想リソースの識別子をロード・バランサに送信または転送するように構成され、仮想リソースが再度インスタンス化されることになる(510)。仮想リソースが有効である時点で、DNSサーバはDNSクエリを解決してもよい(512)。
図6は、ドメイン・ネーム・システム情報をインターネット・プロトコル・アドレスに関連付けるのに使われるようなプロセス600の一例を示す。プロセス600は、多くのネットワーク・コンポーネントのうちの一つ、例えばDNSサービスによって実行することができる。DNSサービスは、クライアント・デバイスからDNSクエリを受信し(602)、ドメイン名についてDNSクエリの少なくとも一部を構文解析する(604)。DNSサービスは、ドメイン名をリソース識別子に関連付け(606)、リソース識別子を、DNSサービスに関連するキャッシュに記録する(608)。代替の例としての実施形態では、DNSサービスは、リソース識別子を、DNSサービスにアクセス可能なデータベースまたはファイルに記録することができる。記録には、クライアント・デバイスのカスタマについて知られている追加情報、例えば課金契約、サービス契約の質、サービス・プロバイダ情報、ネットワーク・プロバイダ情報などが含まれていてよい。図6に戻って、DNSサービスは、類似するリソース識別子について、DNSサービスに関連するキャッシュを検索する(610)。リソースが既にキャッシュに存在する場合、リソースの記録を比較して、情報が失われているまたは更新されているものがあるかどうかを判定する。DNSサービスは、現在または今後、DNSクエリを解決するためにリソース識別子を利用することができる(612)。
図7は、本開示の様々な実施形態が実施されうる環境700の一例を示す。環境700では、コンピューティング・リソース・サービス・プロバイダ703が、様々なサービスをカスタマ702に提供してもよい。カスタマ702は、動作し、ビジネス・ニーズを管理するために、・コンピューティング・リソース・サービス・プロバイダ703が提供する様々なサービスを利用するような組織であってよい。図7に示すように、カスタマ702は、インターネットなど1つ以上の通信ネットワーク701を通じてコンピューティング・リソース・サービス・プロバイダ703と通信してもよい。カスタマ702からコンピューティング・リソース・サービス・プロバイダ703への通信の中には、コンピューティング・リソース・サービス・プロバイダ703に、本明細書に記載の様々な技術またはその変形にしたがって動作させるものがある。コンテナ・リソース・サービス707は、コンテナを実行させることができるハードウエアの1つまたは複数のフリートで維持されるハードウエア及び仮想コンピュータ・システムの集合体であってよい。
ドメイン・ネーム・システム(DNS)サービス706を、エンド・ユーザの経路を1つ以上の通信ネットワーク・アプリケーションに指定する方法をカスタマに与えるように構成してもよい。例えば、DNSサービス706を、ユニフォーム・リソース・ロケータ(URL)など人間が読み取り可能な名称を、インターネットを介して互いに接続するためにコンピュータ・システムが使用する数値インターネット・プロトコル(IP)アドレスに変換するよう構成してもよい。したがって、DNSサービス706を、コンピューティング・リソース・サービス・プロバイダが提供する1つ以上のサービスにアクセスする要求を、特定のデータ・ゾーン内で動作するインフラに接続させるよう構成してもよい。さらに、DNSサービス706を、コンピューティング・リソース・サービス・プロバイダ703のカスタマの経路が、別のプロバイダが運営する別のオペレーティング・システムなど、特定のデータ・ゾーン外のインフラに指定されるように構成してもよい。
さらに、コンピューティング・リソース・サービス・プロバイダ703は、カスタマのニーズに基づいて1つ以上の他のサービス704を管理してもよい。例えば、コンピューティング・リソース・サービス・プロバイダ703は、コンピューティング・リソース・サービス・プロバイダ703の各カスタマ702について、カスタマのアカウント情報を管理するよう共同で動作するコンピューティング・リソースの集合体からなるアカウント・サービスを保てばよい。アカウント・サービスは、例えば、コンピューティング・リソース・サービス・プロバイダ703の各カスタマ702について、カスタマ名、アドレス、電話番号、請求書の詳細及び他の個人識別情報を含めてもよい。さらに、アカウント・サービスは、コンピューティング・リソース・サービス・プロバイダ703が提供する1つ以上のサービスにアクセスするための正当な権限をカスタマ702が有していることを立証するのに使用されるような、暗号キーまたは他の身分証明を含んでいてもよい。他のサービスとしては、認証サービス、他のサービスを管理するサービス及び/または他のサービスが含まれるが、これらに限定されることはない。
図8は様々な実施形態にかかる態様を実施するための一例としての環境800の態様を示す。説明のために、ウェブ・ベースの環境を使用するが、様々な実施形態を実施するよう、適宜別の環境を使用してもよいことは理解されよう。環境には、電子クライアント・デバイス802を含み、クライアント・デバイス802には、好適なネットワーク804を介して要求、メッセージまたは情報を送り、いくつかの実施形態においては、情報をデバイスのユーザに送り返すよう動作可能な好適なデバイスが含まれる。このようなクライアント・デバイスの例として、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージ・デバイス、ラップトップ・コンピュータ、タブレット・コンピュータ、セットトップ・ボックス、パーソナル・データ・アシスタント(PDA)、埋め込み型コンピュータ・システム、電子ブック・リーダなどが挙げられる。ネットワークとしては、イントラネット、インターネット、セルラー・ネットワーク、ローカル・エリア・ネットワーク、衛星ネットワーク、または他のネットワーク及び/またはこれらの組み合わせを含む任意の好適なネットワークを挙げることができる。このようなシステムで使用されるコンポーネントは、ネットワークの種類及び/または選択した環境に少なくとも一部依存する。このようなネットワークを介した通信のためのプロトコル及びコンポーネントは公知であるので、ここでは詳細に述べない。ネットワークを介した通信は、有線または無線接続及びその組み合わせにより有効になる。この例では、当業者には自明なように、他のネットワークについては、同様な目的を与える代替のデバイスを使用することができるが、環境が要求を受信して、要求への応答としてコンテンツを与えるようなウェブ・サーバ806を含むように、ネットワークはインターネットを含む。
例示した環境は、アプリケーション・サーバ808及びデータ・ストア810を少なくとも含む。好適なデータ・ストアからデータを獲得するなどのタスクを行うよう相互作用可能なように連鎖、そうでなければ構成されるアプリケーション・サーバ、レイヤもしくは他の要素、プロセスもしくはコンポーネントがいくつかあることを理解されたい。本明細書で使用するサーバは、ハードウエア・デバイスまたは仮想コンピュータ・システムなど、様々な方法で実装してもよい。いくつかの文脈では、サーバは、コンピュータ・システム上で実行されるプログラミング・モジュールを指すことがある。本明細書で使用しているように、別段の記載があるとき、または文脈から明らかであるときを除き、「データ・ストア」という用語は、データを格納でき、データにアクセスでき、データを取り出し可能な任意のデバイスまたはデバイスの組み合わせを指し、任意の標準的、分散型、仮想型またはクラスタ型環境における、任意の組み合わせ及び数のデータ・サーバ、データベース、データ・ストレージ・デバイス及びデータ・ストレージ・メディアが含まれるものであってよい。アプリケーション・サーバは、クライアント・デバイスについて1つ以上のアプリケーションの態様を実行するために、必要に応じてデータ・ストアと統合化し、各アプリケーションについてデータ・アクセス及びビジネス・ロジックのいくつかまたはすべてに対処するための任意のハードウエア、ソフトウエア及びファームウェアを含むことができる。アプリケーション・サーバによって、データ・ストアと協働してアクセス制御サービスを提供してもよく、ハイパーテキスト・マークアップ言語(「HTML」)、拡張マークアップ言語(「XML」)、ジャバスクリプト、カスケーディング・スタイル・シート(「CSS」)または別の好適なクライアント側の構造化言語の形式でウェブ・サーバがユーザに与えられるような、テキスト、グラフィック、音声、ビデオ及び/またはユーザに提供するために利用可能な他のコンテンツを含む、ただしこれらに限定されることはない、コンテンツを生成することができる。クライアント・デバイスに転送されるコンテンツを、クライアント・デバイスが処理して、ユーザに聞き取り可能に、視覚的に及び/または触覚、味覚、嗅覚を含めた他の感覚を通じて認識可能な形態を含む、ただしこれらに限定されることはない、1つ以上の形態でコンテンツを提供するようにしてもよい。クライアント・デバイス802とアプリケーション・サーバ808との間のコンテンツのやり取りと同様にすべての要求及び応答の対処は、PHP:ハイパーテキスト・プリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XMLまたはこの例における他の好適なサーバ側の構造化言語を使用してウェブが対処することができる。本明細書で検討する構造化コードは、本明細書の他の箇所で検討したような任意の好適なデバイスまたはホスト・マシン上で実行可能であるので、ウェブ及びアプリケーション・サーバは必須ではなく、単なる一例としてのコンポーネントであることを理解されたい。さらに、単一のデバイスによって実行されるような本明細書に記載の動作は、文脈から明らかなときを除き、分散型及び/または仮想システムの形態をとるような、複数のデバイスによって共同で実行してもよい。
データ・ストア810は、いくつかの別個のデータ・テーブル、データベース、データ・ドキュメント、動的データ・ストレージ・スキーム及び/または本開示の特定の態様に関連するデータ格納のためのデータ・ストレージ機構及びメディアを含むことができる。例えば、例示のデータ・ストアは、プロダクション・データ812及び及びユーザ情報816を格納するための機構を含んでいてもよく、データ812、816を生産側にコンテンツを提供するために使用することができる。さらに、データ・ストアは、ログ・データ814を格納するための機構を含むものとして示されており、データ813をレポート、解析または他のそのような目的のために使用することができる。適宜、上で挙げた機構のいずれか、またはデータ・ストア810の追加の機構に格納可能なページ画像情報及びアクセス権情報など、データ・ストアに格納する必要がある他の多くの態様があることを理解されたい。データ・ストア810は、関連のロジックを通じて、アプリケーション・サーバ808から指示を受信し、指示に応答してデータを獲得し、更新または処理するよう動作可能である。アプリケーション・サーバ808は、受信した指示に応答して、静的データ、動的データまたは静的と動的データの組み合わせを与える。ウェブ・ログ(ブログ)、ショッピング・アプリケーション、ニュース・サービス及び他のこのようなアプリケーションで使用されるデータなどの動的データを、本明細書で記載のようなサーバ側の構造化言語によって生成してもよく、またはアプリケーション・サーバ上またはアプリケーション・サーバによる制御の下作動するコンテンツ管理システム(「CMS」)によって提供してもよい。一つの例では、ユーザは、ユーザ操作のデバイスを通じて、ある種類の項目について検索要求を提出することがある。この場合、データ・ストアは、ユーザの身元を立証するためにユーザ情報にアクセスして、当該種類の項目についての情報を獲得するためにカタログ詳細情報にアクセスすることができる。次に、ユーザがユーザのデバイス802上でブラウザを介して見ることが可能なウェブページでリスト化された結果などで、情報をユーザに戻すことができる。特定の対象項目についての情報を、専用のページまたはブラウザのウィンドウで見ることができる。しかしながら、本開示の実施形態は、ウェブページのコンテンツに必ずしも限定されることはなく、通常、要求を処
理するのにより一般的に適用可能なものであってよく、その場合、要求は必ずしもコンテンツについての要求ではないということに注意されたい。
各サーバは、典型的には、一般管理及び当該サーバの動作についての実行可能なプログラム指令を与えるオペレーティング・システムを含み、典型的には、サーバのプロセッサによる実行時、サーバが意図する機能を果たすことを可能にする指令を格納する(ハード・ディスク、ランダム・アクセス・メモリ、リード・オンリー・メモリなど)コンピュータ可読ストレージ媒体を通常含む。オペレーティング・システム及びサーバの一般的な機能についての好適な実施は、公知または市販されており、当業者により、特に本明細書の開示に照らして容易に実施される。
1つの実施形態において、環境は、1つ以上のコンピュータ・ネットワークまたは直接接続を用いて、通信リンクを介して相互接続するいくつかのコンピュータ・システム及びコンポーネントを利用する分散型及び/または仮想コンピュータ環境である。しかしながら、そのようなシステムは、図8に示すコンポーネントより少ないまたははるかに多い数のコンポーネントを有するシステムでも同様に首尾よく動作可能であることは当業者には理解されるであろう。したがって、図8のシステム800の図示は、本来例示的なものであり、開示の範囲を制限するものではないとみなされるべきである。
さらに、様々な実施形態は、広範な動作環境で実施可能であり、いくつかの場合では、複数のアプリケーションのいずれかを動作させるのに使用可能な1つ以上のコンピュータ、コンピューティング・デバイスまたは処理デバイスを含むことができる。ユーザまたはクライアント・デバイスは、標準のオペレーティング・システムで実行されるデスクトップ、ラップトップまたはタブレット・コンピュータ、ならびに携帯電話用ソフトウエアを実行させ、複数のネットワーキング及びメッセージング・プロトコルをサポート可能な無線及び携帯デバイスなど、複数の汎用パーソナル・コンピュータのいずれかを含むことができる。さらに、このようなシステムは、開発及びデータベース管理などの目的で、様々な市販のオペレーティング・システム及び他の知られたアプリケーションを実行させる複数のワークステーションを含むことができる。さらに、これらのデバイスは、ダミー端末、シン・クライアント、ゲーム機及びネットワークを介して通信可能な他のデバイスなど、他の電子デバイスを含むことができる。さらに、これらのデバイスは、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイスを含むことができる。
本開示の様々な実施形態は、伝送制御プロトコル/インターネット・プロトコル(「TCP/IP」)、ユーザ・データグラム・プロトコル(「UDP」)、オープン・システム・インターコネクション(「OSI」)モデルの様々なレイヤで動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサル・プラグ・アンド・プレイ(「UpnP」)、ネットワーク・ファイル・システム(「NFS」)、共通インターネット・ファイル・システム(「CIFS」)及びアップル・トークなど、市販の様々なプロトコルのいずれかを使用して通信をサポートするために、当業者になじみ深い少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレス・ネットワーク、衛星ネットワーク、及びこれらの組み合わせである。
ウェブ・サーバを利用する実施形態において、ウェブ・サーバは、ハイパーテキスト・トランスファ・プロトコル(「HTTP」)サーバ、FTPサーバ、コモン・ゲートウェイ・インタフェース(「CGI」)サーバ、データ・サーバ、ジャバ・サーバ、アパッチ・サーバ、及びビジネス・アプリケーション・サーバを含む、様々なサーバまたはミッドティア・アプリケーションのいずれかを実行させることができる。さらに、サーバはJava(登録商標)、C,C#若しくはC++などのいずれかのプログラミング言語、またはRuby(登録商標)、PHP、Perl(登録商標)、Python(登録商標)もしくはTCL、及びこれらの組み合わせのいずれかで書かれた1つ以上のスクリプトまたはプログラムとして実装される1つ以上のウェブ・アプリケーションを実行するなどして、ユーザのデバイスからの要求に応じてプログラムまたはスクリプトを実行することができる。さらに、サーバは、MySQL、Postgres(登録商標)、MongoDB(登録商標)、及び構造化または非構造化データの格納、取り出し、アクセスが可能な他のあらゆるサーバなどのオープン・ソース・サーバとともに、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)から市販されているデータベース・サーバ、ただしこれらに限定されることはないデータベース・サービスを含む。データベース・サーバは、テーブル型サーバ、ドキュメント型サーバ、非構造化サーバ、リレーショナル・サーバ、非リレーショナル・サーバまたはこれらのサーバおよび及び/または他のデータベース・サーバの組み合わせを含んでいてよい。
環境は、上述の様々なデータ・ストア、その他メモリ及びストレージ媒体を含み得る。これらは、コンピュータのうち1つ以上のコンピュータに固有の(及び/または存在する)、またはネットワークの端から端までコンピュータのいずれかまたはすべてからストレージ媒体上などの様々な場所に存在可能である。ある特定の実施形態のセットにおいて、情報は、当業者にはなじみ深いストレージ・エリア・ネットワーク(「SAN」)に存在すればよい。同様に、コンピュータ、サーバまたは他のネットワーク・デバイスに起因する機能を実行するために必要なファイルを、適宜局所的及び/または遠隔に格納すればよい。システムがコンピュータ化したデバイスを含む場合、そのようなデバイスは各々バスを介して電子的に接続されるハードウエア要素を含み、要素は、例えば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチ・スクリーンまたはキーパッド)及び少なくとも1つの出力装置(例えば、表示装置、プリンタまたはスピーカ)を含む。さらに、このようなシステムは、ディスク・ドライブ、光学ストレージ・デバイス、及びランダム・アクセス・メモリ(「RAM」)またはリード・オンリー・メモリ(「ROM」)などの固体ストレージ・デバイスなどの1つ以上のストレージ・デバイス、ならびにリムーバブル・メディア・デバイス、メモリ・カード、フラッシュ・カードなどを含んでいてもよい。
さらに、そのようなデバイスは、コンピュータ可読ストレージ媒体リーダ、通信装置(例えば、モデム、ネットワーク・カード(無線または有線)、赤外線通信装置など)、及び上述の作業メモリを含んでいてもよい。コンピュータ可読ストレージ媒体リーダは、リモート、ローカル、固定及び/またはリムーバブル・ストレージ・デバイス、ならびに一時的及び/または永続的にコンピュータ可読情報を含み、格納し、送信し、及び取り出すためのストレージ媒体を表わすコンピュータ可読ストレージ媒体と接続する、またはコンピュータ可読ストレージ媒体を受け入れるように構成することができる。さらに、システム及び様々なデバイスは、典型的には、少なくとも1つの作業メモリ内に位置する複数のソフトウエア・アプリケーション、モジュール、サービスまたは他の要素を含み、クライアント・アプリケーションまたはウェブ・ブラウザなどのオペレーティング・システム及びアプリケーション・プログラムを含む。代替の実施形態は上述の実施形態からの多数の変形を有してもよいことを理解されたい。例えば、ハードウエア、(アプレットなどの携帯用ソフトウエアを含む)ソフトウエア、またはハードウエアとソフトウエアの両方で、カスタマイズされたハードウエアを使用してもよく、及び/または特定の要素を実装してもよい。さらに、ネットワーク入出力装置など別のコンピューティング・デバイスへの接続を用いてもよい。
コードまたはコードの一部を含むストレージ媒体及びコンピュータ可読媒体としては、当該技術で知られているまたは使用されている任意の好適な媒体を挙げることができる。任意の好適な媒体は、ストレージ媒体および通信媒体を含み、揮発性媒体、不揮発性媒体、取り外し可能媒体、固定の媒体であってストレージ及び/またはコンピュータ読み込み可能指示、データ構造、プログラム・モジュールまたは他のデータなどの情報伝達のための任意の方法または技術で実装され、RAM、ROM、Electrically Erasable Programmable Read−Only Memory(「EEPROM」)、フラッシュメモリ、若しくは他のメモリ技術、Compact Disc Read−Only Memory(「CD−ROM」)、デジタル多目的ディスク(DVD)または他の光メモリ、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気ストレージ・デバイスまたは任意の他の媒体であって、それらは所望の情報を記憶するために使用されることができ、及びシステムデバイスによりアクセスすることができる。本明細書で示した開示及び教示に基づき、当業者であれば当該の様々な実施形態を実装するためのほかのやり方及び/または方法を理解するであろう。
したがって、明細書および及び図面は限定的な意味ではなく、むしろ例示的な意味であるとみなされるものである。しかしながら、特許請求の範囲に記載のような発明のより広範な要旨及び範囲から逸脱することなく、様々な改良や変更が考えられることは明らかであろう。
他の変形は本開示の要旨の範囲内である。よって、開示の技術は様々な変更及び代替の構造を受けやすいものの、そのうちいくつかの例示的な実施形態を図面に示し、上で詳細に説明してきた。しかしながら、本発明を1つまたは複数の特定の形態に限定する意図はなく、逆に、添付の特許請求の範囲で定義するように、発明の要旨及び範囲内の変形、代替の構造及び等価物をすべて包含することを意図していると理解されたい。
開示の実施形態を説明する文脈における(特に以下の特許請求の範囲の文脈における)用語「1つの(a/an)」、「その(the)」、及び類似の指示対象は、本明細書で特段示されているときを除き、または明らかに文脈と矛盾するときを除き、単数及び複数のいずれも含むとして解釈されるべきである。用語「備える(comprising)」、「有する(having)」、「含む(including)」及び「含む(containing)」は、制限なしの用語(すなわち、「含むが、それに限定されることはない(including, but not limited to,)」を意味する)ものとして解釈されるべきである。限定されておらず、物理的な接続を指す場合の用語「接続された(connected)」は、何か介在するものがあっても、部分的または全体的に中に含まれる、取り付けられている、または結合しているとして解釈されるべきである。本明細書の値の範囲の言及は、特段示されているときを除き、範囲内に収まるそれぞれ別個の値を個々に言及する簡潔な方法の働きをすると単に意図しているものであり、それぞれの別個の値は、個々に本明細書で言及されているかのように、明細書に取り入れられる。用語「集合/セット(set)(例えば、「項目の集合/セット(a set of items)」)または「部分集合/サブセット(subset)」は、特段の記載があるときを除き、または文脈と明らかに矛盾するときを除き、1つ以上のメンバーからなる非空の集まりとして解釈されるべきである。さらに、特段の記載があるときを除き、または文脈と明らかに矛盾するときを除き、対応する集合/セットの「部分集合/サブセット(subset)」という用語は、対応する集合/セットの正式な部分集合/サブセットを必ずしも示すものではなく、部分集合/サブセットと対応の集合/セットが等しいものであってもよい。
「A、B、およびCのうち少なくとも1つの」または「A、BおよびCのうち少なくとも1つの」という形式の言い回しなどの接続語は、別段の記載があるとき、または文脈と明らかに矛盾するときを除き、項目、用語などが、A、B、Cのいずれか、またはAとBとCの集合の非空部分集合であることを示すために通常使用されるような文脈で理解する。例えば、3つのメンバーを有する集合の例では、「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つ以上のプロセッサによって実行可能な複数の指示からなるコンピュータ・プログラムの形態で格納されてよい。コンピュータ可読ストレージ媒体は非一時的なものであってよい。
本明細書のありとあらゆる例、または例を示す言葉(例えば、「such as」)の使用は、発明の実施形態をより明らかにするためだけのものであり、特許請求の範囲で別段の記載があるときを除き、発明の範囲を限定するものではない。明細書のいずれの言葉も、特許請求の範囲に記載されない要素がいずれも、発明の実施に必須であると解釈されるものではない。
実施形態の変形は、上記の説明を読み取ることで、当業者には明らかであろう。本発明者は、このような変形を適宜使用するしたがって、本開示の範囲は、適用可能な法律が認めるように、添付の特許請求の範囲に記載される主題のすべての変形及び等価物を含む。さらに、すべての可能な変形における上述の要素のいかなる組み合わせも、本明細書で特段示されているとき、または明らかに文脈と矛盾するときを除き、本開示の範囲に包含される。
本明細書で引用した出版物、特許出願及び特許を含めたすべての引例を、各引例が参照することによって援用されるものと個々に、具体的に示され、その全体を本明細書に記載されているかのように、同程度に参照することによってここに援用する。
開示の実施形態を以下の条項に照らして説明する。
条項
1.コンテナをインスタンス化するためのコンピュータ実施方法であって、
実行可能な指示で構成された1つ以上のコンピュータの制御の下で、
ドメイン・ネーム・システム(DNS)サービスから、インターネット・プロトコル(IP)アドレスに送信された、ユニフォーム・リソース・ロケータ(URL)を解決するためのクライアント・デバイスによるDNS要求を示すメッセージを受信することと、
前記メッセージを受信した結果、前記コンテナをインスタンス化することにより、前記インスタンス化されたコンテナが前記IPアドレスに送信された前記要求を処理することができることと、
前記クライアント・デバイスから、前記IPアドレスを対象にする要求を受信することと、前記受信した要求を前記インスタンス化されたコンテナに送ることとを含むコンピュータ実施方法。
2.前記コンテナをインスタンスすることは、リソースについての要求が前記コンテナに送信される前に、前記コンテナをインスタンス化するために、前記DNS要求内の情報を利用することを含むことを特徴とする条項1または2に記載のコンピュータ実施方法。
3.前記コンテナに格納され、前記クライアント・デバイスにより送信される前記要求の経路が、ロード・バランサを介してコンテナに指定され、前記DNSサービスは、前記ロード・バランサのIPアドレスを前記クライアント・デバイスに送るよう構成されることを特徴とする先行する条項のいずれかに記載のコンピュータ実施方法。
4.前記リソースは仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、ウェブサイトまたはアプリケーション・プログラミング・インタフェースであることを特徴とする先行する条項のいずれかに記載のコンピュータ実施方法。
5.1つ以上のサービスを実装するよう構成される少なくとも1つのコンピューティング・デバイスを備えシステムであって、前記1つ以上のサービスは、
コンテナに格納されるリソースの第1の識別子を、前記コンテナに格納されるリソースの第2の識別子に転換する旨の要求を要求元から受信し、
前記コンテナをインスタンス化するよう動作可能な、要求元とは異なるシステムに、前記コンテナに格納されるリソースについての前記第1の識別子を伴う前記要求の通知を送信するよう構成されることを特徴とするシステム。
6.前記要求は、ドメイン・ネーム・システム(DNS)サービスにより受信され、前記DNSサービスは、インターネット・プロトコル(IP)アドレスを前記コンテナに与えるよう構成されるロード・バランシング・レイヤと動作可能に相互接続されることを特徴とする条項5に記載のシステム。
7.前記ロード・バランシング・レイヤは、タイマに動作可能に相互接続され、前記コンテナのインスタンス化と前記コンテナ内のリソースについての次回の要求の間の時間を監視するよう構成されることを特徴とする条項5に記載のシステム。
8.前記ロード・バランシング・レイヤは、タイム・アウト値を制御するよう構成され、タイム・アウト値が最大値に等しいとき、前記ロード・バランシング・レイヤは、動作状態を終了するように前記コンテナにメッセージを送信するように構成され、前記最大値は、予め定めた値または動的に設定される値であればよいことを特徴とする条項5から7のいずれかに記載のシステム。
9.前記1つ以上のサービスは、少なくとも2つのコンテナをインスタンス化するように前記ロード・バランシング・レイヤにメッセージを送信するようにさらに構成され、前記少なくとも2つのコンテナは、第1のリソース、及び前記第1のリソースがアクセス可能な第2のリソースを含むことを特徴とする条項5から8のいずれかに記載のシステム。
10.前記ロード・バランシング・レイヤは、今後の要求を処理するために、前記要求に関連する時間値に少なくとも一部基づいて決定される長さの時間だけ、前記コンテナをインスタンス化したままにするように構成されることを特徴とする条項5から9のいずれかに記載のシステム。
11.前記コンテナをインスタンス化したままにする前記長さの時間を決定することは、前記コンテナが実行されている場所、コンピュータのサイクル数、最大または最小の財務コスト、または前記コンテナに格納される少なくとも1つのリソースに関する媒体の肯定応答に少なくとも一部基づいて前記長さの時間を決定することを含むことを特徴とする条項10に記載のシステム。
12.前記コンテナのライフ・サイクル中、前記コンテナについてのラン・タイムを動的に設定することをさらに含み、前記ラン・タイムは地理的回転の関数、前記コンテナへのアクセスを要求するユーザの地理的場所の関数、または前記コンテナがホストしているリソースの種類の関数に少なくとも一部基づくことを特徴とする条項10に記載のシステム。
13.実行可能な指示を格納した非一時的コンピュータ可読ストレージ媒体であって、コンピュータ・システムの1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、
コンテナに関連する第1の識別子を、ネットワーク・コンポーネントに格納されるリソースの第2の識別子に転換する旨のクライアント・デバイスによる要求を検出し、
検出の結果、前記ネットワーク・コンポーネントをインスタンス化して、前記クライアント・デバイスが前記第2の識別子を参照して要求を送信する前に、前記ネットワーク・コンポーネントに関連するキャッシュを予め暖機させることを特徴とする非一時的コンピュータ可読ストレージ媒体。
14.前記指示は、前記1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ドメイン・ネーム・システム(DNS)サーバに動作可能に相互接続されるキャッシュを維持させる指示をさらに備えることを特徴とする条項13に記載の非一時的コンピュータ可読ストレージ媒体。
15.前記指示は、前記1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示をさらに備え、前記リソースの記録は、前記クライアント・デバイス、クライアント・デバイスのカスタマ、及び/または前記クライアント・デバイスが要求するサービスに関する情報を含むことを特徴とする条項13または14に記載の非一時的コンピュータ可読ストレージ媒体。
16.前記コンピュータ・システムに前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示は、前記コンピュータ・システムに、
前記要求に対応するリソースの記録について前記キャッシュを検索させ、
前記要求を解決するために前記リソースの記録を利用させる指示をさらに備えることを特徴とする条項15に記載の非一時的コンピュータ可読ストレージ媒体。
17.前記指示は、前記1つ以上のプロセッサに実行されると、ネットワーク・コンポーネントが前記ネットワーク・コンポーネントの前記キャッシュ内にリソースに関するデータをプリロードすることに応じて、前記コンピュータ・システムに、仮想マシンまたはコンテナをインスタンス化させる指示をさらに備えることを特徴とする条項13から16のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
18.前記コンピュータ・システムに前記仮想マシンまたは前記コンテナをインスタンス化させる指示は、前記コンピュータ・システムに、前記リソースの種類を含むメッセージを送信させる指示をさらに含み、前記リソースの前記種類は、仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、またはアプリケーション・プログラミング・インタフェースを含むことを特徴とする条項17に記載の非一時的コンピュータ可読ストレージ媒体。
19.前記指示は、前記1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ユーザの要求を送るために、存在点(PoP)の場所を決定させる指示をさらに備えることを特徴とする条項13から18のいずれかに記載の非一時的コンピュータ可読ストレージ媒体。
20.前記コンピュータ・システムに、前記ユーザの要求を送るために、前記PoPの場所を決定させる指示は、前記コンピュータ・システムに、前記PoPの場所にメッセージを送信させる指示をさらに含み、前記メッセージは入ってくるアクティビティの通知を含むことを特徴とする条項19に記載の非一時的コンピュータ可読ストレージ媒体。

Claims (15)

  1. コンテナをインスタンス化するためのコンピュータ実施方法であって、
    実行可能な指示で構成された1つ以上のコンピュータの制御の下で、
    ドメイン・ネーム・システム(DNS)サービスから、インターネット・プロトコル(IP)アドレスへ送信された、ユニフォーム・リソース・ロケータ(URL)を解決するためのクライアント・デバイスによって行われるDNS要求を示すメッセージを受信することと、
    前記メッセージを受信した結果、前記コンテナをインスタンス化することにより、前記インスタンス化されたコンテナが、前記IPアドレスに送信された前記要求を処理することができることと、前記クライアント・デバイスから、前記IPアドレスを対象にする要求を受信することと、 前記受信した要求を前記インスタンス化されたコンテナに送ることとを含むコンピュータ実施方法。
  2. 前記コンテナをインスタンスすることは、リソースについての要求が前記コンテナに送信される前に、前記コンテナをインスタンス化するために、前記DNS要求内の情報を利用することを含むことを特徴とする請求項1記載のコンピュータ実施方法。
  3. 前記コンテナに格納され、前記クライアント・デバイスにより送信される前記要求の経路が、ロード・バランサを介してコンテナに指定され、前記DNSサービスは、前記ロード・バランサのIPアドレスを前記クライアント・デバイスに送るよう構成され、
    前記リソースは仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、ウェブサイトまたはアプリケーション・プログラミング・インタフェースであることを特徴とする請求項2に記載のコンピュータ実施方法。
  4. 1つ以上のサービスを実装するよう構成される少なくとも1つのコンピューティング・デバイスを備えるシステムであって、前記1つ以上のサービスは、
    コンテナに格納されるリソースの第1の識別子を、前記コンテナに格納されるリソースの第2の識別子に転換する旨の要求を要求元から受信し、
    前記コンテナをインスタンス化するよう動作可能な、要求元とは異なるシステムに、前記コンテナに格納されるリソースについての前記第1の識別子を伴う前記要求の通知を送信するよう構成されることを特徴とするシステム。
  5. 前記要求は、ドメイン・ネーム・システム(DNS)サービスにより受信され、前記DNSサービスは、インターネット・プロトコル(IP)アドレスを前記コンテナに与えるよう構成されるロード・バランシング・レイヤと動作可能に相互接続されることを特徴とする請求項4に記載のシステム。
  6. 前記ロード・バランシング・レイヤは、タイマに動作可能に相互接続され、前記コンテナのインスタンス化と前記コンテナ内のリソースについての次回の要求の間の時間を監視するよう構成されることを特徴とする請求項5に記載のシステム。
  7. 前記ロード・バランシング・レイヤは、タイム・アウト値を制御するよう構成され、タイム・アウト値が最大値に等しいとき、前記ロード・バランシング・レイヤは、動作状態を終了するように前記コンテナにメッセージを送信するように構成され、前記最大値は、予め定めた値または動的に設定される値であればよいことを特徴とする請求項5に記載のシステム。
  8. 前記1つ以上のサービスは、少なくとも2つのコンテナをインスタンス化するように前記ロード・バランシング・レイヤにメッセージを送信するようにさらに構成され、前記少なくとも2つのコンテナは、第1のリソース、及び前記第1のリソースがアクセス可能な第2のリソースを含むことを特徴とする請求項5に記載のシステム。
  9. 前記ロード・バランシング・レイヤは、今後の要求を処理するために、前記要求に関連する時間値に少なくとも一部基づいて決定される長さの時間だけ、前記コンテナをインスタンス化したままにするように構成されることを特徴とする請求項5に記載のシステム。
  10. 前記コンテナをインスタンス化したままにする前記長さの時間を決定することは、前記コンテナが実行されている場所、コンピュータのサイクル数、最大または最小の財務コスト、または前記コンテナに格納される少なくとも1つのリソースに関する媒体の肯定応答に少なくとも一部基づいて前記長さの時間を決定することを含むことを特徴とする請求項9に記載のシステム。
  11. 前記コンテナのライフ・サイクル中、前記コンテナについてのラン・タイムを動的に設定することをさらに含み、前記ラン・タイムは地理的回転の関数、前記コンテナへのアクセスを要求するユーザの地理的場所の関数、または前記コンテナがホストしているリソースの種類の関数に少なくとも一部基づくことを特徴とする請求項9に記載のシステム。
  12. 実行可能な指示を格納した非一時的コンピュータ可読ストレージ媒体であって、コンピュータ・システムの1つ以上のプロセッサに実行されると、前記コンピュータ・システムに少なくとも、
    コンテナに関連する第1の識別子を、ネットワーク・コンポーネントに格納されるリソースの第2の識別子に転換する旨のクライアント・デバイスによる要求を検出し、
    検出の結果、前記ネットワーク・コンポーネントをインスタンス化して、前記クライアント・デバイスが前記第2の識別子を参照して要求を送信する前に、前記ネットワーク・コンポーネントに関連するキャッシュを予め暖機することを特徴とする非一時的コンピュータ可読ストレージ媒体。
  13. 前記指示は、前記1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる指示をさらに備え、前記リソースの記録は、前記クライアント・デバイス、クライアント・デバイスのカスタマ、及び/または前記クライアント・デバイスが要求するサービスに関する情報を含み、
    前記コンピュータ・システムに前記ネットワーク・コンポーネントの前記キャッシュ内のリソースの記録を維持させる前記指示は、
    前記コンピュータ・システムに、前記要求に対応するリソースの記録について前記キャッシュを検索させ、前記要求を解決するために前記リソースの記録を利用させる指示をさらに含むことを特徴とする請求項12に記載の非一時的コンピュータ可読ストレージ媒体。
  14. 前記指示は、前記1つ以上のプロセッサに実行されると、ネットワーク・コンポーネントが前記ネットワーク・コンポーネントの前記キャッシュ内にリソースに関するデータをプリロードすることに応じて、前記コンピュータ・システムに、仮想マシンまたはコンテナをインスタンス化させる指示をさらに備え、前記コンピュータ・システムに前記仮想マシンまたは前記コンテナをインスタンス化させる指示は、前記コンピュータ・システムに、前記リソースの種類を含むメッセージを選択的に送信させる指示をさらに含み、前記リソースの前記種類は、仮想マシン、ウェブ・リソース、画像、ウェブ・フォーム、静止ウェブページ、またはアプリケーション・プログラミング・インタフェースを含むことを特徴とする請求項12に記載の非一時的コンピュータ可読ストレージ媒体。
  15. 前記指示は、前記1つ以上のプロセッサに実行されると、前記コンピュータ・システムに、ユーザの要求を送るために、存在点(PoP)の場所を決定させる指示をさらに備え、
    前記コンピュータ・システムに、前記ユーザの要求を送るために、前記PoPの場所を決定させる指示は、前記コンピュータ・システムに、前記PoPの場所にメッセージを送信させる指示をさらに含み、前記メッセージは入ってくるアクティビティの通知を含むことを特徴とする請求項12に記載の非一時的コンピュータ可読ストレージ媒体。
JP2016558406A 2014-03-28 2015-03-27 コンテナの配置及び実行を調整するサービスの実施態様 Active JP6261758B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/229,702 US10218633B2 (en) 2014-03-28 2014-03-28 Implementation of a service that coordinates the placement and execution of containers
US14/229,702 2014-03-28
PCT/US2015/023167 WO2015149017A1 (en) 2014-03-28 2015-03-27 Implementation of a service that coordinates the placement and execution of containers

Publications (2)

Publication Number Publication Date
JP2017515206A true JP2017515206A (ja) 2017-06-08
JP6261758B2 JP6261758B2 (ja) 2018-01-17

Family

ID=54191961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016558406A Active JP6261758B2 (ja) 2014-03-28 2015-03-27 コンテナの配置及び実行を調整するサービスの実施態様

Country Status (6)

Country Link
US (1) US10218633B2 (ja)
EP (1) EP3123320B1 (ja)
JP (1) JP6261758B2 (ja)
CN (1) CN106133688B (ja)
CA (2) CA2943492C (ja)
WO (1) WO2015149017A1 (ja)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270755B2 (en) 2011-10-03 2019-04-23 Verisign, Inc. Authenticated name resolution
US9477710B2 (en) 2013-01-23 2016-10-25 Microsoft Technology Licensing, Llc Isolating resources and performance in a database management system
US9602426B2 (en) 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US10866765B2 (en) * 2014-06-27 2020-12-15 Hcl Technologies Ltd System and method for managing content using generic content management interface
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
EP3205064A2 (en) * 2014-10-07 2017-08-16 Interdigital Patent Holdings, Inc. Supporting internet protocol (ip) clients in an information centric network (icn)
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US10410155B2 (en) * 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
US9524183B1 (en) 2015-07-22 2016-12-20 Bluedata Software, Inc. Employing application containers in a large scale processing environment
US10791085B2 (en) 2015-11-12 2020-09-29 Verisign, Inc. Techniques for directing a domain name service (DNS) resolution process
CN106790324B (zh) * 2015-11-20 2020-06-16 华为技术有限公司 内容分发方法、虚拟服务器管理方法、云平台和系统
US10356038B2 (en) * 2015-12-14 2019-07-16 Microsoft Technology Licensing, Llc Shared multi-tenant domain name system (DNS) server for virtual networks
US10250452B2 (en) 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
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
US9910713B2 (en) * 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10482108B2 (en) * 2016-02-26 2019-11-19 Red Hat, Inc. Container clustering in a container-based architecture
CN107196982B (zh) * 2016-03-14 2021-01-22 阿里巴巴集团控股有限公司 一种用户请求的处理方法和装置
US20170272400A1 (en) * 2016-03-17 2017-09-21 Microsoft Technology Licensing, Llc Network virtualization of containers in computing systems
US20170322824A1 (en) * 2016-05-05 2017-11-09 Microsoft Technology Licensing, Llc Cloning Computing Device Containers
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10999240B1 (en) 2016-08-31 2021-05-04 Verisign, Inc. Client controlled domain name service (DNS) resolution
US10135916B1 (en) 2016-09-19 2018-11-20 Amazon Technologies, Inc. Integration of service scaling and external health checking systems
US10182033B1 (en) * 2016-09-19 2019-01-15 Amazon Technologies, Inc. Integration of service scaling and service discovery systems
US20180091449A1 (en) * 2016-09-26 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Event-driven policy-based distributed container management system
CN108243239A (zh) * 2016-12-27 2018-07-03 阿里巴巴集团控股有限公司 一种提供网页应用服务的方法、装置、电子设备及系统
US11061706B2 (en) * 2017-01-06 2021-07-13 Cisco Technology, Inc. Method of tracking usage of virtual machines
US10333985B2 (en) * 2017-01-09 2019-06-25 Microsoft Technology Licensing, Llc Distribution and management of services in virtual environments
US10904211B2 (en) 2017-01-21 2021-01-26 Verisign, Inc. Systems, devices, and methods for generating a domain name using a user interface
US11153224B2 (en) * 2017-02-09 2021-10-19 Radcom Ltd. Method of providing cloud computing infrastructure
CN106941493B (zh) * 2017-03-30 2020-02-18 北京奇艺世纪科技有限公司 一种网络安全态势感知结果输出方法及装置
US11212250B2 (en) * 2017-03-31 2021-12-28 Nec Corporation Relay device, network system, and network control method
US10592258B2 (en) * 2017-07-07 2020-03-17 Facebook, Inc. Systems and methods for loading features
CN107707607A (zh) * 2017-07-24 2018-02-16 上海壹账通金融科技有限公司 应用访问方法、装置、计算机设备和存储介质
KR102120868B1 (ko) * 2017-08-09 2020-06-09 삼성전자주식회사 서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법
US11257002B2 (en) * 2017-11-22 2022-02-22 Amazon Technologies, Inc. Dynamic accuracy-based deployment and monitoring of machine learning models in provider networks
CN107894886B (zh) * 2017-11-23 2019-02-19 北京九章云极科技有限公司 一种运行代码的方法、装置及终端设备
US11513864B2 (en) * 2018-03-22 2022-11-29 Amazon Technologies, Inc. Adoption of existing virtual computing resources into logical containers for management operations
US10250677B1 (en) * 2018-05-02 2019-04-02 Cyberark Software Ltd. Decentralized network address control
KR102093130B1 (ko) * 2018-06-11 2020-04-23 주식회사 티맥스에이앤씨 컨테이너 기반 클라우드 서버를 위한 통합관리 시스템
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
CN109150684B (zh) * 2018-07-20 2021-04-06 新华三技术有限公司 报文处理方法、装置、通信设备及计算机可读存储介质
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN110908774B (zh) * 2018-09-14 2023-04-14 阿里巴巴集团控股有限公司 一种资源调度方法、设备、系统及存储介质
WO2020077497A1 (zh) * 2018-10-15 2020-04-23 华为技术有限公司 通过向grs服务器发送关键值进行域名解析的方法及设备
US10778798B2 (en) * 2018-10-24 2020-09-15 Hewlett Packard Enterprise Development Lp Remote service access in a container management system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10977095B2 (en) * 2018-11-30 2021-04-13 Microsoft Technology Licensing, Llc Side-by-side execution of same-type subsystems having a shared base operating system
US10942855B2 (en) * 2019-03-18 2021-03-09 Microsoft Technology Licensing, Llc Contextual loading based on dynamic context
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US10805652B1 (en) * 2019-03-29 2020-10-13 Amazon Technologies, Inc. Stateful server-less multi-tenant computing at the edge
US11010149B2 (en) * 2019-04-03 2021-05-18 International Business Machines Corporation Shared middleware layer containers
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11979334B2 (en) * 2019-07-22 2024-05-07 International Business Machines Corporation Internet activity compartmentalization
CN112532758B (zh) * 2019-09-19 2023-04-18 贵州白山云科技股份有限公司 一种网络边缘计算系统的创建方法、装置及介质
US11853806B2 (en) 2019-09-27 2023-12-26 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
CN110851233A (zh) * 2019-10-15 2020-02-28 成都西山居世游科技有限公司 一种基于Docker容器的服务网络信息统计方法及其系统
CN111314462A (zh) * 2020-02-14 2020-06-19 京东数字科技控股有限公司 资源处理方法、设备及存储介质
CN111273965B (zh) * 2020-02-17 2021-10-29 支付宝(杭州)信息技术有限公司 一种容器应用启动方法、系统、装置及电子设备
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
EP3901807B1 (de) * 2020-04-20 2022-07-27 Siemens Aktiengesellschaft Erstellen eines domain-name-system-container-images zum erstellen einer domain-name-system-container-instanz
CN111931100B (zh) * 2020-06-22 2024-04-26 北京旷视科技有限公司 请求处理系统、方法、装置、电子设备和计算机可读介质
CN112291094B (zh) * 2020-10-30 2022-07-15 康键信息技术(深圳)有限公司 容器网络管理方法、装置、设备及存储介质
US11256493B1 (en) 2020-11-03 2022-02-22 Bank Of America Corporation Container image optimizer
US11196665B1 (en) 2020-11-12 2021-12-07 Sap Se Routing application calls
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN112559329A (zh) * 2020-12-04 2021-03-26 中国电力科学研究院有限公司 一种对能源控制器的系统及软件进行检测的方法及系统
US11995350B2 (en) 2020-12-23 2024-05-28 Red Hat, Inc. Prefetching container data in a data storage system
CN114765580B (zh) * 2020-12-30 2023-11-03 腾讯科技(深圳)有限公司 域外网络资源的网络加速方法、装置、设备及存储介质
CN112529711B (zh) * 2021-02-07 2021-05-14 腾讯科技(深圳)有限公司 基于区块链虚拟机复用的交易处理方法及装置
US20220261270A1 (en) * 2021-02-17 2022-08-18 Connectify, Inc. Reusing software application containers
CN113324401B (zh) * 2021-05-26 2023-01-06 山东瑞良烘干机械科技有限公司 一种烘干机的远程控制系统及其实现方法
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11733729B2 (en) 2021-09-27 2023-08-22 International Business Machines Corporation Centralized imposing of multi-cloud clock speeds
US11606329B1 (en) * 2022-05-12 2023-03-14 Verizon Patent And Licensing Inc. Systems and methods for performance monitoring of service mesh-based environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108702A1 (en) * 2003-11-14 2005-05-19 International Business Machines Corporation On-demand software module deployment
JP2009259206A (ja) * 2008-03-27 2009-11-05 Nippon Telegraph & Telephone West Corp アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
JP2011519203A (ja) * 2008-03-31 2011-06-30 アマゾン テクノロジーズ インコーポレーテッド クラスに基づいてルーティングをリクエストするための方法とシステム
WO2013119841A1 (en) * 2012-02-10 2013-08-15 Nimbula, Inc. Cloud computing services framework
JP2013191958A (ja) * 2012-03-13 2013-09-26 Nippon Telegraph & Telephone West Corp Urlフィルタリング装置

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6877095B1 (en) 2000-03-09 2005-04-05 Microsoft Corporation Session-state manager
US7254634B1 (en) * 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7284053B1 (en) * 2003-03-31 2007-10-16 Cisco Technology, Inc. System and method for loadbalancing in a network environment
US7388839B2 (en) 2003-10-22 2008-06-17 International Business Machines Corporation Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US8566447B2 (en) * 2006-04-10 2013-10-22 Bank Of America Corporation Virtual service switch
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US8589945B2 (en) * 2006-09-14 2013-11-19 1060 Research Limited Method for locating, resolving and invoking software functions
US20080208961A1 (en) * 2007-02-23 2008-08-28 Hostway Corporation Parallel retrieval system
US7991910B2 (en) * 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US7975033B2 (en) * 2007-10-23 2011-07-05 Virtudatacenter Holdings, L.L.C. System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system
US7930427B2 (en) * 2008-03-03 2011-04-19 Microsoft Corporation Client-side load balancing
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7886021B2 (en) 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US8972978B2 (en) * 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US7925782B2 (en) * 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US8336047B2 (en) 2008-08-25 2012-12-18 International Business Machines Corporation Provisioning virtual resources using name resolution
US8677018B2 (en) * 2008-08-25 2014-03-18 Google Inc. Parallel, side-effect based DNS pre-caching
US9197486B2 (en) 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
US8929877B2 (en) * 2008-09-12 2015-01-06 Digimarc Corporation Methods and systems for content processing
US8073972B2 (en) * 2009-05-26 2011-12-06 Red Hat, Inc. System and method for location discovery based on DNS
US20130103556A1 (en) * 2009-06-25 2013-04-25 3Crowd Technologies, Inc. Crowd based content delivery
US20130103785A1 (en) * 2009-06-25 2013-04-25 3Crowd Technologies, Inc. Redirecting content requests
US9055080B2 (en) * 2009-12-14 2015-06-09 Citrix Systems, Inc. Systems and methods for service isolation
US8412832B2 (en) * 2009-12-23 2013-04-02 Citrix Systems, Inc. Systems and methods for GSLB MEP connection management across multiple core appliances
US9141580B2 (en) * 2010-03-23 2015-09-22 Citrix Systems, Inc. Systems and methods for monitoring and maintaining consistency of a configuration
US9116731B2 (en) * 2010-04-07 2015-08-25 Accenture Global Services Limited Cloud reference model framework
US8984589B2 (en) 2010-04-27 2015-03-17 Accenture Global Services Limited Cloud-based billing, credential, and data sharing management system
US8667153B2 (en) * 2010-07-07 2014-03-04 Red Hat Israel, Ltd. Using a virtual network interface to obtain access to resources
US9906488B2 (en) * 2010-10-26 2018-02-27 Cedexis, Inc. Surrogate name delivery network
EP2641383B1 (en) * 2010-11-17 2014-11-12 Telefonaktiebolaget L M Ericsson (publ) DNS server arrangement and method
US8909761B2 (en) * 2011-02-08 2014-12-09 BlueStripe Software, Inc. Methods and computer program products for monitoring and reporting performance of network applications executing in operating-system-level virtualization containers
US8862933B2 (en) * 2011-02-09 2014-10-14 Cliqr Technologies, Inc. Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
WO2012131287A1 (en) * 2011-04-01 2012-10-04 British Telecommunications Plc. Selection of service nodes for provision of services
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
ES2410654B1 (es) 2011-05-12 2014-05-21 Telefónica, S.A. Sistema y método para gestionar la infraestructura de un servicio de red de distribución de contenido en una red isp
US8799412B2 (en) * 2011-06-30 2014-08-05 Amazon Technologies, Inc. Remote browsing session management
US9195768B2 (en) * 2011-08-26 2015-11-24 Amazon Technologies, Inc. Remote browsing session management
US20130073601A1 (en) * 2011-09-21 2013-03-21 Jonathan A. Jenkins Remote process execution management
US9229784B2 (en) * 2011-09-21 2016-01-05 International Business Machines Corporation Determining resource instance placement in a networked computing environment
US8849976B2 (en) * 2011-09-26 2014-09-30 Limelight Networks, Inc. Dynamic route requests for multiple clouds
WO2013049687A1 (en) * 2011-09-30 2013-04-04 Mail Bypass, Inc. Message delivery systems and methods
US9003141B2 (en) * 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
US10425411B2 (en) * 2012-04-05 2019-09-24 Arizona Board Of Regents On Behalf Of Arizona State University Systems and apparatuses for a secure mobile cloud framework for mobile computing and communication
EP2852893A1 (en) 2012-05-23 2015-04-01 Rackspace US, Inc. Pluggable allocation in a cloud computing system
US8800011B2 (en) * 2012-05-31 2014-08-05 Rackspace Us, Inc. Validating pointer records in a domain name system (DNS) service
US20130339510A1 (en) * 2012-06-15 2013-12-19 Digital River, Inc Fast provisioning service for cloud computing
US9246874B2 (en) * 2012-06-29 2016-01-26 Verizon Patent And Licensing Inc. Virtual domain name system
US9055118B2 (en) * 2012-07-13 2015-06-09 International Business Machines Corporation Edge caching using HTTP headers
US9563480B2 (en) * 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
US9357034B2 (en) * 2012-09-07 2016-05-31 Oracle International Corporation System and method for orchestration of services for use with a cloud computing environment
US9678805B2 (en) * 2012-09-07 2017-06-13 Red Hat Israel, Ltd. Location-based component deployment for composite applications
ES2552360T3 (es) * 2012-12-19 2015-11-27 Telefónica, S.A. Método de comprobación de funcionamiento distribuido para almacenamiento en memoria caché web en una red de telecomunicaciones
US9420058B2 (en) * 2012-12-27 2016-08-16 Akamai Technologies, Inc. Stream-based data deduplication with peer node prediction
US8886769B2 (en) * 2013-01-18 2014-11-11 Limelight Networks, Inc. Selective content pre-warming in content delivery networks based on user actions and content categorizations
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
EP2782318A1 (en) * 2013-03-18 2014-09-24 Koninklijke KPN N.V. Allocating resources between network nodes for providing a network node function
US9594761B2 (en) * 2013-05-31 2017-03-14 Level 3 Communications, Llc System and method for storing content on a content delivery network
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US20160212012A1 (en) * 2013-08-30 2016-07-21 Clearpath Networks, Inc. System and method of network functions virtualization of network services within and across clouds
US10528718B2 (en) * 2013-09-27 2020-01-07 Paypal, Inc. Method and apparatus for a data confidence index
US9742688B2 (en) * 2013-10-30 2017-08-22 Oracle International Corporation System and method for supporting service resources and feature sets in a cloud platform environment
US20150180992A1 (en) * 2013-12-19 2015-06-25 Limelight Networks, Inc. Content delivery architecture for controlling a digital presence
WO2015126409A1 (en) * 2014-02-21 2015-08-27 Hewlett-Packard Development Company, L.P. Migrating cloud resources
US20150281947A1 (en) * 2014-03-26 2015-10-01 Qualcomm Incorporated Method and apparatus for fast ip address assignment
GB2533434A (en) * 2014-12-16 2016-06-22 Cisco Tech Inc Networking based redirect for CDN scale-down

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108702A1 (en) * 2003-11-14 2005-05-19 International Business Machines Corporation On-demand software module deployment
JP2009259206A (ja) * 2008-03-27 2009-11-05 Nippon Telegraph & Telephone West Corp アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
JP2011519203A (ja) * 2008-03-31 2011-06-30 アマゾン テクノロジーズ インコーポレーテッド クラスに基づいてルーティングをリクエストするための方法とシステム
WO2013119841A1 (en) * 2012-02-10 2013-08-15 Nimbula, Inc. Cloud computing services framework
JP2013191958A (ja) * 2012-03-13 2013-09-26 Nippon Telegraph & Telephone West Corp Urlフィルタリング装置

Also Published As

Publication number Publication date
CN106133688A (zh) 2016-11-16
CA2943492A1 (en) 2015-10-01
EP3123320A4 (en) 2018-04-04
EP3123320A1 (en) 2017-02-01
CN106133688B (zh) 2019-08-20
CA2943492C (en) 2019-12-10
EP3123320B1 (en) 2022-05-04
WO2015149017A1 (en) 2015-10-01
JP6261758B2 (ja) 2018-01-17
US20150281111A1 (en) 2015-10-01
CA3058863A1 (en) 2015-10-01
CA3058863C (en) 2022-03-01
US10218633B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
JP6261758B2 (ja) コンテナの配置及び実行を調整するサービスの実施態様
US10455011B2 (en) Supporting heterogeneous environments during code deployment
CN109804352B (zh) 受管理的容器实例
US9219705B2 (en) Scaling network services using DNS
US10447610B1 (en) Techniques for network redirection
US8799576B1 (en) System for caching data
US8996610B1 (en) Proxy system, method and computer program product for utilizing an identifier of a request to route the request to a networked device
US10609122B1 (en) Instance backed building or place
EP2985705A2 (en) Webpage access method and apparatus, and router
JP5974079B2 (ja) 変更ホストネームを使用するグローバル・トラフィック管理
TW200417190A (en) System and method for high performance shared web hosting
WO2018144157A1 (en) Single authentication to a multi-tenancy single-page cloud application
US9519699B1 (en) Consistency of query results in a distributed system
EP4026014B1 (en) Enabling federated query access to heterogeneous data sources
US11128597B1 (en) Information passing for content-based source selection via DNS
US10587714B1 (en) Method for aggregating distributed data
US7949724B1 (en) Determining attention data using DNS information
US20170366501A1 (en) Domain name service information propagation
US20190081924A1 (en) Discovering address mobility events using dynamic domain name services
US11853806B2 (en) Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
AU2020337837A1 (en) Systems and methods for in-application dynamic content loading
US10827035B2 (en) Data uniqued by canonical URL for rest application
US20180295094A1 (en) Reducing latency during domain name resolution in networks
US11134117B1 (en) Network request intercepting framework for compliance monitoring
US11438393B1 (en) Origin server address rotation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

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: 20171120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171212

R150 Certificate of patent or registration of utility model

Ref document number: 6261758

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250