JP2024515247A - 構成可能なエッジデバイスプラットフォーム - Google Patents

構成可能なエッジデバイスプラットフォーム Download PDF

Info

Publication number
JP2024515247A
JP2024515247A JP2023561790A JP2023561790A JP2024515247A JP 2024515247 A JP2024515247 A JP 2024515247A JP 2023561790 A JP2023561790 A JP 2023561790A JP 2023561790 A JP2023561790 A JP 2023561790A JP 2024515247 A JP2024515247 A JP 2024515247A
Authority
JP
Japan
Prior art keywords
manifest
services
cloud computing
edge device
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023561790A
Other languages
English (en)
Inventor
ネルソン,ジョナサン・デイビッド
ベッカー,デイビッド・デイル
ロマネンコ,マキシム・アナトーリエビチ
Original Assignee
オラクル・インターナショナル・コーポレイション
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
Priority claimed from US17/531,632 external-priority patent/US11349710B1/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2024515247A publication Critical patent/JP2024515247A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本明細書で議論される技術は、構成可能なエッジデバイスの提供に関する。いくつかの実施形態において、クラウドコンピューティングエッジデバイスにおいて実行すべきサービスセットを指定するユーザ要求は、クラウドコンピューティングプロバイダによって動作されるコンピューティングデバイスによって受信され得る。マニフェストは、ユーザ要求に従って生成され得る。当該マニフェストは、クラウドコンピューティングエッジデバイスの構成を指定し得る。別のエッジデバイスで実行すべきサービスの同じセットまたは異なるセットを指定する別の要求が受信され得る。当該エッジデバイスのための構成を指定する別のマニフェストが生成され、その後、当該デバイス上のサービスの要求セットをプロビジョニングするために使用され得る。このように、マニフェストは、任意の所与のエッジデバイスで利用すべきプラットフォームを構成するために使用され得る。

Description

関連出願の相互参照
本願は、2021年11月19日に出願された、「Composable Edge Device Platforms(構成可能なエッジデバイスプラットフォーム)」と題する米国特許出願第17/531,632号、および2021年4月9日に出願された、「Cloud Computing Edge Computing Device(Rover)(クラウドコンピューティング・エッジコンピューティングデバイス(Rover))」と題する米国特許仮出願第63/173,244号の優先権を主張し、これらの開示内容は、あらゆる目的で、引用により本明細書に援用する。
技術分野
本開示は、一般に、エッジデバイスプラットフォームに関する。より具体的には、本開示は、当該デバイスの構成を指定する、対応するマニフェストを利用して、これらのプラットフォームを構成することに関する。
背景
クラウドコンピューティングでは、処理および格納は、一般に、集中ロケーションで実装された1つ以上のサービスプロバイダによって実行される。データを、集中ロケーションにおいて顧客から受信し、そこで処理することができ、その後、処理された(または他の)データを、顧客に送信して返すことができる。しかしながら、クラウドインフラストラクチャコンポーネントの集中ロケーションを有することは、さまざまなシナリオにおいて理想的でない場合がある。たとえば、中央サーバにデータを送信するIoT(Internet of Things)デバイスが何百または何千とあり、特にそれらのIoTデバイスがクラウドインフラストラクチャ・コンピューティングデバイスに地理的に近くない場合、従来の集中型システムは理想的ではない。これらのIoTデバイスは、中央サーバに近くないという意味で、「エッジ」にあると考えられる。
さらに、クラウドコンポーネントにとって集中ロケーションが理想的でない場合もある。たとえば、データが切断された地域またはインターネット接続のない場所(たとえば遠隔地)において(たとえばIoTデバイスによって)収集される場合である。現在の集中型クラウドコンピューティング環境では、広域ネットワーク接続に固有のレイテンシがあるため、データのストリーミング時に時間感度の要件を満たせない場合がある。リモートで生成されたデータは、(たとえば、異常を検出するために)従来の集中型クラウドコンピューティングシステムが可能にするよりも迅速に処理しなければならない場合がある。このように、集中型コンポーネントに依存する従来のクラウドコンピューティング環境を管理することには課題がある。たとえば、集中型ワークフローマネージャは、地理的に離れたデバイスのワークフローを管理するには最適ではない可能性もある。
簡潔な概要
クラウドインフラストラクチャ・エッジコンピューティングデバイス(たとえば、集中データセンターから分離され、パブリック/プライベートネットワーク接続のないリモートロケーションでコンピューティングおよびストレージを提供するように構成されたコンピューティングデバイス)などのさまざまなプラットフォームを構成するための技術(たとえば、方法、システム、1つ以上のプロセッサによって実行可能なコードまたは命令を格納した非一時的なコンピュータ読取可能媒体)が提供される。いくつかの実施形態において、これらのプラットフォームを構成することは、当該デバイスのための構成を指定する、対応するマニフェストを利用し得る。本明細書では、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を格納した非一時的なコンピュータ読取可能記憶媒体を含む、さまざまな実施形態について記載する。
一実施形態は、クラウドインフラストラクチャ・エッジコンピューティングデバイス(簡潔にエッジデバイスと呼ばれることもある)のプラットフォームを構成するための方法に関する。方法は、クラウドコンピューティングプロバイダによって動作されるコンピューティングデバイスが、第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のマニフェストを含む第1のユーザ要求を受信することを含み得る。いくつかの実施形態において、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、隔離されたコンピューティング環境内で選択的に実行されるように構成されたデバイスであり得る。方法はさらに、第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットに対応する第1のコンテナ画像セットを取得することを含み得る。方法はさらに、第1のユーザ要求に従って、第1のクラウドコンピューティングエッジデバイスに、第1のコンテナ画像セットを含むコンテナをプロビジョニングすることを含み得る。方法はさらに、第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のマニフェストを含む第2のユーザ要求を受信することを含み得る。方法はさらに、メモリから、第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットに対応する第2のコンテナ画像セットを取得することを含み得る。方法はさらに、第2のユーザ要求に従って、第2のクラウドコンピューティングエッジデバイスに、第2のコンテナ画像セットを含む第2のコンテナセットをプロビジョニングすることを含み得る。いくつかの実施形態において、第2のクラウドコンピューティングエッジデバイスに、第1のクラウドコンピューティングエッジデバイスにおいてプロビジョニングされるサービスと同じまたは異なるサービスがプロビジョニングされ得る。
いくつかの実施形態において、コンピューティングデバイスが開示される。コンピューティングデバイスは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上記の段落に開示された方法を実行させる実行可能命令で構成された1つ以上のメモリとで構成され得る。
いくつかの実施形態は、コンピューティングデバイスの1つ以上のプロセッサによって実行されると、コンピューティングデバイスに本明細書に開示された方法を実行させるコンピュータ実行可能命令を含む非一時的なコンピュータ読取可能記憶媒体を開示する。
少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイスのための例示的なハイレベルアーキテクチャを示すブロック図である。 少なくとも1つの実施形態に係る、ユーザコンピューティングデバイスをクラウドインフラストラクチャ・エッジコンピューティングデバイスに接続するための例示的なアーキテクチャを示すブロック図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイスの例示的な筐体を示すブロック図である。 少なくとも1つの実施形態に係る、本明細書に記載のクラウドインフラストラクチャ・エッジコンピューティングデバイスを示す分解図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイスの例示的なコンピュータアーキテクチャを示すブロック図である。 少なくとも1つの実施形態に係る、1つ以上のエッジコンピューティングデバイスを含む分散コンピューティングクラスタを示すブロック図である。 少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイスの1つ以上のコンポーネントによってワークフローを実行するための制御プレーンおよびフローを示すブロック図である。 少なくとも1つの実施形態に係る、ユーザ要求からマニフェストを生成するためのフローを示すブロック図である。 少なくとも1つの実施形態に係る、例示的なマニフェストを示すブロック図である。 少なくとも1つの実施形態に係る、ユーザ要求からマニフェストを生成するための別のフローを示すブロック図である。 少なくとも1つの実施形態に係る、エッジコンピューティングデバイスにおいて1つ以上のデータプレーンリソースをプロビジョニングするためのアーキテクチャおよびフローを示すブロック図である。 少なくとも1つの実施形態に係る、異なるマニフェストに従って異なるエッジデバイスをプロビジョニングするための例示的な方法を示すブロック図である。
詳細な説明
以下の説明では、さまざまな実施形態について説明する。説明の目的で、実施形態の完全な理解を提供するために、特定の構成および詳細について記載する。しかしながら、具体的な詳細がなくても実施形態が実施され得ることも当業者には明らかであろう。さらに、記載する実施形態を不明瞭にしないために、周知の特徴を省略または簡略化する場合がある。
はじめに
いくつかの例では、クラウド統合型エッジサービス(たとえば、エッジコンピューティングデバイスにおいて実装される)が、集中データセンター(たとえば、クラウドインフラストラクチャ・サービスプロバイダのデータセンター)の外で時間的制約のあるクラウドインフラストラクチャアプリケーションを実行したいという願望に対処する上で不可欠な場合がある。このようなエッジコンピューティングデバイスは、エッジで、および/または、切断された場所(たとえば、集中データセンターから分離され、パブリック/プライベートネットワーク接続(たとえば、インターネット接続、VPN接続、専用接続など)がない遠隔地)で、コンピューティングおよびストレージを提供して、データ生成および取り込みの時点またはその近傍で低レイテンシ処理を可能にし得る。場合によっては、クラウド技術が技術的に実現不可能であるか、実現するにはコストがかかりすぎると考えられてきた遠隔地に、物理的にクラウドインフラストラクチャサービスを提供するために、ポータブルな(保護のために耐久性を有することもある)サーバノードのフリート(たとえば、エッジデバイスのフリート)が構成されることがある。
顧客(たとえば、ユーザ)にとって、エッジコンピューティングデバイスは、仮想マシン(virtual machine:VM)、コンテナ、機能およびデータファイルを含むクラウドインフラストラクチャの延長として作用することができ、ブロックボリュームまたはオブジェクトストアサービスは、クラウドインフラストラクチャテナンシ(たとえば、集中型クラウドコンピューティング環境のテナンシ)から、ほとんど変更を加えることなく配信することができ、顧客のエクスペリエンスは、集中型クラウドコンピューティングエクスペリエンスと変化しないままであってもよい。さらに、エッジコンピューティングデバイスは、クラウドインフラストラクチャ・サービスプロバイダの一部である制御プレーンとデータプレーンとの両方を実装するように構成され得る。データプレーンは、データ格納、移行、処理などを管理するように構成することができる一方で、制御プランは、コンピューティングデバイスのさまざまなサービスおよびアーキテクチャコンポーネントを制御するために構成することができる。エッジコンピューティングデバイスが(たとえば、ローカルエリアネットワーク(local area network:LAN)を介して)顧客のコンピューティングデバイスに適切に接続されると、顧客は、集中型クラウドサービスで使用されるのと同じSDKおよびAPIを使用して、IaaSサービス(または少なくともそのサブセット)を利用し得る。
エッジコンピューティングデバイスは、顧客に要求され得る唯一のアクションが、ノードをネットワーク(たとえば、ユーザコンピューティングデバイスによってアクセス可能なローカル/オンプレミスネットワーク)に接続し、それらの電源を入れ、および/またはログインすることであるように、事前に設定された形態で顧客に提供することができる。デバイスは、顧客の好み/要求に基づいてさまざまな方法で事前に構成することができ、またはさまざまな構成(ストレージ中心、コンピュート中心など)のいずれかにすることもできる。ノードまたはノードのクラスタはポータブルであり、移動可能であることが意図されている。すなわち、移動されて再びセットアップされると(または移動中に使用されると)、デプロイメントは電源を切ったところから(または継続的に)実行され続ける。エッジコンピューティングデバイスは、広域ネットワーク(wide area network:WAN)接続の可用性(インターネットなど)を監視することもでき、WANに接続されると、顧客データおよび管理データをクラウドと同期させることができる。
エッジコンピューティングデバイスの潜在的な使用事例には、格納および処理、コンピュートおよび入出力(I/O)集約型アプリケーション、機械学習、リモートコンピューティング、低レイテンシデータベースおよび分析、ならびにデータ収集および移行が含まれる。より具体的には、エッジデバイスは、WAN接続が潜在的であるまたは利用不可能な環境(遠隔地、石油オフショアプラットフォームなど)で生成された大量の画像、ビデオ、オーディオ、およびIoTセンサーデータの格納ならびに処理に使用できる。このデータは、前処理され、フィルタリングされ、圧縮され、および/または保護されると、クラウドサービスプロバイダに移送または転送され、そこで集中型サーバ(たとえば、従来のクラウドサービスプロバイダ)によってさらに処理することができる。このデバイスは、戦術偵察または5G通信など、低レイテンシが最重要であるコンピュートおよびI/O集約型アプリケーションで使用することもできる。また、製造、文書管理、輸送、石油・ガス採掘、および/もしくは電気通信における効率、インテリジェンス、ならびに/または生産性を向上させるために、クラウドで訓練されたモデルを切断された場所で実行する機械学習に使用することもできる。また、高度なセキュリティとデータの密閉性とを必要とするリモートコンピューティングにも使用できる。さらに、このデバイスは、低レイテンシのデータベースおよびアナリティクスワークロードに使用することができ、時間の経過とともに最適化されるアプリケーションが増える。さらに、デバイスは、たとえば、WAN転送よりも高速かつ低コストで、オブジェクトおよびデータベース管理システム(database management system:DBMS)データの大規模セットのデータ収集およびクラウドサービスプロバイダへの移行にも使用できる。
エッジデバイスは、分散クラウドパラダイムをネイティブにサポートすることができ、複雑な多段階のコンピュートワークフローを個々のコンポーネントに分離することができ、これらのコンポーネントは、エッジデバイスのインフラストラクチャに、オンプレミスで、および/またはクラウドにデプロイすることができる。このような分散ワークフローの例を以下のシナリオに示す。インターネットにアクセスできない偵察活動中の飛行機(たとえば、軍用ジェット機)にデプロイされたエッジコンピューティングノード(たとえば、切断されたエッジコンピューティングデバイス)によって、大量のデータを収集することができ、このデータは、エッジデバイスを提供したクラウドサービスプロバイダによって事前に訓練された機械学習モデルによって、ほぼリアルタイムで前処理される。モデルを用いてデータを処理する最初のパスでさえ、重大な異常を検出し、担当者に直ちに警告(たとえば、橋が破壊されている可能性があるため、部隊を迂回させる必要がある)を発することができる。飛行機が着陸すると、エッジコンピューティングデバイスをネットワーク(たとえば、滑走路に配備される可能性のあるエッジステーション)に物理的に接続することができる。前処理され、フィルタリングされたより小さなデータセットを、エッジステーションにおいてエッジコンピューティングデバイスノードのクラスタに最終処理のためにロードすることができる。元のエッジコンピューティングデバイスは解放され、たとえば次のミッションをサポートするために、別の(または同じ)飛行機にロードすることができる。エッジステーションでの処理が完了すると、3Dマップの更新が発行され、すぐに使用できるようになる。変更セットは、その後、エッジステーションクラスタによってデータセンターにアップロードされ、偵察活動などにインテリジェントな戦術的予測を提供する将来のモデルを構築するために使用することができる。
以下の技術は、電気通信、石油・ガス、ヘルスケア、ホスピタリティ、農業、輸送、およびロジスティクスなどのさまざまな文脈で採用され得ることが理解されるべきである。
本明細書に記載する実施形態は、個別的および集合的に、これらの問題および他の問題に対処する。具体的には、本開示の実施形態は、クラウドインフラストラクチャ・エッジコンピューティングデバイスを提供する。
エッジデバイスアーキテクチャ
エッジコンピューティングデバイス(「クラウドコンピューティングエッジデバイス」、「クラウドインフラストラクチャ・エッジコンピューティングデバイス」、または簡潔に「エッジデバイス」と呼ばれることもある)は、データが生成される場所に顧客のインフラストラクチャおよびプラットフォームサービスを物理的に配置することによって、すなわち、エッジで、オンプレミスで、または完全に切断することによって、ユーザの集中型クラウドコンピューティングテナンシを拡張する。各デプロイメントは、顧客の集中型クラウドテナンシからVMインスタンス画像とデータとをプロビジョニングすることで、顧客の特定のニーズに対応するように作成される。これらのワークロードは、エッジデバイスが接続状態に適応し、過酷な環境条件で動作し、接続が再確立されるたびにクラウドと同期する準備ができているため、オフラインで完全に機能する。
図1は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイス(たとえば、エッジデバイス100)のための例示的なハイレベルアーキテクチャを示すブロック図である。エッジデバイス100のソフトウェアおよびハードウェアコンポーネントの概要が以下に提供される。
いくつかの例では、エッジデバイス100は、1つ以上のコンテナ(たとえば、コンテナ(複数可)104A,104B,104C~104Nに対応し、集合的に「コンテナ(複数可)104」と呼ばれる)を実装するように構成されたコンテナ化エンジン102(たとえば、Docker,Kubernetesなど)を含み得る。コンテナ化エンジン(たとえば、コンテナ化エンジン102)は、コンピュータアプリケーションのデプロイメント、スケーリング、および管理を自動化するためのコンテナオーケストレーションシステムであってもよい。いくつかの実施形態では、コンテナ化エンジンは、OSレベルの仮想化を提供してコンテナと呼ばれるパッケージでソフトウェアを提供するように構成され得る。これらのコンテナは、互いに分離され、それぞれのソフトウェア、ライブラリ、および構成ファイルを利用することができ、適切に定義されたチャネルを介して互いに通信することができる。いくつかの実施形態では、サービス(複数可)104は、任意の適切な数のサービス(たとえば、1つ以上)を含み得る。これらのサービスは、集中型クラウド機能の少なくとも一部を実装し得る。各サービスは、スタンドアロンであってもよいし、分散クラスタとして動作してもよい。エッジデバイス100はさらに、1つ以上の仮想マシン(たとえば、仮想マシン108A,108B,108C~108N、集合的に「仮想マシン(複数可)108」または「VM108」と呼ばれる)を実装するように構成されたハイパーバイザ106を含み得る。
いくつかの例では、エッジデバイス100は、ストレージ110(たとえば、ローカルデータを格納するためのオブジェクトストレージおよび/またはブロックストレージ)を含む。エッジデバイス100は、オペレーティングシステム(operating system:OS)112を含む。いくつかの実施形態では、OS112は、エッジデバイス上で実行するために最適化されてもよく、かつ/またはエッジデバイス上での実行に特化されてもよい。OS112は、エッジデバイス100のハードウェアを管理し、エッジデバイス100上で実行されるサービスのデータプレーンをサポートするように構成され得る。OS112は、特定のデプロイメントタイプ(たとえば、単一のエッジデバイスデプロイメント、または特定のエッジデバイスクラスタ構成)をサポートするように構成されてもよい。OS112は、顧客による直接アクセスを禁止または他の態様ではブロックすることによって、エッジデバイスをセキュアにするように構成され得る。
いくつかの実施形態では、エッジデバイス100は、任意の適切な数の中央処理装置(central processing unit:CPU)および/またはストレージドライブなどのハードウェアを含み得る。たとえば、図1に示すエッジデバイス100は、処理装置ごとにさまざまな数のコアを有する、1つ、2つ、またはそれ以上のCPUを備えてもよく、任意の数のストレージドライブ(たとえば、6.4テラバイト(terabyte:TB)ドライブなど)を含んでもよい。非限定的な例として、エッジデバイス100は、任意の適切なサイズのブロックおよび/またはオブジェクトストレージを含んでもよい。エッジデバイス100は、任意の適切な数の中央処理装置(CPU)、グラフィック処理装置(graphics processing unit:GPU)、任意の適切なサイズのランダムアクセスメモリ(random access memory:RAM)、1つ以上のポート(たとえば、QSFP28、RJ45、デュアルポートなど)、不正開封防止シール、または上記コンポーネントの任意の適切な組み合わせを含み得る。
いくつかの例では、基本的なシステム機能/サービスは、Linux(登録商標)に基づくソフトウェアのカスタムロードを有するRESTful APIを介してアクセスすることができる。仮想マシン(複数可)108は、個々に、カーネルベースの仮想マシン(Kernel-based Virtual Machine:KVM)(たとえば、カーネルがハイパーバイザとして機能することを可能にするLinuxカーネル内の仮想化モジュールによって管理される仮想マシン)および/またはハードウェアベースの仮想マシン(たとえば、仮想マシンが多数のハードウェアアーキテクチャをエミュレートすることを可能にするハードウェア仮想化を実行することができるQuick EMUlator(QEMU)などのバーチュアライザによって管理される仮想マシン)であってもよい。ストレージ110は、サービス(複数可)104およびVM(複数可)108とは別のコンポーネントとして表されているが、コンテナ(たとえば、コンテナ104A)として、またはVM(たとえば、VM108A)内で、実行することができる。いくつかの例では、ストレージ110(たとえば、オブジェクトストレージ、ブロックストレージなど)をコンテナとして実装することが好ましい場合がある。
図2は、本明細書で説明するエッジデバイス(たとえば、図1のエッジデバイス100)をコンピューティングデバイス202(たとえば、ユーザコンピューティングデバイス)に接続するための例示的なアーキテクチャ200を示す。コンピューティングデバイス202は、ラップトップコンピュータ、デスクトップコンピュータなどを含むが、これらに限定されない任意のタイプのコンピューティングデバイスであり得る。エッジデバイス204(図1のエッジデバイス100の一例)は、コンテナ化エンジン206(図1のコンテナ化エンジン102の一例)、ハイパーバイザ208(1のハイパーバイザ106の一例)、およびストレージ210(1のストレージ110の一例)を含み得る。
さらに、簡潔に上述したように、エッジデバイス100は、コンピューティングデバイス202から受信されるRESTful APIコールを管理するためのAPIプロキシ212を含み得る。APIコールは、エッジデバイス204内部のネットワークインターフェイスカード(network interface card:NIC)214を介してエッジデバイス204に入り得る。NIC214は、ローカルエリアネットワーク(たとえば、LAN216)を介してエッジデバイス204をコンピューティングデバイス202に接続するために使用され得る。NIC214によって受信されたAPIコールは、ウェブサーバを実装し得る公開されたエンドポイント(たとえば、エンドポイント218)に送信され得る。ウェブサーバは要求をAPIプロキシ212に送信することができ、APIプロキシ212は、要求を適切なサービス(たとえば、コンテナ化エンジン206、ハイパーバイザ208、および/またはストレージ210)にルーティングすることができる。また、公開されたエンドポイント/ウェブサーバは、顧客が使用するための軽量コンソール(たとえば、コンピューティングデバイス202上に表示されるユーザインターフェイス)を実装するように構成され得る。
軽量コンソールは、ラップトップコンピュータ、デスクトップコンピュータ、またはエッジデバイス204に(たとえば、ルータ、ケーブルなどを介して)ネットワーク接続されている他のネットワークアクセス可能な(たとえば、ローカルエリアネットワーク(LAN216)に接続されている)デバイス上のウェブブラウザ(たとえば、Mozilla(登録商標)Firefox(登録商標)など)内で実行することができる。エッジデバイス204は、コンソール接続用のエンドポイント218を公開することができ、ウェブサーバは、LAN216を介してコンピューティングデバイス202のウェブブラウザにデータを送信することができる。
図3は、本明細書で説明するエッジデバイス(たとえば、図1のエッジデバイス100)の例示的な物理的筐体300を示す。エッジコンピューティングデバイスを収容することができる(たとえば耐久性のある)箱を構築するために、さまざまな異なるフォームファクタ、形状、色などを採用することができる。物理的筐体は、図示されるように、ハンドル302を含むことができ、誰かが筐体を割って開けるとそれが明らかになるような、不正開封防止要素を含み得る。このようにして、エッジコンピューティングデバイスを提供するサービスプロバイダは、デバイスが変更されていないと保証することができる。いくつかの例では、物理的筐体300は開けることができない場合がある。しかしながら、場合によっては可能かもしれないが、極端な手段が必要である。
図4は、少なくとも1つの実施形態に係る、本明細書で説明するクラウドインフラストラクチャ・エッジコンピューティングデバイス(たとえば、図1のエッジデバイス100の一例であるエッジデバイス400)を示す分解図である。図1および図2に関して説明されるさまざまなコンポーネントを、エッジデバイス400内の1つ以上のマザーボードおよび/またはインターフェイスカードに通信可能に取り付けることができる。図示されたコンポーネントの構成は、一実現例に過ぎない。図示されたコンポーネントの特定の位置は、限定することを意図したものではなく、前述のように、本明細書に記載された機能を実現することが可能な任意の構成が許容される。コンポーネントを取り付けたら、箱全体を閉じ、密封し、不正開封防止コンポーネントで施錠することができる。
エッジデバイス400は、単一の筐体である。筐体は、任意の適切な数のSAS(serially attached SCSI)ソリッドステートドライブ(solid-state drive:SSD)、および筐体内の他のすべてのコンポーネント(たとえば、CPU、メモリ、GPUなど)を収容するように設計され得る。システムは、L字ブラケット/棚に載せた標準の19インチラック内に、テーブルトップ上に、またはフロアスタンドを使用して机の横に直立した状態で収まるように設計された完全収納シートメタル筐体内の各ドライブへの1つ以上の(たとえば、12Gb)SAS接続を含み得る。
システムは、不正開封防止筐体、フロントベゼルを所定の位置に保持するネジを覆う、リアセキュリティインターロック機能を有するフロントセキュリティプラグを含み得る。いくつかの実施形態では、システムは、デュアルソケットマザーボードおよび任意の適切な容量のDRAMを含み得る。いくつかの実施形態では、システムは、任意の適切な数(たとえば、2,3など)のSATA SSD、ストレージコントローラ、組み込みネットワーク接続、1つ以上のポート(たとえば、デュアルポート、シリアルポートなど)、冷却システムの一部としての1つ以上のファン、または上記の任意の適切な組み合わせを含み得る。
非限定的な例として、エッジデバイス400は、通気ベゼルと、データ転送および管理に必要なI/O接続のみを露出させたリアパネルとを用いて前面を固定した外部押し出しアルミニウムケースで構成されてもよい。取り付けは、任意の適切なマザーボード、ファン、および電源を取り付けるように設計することができる。
図5は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイス(たとえば、図1および図2のエッジデバイス100および204のそれぞれの一例であるエッジデバイス500)の例示的なコンピュータアーキテクチャを示すブロック図である。エッジデバイス500は、従来のクラウド機能の一部または全部を、クラウドデータセンターがアクセスできない、またはクラウドデータセンターにアクセスできない可能性のある場所に拡張するクラウド統合サービスと考えることができる。これは、WAN接続のない場所でクラウドに似た機能を提供する、ポータブルで耐久性のあるサーバノードを介して実現できる。これにより、顧客は、選択したクラウドワークロードをリモートロケーションにシフトし、クラウドインフラストラクチャのエッジにおけるデータ取り込みポイントの近くで集中的なデータ処理動作を可能にすることができる。
エッジデバイス500は、任意の適切な数のサービス(たとえば、サービス(複数可)502)を含み得る。各サービスは、エッジデバイス500上でローカルにコンテナ(たとえば、Dockerコンテナ)として実行され得る。サービス(複数可)502は、サービス間の通信が(たとえば、MACsecなどのセキュリティプロトコルに従って)暗号化されるように、基板ネットワーク504を介して通信可能に接続され得る。各コンテナには、トラフィックをアドレス指定できる基板IPアドレス(たとえば、静的アドレス)が割り当てられ得る。いくつかの実施形態では、セキュリティプロトコル(たとえば、MACsec)は、プロビジョニング時(たとえば、エッジデバイス500がユーザに出荷される前)に構成されている。エッジデバイスのシステムソフトウェア(サービス(複数可)502を含む)は、ブートセキュリティソフトウェア(たとえば、Trenchboot Secure Launch)によって保護されたセキュア環境で実行され得る。ユーザは、セキュアな環境および/または基板ネットワーク504へのアクセスを制限され得る。これらのサービスによって使用されるリソースの量を最小にするために、サービスコードは、エッジデバイス500上のCPU負荷を減少させるだけでなく、RAMスペースを減少させるために、コンパイルされ、ディスクに保存されてもよい。
サービス(複数可)502に含まれるいくつかの例示的なサービスは、UIコンソールサービス、アイデンティティ制御プレーン(control plane:CP)サービス、アイデンティティデータプレーン(data plane:DP)サービス、コンピュートアプリケーションプログラミングインターフェイス(application programming interface:API)サービス、コンピュートワーカースレッドサービス、仮想ネットワーク(virtual network:VN)APIサービス、ブロックストレージAPIサービス、function-as-a-serviceサービス、イベントサービス、(たとえば、Ceph Storageなどのストレージプラットフォームを実装する)オブジェクトストレージ管理サービス、コンピュートDPサービス(たとえば、図2のハイパーバイザ208の例)、VN DPサービス、ブロックストレージ管理サービス、function-as-a-serviceAPIサービス、function-as-a-serviceロードバランシング(load balancing:LB)サービス、function-as-a-serviceプロセススレッドサービス、分散データストア管理サービス(etcd3など)、ダイナミックホスト構成プロトコルサービス、ドメイン名システムサービス、ネットワークタイムプロトコル(network time protocol:NTP)サービスなどである。これらのサービスによって提供されるいくつかの機能例を以下で説明する。
一例として、コンピュートDPサービスは、同一のハイパーバイザホスト上のVM(複数可)508を分離するように構成され得る(たとえば、エッジデバイス500上に事前設定され、プロビジョニングされ得る)。コンピュートDPサービスは、任意の適切なコンテナエンジン(たとえば、Dockerコンテナ、MicroContainerなど)を利用して、同じハイパーバイザホスト上のVM(複数可)508を互いに分離することができる。コンピュートDPサービスは、任意の適切なハイパーバイザ(たとえば、Quick EMUlator(QEMU)、Kernel-based Virtual Machine(KVM)等)を利用して、VM(複数可)508に仮想ハードウェアエミュレーションを提供し得る。いくつかの実施形態では、VNIC(複数可)506は、任意の適切な数の仮想ネットワーク(たとえば、プライベート仮想ネットワーク(複数可)(PVN(複数可))505のサブネットに接続され、プライベート・インターネット・プロトコル(IP)アドレスが割り当てられる。1つのVMは、異なるVCNおよび異なるサブネットからの複数のVNICを有し得る。VNICの最大数は、事前に定義された閾値(たとえば、VM数当たりのVNICなどを定義する「VM形状」、VNIC形状と呼ばれる構成データ)によって制限することができる。いくつかの実施形態では、事前に定義された閾値は、VM(複数可)508の各々に適用される。VNIC(複数可)506によって利用されるサブネットは、VLANによって分離され得る。いくつかの実施形態では、VNIC(複数可)506の一部またはすべてに、パブリックIPアドレスおよび/またはプライベートIPアドレスが割り当てられてもよい。パブリックIPアドレスはネットワーク520内のアドレスであり、プライベートIPアドレスは、PVN(複数可)505のIPアドレスを指す。
いくつかの実施形態では、エッジデバイス500は、ネットワークアドレス変換(network address translation:NAT)サービス、ダイナミックホスト構成プロトコル(dynamic host configuration protocol:DHCP)サービス、ドメイン名システム(domain name system:DNS)サービス、ネットワークタイムプロトコル(network time protocol:NTP)サービス、メタデータサービス、およびパブリックAPIサービスなどの多数のサービスを介して、さまざまなネットワーク機能を実現する。メタデータサービスは、初期化データおよび他のメタデータを全てのVM(複数可)508に提供し得る。いくつかの実施形態では、DHCPサービスは、VNIC(複数可)506の各々にプライベートIPアドレスを割り当て、VM(複数可)508の各々は、1つ以上のVNICSを有する。DNSサービスは、エッジデバイス500上のVM(複数可)508にドメイン名解決を提供し得る。NTPは、VM(複数可)508に時間同期を提供し得る。いくつかの実施形態では、サービス(複数可)502の一部として実行されるパブリックIPサービスは、VMにパブリックIPを割り当てることなく、またサービス・ゲートウェイを構成することなく、VMがパブリックAPIにアクセスすることを可能にし得る。
いくつかの実施形態において、VM(複数可)508のうちの少なくとも1つは、ブロック(またはオブジェクト)ストレージを実装し得る。いくつかの実施形態では、仮想マシンに関連付けられたハイパーバイザは、ハイパーバイザが分散データストレージプラットフォーム(たとえば、Ceph)を使用することを可能にするライブラリを含み得る。ライブラリは、当該ストレージプラットフォームに関連付けられたプロトコル(たとえば、RBD(RADOS Block Device))を利用して、ブロックベースのデータの格納を容易にし得る。分散データストレージプラットフォームは、複数の仮想マシン上で実装され得る。いくつかの実施形態では、分散データストレージプラットフォームは、スナップショットの作成とブロックボリュームのコピーとをサポートする。VM画像およびVMブロックボリュームは、Cephブロックデバイスであり得る。いくつかの実施形態では、分散データストレージプラットフォームを実装するVM(複数可)は、システム予約リソース(たとえば、8つのCPUコア、またはエッジデバイス500で利用可能なCPUの総数の任意のサブセット)を使用する。たとえば、ブートボリュームをプロビジョニングするために、ブロックデバイス画像は、ブロックデバイスのブートボリュームにコピーされ得る。分散データストレージプラットフォームは、冗長性のために複数のノードを含むブロックデバイスを使用し得る。一部のノードが故障した場合、ブロックデバイスは動作を継続することができる。いくつかの実施形態では、分散データストレージプラットフォーム(たとえば、Cephなど)は、少数のノードに障害が発生した場合に、ブロックデバイスのデータを自動的に回復する。ブロックストレージは、任意の適切なデプロイ可能リソースの画像を格納するために利用され得る。一例として、画像は、VMを起動するために利用され得る。いくつかの実施形態では、画像は、特定のVM形状(たとえば、コンピュートヘビーVM、GPU最適化VM、ストレージVMなど)に対応し得る。
コンピュートAPIサービスは、1)VMの起動および終了、2)VMの停止、起動、再起動、3)VMのリストおよび/または特定のVMに関する情報の取得、4)VMコンソール履歴APIの取得、5)VMスナップショットの取得、6)ブロックボリュームの追加(attach)/取り外し(detach)等の動作をサポートし得る。いくつかの実施形態では、コンピュートAPIサービスは、他のサービス(たとえば、コンピュートDPサービス、認証および認可のためのアイデンティティDPサービス等)を呼び出すために使用することができる。
他のサービスの機能の一部は、図7に関連して説明する。一般に、各サービスについては本明細書では詳細に説明しない場合があるが、サービス(複数可)502によって提供される一般的な機能は、リモートクラウドサービスプロバイダによって提供されるクラウドサービスの機能を含み得る。いくつかの実施形態では、エッジデバイス500は、サービス(複数可)502の一部が、単一のインスタンスとして1つ以上のローカルデバイス(1つ以上のエッジデバイス)上で動作しているにもかかわらず、または顧客に関連付けられたクラウドコンピューティング環境へのパブリックネットワークアクセスを有しないか、または断続的に有する可能性がある分散サービスの一部として動作しているかにかかわらず、クラウドコンピューティング環境で動作しているかのように動作することができるように、事前に定義された領域および/またはレルムに関連付けられ得る。「領域」とは、サービスセンターが存在する地理的な場所を指す。「レルム」とは、領域の論理的な集まりを指す。レルムは互いに隔離されてもよく、データを共有しなくてもよい。
いくつかの実施形態では、エッジデバイス500は、計算、メモリ、およびネットワーキングリソース(たとえば、仮想ネットワークインターフェイスカード(複数可)(virtual network interface card:VNIC)(複数可)506)を使用して、任意の適切な数の仮想ネットワーク(たとえば、PVN505)を提供し得る。仮想ネットワークは、物理的な基板ネットワークの上で実行される論理ネットワークである。サービス(複数可)502を使用して、仮想マシン(たとえば、コンピュートインスタンスを実行する仮想マシン(複数可)(VM(複数可))508)などの1つ以上の顧客リソースまたはワークロードを、これらのプライベート仮想ネットワーク上に展開することができる。VM(複数可)508の任意の適切な組み合わせは、仮想NIC(たとえば、仮想NIC(複数可)506の1つ)を介して個別にアクセス可能な機能(たとえば、コンピュートインスタンス、格納など)を実行することができる。PVNの一部である各VMは、VM(たとえば、コンピュートインスタンス)がPVNのサブネットのメンバになることを可能にするVNICと関連付けられる。VMに関連付けられたVNICは、VMとの間のパケットまたはフレームの通信を容易にする。VNICは、VMの作成時にVMに関連付けることができる。PVN(複数可)505は、ピアツーピアネットワーク、IPネットワークなど、多くの形態を取ることができる。いくつかの実施形態では、サービス(複数可)502の基板ネットワークトラフィックは、エッジデバイス500上で実行される1つ以上のVM(複数可)508のネットワークトラフィックから(たとえば、異なるPVNもしくはサブネットによって)暗号化および/または分離され得る。
このように、エッジデバイス500は、顧客が、可用性が高く、物理的にローカルで、仮想ホストされた環境において、広範なアプリケーション(たとえば、コンピュートインスタンス)、サービス、および/またはストレージを構築し、実行することを可能にするインフラストラクチャならびに一連の補完的サービスを提供する。顧客は、エッジデバイス500によって提供される基礎となる物理リソースを管理または制御しないが、仮想マシン(たとえば、コンピュートインスタンス、仮想NIC、ブロックもしくはオブジェクトストレージなど)の拡張または縮小、それらの仮想マシンへのアプリケーションのデプロイなどを制御する。エッジデバイス500上の全てのワークロードは、異なるCPUセット(たとえば、VMおよび非VM)に分割されてもよい。一方のセット(たとえば、サービス(複数可)502によって実行されるワークロードなどの非VM)は、エッジデバイス500のCPUコア(たとえば、8)のサブセットを利用し、他方のセット(たとえば、VM(複数可)によって実行されるVMワークロード)。
エッジデバイス500は、VM(複数可)508と対話する、および/またはVM(複数可)508を管理するために、1つ以上のネットワークインターフェイス(たとえば、NIC2および/またはNIC4)ならびにネットワーク520を介してユーザデバイス(たとえば、図2のコンピューティングデバイス202)と通信可能に接続され得る。特定の実施形態では、エッジデバイス500にアクセスし、これを管理するために使用することができるウェブベースのユーザインターフェイスを介して、ユーザデバイスにおいて軽量コンソールを提供することができる。いくつかの実現例では、コンソールは、エッジデバイス500によって提供されるウェブベースのアプリケーション(たとえば、サービス(複数可)502の1つ)である。
図5は、単一のエッジデバイスを示す。しかしながら、2つ以上のエッジデバイスが分散コンピューティングクラスタとして利用されてもよいことが理解されるべきである。
図6は、少なくとも1つの実施形態に係る、1つ以上のエッジコンピューティングデバイス(たとえば、各々は図5のエッジデバイス500の一例であるエッジデバイス602および604)を含む分散コンピューティングクラスタ600を示すブロック図である。
分散コンピューティングクラスタ600の各エッジデバイスは、基板ネットワーク606(図5の基板ネットワーク504の一例)を介して接続され得る。いくつかの実施形態では、分散コンピューティングクラスタ600のエッジデバイス(「エッジコンピューティングノード」または「エッジノード」と呼ばれることもある)は、1つ以上のスイッチ(たとえば、スイッチ608および/または610)を使用して、基板ネットワーク606によって接続され得る。いくつかの実施形態では、NIC1およびNIC5は、特定のコネクタ(たとえば、RJ45コネクタ)を含んでもよく、NIC3およびNIC8は、同じコネクタまたは異なるコネクタ(たとえば、QSFP28 100GbEコネクタ)を含み得る。いくつかの実施形態では、分散コンピューティングクラスタ600の1つのエッジデバイスのみが、ネットワーク(複数可)620(図5のネットワーク520の一例)などの顧客ネットワークに接続される。したがって、エッジデバイスのサービス間のトラフィックが暗号化され、所与のエッジデバイスの他のトラフィックから分離され得るだけでなく、複数のエッジデバイスにわたって動作する分散サービス間のトラフィックも暗号化され、コンピューティングクラスタの他のトラフィックから分離され得る。いくつかの実施形態では、各エッジデバイスは、分散コンピューティングクラスタ600の特定のノードとして事前設定される。他の実施形態では、ユーザは、分散コンピューティングクラスタ600のエッジデバイスの数およびトポロジを設定することができる。
図7は、少なくとも1つの実施形態に係る、クラウドインフラストラクチャ・エッジコンピューティングデバイスの1つ以上コンポーネントによってワークフローを実行するためのフロー700を示すブロック図である。フロー700を実行するコンポーネントは、APIサービス702、データベース(database:DB)704、サービス706、ハイパーバイザサービス708、PVN CPサービス、ブロックストレージCPサービス714を含み得るが、より多くのまたはより少ないサービスが含まれてもよい。いくつかの実施形態では、図7の各サービスは、図5のサービス(複数可)502のうちのサービスの一例である。いくつかの実施形態では、図7のサービスに関連して説明した機能の少なくとも一部は、任意の適切な組み合わせで組み合わされ、単一のサービスまたは同じサービスのインスタンスとして提供され得る。一例として、いくつかの実施形態では、サービス702~708の機能は、単一のサービス(たとえば、図5に関連して上述したコンピュートCPサービス)によって提供され得る。いくつかの実施形態では、サービス702~708によって提供される機能は、単一のエッジデバイス(たとえば、図5のエッジデバイス500)によって提供されてもよく、または2つ以上のエッジデバイス(たとえば、図6のエッジデバイス602およびエッジデバイス604)によって提供されてもよい。
いくつかの実施形態において、APIサービス702は、データプレーンリソース(たとえば、図5のVM(複数可)508)のセットの意図された状態を記述する意図された状態データを含む作業要求を受け入れるように構成され得る。非限定的な例として、ユーザ720は、ユーザデバイス(たとえば、図2のユーザデバイス202)を利用して、VMを起動する要望を示すさまざまな選択を行うことができるユーザインターフェイスにアクセスし得る。ユーザ入力は、作業要求(work request:WR)(たとえば、WR722)を生成し、分散データベース(たとえば、DB704)に作業要求を格納するように事前に定義されたLaunch VM APIを利用し得るAPIサービス702(図5のコンピュートCPサービスの一例)によって受信され得る。いくつかの実施形態において、DB704は、即時一貫性、高可用性、トランザクション可能な分散データベースとしてetcd3を使用するように構成されたコンピューティングクラスタであってもよい。一般に、作業要求は、VM(複数可)508のようなデータプレーンリソースを作成および/または修正するために必要な要望および情報を示す。いくつかの実施形態では、作業要求は、データプレーンリソースの所望の状態を示す状態情報を含む。いくつかの実施形態では、DB704は、任意のエッジデバイス上で動作する全てのサービスが(および分散コンピューティングクラスタ600のようなエッジデバイスクラスタの任意の適切なエッジデバイス上で動作するサービスによって)アクセス可能であり得る。
サービス706(たとえば、図5のコンピュートCPサービスの一例)は、1つ以上のワーカープロセス(たとえば、コンピューティングスレッド710などの1つ以上のコンピューティングスレッド)を実行するように構成され得る。これらのワーカープロセスの一部は、連続的および/または継続的な事前に定義されたワークフローを実行するように、任意の適切な時間にサービス706によって構成されてもよい。一例として、サービス706は、(たとえば、コンピューティングスレッド710を含む)1つ以上のワーカースレッドを構成して、新たな作業要求(たとえば、WR722)についてDB704を監視してもよい。コンピューティングスレッドは、作業要求WR722が既にアテンドされているかどうかを判定するように構成され得る。いくつかの実施形態では、これは、WR722に関連付けられた一意の識別子について、DB704内の事前に定義されたストレージバケットをチェックすることを伴う。WR722内に含まれる一意のIDがバケット内に現れない場合(または、他の態様ではWRが処理のためにピックアップされていないと示される場合)、コンピューティングスレッド710(たとえば、ナニースレッド)は、ワークフロースレッド(たとえば、コンピューティングスレッド710の別のインスタンス)を初期化してもよく、このワークフロースレッドは、次に、コンピューティングスレッド710によって、WR722に対応するVMを起動することに対応するワークフローを実行するように構成されてもよい。
初期化されたワークフロースレッドは、ワークフローサービス(図示せず)に(たとえば、図5の基板ネットワーク504を介して)通信可能に結合され得る。ワークフローサービスは、1つ以上の事前に定義されたワークフローから、VMの起動、したがってWR722に対応する事前に定義されたワークフローを特定するように構成され得る。これらの事前に定義されたワークフローは、事前に定義された目標(たとえば、仮想マシンの起動、仮想マシンの停止/起動、仮想マシンの終了、ブロックボリュームの作成、ブロックボリュームの削除等)を達成するために、実行すべき1つ以上のステップ/動作、およびそれらのステップに対するシーケンスを特定する。ワークフロースレッドは、VMワークフローを起動し、さまざまな他のエンティティによる実行を監督し得る。いくつかの実施形態では、ワークフロースレッドは、DPリソースの意図された状態データの任意の適切な部分を、任意の適切なサービスの組み合わせに渡し得る。
非限定的な例として、仮想マシン(たとえば、ハイパーバイザサービス708によってホストされるVM)を起動するためのワークフローの一部として、VNICを作成および追加するために、1つ以上のAPIを呼び出すことができる。同様に、ブロックストレージボリュームAPIを作成および/または追加するために、多数のAPIが提供され得る。いくつかの実施形態では、ワークフロースレッドは、PVN CPサービス712の機能を呼び出すために、1つ以上のAPIへの任意の適切な呼び出しを実行することができ、PVN CPサービス712は、VNICを作成および追加するように構成され得る。ワークフロースレッドは次に、ブロックストレージCPサービス714を呼び出し、ブロックストレージCPサービス714は、ブロックストレージボリュームを作成し追加するための任意の適切な動作を実行し得る。ワークフローを監督するワーカースレッドは、指定された順序(たとえば、ブロックボリュームを作成する前に最初にVNICを作成する)を保証し得る。このワーカースレッドは、呼び出した1つ以上のサービスからのエラーおよび/または例外を捉えるように構成され得る。例外/エラーが発生しない場合、ワークフローを監督するワーカースレッドは、(基板ネットワークを介して)ハイパーバイザサービス708に適切なデータを提供することができ、ハイパーバイザサービス708は、要求されたVMを作成するための機能を実行する。ハイパーバイザサービス708は、新しく起動されたVMの実際の状態データを提供し得る。いくつかの実施形態では、ワークフローを監督するワーカースレッドは、(たとえば、モニタが、実際の状態データが要求された状態データと一致し、変更が必要ないことを示すか、または実際の状態データが要求された状態データと一致せず、データプレーンリソースの変更が必要であることを示すかを判断し得る場合)、後で参照するために、実際の状態データをDB704に格納することができる。
いくつかの実施形態では、ワークフロースレッドは、クラスタマネージャ(図示せず)に通信可能に結合され得る。クラスタマネージャは、任意の適切な数のコンピューティングクラスタを管理するように構成され得る。いくつかの実施形態において、クラスタマネージャは、任意の適切なタイプのコンピューティングクラスタ(たとえば、Kubernetesクラスタ、コンテナ化されたアプリケーションを実行するために使用されるコンピューティングノードのセットなど)を管理するように構成され得る。ワークフロースレッドは、DPリソース(複数可)を意図された状態データと一致させるために特定された指示に従って、クラスタマネージャにDPリソース(複数可)(たとえば、VM)上で任意の適切なオーケストレーション動作を実行させるために、任意の適切な動作を実行するように構成され得る。いくつかの実施形態において、監視エンティティ(たとえば、ワークフロースレッド、ワークフロースレッドによって起動されたスレッド)は、DPリソース(複数可)116に通信可能に結合され、DPリソース(複数可)の健全性を監視するように構成され得る。いくつかの実施形態では、監視エンティティは、任意の適切な健全性データをDB704に格納するように構成され得る。
図7に関連して議論された特定の動作およびサービスは、本質的に例示的なものであり、本開示の範囲を限定することを意図するものではない。実行される特定の動作および利用されるサービスは、要求された動作に関連する特定のワークフローに応じて変化し得る。
図8は、少なくとも1つの実施形態に係る、ユーザ要求からマニフェストを生成するためのフロー800を示すブロック図である。図8は、サービスプロバイダコンピュータ(たとえば、サービスプロバイダコンピュータ802)を示す。サービスプロバイダコンピュータ802を、クラウドコンピューティングプロバイダによって、またはクラウドコンピューティングプロバイダの代わりに、動作させることができる。いくつかの実施形態では、図8のサービスプロバイダコンピュータは、1つ以上のエッジデバイスを構成することができるマニフェストを生成するためのクラウドコンピューティングサービスを実現する。図8のサービスプロバイダコンピュータは、クラウドコンピューティングプロバイダによって動作されるクラウドコンピューティング環境の一部に通信可能に接続されるか、またはその一部として動作され得る。ユーザデバイス804は、任意の適切な電子デバイス(たとえば、ラップトップ、デスクトップ、スマートフォンなど)であってよく、ネットワーク(たとえば、パブリックネットワークまたはプライベートネットワーク)を介してサービスプロバイダコンピュータ802に通信可能に接続され得る。サービスプロバイダコンピュータ802は、ユーザ入力が提供され得る1つ以上のインターフェイスをホストするように構成され得る。これらのユーザインターフェイスは、構成された1つ以上のエッジデバイスに関連し得る。
フロー800は、サービスプロバイダコンピュータ802が、ユーザ入力を得ることができる1つ以上のユーザインターフェイスを公開する810において開始し得る。いくつかの実施形態において、これらのユーザインターフェイスは、ユーザが、1つ以上のエッジデバイス(エッジデバイス806はその一例である)において構成されるさまざまなサービスおよび/またはデータプレーンリソースを選択することを可能にする。一例として、これらのインターフェイスは、構成(たとえば、サービスの特定のセット、仮想マシンの特定の数および/もしくはタイプ、またはエッジデバイス806の任意の適切な属性)を定義するために使用され得る。いくつかの実施形態では、ユーザは、エッジデバイスのクラスタおよびそれらの対応する構成を定義し得る。したがって、これらのインターフェイスを介して、ユーザは、エッジデバイス806がコンピュート集約型(たとえば、エッジデバイス806において実行される仮想マシンの大多数がコンピューティングリソースを提供する)、ストレージ集約型(たとえば、エッジデバイス806において実行される仮想マシンの大多数がストレージリソースを提供する)、GPU集約型(たとえば、エッジデバイス806において実行される仮想マシンの大多数がGPUリソースを提供する)など(たとえば、要求された仮想マシンの数およびユーザによって選択されたこれらの仮想マシンの特定の構成に少なくとも部分的に基づく)であると示すことができる。ユーザインターフェイスは、ユーザが1つ以上のエッジデバイス(たとえば、エッジデバイス806)のこれらの属性を選択および/または定義することを可能にする任意の適切な形式であってよい。
812において、ユーザデバイス804は、サービスプロバイダコンピュータ802によって受信されたユーザ要求においてユーザ入力を提出し得る。サービスプロバイダコンピュータ802は、クラウドコンピューティング環境内でビルドサービスをホストしている可能性がある。
814において、サービスプロバイダコンピュータ802は、ユーザ要求に対応するマニフェスト815(たとえば、レコード、ファイルなど)を生成し得る。マニフェスト815は、完了すると、ユーザ要求に従ってエッジデバイスを構成するために利用され得る。いくつかの実施形態において、サービスプロバイダコンピュータ802は、事前に定義されたテンプレートに少なくとも部分的に基づいて、マニフェスト815を生成し得る。いくつかの実施形態において、マニフェスト815は、任意の適切なフォーマット(たとえば、JSON、XMLなど)であってもよい。生成されると、サービスプロバイダコンピュータ802は、ユーザ要求に対応するようにマニフェスト815の修正を開始し得る。一例として、マニフェスト815は、1つ以上のエッジデバイスの構成情報を含むように修正されてもよい。
図9は、少なくとも1つの実施形態に係る、例示的なマニフェスト900(図8のマニフェスト815の一例)を示すブロック図である。マニフェスト900は、セクション902および904を含む。セクション902は1つのエッジデバイスに対応し、セクション904は別のエッジデバイスに対応する。マニフェスト900は、クラスタとして動作する複数のエッジデバイスの構成を定義し得る。いくつかの実施形態では、マニフェスト900は、902においてクラスタ識別子を定義し得る。セクション904において、任意の適切な数のノードが提供され得る。いくつかの実施形態では、ノードに、906で示されるような名前を割り当てられ得る。マニフェスト900は、908において、所与のノード(たとえば、特定のエッジデバイス)のデバイス属性のセットを示し得る。
マニフェストは、1つ以上のネットワークインターフェイスカードに関連する任意の適切な情報を含み得る。ネットワークインターフェイスカードは、メディアアクセス制御(media access control:MAC)アドレス、または名前などの他の適切な識別子を有するものとして定義され得る。いくつかの実施形態では、マニフェスト900は、セクション910内でネットワークインターフェイスカードのドライバを識別し得る。セクション910は、任意の適切な数のNIC定義を含み得る。
マニフェストは、任意の適切な数のサービスを識別し得る。マニフェスト900は、少なくとも1つのサービスを示す。マニフェスト内では、さまざまなサービスレベル属性が識別され得る。一例として、セクション912は、サービスの名前、サービスの画像を見つけることができる場所、サービスが動作するデフォルトのネットワーク名、サービスがブート時に開始するかどうかを示すインジケータ、およびサービスのIPアドレスを含み得る。マニフェスト900は、セクション912内に任意の適切な数のサービスを含み得る。
マニフェスト900はクラスタ、ノード、またはデバイスの特定の属性を含むように示されているが、マニフェストはクラスタ、ノード、またはデバイスの任意の適切な属性を識別し得ることを理解されたい。したがって、図9に示す例示的な属性は、任意の所与のマニフェストに含まれ得る属性の網羅的なリストと見なされることを意図していない。
図8に戻ると、816において、サービスプロバイダコンピュータ802は、ユーザ入力からサービスのリストを生成し、そのサービスのリストに対応するアーティファクト(たとえば、コンテナ画像、OStreeコミットなど)を収集するための任意の適切な動作を実行し得る。いくつかの実施形態では、サービスプロバイダコンピュータ802は、サービスプロバイダコンピュータ802が属するクラウドコンピューティング環境の1つ以上の格納場所から、これらのアーティファクトを収集し得る。いくつかの実施形態では、これらのアーティファクトの一部は、所与のエッジデバイスに対して要求されたサービスセットの各々のコンテナを含み得る。サービスプロバイダコンピュータ802は、ユーザ要求において定義されたエッジデバイスの数に対応する任意の適切な数のアーティファクトを収集するように構成され得る。
818において、マニフェスト815は、エッジデバイスにおいて動作される特定のサービスの構成属性/詳細を示すように修正され得る。一例として、816において収集された各アーティファクトは、実行されると、アーティファクトが関連するサービスに対応するエントリを含むようにマニフェストファイルを修正する実行可能スクリプトを含み得る。サービスプロバイダコンピュータ802は、各アーティファクトの各スクリプトを実行するように構成され得る。各スクリプトは、それぞれのサービスに対応する構成情報を含むようにマニフェストファイルを修正するように構成されてもよい。各スクリプトは、任意の適切なエンティティ定義を含むようにマニフェストを修正してもよく、エンティティ定義は、デバイスまたはサービスの属性を定義する。
820において、サービスプロバイダコンピュータ802は、マニフェスト815内で識別された任意の適切な数のデバイス/エンティティ/サービスに1つ以上のネットワークアドレスを割り当てるための事前に定義されたルールセットを実行し得る。一例として、クラスタの各ノード(たとえば、エッジデバイスのクラスタ内のノードとして動作する各エッジデバイス)にIPアドレスが割り当てられてもよい。
822において、サービスプロバイダコンピュータ802は、818において収集されたアーティファクトに少なくとも部分的に基づいて、エッジデバイス(ED)画像を生成し得る。いくつかの実施形態では、ED画像は、所与のエッジデバイスのコンテナおよびOStreeオンボックスリポジトリの全体を含む超TAR書庫(uber-tarball)であり得る。
824において、サービスプロバイダコンピュータ802は、任意の適切な事前に定義された構成ファイル、クレデンシャル(たとえば、APIキー、データボリュームパスワード、Macsecキーまたは他の適切な暗号化キーなど)エージェント(たとえば、ネットブートエージェント)などを収集するように構成され得る。
826において、サービスプロバイダコンピュータ802は、ED画像、マニフェスト、構成ファイル、クレデンシャル、およびエージェントをエッジデバイス806に提供することによって、エッジデバイス806をプロビジョニングし得る。いくつかの実施形態では、マニフェストを作成したものとは別のサービスプロバイダコンピュータ(たとえば、プロビジョニングセンターに位置するサービスプロバイダコンピュータ)が、プロビジョニング動作を実行し得ることが理解されるべきである。
828において、エッジデバイス806は、マニフェスト815に従ってエッジデバイス806をプロビジョニングするための任意の適切な動作を実行し得る。一例として、エッジデバイス806上で実行されるネットブートエージェントが、PXEブート、パーティション、dmcryptのセットアップ、ファイルシステムのフォーマット、サービスプロバイダコンピュータへのアーティファクトURLの問い合わせ、URLを使用したアーティファクトのフェッチ、ルートファイルシステムのOStreeリポジトリへのコミット、コンテナのコンテナリポジトリへのロード、OStreeコミットのデプロイ、リモートキーのフェッチおよびローカルキーのインストール、Trenchbootのインストール、クレデンシャルとして提供された顧客パスワードを使用した、(たとえば、チップ、ハードウェアセキュリティモジュール、集積回路プラットフォーム、またはエッジデバイスのセキュアな初期化、および暗号鍵(複数可)を含む格納された秘密のセキュリティ管理を提供するための他のハードウェア、ファームウェア、および/またはソフトウェアなどの信頼できるプラットフォームモジュールにおける)OSパーティションLUKSキーの封印といった動作を実行し得る。
エッジデバイス(複数可)(エッジデバイス806はその一例である)が構成された後、クラウドコンピューティングプロバイダは、エッジデバイス(複数可)を出荷し得るか、または他の態様では顧客に配送し得る。エッジデバイスは、812において提供されたユーザ入力に従って構成され得る。
図10は、少なくとも1つの実施形態に係る、ユーザ要求からマニフェスト1002を生成するための別のフロー1000を示すブロック図である。図10は、サービスプロバイダコンピュータ1004(たとえば、図8のサービスプロバイダコンピュータ802の一例)を示す。サービスプロバイダコンピュータ1004は、クラウドコンピューティングプロバイダによって、またはクラウドコンピューティングプロバイダの代わりに、動作され得る。いくつかの実施形態では、図10のサービスプロバイダコンピュータは、1つ以上のエッジデバイスを構成可能なマニフェスト(たとえば、マニフェスト1002)を生成するためのクラウドコンピューティングサービスを実現する(各々が図8のエッジデバイス806の一例である、エッジデバイス1006および1008)。図10のサービスプロバイダコンピュータは、クラウドコンピューティングプロバイダによって動作されるクラウドコンピューティング環境に通信可能に接続されるか、またはその一部として動作し得る。ユーザデバイス1010は、任意の適切な電子デバイス(たとえば、ラップトップ、デスクトップ、スマートフォンなど)であってよく、ネットワーク(たとえば、図示されていないパブリックネットワークまたはプライベートネットワーク)を介してサービスプロバイダコンピュータ1004に通信可能に接続され得る。サービスプロバイダコンピュータ1004は、ユーザ入力が提供され得る1つ以上のインターフェイスをホストするように構成され得る。これらのユーザインターフェイスは、構成された1つ以上のエッジデバイスに関連し得る。いくつかの実施形態では、ユーザは、少なくともエッジデバイス1006および1008を使用して分散コンピューティングクラスタ1012を動作させることを望む場合がある。任意の適切な数のエッジデバイスが、分散コンピューティングクラスタ1012で利用されてもよい。
フロー1000は、サービスプロバイダコンピュータ1004が、ユーザ入力が(たとえば、ユーザデバイス1010から)取得され得る1つ以上のユーザインターフェイスを公開する1014において開始し得る。いくつかの実施形態において、これらのユーザインターフェイスは、ユーザが、エッジデバイス1006および1008において構成されるさまざまなサービスおよび/またはデータプレーンリソースを選択することを可能にする。一例として、これらのインターフェイスは、構成(たとえば、サービスの特定のセット、仮想マシンの特定の数および/またはタイプ、またはエッジデバイス1006および1008の任意の適切な属性)を定義するために使用され得る。いくつかの実施形態では、ユーザは、エッジデバイス1006および1008が同じ構成/サービスセットを有することを望む場合がある。他の実施形態では、ユーザは、それぞれのエッジデバイスに対して異なる構成および/またはサービスセットを指定し得る(たとえば、一方はコンピュート集約型であり、一方はストレージ集約型であってもよい)。ユーザインターフェイスは、ユーザが1つ以上のエッジデバイス(たとえば、エッジデバイス806)のこれらの属性を選択および/または定義することを可能にする任意の適切なフォーマットであってよい。
1016において、ユーザデバイス1010は、サービスプロバイダコンピュータ1004によって受信されるユーザ要求において、ユーザ入力を提出し得る。サービスプロバイダコンピュータ1004は、クラウドコンピューティング環境内でビルドサービスをホストしている可能性がある。ビルドサービスは、ユーザ要求を受信するように構成され得る。
1018において、サービスプロバイダコンピュータ802は、ユーザ要求に対応するマニフェスト1002(たとえば、レコード、ファイルなど)を生成し得る。マニフェスト1002は、完了すると、ユーザ要求に従ってエッジデバイス1006および1008を構成するために利用され得る。いくつかの実施形態において、サービスプロバイダコンピュータ1004は、事前に定義されたテンプレートに少なくとも部分的に基づいて、マニフェスト1002を生成し得る。上述したように、マニフェスト1002は、任意の適切なフォーマット(たとえば、JSON,XMLなど)であってもよい。生成されると、サービスプロバイダコンピュータ1004は、ユーザ要求に対応するようにマニフェスト1002の修正を開始し得る。一例として、マニフェスト1002は、1つ以上のエッジデバイスの構成情報を含むように修正され得る。
1020において、ユーザ要求に従ってマニフェスト1002を修正し、ユーザ要求によって指定されたサービスに対応するアーティファクト、クレデンシャル、構成ファイル、エージェントなどを取得することに少なくとも部分的に基づいてED画像を生成するために、図8のステップ816~824に関して説明した動作の任意の適切な組み合わせが実行され得る。
1026において、サービスプロバイダコンピュータ1004は、ED画像、マニフェスト、構成ファイル、クレデンシャル、およびエージェントをエッジデバイスに提供することによって、エッジデバイス1006および1008をプロビジョニングし得る。いくつかの実施形態では、マニフェストを作成したもの以外の別のサービスプロバイダコンピュータ(たとえば、プロビジョニングセンターに位置するサービスプロバイダコンピュータ)が、分散コンピューティングクラスタ1012のエッジデバイス(この場合、エッジデバイス1006および1008)に対するプロビジョニング動作を実行可能であることが理解されるべきである。
1028において、各エッジデバイスは、マニフェスト1002に従って1つ以上のデータプレーンリソースをプロビジョニングするための任意の適切な動作を実行し得る。一例として、エッジデバイス1006(および/またはエッジデバイス1008)上で実行されるネットブートエージェントが、PXEブート、パーティション、dmcryptのセットアップ、ファイルシステムのフォーマット、(サービスプロバイダコンピュータへの)アーティファクトURLの問い合わせ、URLを使用したデータストアからのアーティファクトのフェッチ、ルートファイルシステムのOStreeリポジトリへのコミット、コンテナのコンテナリポジトリへのロード、OStreeコミットのデプロイ、リモートキー(たとえば、オブジェクトストアディスクにアクセスするための顧客パスワード)のフェッチおよびローカルキーのインストール、Trenchbootのインストール、およびOSパーティションLUKSキーのブートパーティションへの封印、といった動作を実行し得る。
エッジデバイス(複数可)1006および1008が構成された後、クラウドコンピューティングプロバイダは、エッジデバイス(複数可)を出荷するか、または他の態様では顧客に配送し得る。エッジデバイスは、1016で提供されたユーザ入力に従って、分散コンピューティングクラスタ1012として動作するように構成され得る。
その後、エッジデバイス1008は、何らかの理由(たとえば、1030においてシステム障害が発生)で動作を停止することがある。1034において、ユーザデバイス1010(または任意の適切なユーザデバイス)は、代替デバイス(たとえば、図8のエッジデバイス802とエッジデバイス1006および1008との一例であるエッジデバイス1032)を要求するために使用可能である。
1036において、サービスプロバイダコンピュータ802は、ユーザ要求に従ってエッジデバイス1032を構成するのに必要な構成情報を含むように、マニフェスト1002を更新し得る。いくつかの実施形態において、ユーザ要求は、エッジデバイス1032が、同じ構成(たとえば、サービスセット、データプレーンリソースなど)で、エッジデバイス1008の正確な代替として構成されることを指定し得るか、またはいくつかの実施形態において、ユーザ要求は、異なる構成が使用されることを示すことができる。
1038において、図8のステップ816~824に関して議論された動作と1020における動作との任意の適切な組み合わせが、ユーザ要求に従ってマニフェスト1002を修正し、ユーザ要求によって指定されたサービスに対応するアーティファクト、クレデンシャル、構成ファイル、エージェントなどを取得することに少なくとも部分的に基づいてED画像を生成するために、実行され得る。
1040において、サービスプロバイダコンピュータ1004は、ED画像、マニフェスト、構成ファイル、クレデンシャル、およびエージェントをエッジデバイスに提供するエッジデバイス1032をプロビジョニングし得る。いくつかの実施形態では、マニフェストを作成したものとは別のサービスプロバイダコンピュータ(たとえば、プロビジョニングセンターに位置するサービスプロバイダコンピュータ)が、エッジデバイス1032のためのプロビジョニング動作を実行し得ることが理解されるべきである。構成されると、エッジデバイス1032は、分散コンピューティングクラスタ1012の一部として動作し得る。
図示されていないが、任意の適切な時間に、エッジデバイス1008(または分散コンピューティングクラスタ1012の任意のエッジデバイス)は、サービスプロバイダに物理的に返され、同じまたは異なるマニフェスト(たとえば、マニフェスト1002)を使用して以前に提供された構成と同じ構成および/または異なる構成で再構成され得る。
図11は、少なくとも1つの実施形態に係る、エッジコンピューティングデバイス(図1~図8、図10および図11のエッジデバイスの一例)において1つ以上のデータプレーンリソースをプロビジョニングするためのアーキテクチャ1100およびフローを示すブロック図である。アーキテクチャ1100は、制御プレーン1102およびデータプレーン1104を含み得る。
いくつかの実施形態において、制御プレーン1102は、1つ以上のデータプレーンリソースのセットの意図された状態を記述する意図された状態データを含む作業要求を受け入れる役割を担い得る。たとえば、作業要求は、制御プレーンアプリケーションプログラミングインタフェース(API)1106によって受信され得る。いくつかの実施形態において、作業要求は、マニフェスト(たとえば、図8のフロー800または図10のフロー1000によって生成されたマニフェストの例であるマニフェスト1001)の形態であり得る。いくつかの実施形態において、制御プレーンAPI1106は、図5のサービス(複数可)502の一例であり得る。制御プレーンAPI1106は、ユーザデバイスから1つ以上のデータリソース(たとえば、仮想マシン、仮想マシンのクラスタなど)に対応する任意の適切な数の作業要求(たとえば、マニフェスト1001)を受信するように構成され得る。
いくつかの実施形態では、マニフェスト1001は、マニフェスト1001を他の作業要求と区別できるように、作業要求として一意に識別し得る識別子を含み得る。要求識別子は、その作業要求に固有であり、かつその作業要求を識別することができる、任意の適切な長さの英数字の文字列とすることができる。意図された状態データは、任意の適切な数のパラメータを含み得る。これらのパラメータは、リソースの識別子、可用性ドメイン、ノードに対応する形状、リソースの処理ユニット数、リソースのランダムアクセスメモリ(RAM)の容量、ディスクメモリの容量、役割(たとえば、データノード、マスターノードなど)、状態(たとえば、健全性)などを含むが、これらに限定されない、要求されたデータプレーンリソースの属性を定義し得る。いくつかの実施形態において、制御プレーンAPI1106は、すべての受信された作業要求(たとえば、マニフェスト1001)をデータストア(たとえば、図11のコンポーネントを実行するエッジデバイスが動作するエッジデバイスのクラスタによって実現される分散データストアである制御プレーン(CP)データストア1108)に格納するように構成され得る。
いくつかの実施形態において、CPデータストア1108は、データプレーン1104の意図された状態に対応する作業要求および/または意図された状態データを格納するように構成され得る。いくつかの実施形態において、CPデータストア1108は、DPリソース1112(複数可)の1つ以上のデータプレーン識別子(data plane identifier:DPID)と、意図された状態データおよび/または現在の状態データとのマッピングを記憶するように構成され得る。意図された状態データとは、要求され、かつそれに対してDPリソースが修正されることが意図されているDPリソースの1つ以上の態様を指定するデータである。現在の状態データ(「実際の状態データ」と呼ばれることもある)は、現在動作しているDPリソースの1つ以上の現在の態様を特定する1つ以上のパラメータに対応する。
制御プレーン1102は、制御プレーン(control plane:CP)監視コンポーネント1110を含み得る。CP監視コンポーネント1110は、制御プレーンAPI1106によって受信され、かつCPデータストア1108に格納された(たとえば、以前に受信された作業要求からの)意図された状態データが、対応するDPリソース(そのDPリソースが現在存在する場合)について格納された現在の状態データと一致するかどうかを、定期的に(たとえば、所定の頻度、スケジュール等に従って)判定するように構成され得る。CP監視コンポーネント1110は、(たとえば、図5の基板ネットワーク504を介して)非コンピュートサービス(複数可)1114に通信可能に結合されてもよく、非計算サービス(複数可)1114は、課金、ID、認可などを管理するように構成された任意の適切な数のクラウドコンピューティングサービスを含み得る。いくつかの実施形態では、CP監視コンポーネント1110、インメモリワークフローマネージャ1116、およびCPワーカー(複数可)1118は、共通のサービス(たとえば、図7のサービス706)によって提供される。サービス706は、図5のサービス(複数可)502のうちの1つであり得る。非コンピュートサービス(複数可)1114は、制御プレーンAPI1106と、CP監視コンポーネント1110、インメモリワークフローマネージャ1116、およびCPワーカー1118(複数可)を実装するサービス(たとえば、サービス706)とを除く、サービス(複数可)502の残りのサービスセットであり得る。いくつかの実施形態において、CP監視コンポーネント1110は、インメモリワークフローマネージャ1116と通信可能に結合されてもよく、インメモリワークフローマネージャ1116によって提供される機能を呼び出すように構成され得る。一例として、CP監視コンポーネント1110は、DPリソースの現在の状態データがCPデータストア814に格納された意図された状態データに沿っていない(たとえば、一致しない)と判定した場合、不一致を修正するためにインメモリワークフローマネージャ1116の機能を呼び出し得る。
いくつかの実施形態では、インメモリワークフローマネージャ1116は、対応する意図された状態データに従ってDPリソース(複数可)1112を構成するために実行する動作を個々に識別する1つ以上の事前に定義されたワークフローを識別するように構成され得る。いくつかの実施形態において、インメモリワークフローマネージャ1116は、制御プレーン(CP)ワーカー(複数可)1118の1つ以上のワーカー(たとえば、計算スレッド)を開始し、受信した意図された状態データに従って対応するDPリソース(複数可)を構成することに関連する動作を実行するために、ワークフロー命令および/または意図された状態データを、所与のCPワーカーに転送するように構成され得る。いくつかの実施形態では、CPワーカー(複数可)1118は、サービス固有のオーケストレーション動作を提供し得る。CPワーカー(複数可)1118は、コンピュートサービス、格納サービスなどの任意の適切な組み合わせを含む任意の適切な数のサービス(たとえば、非コンピュートサービス(複数可)1114)に通信可能に結合され得る。いくつかの実施形態では、CPワーカー(複数可)1118は、1つ以上のDPリソースを構成するための指示を、データプレーン(DP)マネージャ1122に提供するように構成され得る。DPマネージャ1122(たとえば、図7のハイパーバイザサービス708の例)は、任意の適切なDPリソースを作成、修正、および/または除去または削除するように構成され得る。
いくつかの実施形態では、DPマネージャ1122は、任意の適切な数のコンピューティングコンポーネント(たとえば、集合的に、コンピューティングクラスタの例であり得るDPリソース(複数可)1112)を管理するように構成され得る。いくつかの実施形態では、DPマネージャ1122は、任意の適切なタイプのコンピューティングクラスタ(たとえば、Kubernetesクラスタ、コンテナ化されたアプリケーションを実行するために使用されるコンピューティングノードのセットなど)を管理するように構成され得る。CPワーカー(複数可)1118は、意図された状態データに従ってDPリソース(複数可)1112を構成するために、インメモリワークフローマネージャ1116によって識別された命令に従って、DPマネージャ(複数可)1122に、DPリソース(複数可)1112上で任意の適切なオーケストレーション動作を実行させるために、任意の適切な動作を実行するように構成されてもよい。いくつかの実施形態において、CP監視コンポーネント1110は、DPリソース(複数可)1112に通信可能に結合され、DPリソース(複数可)1112の健全性を監視するように構成され得る。いくつかの実施形態において、CP監視コンポーネント1110は、DPリソース(複数可)1112の1つ以上の健全性を示す任意の適切な健全性データを(たとえば、任意の適切な形態の電子通信を使用してユーザデバイスに)送信するように構成され得る。一例として、CP監視コンポーネント1110は、制御プレーンAPI1106を介して、任意の適切な健全性データをユーザデバイスに送信し得る。
いくつかの実施形態において、CP監視コンポーネント1110は、DPリソース(複数可)1112の現在の状態データを監視し、評価するように構成され得る。いくつかの実施形態において、CP監視コンポーネント1110は、CPデータストア1108内のDPリソース(複数可)1112の現在の状態データを格納/更新し得る。現在の状態データは、DPマネージャ1122によって対応するCPワーカーに提供されてもよく、CPワーカーは、現在の状態データをインメモリワークフローマネージャ820に提供してもよく、インメモリワークフローマネージャ820は、現在の状態データをCP監視コンポーネント1110に提供し得る。いくつかの実施形態では、CPワーカー1118(複数可)および/またはインメモリワークフローマネージャ1116は、所与のDPリソースの現在の状態データがCP監視コンポーネント1110によって任意の適切な時間に取得されるように、CPデータストア1108を任意の適切なDPリソースの現在の状態データで直接更新してもよい。
CP監視コンポーネント1110、インメモリワークフローマネージャ1116、およびCPワーカー(複数可)1118は、制御プレーン1102の別個のコンポーネントとして示されているが、いくつかの実施形態では、CP監視コンポーネント1110、インメモリワークフローマネージャ1116、および/またはCPワーカー(複数可)1118の任意の適切な組み合わせが、1つのサービス(たとえば、図7のサービス706、図5のサービス(複数可)502のうちのサービスの1つの例)によって提供され得る。
図12は、少なくとも1つの実施形態に係る、エッジコンピューティングデバイスにおいてインメモリワークフロー管理を提供するための例示的な方法1200を示すブロック図である。方法1200は、任意の適切な数のサービスプロバイダコンピュータ(たとえば、図8のサービスプロバイダコンピュータ)によって実行され得る。いくつかの実施形態では、方法1200は、図12に示す数よりも多いまたは少ない数のステップを含み得る。方法1200のステップは、任意の適切な順序で実行されてもよいことが理解されるべきである。
方法1200は、第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のユーザ要求が、クラウドコンピューティングプロバイダによって動作されるコンピューティングデバイスによって受信され得る1202において開始し得る。このコンピューティングデバイスの例は、図8のサービスプロバイダコンピュータ802を含み得る。いくつかの実施形態において、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、隔離されたコンピューティング環境内で選択的に実行するように構成されたデバイスであり得る。たとえば、クラウドコンピューティングエッジデバイスは、図1~図8、図10、および図11に関して上述したエッジデバイスの一例であってもよい。
1204において、第1のマニフェストが、第1のユーザ要求に少なくとも部分的に基づいて生成され得る。第1のマニフェストは、第1のクラウドコンピューティングエッジデバイスのための第1の構成を指定し得る。いくつかの実施形態において、第1の構成は、第1のユーザ要求に従って、第1のサービスセットを構成する。第1のマニフェストは、図9のマニフェスト900の一例であってもよい。
1206において、第1のクラウドコンピューティングエッジデバイスに、第1のマニフェストに従って、第1のサービスセットがプロビジョニングされ得る。
1208において、第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のユーザ要求が、コンピューティングデバイスによって受信され得る。いくつかの実施形態において、第2のサービスセットは、第1のサービスセットと異なり得る。
1210において、第2のマニフェストが、第2のユーザ要求に少なくとも部分的に基づいて生成され得る。いくつかの実施形態において、第2のマニフェストは、第2のクラウドコンピューティングエッジデバイスのための第2の構成を指定し、第2の構成は第2のサービスセットを含む。第2のマニフェストは、図9のマニフェスト900の別の例であってもよい。
1212において、第2のクラウドコンピューティングエッジデバイスに、第2のマニフェストに従って、第2のサービスセットがプロビジョニングされ得る。いくつかの実施形態では、第2のクラウドコンピューティングエッジデバイスに、第1のクラウドコンピューティングエッジデバイスにおいてプロビジョニングされたサービスとは異なるサービスがプロビジョニングされ得る。
特定の実施形態を説明してきたが、さまざまな変更、改変、代替構成、および均等物も本開示の範囲内に包含される。実施形態は、特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、特定の一連の処理およびステップを用いて実施形態を説明してきたが、本開示の範囲が説明された一連の処理およびステップに限定されないことは、当業者には明らかであろう。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用することができる。
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを用いて実施形態を説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内に含まれることを認識すべきである。ハードウェアのみにおいて、ソフトウェアのみにおいて、またはそれらの組み合わせを用いて、実施形態を実施することができる。本開示に記載されたさまざまなプロセスは、同一のプロセッサまたは任意の組み合わせの異なるプロセッサ上で実行することができる。したがって、コンポーネントまたはモジュールが特定の動作を実行するように構成されると説明する場合、その構成は、たとえば、その処理を実行するように電子回路を設計することによって、その動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの組み合わせによって、実現することができる。プロセスは、プロセス間通信を行う従来技術を含むがこれに限定されないさまざまな技術を用いて、通信を行うことができる。異なる対のプロセスは、異なる技術を使用することができ、または同じ対のプロセスは、異なる時間に異なる技術を使用することができる。実施形態は、プロセッサによって実行されると、プロセッサに本開示に記載の方法のいずれかを実行させるコンピュータプログラム命令を含むコンピュータプログラム製品を使用することによって、実施することができる。
したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなされるべきである。しかしながら、特許請求の範囲により定められた幅広い主旨および範囲から逸脱することなく、追加、削減、削除および他の修正および変更を行ってもよいことは、明らかであろう。したがって、本開示の特定の実施形態を説明したが、これらの実施形態は、限定することを意図していない。さまざまな修正および等価物は、添付の特許請求の範囲に含まれる。
本開示を説明する文脈(特に特許請求の範囲の文脈)において使用された不定冠詞「a」、「an」、定冠詞「the」および同様の参照は、本開示に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、単数および複数の両方を含むように解釈すべきである。用語「備える(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に明記しない限り、非限定的な用語(すなわち、「含むがこれに限定されない」という意味)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在していても、その一部または全部が内部に含まれている、取り付けられている、または一緒に結合されていると解釈されるべきである。本開示における値の範囲の記載は、単にその範囲内に入る各個別の値を個別に参照するための略記法としての役割を果たすことを意図したものであり、本明細書に特に明記しない限り、各個別の値は、本明細書において個別に記載されているかのように、本開示に組み込まれる。本明細書において特に明記しない限り、または内容上明らかに他の意味を示す場合を除き、本明細書に記載の全ての方法は、任意の適切な順序で実行することができる。本明細書において記載されるあらゆる例、または例示的な文言(たとえば、「~のような」)の使用は、単に実施形態をより明らかにすることを意図しており、別段の主張がない限り、本開示の範囲を限定するものではない。本明細書中のいかなる用語も、本開示の実施に不可欠な任意の非請求要素を示すものと解釈すべきではない。
「X,YまたはZの少なくとも1つ」というフレーズのような選言的言語は、特に断らない限り、項目、用語などがX,YもしくはZ、またはそれらの任意の組み合わせ(たとえば、X,Yおよび/またはZ)のいずれかであってもよいことを示すために、一般的に用いられるものとして文脈内で理解されることを意図している。したがって、このような選言的言語は、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが存在することを必要とすると一般的に意図しておらず、また、それを暗示していない。
本開示を実施するために知られている最良の形態を含む本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形例は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、このような変形例を採用することができ、本開示は、本明細書に具体的に記載されている以外の態様で実施されてもよい。したがって、本開示は、適用法によって許容される、本明細書に添付の特許請求の範囲に記載された主題のすべての変形および均等物を含む。さらに、本明細書において別段の記載がない限り、上述した要素のあらゆる可能な変形における組み合わせは、本開示に包含される。
本明細書に引用された刊行物、特許出願、および特許を含む全ての参考文献は、各文献が引用により援用されることが個別にかつ明確に示され、その全体が本明細書に記載された場合と同じ程度に、引用により援用されるものとする。
前述の明細書において、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者であれば、本開示がそれに限定されないことを認識するであろう。上述の開示のさまざまな特徴および態様は、個々にまたは共同で使用されてもよい。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に記載されるものを超える任意の数の環境および用途において利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。

Claims (21)

  1. コンピュータによって実現される方法であって、
    クラウドコンピューティングプロバイダによって動作されるコンピューティングデバイスが、第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のユーザ要求を受信することを含み、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、前記隔離されたコンピューティング環境内で選択的に実行されるように構成されたデバイスであり、前記方法はさらに、
    コンピューティングデバイスが、前記第1のユーザ要求に少なくとも部分的に基づいて、前記第1のクラウドコンピューティングエッジデバイスのための第1の構成を指定する第1のマニフェストを生成することを含み、前記第1の構成は前記第1のサービスセットを含み、前記方法はさらに、
    前記コンピューティングデバイスが、前記第1のマニフェストに従って、前記第1のクラウドコンピューティングエッジデバイスに前記第1のサービスセットをプロビジョニングすることと、
    前記コンピューティングデバイスが、第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のユーザ要求を受信することと、
    前記コンピューティングデバイスが、前記第2のユーザ要求に少なくとも部分的に基づいて、前記第2のクラウドコンピューティングエッジデバイスのための第2の構成を指定する第2のマニフェストを生成することとを含み、前記第2の構成は第2のサービスセットを含み、前記方法はさらに、
    前記コンピューティングデバイスが、前記第2のマニフェストに従って、前記第2のクラウドコンピューティングエッジデバイスに前記第2のサービスセットをプロビジョニングすることを含む、方法。
  2. 前記第1のマニフェストまたは前記第2のマニフェストの少なくとも1つが事前に定義され、クラウドコンピューティングエッジデバイスに関連付けられたシリアル番号、前記クラウドコンピューティングエッジデバイスに対応するホスト名、前記クラウドコンピューティングエッジデバイスのネットワークインターフェイスデバイスに対応するアドレスを有するメディアアクセスコントローラ、または1つ以上のサービスに対応する1つ以上のネットワークアドレスのうちの少なくとも1つをさらに指定する、請求項1に記載のコンピュータによって実現される方法。
  3. 前記第1のクラウドコンピューティングエッジデバイスは、前記隔離されたコンピューティング環境内でコンピューティングクラスタとして動作するように構成された複数のクラウドコンピューティングエッジデバイスのうちの1つであり、前記第1のマニフェストは、前記複数のクラウドコンピューティングエッジデバイスの各クラウドコンピューティングエッジデバイスにおいて実行すべき対応するサービスセットを指定する、請求項1または2に記載のコンピュータによって実現される方法。
  4. 前記第1のサービスセットと前記第2のサービスセットとは同じである、請求項1~3のいずれか1項に記載のコンピュータによって実現される方法。
  5. 前記第1のマニフェストを生成することは、前記第1のユーザ要求で指定された前記第1のサービスセットの各サービスに対応するアーティファクトを取得することを含む、請求項1~4のいずれか1項に記載のコンピュータによって実現される方法。
  6. 前記第1のマニフェストを生成することは、前記第1のサービスセットのうちのサービスに対応するアーティファクトに個別に関連付けられた1つ以上の実行可能スクリプトを実行することを含み、前記1つ以上の実行可能スクリプトを実行することは、1つ以上のエンティティ定義を含むように前記第1のマニフェストを修正し、各エンティティ定義は、デバイスまたはサービスに対応する、請求項1~5のいずれか1項に記載のコンピュータによって実現される方法。
  7. 前記第1のマニフェストを生成することは、前記マニフェスト内で定義された1つ以上のエンティティにネットワークアドレスを割り当てることを含む、請求項1~6のいずれか1項に記載のコンピュータによって実現される方法。
  8. コンピューティングデバイスであって、
    1つ以上のプロセッサと、
    コンピュータ実行可能命令を含む1つ以上のメモリとを備え、前記コンピュータ実行可能命令は、前記1つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、
    第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のユーザ要求を受信させ、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、前記隔離されたコンピューティング環境内で選択的に実行されるように構成されたデバイスであり、前記コンピューティングデバイスはクラウドコンピューティングプロバイダによって動作され、前記コンピュータ実行可能命令はさらに前記コンピューティングデバイスに、
    前記第1のユーザ要求に少なくとも部分的に基づいて、前記第1のクラウドコンピューティングエッジデバイスのための第1の構成を指定する第1のマニフェストを生成させ、前記第1の構成は前記第1のサービスセットを含み、前記コンピュータ実行可能命令はさらに前記コンピューティングデバイスに、
    前記第1のマニフェストに従って、前記第1のクラウドコンピューティングエッジデバイスに前記第1のサービスセットをプロビジョニングさせ、
    第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のユーザ要求を受信させ、
    前記第2のユーザ要求に少なくとも部分的に基づいて、前記第2のクラウドコンピューティングエッジデバイスのための第2の構成を指定する第2のマニフェストを生成させ、前記第2の構成は前記第2のサービスセットを含み、前記コンピュータ実行可能命令はさらに、
    前記第2のマニフェストに従って、前記第2のクラウドコンピューティングエッジデバイスに前記第2のサービスセットをプロビジョニングさせる、コンピューティングデバイス。
  9. 前記第1のマニフェストまたは前記第2のマニフェストの少なくとも1つは、事前に定義されており、クラウドコンピューティングエッジデバイスに関連付けられたシリアル番号、前記クラウドコンピューティングエッジデバイスに対応するホスト名、前記クラウドコンピューティングエッジデバイスのネットワークインターフェイスデバイスに対応するアドレスを有するメディアアクセスコントローラ、または1つ以上のサービスに対応する1つ以上のネットワークアドレスのうちの少なくとも1つをさらに指定する、請求項8に記載のコンピューティングデバイス。
  10. 前記第1のクラウドコンピューティングエッジデバイスは、前記隔離されたコンピューティング環境内でコンピューティングクラスタとして動作するように構成された複数のクラウドコンピューティングエッジデバイスのうちの1つであり、前記第1のマニフェストは、前記複数のクラウドコンピューティングエッジデバイスの各クラウドコンピューティングエッジデバイスにおいて実行すべき対応するサービスセットを指定する、請求項8または9に記載のコンピューティングデバイス。
  11. 前記第1のサービスセットと前記第2のサービスセットとは同じである、請求項8~10のいずれか1項に記載のコンピューティングデバイス。
  12. 前記第1のマニフェストを生成することは、前記第1のユーザ要求で指定された前記第1のサービスセットの各サービスに対応するアーティファクトを取得することを含む、請求項8~11のいずれか1項に記載のコンピューティングデバイス。
  13. 前記第1のマニフェストを生成することは、前記第1のサービスセットのうちのサービスに対応するアーティファクトに個別に関連付けられた1つ以上の実行可能スクリプトを実行することを含み、前記1つ以上の実行可能スクリプトを実行することは、1つ以上のエンティティ定義を含むように前記第1のマニフェストを修正し、各エンティティ定義は、デバイスまたはサービスに対応する、請求項8~12のいずれか1項に記載のコンピューティングデバイス。
  14. 前記第1のマニフェストを生成することは、前記マニフェスト内で定義された1つ以上のエンティティにネットワークアドレスを割り当てることを含む、請求項8~13のいずれか1項に記載のコンピューティングデバイス。
  15. コンピュータ読取可能命令を格納した非一時的なコンピュータ読取可能記憶媒体であって、前記コンピュータ読取可能命令は、クラウドコンピューティングプロバイダによって動作されるコンピューティングデバイスの1つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、
    第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のユーザ要求を受信させ、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、前記隔離されたコンピューティング環境内で選択的に実行されるように構成されたデバイスであり、前記コンピュータ読取可能命令はさらに前記コンピューティングデバイスに、
    前記第1のユーザ要求に少なくとも部分的に基づいて、前記第1のクラウドコンピューティングエッジデバイスのための第1の構成を指定する第1のマニフェストを生成させ、前記第1の構成は前記第1のサービスセットを含み、前記コンピュータ読取可能命令はさらに前記コンピューティングデバイスに、
    前記第1のマニフェストに従って、前記第1のクラウドコンピューティングエッジデバイスに前記第1のサービスセットをプロビジョニングさせ、
    第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のユーザ要求を受信させ、
    前記第2のユーザ要求に少なくとも部分的に基づいて、前記第2のクラウドコンピューティングエッジデバイスのための第2の構成を指定する第2のマニフェストを生成させ、前記第2の構成は前記第2のサービスセットを含み、前記コンピュータ読取可能命令はさらに前記コンピューティングデバイスに、
    前記第2のマニフェストに従って、前記第2のクラウドコンピューティングエッジデバイスに前記第2のサービスセットをプロビジョニングさせる、非一時的なコンピュータ読取可能記憶媒体。
  16. 前記第1のマニフェストまたは前記第2のマニフェストの少なくとも1つが事前に定義され、クラウドコンピューティングエッジデバイスに関連付けられたシリアル番号、前記クラウドコンピューティングエッジデバイスに対応するホスト名、前記クラウドコンピューティングエッジデバイスのネットワークインターフェイスデバイスに対応するアドレスを有するメディアアクセスコントローラ、または1つ以上のサービスに対応する1つ以上のネットワークアドレスのうちの少なくとも1つをさらに指定する、請求項15に記載の非一時的なコンピュータ読取可能記憶媒体。
  17. 前記第1のクラウドコンピューティングエッジデバイスは、前記隔離されたコンピューティング環境内でコンピューティングクラスタとして動作するように構成された複数のクラウドコンピューティングエッジデバイスのうちの1つであり、前記第1のマニフェストは、前記複数のクラウドコンピューティングエッジデバイスの各クラウドコンピューティングエッジデバイスにおいて実行すべき対応するサービスセットを指定する、請求項15または16に記載の非一時的なコンピュータ読取可能記憶媒体。
  18. 前記第1のサービスセットと前記第2のサービスセットとは同じである、請求項15~17のいずれか1項に記載の非一時的なコンピュータ読取可能記憶媒体。
  19. 前記第1のマニフェストを生成することは、前記第1のユーザ要求で指定された前記第1のサービスセットの各サービスに対応するアーティファクトを取得することを含む、請求項15~18のいずれか1項に記載の非一時的なコンピュータ読取可能記憶媒体。
  20. 前記第1のマニフェストを生成することは、
    前記第1のサービスセットのうちのサービスに対応するアーティファクトに個別に関連付けられた1つ以上の実行可能スクリプトを実行することを含み、前記1つ以上の実行可能スクリプトを実行することは、1つ以上のエンティティ定義を含むように前記第1のマニフェストを修正し、各エンティティ定義は、デバイスまたはサービスに対応し、前記第1のマニフェストを生成することはさらに、
    前記マニフェスト内で定義された1つ以上のエンティティにネットワークアドレスを割り当てることを含む、請求項15~19のいずれか1項に記載の非一時的なコンピュータ読取可能記憶媒体。
  21. コンピュータプログラム命令を含むコンピュータプログラム製品であって、前記コンピュータプログラム命令は、プロセッサによって実行されると、前記プロセッサに、
    第1のクラウドコンピューティングエッジデバイスにおいて実行すべき第1のサービスセットを指定する第1のユーザ要求を受信させ、クラウドコンピューティングエッジデバイスは、パブリックネットワークへのアクセスがない隔離されたコンピューティング環境内で実行されている間、前記隔離されたコンピューティング環境内で選択的に実行されるように構成されたデバイスであり、前記コンピュータプログラム命令はさらに前記プロセッサに、
    前記第1のユーザ要求に少なくとも部分的に基づいて、前記第1のクラウドコンピューティングエッジデバイスのための第1の構成を指定する第1のマニフェストを生成させ、前記第1の構成は前記第1のサービスセットを含み、前記コンピュータプログラム命令はさらに前記プロセッサに、
    前記第1のマニフェストに従って、前記第1のクラウドコンピューティングエッジデバイスに前記第1のサービスセットをプロビジョニングさせ、
    第2のクラウドコンピューティングエッジデバイスにおいて実行すべき第2のサービスセットを指定する第2のユーザ要求を受信させ、
    前記第2のユーザ要求に少なくとも部分的に基づいて、前記第2のクラウドコンピューティングエッジデバイスのための第2の構成を指定する第2のマニフェストを生成させ、前記第2の構成は前記第2のサービスセットを含み、前記コンピュータプログラム命令はさらに、
    前記第2のマニフェストに従って、前記第2のクラウドコンピューティングエッジデバイスに前記第2のサービスセットをプロビジョニングさせる、コンピュータプログラム製品。
JP2023561790A 2021-04-09 2022-04-05 構成可能なエッジデバイスプラットフォーム Pending JP2024515247A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163173244P 2021-04-09 2021-04-09
US63/173,244 2021-04-09
US17/531,632 2021-11-19
US17/531,632 US11349710B1 (en) 2021-04-09 2021-11-19 Composable edge device platforms
PCT/US2022/023549 WO2022216752A1 (en) 2021-04-09 2022-04-05 Composable edge device platforms

Publications (1)

Publication Number Publication Date
JP2024515247A true JP2024515247A (ja) 2024-04-08

Family

ID=81595607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023561790A Pending JP2024515247A (ja) 2021-04-09 2022-04-05 構成可能なエッジデバイスプラットフォーム

Country Status (3)

Country Link
EP (1) EP4320525A1 (ja)
JP (1) JP2024515247A (ja)
WO (1) WO2022216752A1 (ja)

Also Published As

Publication number Publication date
EP4320525A1 (en) 2024-02-14
WO2022216752A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
US11595252B2 (en) Composable edge device platforms
US11294699B2 (en) Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group
US10033584B2 (en) Automatically reconfiguring physical switches to be in synchronization with changes made to associated virtual system
US10484427B2 (en) Methods and systems for providing configuration management for computing environments
CN109313544A (zh) 具有虚拟机的基于容器的部署的超融合系统架构
WO2015067123A1 (en) Management of addresses in virtual machines
US20150295750A1 (en) Method and system for managing interconnection of virtual network functions
US10084652B2 (en) Customizing network configuration of virtual machines using subnet mapping rules
CN115280728A (zh) 虚拟化计算机系统中的软件定义网络协调
US10713131B2 (en) Automatic selection of networks when recovering a virtual machine
US20190384736A1 (en) Preservation of port control block information related to logins and states of remote ports during a code load in an embedded port
JP2024515247A (ja) 構成可能なエッジデバイスプラットフォーム
US11915059B2 (en) Virtual edge devices
US11972300B2 (en) Techniques for managing edge device provisioning
Dell Proven Solutions Guide: EMC Infrastructure for VMware View 5.1 EMC VNX Series (NFS), VMware vSphere 5.0, VMware View 5.1, VMware View Storage Accelerator, VMware View Persona Management, VMware View Composer 3.0
CN116997892A (zh) 可组合的边缘设备平台
Missbach et al. Stateless Computing