JP2025506391A - 異なるクラウド環境間の通信における改善されたエンドツーエンドの待ち時間のための改良されたネットワークリンクアーキテクチャ - Google Patents
異なるクラウド環境間の通信における改善されたエンドツーエンドの待ち時間のための改良されたネットワークリンクアーキテクチャ Download PDFInfo
- Publication number
- JP2025506391A JP2025506391A JP2024545964A JP2024545964A JP2025506391A JP 2025506391 A JP2025506391 A JP 2025506391A JP 2024545964 A JP2024545964 A JP 2024545964A JP 2024545964 A JP2024545964 A JP 2024545964A JP 2025506391 A JP2025506391 A JP 2025506391A
- Authority
- JP
- Japan
- Prior art keywords
- cloud
- cloud environment
- virtual network
- link
- vcn
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer Security & Cryptography (AREA)
Abstract
Description
関連出願の相互参照
本出願は、以下の仮出願の各々の非仮出願であり、以下の仮出願の各々の利益を主張する。下に挙げられた仮出願の各々の内容全体は、あらゆる目的で、参照によって本明細書に組み込まれている。
(1)2022年2月2日に出願された米国特許仮出願第63/306,007号、
(2)2022年2月4日に出願された米国特許仮出願第63/306,918号、
(3)2022年3月18日に出願された米国特許仮出願第63/321,614号、
(4)2022年4月22日に出願された米国特許仮出願第63/333,965号、
(5)2022年4月29日に出願された米国特許仮出願第63/336,811号、
(6)2022年5月6日に出願された米国特許仮出願第63/339,297号、
(7)2022年5月26日に出願された米国特許仮出願第63/346,004号、
(8)2022年7月14日に出願された米国特許仮出願第63/389,305号、
(9)2022年7月14日に出願された米国特許仮出願第63/389,145号、および
(10)2022年10月20日に出願された米国特許仮出願第63/380,326号。
本出願は、以下の仮出願の各々の非仮出願であり、以下の仮出願の各々の利益を主張する。下に挙げられた仮出願の各々の内容全体は、あらゆる目的で、参照によって本明細書に組み込まれている。
(1)2022年2月2日に出願された米国特許仮出願第63/306,007号、
(2)2022年2月4日に出願された米国特許仮出願第63/306,918号、
(3)2022年3月18日に出願された米国特許仮出願第63/321,614号、
(4)2022年4月22日に出願された米国特許仮出願第63/333,965号、
(5)2022年4月29日に出願された米国特許仮出願第63/336,811号、
(6)2022年5月6日に出願された米国特許仮出願第63/339,297号、
(7)2022年5月26日に出願された米国特許仮出願第63/346,004号、
(8)2022年7月14日に出願された米国特許仮出願第63/389,305号、
(9)2022年7月14日に出願された米国特許仮出願第63/389,145号、および
(10)2022年10月20日に出願された米国特許仮出願第63/380,326号。
分野
本開示は、クラウドアーキテクチャに関し、より詳細には、1つのクラウド環境のユーザが、他のクラウド環境によって提供されたサービスを使用できるように、2つのクラウド環境をリンクするための技術に関する。
本開示は、クラウドアーキテクチャに関し、より詳細には、1つのクラウド環境のユーザが、他のクラウド環境によって提供されたサービスを使用できるように、2つのクラウド環境をリンクするための技術に関する。
背景
ここ数年、クラウドサービスの採用における劇的な増加が見られており、この傾向は増す一方である。さまざまなクラウド環境が、異なるクラウドサービスプロバイダ(CSP:cloud service providers)によって提供されており、各クラウド環境は、一連の1つまたは複数のクラウドサービスを提供する。クラウド環境によって提供される一連のクラウドサービスは、SaaS(Software-as-a-Service)サービス、IaaS(Infrastructure-as-a-Service)サービス、PaaS(Platform-as-a-Service)サービスなどを含むが、これらに限定されない、1つまたは複数の異なる種類のサービスを含んでよい。
ここ数年、クラウドサービスの採用における劇的な増加が見られており、この傾向は増す一方である。さまざまなクラウド環境が、異なるクラウドサービスプロバイダ(CSP:cloud service providers)によって提供されており、各クラウド環境は、一連の1つまたは複数のクラウドサービスを提供する。クラウド環境によって提供される一連のクラウドサービスは、SaaS(Software-as-a-Service)サービス、IaaS(Infrastructure-as-a-Service)サービス、PaaS(Platform-as-a-Service)サービスなどを含むが、これらに限定されない、1つまたは複数の異なる種類のサービスを含んでよい。
さまざまなクラウド環境が現在利用可能であるが、各クラウド環境は、閉じたエコシステムを加入している顧客に提供する。その結果、クラウド環境の顧客は、そのクラウド環境によって提供されたサービスを使用することに制限される。CSPによって提供されたクラウド環境に加入している顧客が、そのクラウド環境を介して、異なるCSPによって提供された異なるクラウド環境において提供されているサービスを使用するための簡単な方法はない。本明細書において説明された実施形態は、これらの問題および他の問題に対処する。本明細書において説明された実施形態は、これらの問題および他の問題に対処する。
概要
本開示は、一般に、改善されたクラウドアーキテクチャに関し、より詳細には、1つのクラウド環境のユーザが、別の異なるクラウド環境によって提供されたサービスを使用できるように、2つのクラウドをリンクするための技術に関する。本明細書では、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を格納する非一時的コンピュータ可読ストレージ媒体などを含む、さまざまな実施形態が説明される。一部の実施形態は、コンピュータプログラム/命令を含んでいるコンピュータプログラム製品を使用することによって実装されてよく、これらのコンピュータプログラム/命令は、プロセッサによって実行された場合に、プロセッサに、本開示において説明された方法のいずれかを実行させる。
本開示は、一般に、改善されたクラウドアーキテクチャに関し、より詳細には、1つのクラウド環境のユーザが、別の異なるクラウド環境によって提供されたサービスを使用できるように、2つのクラウドをリンクするための技術に関する。本明細書では、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を格納する非一時的コンピュータ可読ストレージ媒体などを含む、さまざまな実施形態が説明される。一部の実施形態は、コンピュータプログラム/命令を含んでいるコンピュータプログラム製品を使用することによって実装されてよく、これらのコンピュータプログラム/命令は、プロセッサによって実行された場合に、プロセッサに、本開示において説明された方法のいずれかを実行させる。
本開示の実施形態は、特定のクラウドネットワーク(例えば、Oracleクラウドインフラストラクチャ(OCI:Oracle Cloud Infrastructure))のサービスを他のクラウド上の(例えば、Microsoft Azure内の)ユーザに配信するための機能をプロビジョニングする、マルチクラウド制御プレーン(MCCP:multi-cloud control plane)フレームワークを提供する。MCCPフレームワークは、ユーザのネイティブなクラウド環境のユーザ体験にできるだけ近いユーザ体験を提供しながら、(他のクラウド環境の)ユーザがクラウド環境のサービス(例えば、PaaSサービス)にアクセスすることを可能にする。MCCPの重要な課題は、顧客が、外部クラウド内のサービスの完全なデータプレーン機能を体験できるようになることである。
本開示の1つの実施形態は、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャによって、第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間のネットワークリンクを作成する要求を受信することであって、第2のクラウド環境内の顧客のテナンシに関連付けられたユーザが、第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスできるようにするために、第1のクラウド環境内の第1の仮想ネットワークが前もって作成されている、受信することと、複数のリンク有効化仮想ネットワークを使用して第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間にネットワークリンクを作成することであって、複数のリンク有効化仮想ネットワークからの第1のリンク有効化仮想ネットワークが第2のクラウド環境に配置され、複数のリンク有効化仮想ネットワークからの第2のリンク有効化仮想ネットワークが第1のクラウド環境に配置される、作成することとを含む方法を対象にする。
本開示の態様は、1つまたは複数のデータプロセッサと、命令を含んでいる非一時的コンピュータ可読ストレージ媒体とを備えているコンピューティングデバイスを提供し、これらの命令は、1つまたは複数のデータプロセッサ上で実行された場合に、コンピューティングデバイスに、本明細書において開示された1つまたは複数の方法の一部またはすべてを実行させる。
本開示の別の態様は、1つまたは複数のデータプロセッサに、本明細書において開示された1つまたは複数の方法の一部またはすべてを実行させるように構成された命令を含む、非一時的機械可読ストレージ媒体において有形に具現化された、コンピュータプログラム製品を提供する。
前述の内容は、他の特徴および実施形態と共に、以下の明細書、特許請求の範囲、および添付の図面を参照するときに、さらに明らかになるであろう。
本開示の特徴、実施形態、および利点は、添付の図面を参照して以下の詳細な説明が読まれるときに、よりよく理解される。
詳細な説明
以下の説明では、説明の目的で、ある実施形態を十分に理解できるように、特定の詳細が示されている。しかし、さまざまな実施形態が、それらの特定の詳細なしで実践されてよいということが明らかである。各図および説明は、限定となるよう意図されていない。「例示的」という単語は、本明細書では「例、事例、または実例としての役割を果たす」ことを意味するために使用される。「例示的」として本明細書に記載されたすべての実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいか、または有利であると解釈されるべきではない。
以下の説明では、説明の目的で、ある実施形態を十分に理解できるように、特定の詳細が示されている。しかし、さまざまな実施形態が、それらの特定の詳細なしで実践されてよいということが明らかである。各図および説明は、限定となるよう意図されていない。「例示的」という単語は、本明細書では「例、事例、または実例としての役割を果たす」ことを意味するために使用される。「例示的」として本明細書に記載されたすべての実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいか、または有利であると解釈されるべきではない。
本開示は、一般に、改善されたクラウドアーキテクチャに関し、より詳細には、1つのクラウド環境のユーザが、別の異なるクラウド環境によって提供されたサービスを使用できるように、2つのクラウドをリンクするための技術に関する。本明細書では、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を格納する非一時的コンピュータ可読ストレージ媒体などを含む、さまざまな実施形態が説明される。一部の実施形態は、コンピュータプログラム/命令を含んでいるコンピュータプログラム製品を使用することによって実装されてよく、これらのコンピュータプログラム/命令は、プロセッサによって実行された場合に、プロセッサに、本開示において説明された方法のいずれかを実行させる。
本開示の実施形態は、特定のクラウドネットワーク(例えば、Oracleクラウドインフラストラクチャ(OCI))のサービスを他のクラウド上の(例えば、Microsoft Azure内の)ユーザに配信するための機能をプロビジョニングする、マルチクラウド制御プレーン(MCCP)フレームワークを提供する。MCCPフレームワークは、ユーザのネイティブなクラウド環境のユーザ体験にできるだけ近いユーザ体験を提供しながら、(他のクラウド環境の)ユーザがクラウド環境のサービス(例えば、PaaSサービス)にアクセスすることを可能にする。MCCPの重要な課題は、顧客が、外部クラウド内のサービスの完全なデータプレーン機能を体験できるようになることである。
MCCPは、第2のクラウドインフラストラクチャのユーザ(例えば、Azureユーザ)が、ユーザにとって透過的な方法で、第1のクラウドインフラストラクチャ(例えば、OCI)によって提供されたリソース(例えば、データベースリソース)を利用できるようにする。特に、第1のクラウドインフラストラクチャによって提供されたサービスは、第2のクラウドインフラストラクチャにおける「ネイティブな」サービスのように見える。これによって、第2のクラウドインフラストラクチャの顧客が、第1のクラウドインフラストラクチャによって提供されたサービスにネイティブにアクセスできるようにする。図6~図17Bを参照して下で説明されるように、MCCPは、外部クラウドユーザ(例えば、第2のクラウドインフラストラクチャのユーザ)によって利用される第1のクラウドインフラストラクチャのリソースを公開する、第1のクラウドインフラストラクチャにおいて実行されるマイクロサービスの集合である。これらのマイクロサービスの各々は、第1のクラウドインフラストラクチャによって提供されたリソースとの通信を提供するプロキシとして機能する。
クラウドネットワークの例
クラウドサービスという用語は、通常、クラウドサービスプロバイダ(CSP)によって、CSPによって提供されたシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用しているユーザまたは顧客による利用をオンデマンドで(例えば、サブスクリプションモデルによって)可能にされるサービスのことを指すために使用される。通常、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムから分離している。したがって、顧客は、サービスのための別々のハードウェアリソースおよびソフトウェアリソースを購入することを必要とせずに、CSPによって提供されたクラウドサービスを利用することができる。クラウドサービスは、加入している顧客に、顧客が、サービスを提供するために使用されるインフラストラクチャの調達に投資することを必要としない、アプリケーションおよびコンピューティングリソースへの容易で拡張可能なアクセスを提供するように設計される。
クラウドサービスという用語は、通常、クラウドサービスプロバイダ(CSP)によって、CSPによって提供されたシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用しているユーザまたは顧客による利用をオンデマンドで(例えば、サブスクリプションモデルによって)可能にされるサービスのことを指すために使用される。通常、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムから分離している。したがって、顧客は、サービスのための別々のハードウェアリソースおよびソフトウェアリソースを購入することを必要とせずに、CSPによって提供されたクラウドサービスを利用することができる。クラウドサービスは、加入している顧客に、顧客が、サービスを提供するために使用されるインフラストラクチャの調達に投資することを必要としない、アプリケーションおよびコンピューティングリソースへの容易で拡張可能なアクセスを提供するように設計される。
さまざまな種類のクラウドサービスを提供する、複数のクラウドサービスプロバイダが存在する。SaaS(Software-as-a-Service)、PaaS(Platform-as-a-Service)、IaaS(Infrastructure-as-a-Service)などを含む、クラウドサービスのさまざまな種類またはモデルが存在する。
顧客は、CSPによって提供された1つまたは複数のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意の実体であることができる。顧客がCSPによって提供されたサービスに加入または登録するときに、その顧客のテナンシまたはアカウントが作成される。次に、顧客は、そのアカウントによって、アカウントに関連付けられた加入している1つまたは複数のクラウドリソースにアクセスすることができる。
前述したように、IaaS(infrastructure as a service)は、クラウドコンピューティングサービスの1つの特定の種類である。IaaSモデルでは、CSPは、顧客自身のカスタマイズ可能なネットワークを構築し、顧客のリソースをデプロイするために顧客によって使用され得るインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPI(cloud services provider infrastructure)と呼ばれる)を提供する。したがって、顧客のリソースおよびネットワークは、CSPによって提供されたインフラストラクチャによって、分散環境内でホストされる。これは、顧客によって提供されたインフラストラクチャによって顧客のリソースおよびネットワークがホストされる従来のコンピューティングと異なっている。
CSPIは、さまざまなホストマシン、メモリリソース、および基板ネットワークまたはアンダーレイネットワークとも呼ばれる物理ネットワークを形成するネットワークリソースを含む、相互接続された高性能な計算リソースを備えることができる。CSPIにおけるリソースは、1つまたは複数の地理的領域にわたって地理的に分散され得る1つまたは複数のデータセンターにわたって分散されてよい。仮想化された分散環境を提供するために、これらの物理的リソースによって仮想化ソフトウェアが実行されてよい。この仮想化は、物理ネットワークの上にオーバーレイネットワーク(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとしても知られている)を作成する。CSPIの物理ネットワークは、1つまたは複数のオーバーレイネットワークまたは仮想ネットワークを物理ネットワークの上に作成するための基盤になる基礎を提供する。物理ネットワーク(または基板ネットワークもしくはアンダーレイネットワーク)は、物理的スイッチ、ルータ、コンピュータ、およびホストマシンなどの、物理ネットワークデバイスを含む。オーバーレイネットワークは、物理基板ネットワークの上で動作する論理(または仮想)ネットワークである。特定の物理ネットワークは、1つまたは複数のオーバーレイネットワークをサポートすることができる。オーバーレイネットワークは、通常、カプセル化技術を使用して、異なるオーバーレイネットワークに属するトラフィックを区別する。仮想ネットワークまたはオーバーレイネットワークは、仮想クラウドネットワーク(VCN:virtual cloud network)とも呼ばれる。仮想ネットワークは、物理ネットワークの上で実行され得るネットワーク抽象化のレイヤを作成するために、ソフトウェア仮想化技術(例えば、ハイパーバイザ、ネットワーク仮想化デバイス(NVD)(例えば、スマートNIC)、トップオブラック(TOR:top-of-rack)スイッチ、NVDによって実行される1つまたは複数の機能を実施するスマートTORによって実施される仮想化機能、および他のメカニズム)を使用して実装される。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどを含む、多くの形態をとることができる。仮想ネットワークは、通常、レイヤ3 IPネットワークまたはレイヤ2 VLANのいずれかである。仮想ネットワークまたはオーバーレイネットワークのこの方法は、多くの場合、仮想レイヤ3ネットワークまたはオーバーレイレイヤ3ネットワークと呼ばれる。仮想ネットワークのために開発されたプロトコルの例としては、IP-in-IP(または汎用ルーティングカプセル化(GRE:Generic Routing Encapsulation))仮想拡張可能LAN(VXLAN(Virtual Extensible LAN)-IETF RFC 7348)、仮想プライベートネットワーク(VPN:Virtual Private Networks)(例えば、MPLSレイヤ3仮想プライベートネットワーク(RFC 4364))、VMwareのNSX、GENEVE(Generic Network Virtualization Encapsulation:汎用ネットワーク仮想化カプセル化)などが挙げられる。
IaaSの場合、CSPによって提供されたインフラストラクチャ(CSPI)は、パブリックネットワーク(例えば、インターネット)を経由して仮想化されたコンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングサービスプロバイダは、インフラストラクチャコンポーネント(例えば、サーバ、ストレージデバイス、ネットワークノード(例えば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザレイヤ)など)をホストすることができる。場合によっては、IaaSプロバイダは、それらのインフラストラクチャコンポーネントに付随して生じるように、さまざまなサービス(例えば、請求書送付、監視、ロギング、セキュリティ、ロードバランシング、およびクラスタ化など)を提供してもよい。したがって、これらのサービスはポリシー主導であることができるため、IaaSユーザは、ロードバランシングを駆動してアプリケーションの可用性および性能を維持するようにポリシーを実装することができてよい。CSPIは、顧客が高度に利用可能なホストされた分散環境内で広範囲のアプリケーションおよびサービスを構築して実行できるようにする、インフラストラクチャおよび一連の補完するクラウドサービスを提供する。CSPIは、顧客のオンプレミスネットワークからなど、さまざまなネットワーク化された場所から安全にアクセスできる柔軟な仮想ネットワーク内で、高性能な計算リソースおよび計算能力ならびにストレージ容量を提供する。顧客がCSPによって提供されたIaaSサービスに加入または登録するときに、その顧客用に作成されるテナンシは、顧客が自分のクラウドリソースを作成、編成、および管理することができる、CSPI内の安全で分離されたパーティションである。
顧客は、CSPIによって提供された計算リソース、メモリリソース、およびネットワークリソースを使用して、自分自身の仮想ネットワークを構築することができる。計算インスタンスなどの1つまたは複数の顧客のリソースまたはワークロードが、これらの仮想ネットワークにデプロイされ得る。例えば、顧客は、CSPIによって提供されたリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、計算インスタンスなどの1つまたは複数の顧客のリソースを、顧客のVCNにデプロイすることができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態をとることができる。したがって、CSPIは、顧客が高度に利用可能なホストされた仮想環境内で広範囲のアプリケーションおよびサービスを構築して実行できるようにする、インフラストラクチャおよび一連の補完するクラウドサービスを提供する。顧客は、CSPIによって提供された基盤になる物理的リソースを管理することも制御することもないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選ばれたネットワークコンポーネント(例えば、ファイアウォール)を限定的に制御することができる。
CSPは、顧客およびネットワーク管理者が、CSPIリソースを使用してクラウド内でデプロイされたリソースの構成、アクセス、および管理を行うことを可能にする、コンソールを提供してよい。ある実施形態では、このコンソールは、CSPIにアクセスして管理するために使用され得るWebベースのユーザインターフェイスを提供する。一部の実装では、コンソールは、CSPによって提供されたWebベースのアプリケーションである。
CSPIは、シングルテナンシアーキテクチャまたはマルチテナンシアーキテクチャをサポートしてよい。シングルテナンシアーキテクチャでは、ソフトウェアコンポーネント(例えば、アプリケーション、データベース)またはハードウェアコンポーネント(例えば、ホストマシンまたはサーバ)が、単一の顧客またはテナントのために働く。マルチテナンシアーキテクチャでは、ソフトウェアコンポーネントまたはハードウェアコンポーネントは、複数の顧客またはテナントのために働く。したがって、マルチテナンシアーキテクチャでは、CSPIリソースは、複数の顧客またはテナント間で共有される。マルチテナンシの状況では、各テナントのデータが分離され、他のテナントには見えないままであることを保証するために、予防策が取られ、CSPI内に予防手段が導入される。
物理ネットワークでは、ネットワークエンドポイント(「エンドポイント」)は、物理ネットワークに接続され、接続先のネットワークとの間で通信するコンピューティングデバイスまたはシステムのことを指す。物理ネットワーク内のネットワークエンドポイントは、ローカルエリアネットワーク(LAN:Local Area Network)、広域ネットワーク(WAN:Wide Area Network)、または他の種類の物理ネットワークに接続されてよい。物理ネットワーク内の従来のエンドポイントの例としては、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワークデバイス、物理コンピュータ(またはホストマシン)などが挙げられる。物理ネットワーク内の各物理デバイスは、デバイスと通信するために使用され得る固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(例えば、MACアドレス)、固定レイヤ3アドレス(例えば、IPアドレス)などであることができる。仮想環境または仮想ネットワークでは、エンドポイントは、物理ネットワークのコンポーネントによってホストされる(例えば、物理ホストマシンによってホストされる)仮想マシンなどの、さまざまな仮想エンドポイントを含むことができる。仮想ネットワーク内のこれらのエンドポイントは、オーバーレイレイヤ2アドレス(例えば、オーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(例えば、オーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を使用して(例えば、仮想ネットワークの制御プレーンを実装するソフトウェアによって)ネットワークエンドポイントに関連付けられたオーバーレイアドレス間を移動できるようにすることによって、柔軟性を可能にする。したがって、物理ネットワークとは異なり、仮想ネットワークでは、ネットワーク管理ソフトウェアを使用して、オーバーレイアドレス(例えば、オーバーレイIPアドレス)が1つのエンドポイントから別のエンドポイントに移動され得る。仮想ネットワークが物理ネットワークの上に構築されるため、仮想ネットワーク内のコンポーネント間の通信は、仮想ネットワークおよび基盤になる物理ネットワークの両方を含む。そのような通信を容易にするために、CSPIのコンポーネントは、仮想ネットワーク内のオーバーレイアドレスを基板ネットワーク内の実際の物理アドレスに、およびその逆に、マッピングするマッピングを学習して格納するように構成される。その後、これらのマッピングは、通信を容易にするために使用される。顧客トラフィックは、仮想ネットワーク内のルーティングを容易にするためにカプセル化される。
したがって、物理アドレス(例えば、物理IPアドレス)は、物理ネットワーク内のコンポーネントに関連付けられ、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、仮想ネットワークまたはオーバーレイネットワーク内の実体に関連付けられる。物理IPアドレスは、基板ネットワークまたは物理ネットワーク内の物理デバイス(例えば、ネットワークデバイス)に関連付けられたIPアドレスである。例えば、各NVDは、関連付けられた物理IPアドレスを有する。オーバーレイIPアドレスは、顧客の仮想クラウドネットワーク(VCN)内の計算インスタンスに関連付けられるなど、オーバーレイネットワーク内の実体に関連付けられたオーバーレイアドレスである。自分自身のプライベートVCNを各々有する2つの異なる顧客またはテナントは、互いについての知識を何も持たずに、それらのVCN内で同じオーバーレイIPアドレスを使用できる可能性がある。物理IPアドレスおよびオーバーレイIPアドレスは、両方とも、実IPアドレスの種類である。これらのIPアドレスは、仮想IPアドレスとは別に存在する。仮想IPアドレスは、通常、複数の実IPアドレスを表すか、または複数の実IPアドレスにマッピングされる、単一のIPアドレスである。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスの間の1対多のマッピングを提供する。例えば、ロードバランサは、VIPを使用して、複数のサーバにマッピングされるか、または複数のサーバを表してよく、各サーバは、それ自身の実IPアドレスを有する。
クラウドインフラストラクチャまたはCSPIは、世界中の1つまたは複数のリージョンの1つまたは複数のデータセンター内で、物理的にホストされる。CSPIは、物理ネットワークまたは基板ネットワーク内のコンポーネント、および物理ネットワークのコンポーネントの上に構築された仮想ネットワーク内にある仮想コンポーネント(例えば、仮想ネットワーク、計算インスタンス、仮想マシンなど)を含んでよい。ある実施形態では、CSPIは、レルム、リージョン、および可用性ドメイン内で編成され、ホストされる。リージョンは、通常、1つまたは複数のデータセンターを含む局所的な地理的領域である。リージョンは、一般に、互いに独立しており、例えば、複数の国または大陸にわたる広大な距離によって分離され得る。例えば、第1のリージョンがオーストラリアにあってよく、別のリージョンが日本にあってよく、さらに別のリージョンがインドにあってよい、などである。各リージョンがCSPIリソースのそのリージョン自体の独立したサブセットを含むように、CSPIリソースがリージョン間で分割される。各リージョンは、計算リソース(例えば、ベアメタルサーバ、仮想マシン、コンテナ、および関連するインフラストラクチャなど)、ストレージリソース(例えば、ブロックボリュームストレージ、ファイルストレージ、オブジェクトストレージ、アーカイブストレージ)、ネットワークリソース(例えば、仮想クラウドネットワーク(VCN)、ロードバランシングリソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワークリソース(例えば、DNS)、ならびにアクセス管理および監視リソースなどの、一連のコアインフラストラクチャサービスおよびリソースを提供してよい。各リージョンは、一般に、レルム内の他のリージョンに接続する複数の経路を有する。
近くのリソースを使用することが、遠いリソースを使用することよりも高速であるため、一般にアプリケーションは、そのアプリケーションが最も頻繁に使用されるリージョン内でデプロイされる(すなわち、そのリージョンに関連付けられたインフラストラクチャにデプロイされる)。アプリケーションは、大きい気象系または地震などのリージョン全体のイベントのリスクを軽減すること、法律管轄区域、税領域に関する変化する要件、および他のビジネス上の基準または社会的基準を満たすことなどのための冗長性などの、さまざまな理由で、異なるリージョン内でデプロイされることも可能である。
リージョン内のデータセンターは、可用性ドメイン(AD:availability domains)にさらに編成されて細分化され得る。可用性ドメインは、リージョン内に位置する1つまたは複数のデータセンターに対応してよい。リージョンは、1つまたは複数の可用性ドメインで構成され得る。そのような分散環境では、CSPIリソースは、仮想クラウドネットワーク(VCN)など、リージョンに固有であるか、または計算インスタンスなど、可用性ドメインに固有である。
リージョン内のADは、互いに分離され、故障耐性があり、同時に故障する可能性が極めて低くなるように構成される。これは、リージョン内の1つのADでの故障が同じリージョン内の他のADの可用性に影響を与える可能性が低くなるように、ネットワーク、物理ケーブル、ケーブル経路、ケーブルエントリポイントなどの重要なインフラストラクチャリソースを共有しないADによって実現される。同じリージョン内のADは、高可用性接続を他のネットワーク(例えば、インターネット、顧客のオンプレミスネットワークなど)に提供すること、ならびに高可用性および災害復旧の両方のために複数のAD内に複製されたシステムを構築することを可能にする、待ち時間の短い高帯域幅ネットワークによって互いに接続されてよい。クラウドサービスは、複数のADを使用して高可用性を保証し、リソースの故障に対して保護する。IaaSプロバイダによって提供されたインフラストラクチャが増大するにつれて、追加の能力を有するより多くのリージョンおよびADが追加されてよい。可用性ドメイン間のトラフィックは、通常、暗号化される。
ある実施形態では、リージョンは、レルムにグループ化される。レルムは、リージョンの論理的集合である。レルムは、互いに分離され、どのデータも共有しない。同じレルム内のリージョンは、互いに通信してよいが、異なるレルム内のリージョンは通信することができない。顧客のテナンシまたはアカウントは、CSPと共に、単一のレルム内に存在し、そのレルムに属する1つまたは複数のリージョンにわたって分散され得る。通常、顧客がIaaSサービスに加入するときに、レルム内の顧客によって指定されたリージョン(「ホーム」リージョンと呼ばれる)内に、その顧客用のテナンシまたはアカウントが作成される。顧客は、レルム内の1つまたは複数の他のリージョンにわたって顧客のテナンシを拡張することができる。顧客は、顧客のテナンシが存在するレルム内にないリージョンにアクセスすることができない。
IaaSプロバイダは、複数のレルムを提供することができ、各レルムは、顧客またはユーザの特定のセットの要求に応じる。例えば、商用レルムは、商業の顧客に提供されてよい。別の例として、レルムは、ある国の中の顧客のために、その特定の国に提供されてよい。さらに別の例として、政府レルムが政府などに提供されてよい。例えば、政府レルムは、特定の政府の要求に応じてよく、商用レルムより高度なセキュリティを有してよい。例えば、Oracleクラウドインフラストラクチャ(OCI)は、商用リージョンのためのレルムおよび政府クラウドリージョンのための(例えば、FedRAMP認定およびIL5認定の)2つのレルムを現在提供している。
ある実施形態では、ADは、1つまたは複数の障害ドメインに細分化され得る。障害ドメインは、アンチアフィニティを提供するためのAD内のインフラストラクチャリソースのグループである。障害ドメインは、複数の計算インスタンスが単一のAD内の同じ物理ハードウェア上に存在しないように、計算インスタンスの分散を可能にする。この分散は、アンチアフィニティとして知られている。障害ドメインは、単一障害点を共有するハードウェアコンポーネント(コンピュータ、スイッチなど)のセットのことを指す。計算プールが、障害ドメインに論理的に分割される。そのため、1つの障害ドメインに影響を与えるハードウェア故障または計算ハードウェアの保守イベントが、他の障害ドメイン内のインスタンスに影響を与えない。実施形態に応じて、ADごとの障害ドメインの数は変わってよい。例えば、ある実施形態では、各ADは3つの障害ドメインを含む。障害ドメインは、AD内の論理データセンターとして機能する。
顧客がIaaSサービスに加入するときに、CSPIからのリソースが、顧客のためにプロビジョニングされ、顧客のテナンシに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、リソースをこれらのネットワークにデプロイすることができる。CSPIによってクラウド内でホストされている顧客のネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、顧客に割り当てられているCSPIリソースを使用して、1つまたは複数の仮想クラウドネットワーク(VCN)を設定することができる。VCNは、仮想プライベートネットワークまたはソフトウェア定義プライベートネットワークである。顧客のVCN内でデプロイされている顧客のリソースは、計算インスタンス(例えば、仮想マシン、ベアメタルインスタンス)および他のリソースを含むことができる。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどの、さまざまな顧客のワークロードを表してよい。VCNにデプロイされた計算インスタンスは、インターネットなどのパブリックネットワークを経由してパブリックにアクセスできるエンドポイント(「パブリックエンドポイント」)と、同じVCNまたは他のVCN(例えば、顧客の他のVCN、または顧客に属していないVCN)内の他のインスタンスと、顧客のオンプレミスのデータセンターまたはネットワークと、ならびにサービスエンドポイントおよび他の種類のエンドポイントと、通信することができる。
CSPは、CSPIを使用してさまざまなサービスを提供してよい。場合によっては、CSPIの顧客は、自分自身がサービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供してよい。サービスプロバイダは、識別情報(例えば、IPアドレス、DNS名、およびDNSポート)によって特徴付けられたサービスエンドポイントを公開してよい。顧客のリソース(例えば、計算インスタンス)は、特定のサービスのためにサービスによって公開されたサービスエンドポイントにアクセスすることによって、その特定のサービスを消費することができる。これらのサービスエンドポイントは、一般に、インターネットなどのパブリック通信ネットワークを介して、エンドポイントに関連付けられたパブリックIPアドレスを使用してユーザによってパブリックにアクセスできるエンドポイントである。パブリックにアクセスできるネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。
ある実施形態では、サービスプロバイダは、サービスのためのエンドポイント(サービスエンドポイントと呼ばれることがある)を介してサービスを公開してよい。次に、サービスの顧客は、このサービスエンドポイントを使用してサービスにアクセスすることができる。ある実装では、サービスのために提供されたサービスエンドポイントは、そのサービスを消費しようとする複数の顧客によってアクセスされ得る。他の実装では、専用サービスエンドポイントが顧客に提供されてよく、その客のみが、その専用サービスエンドポイントを使用してサービスにアクセスできるようにする。
ある実施形態では、VCNが作成されるときに、そのVCNは、VCNに割り当てられているプライベートオーバーレイIPアドレスの範囲(例えば、10.0/16)である、プライベートオーバーレイクラスレスドメイン間ルーティング(CIDR:Classless Inter-Domain Routing)アドレス空間に関連付けられる。VCNは、関連付けられたサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、単一のリージョン内に存在するが、リージョンの可用性ドメインのうちの1つまたは複数あるいはすべてに及ぶことができる。ゲートウェイは、VCNのために構成されている仮想インターフェイスであり、VCNとの間で、VCNの外側の1つまたは複数のエンドポイントへのトラフィックの通信を可能にする。異なる種類のエンドポイントとの間での通信を可能にするために、VCNのための1つまたは複数の異なる種類のゲートウェイが構成されてよい。
VCNは、1つまたは複数のサブネットなどの1つまたは複数のサブネットワークに細分化され得る。したがって、サブネットは、VCN内で作成され得る構成または細分化の単位である。VCNは、1つまたは複数のサブネットを含むことができる。VCN内の各サブネットは、そのVCN内の他のサブネットと重複しない、VCNのアドレス空間内のアドレス空間サブセットを表す、オーバーレイIPアドレスの連続的な範囲(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。
各計算インスタンスは、計算インスタンスがVCNのサブネットに参加できるようにする仮想ネットワークインターフェイスカード(VNIC:virtual network interface card)に関連付けられる。VNICは、物理ネットワークインターフェイスカード(NIC:Network Interface Card)の論理的表現である。一般に、VNICは、実体(例えば、計算インスタンス、サービス)と仮想ネットワークの間のインターフェイスである。VNICは、サブネットに存在し、1つまたは複数の関連付けられたIPアドレス、および関連付けられたセキュリティルールまたはセキュリティポリシーを有する。VNICは、スイッチ上のレイヤ2ポートと同等である。VNICは、計算インスタンスに接続され、VCN内のサブネットに接続される。計算インスタンスに関連付けられたVNICは、計算インスタンスが、VCNのサブネットの一部になることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイントと、VCN内の異なるサブネット内のエンドポイントと、またはVCNの外側のエンドポイントと、通信する(例えば、パケットを送信および受信する)ことを可能にする。したがって、計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNの内側および外側のエンドポイントと接続する方法を決定する。計算インスタンスのためのVNICは、計算インスタンスが作成されてVCN内のサブネットに追加されるときに、作成されてその計算インスタンスに関連付けられる。計算インスタンスのセットを含んでいるサブネットの場合、サブネットは、計算インスタンスのセットに対応するVNICを含み、各VNICは、計算インスタンスのセット内の1つの計算インスタンスに接続される。
各計算インスタンスには、計算インスタンスに関連付けられたVNICを介して、プライベートオーバーレイIPアドレスが割り当てられる。このプライベートオーバーレイIPアドレスは、計算インスタンスが作成されるときに、計算インスタンスに関連付けられたVNICに割り当てられ、計算インスタンスとの間でトラフィックをルーティングするために使用される。特定のサブネット内のすべてのVNICは、同じルートテーブル、セキュリティリスト、およびDHCPオプションを使用する。前述したように、VCN内の各サブネットは、そのVCN内の他のサブネットと重複しない、VCNのアドレス空間内のアドレス空間サブセットを表す、オーバーレイIPアドレスの連続的な範囲(例えば、10.0.0.0/24および10.0.1.0/24)に関連付けられる。VCNの特定のサブネット上のVNICの場合、VNICに割り当てられているプライベートオーバーレイIPアドレスは、このサブネットに割り当てられたオーバーレイIPアドレスの連続的な範囲からのアドレスである。
ある実施形態では、計算インスタンスには、任意選択的に、プライベートオーバーレイIPアドレスに加えて、例えば、パブリックサブネット内である場合、1つまたは複数のパブリックIPアドレスなどの、追加のオーバーレイIPアドレスが割り当てられてよい。これらの複数のアドレスは、同じVNICに割り当てられるか、または計算インスタンスに関連付けられている複数のVNICにわたって割り当てられる。しかし、各インスタンスは、インスタンスの起動中に作成され、インスタンスに割り当てられたプライベートオーバーレイIPアドレスに関連付けられる、プライマリVNICを有し、このプライマリVNICは除去され得ない。セカンダリVNICと呼ばれる追加のVNICが、プライマリVNICと同じ可用性ドメイン内の既存のインスタンスに追加され得る。すべてのVNICは、インスタンスと同じ可用性ドメイン内にある。セカンダリVNICは、プライマリVNICと同じVCN内のサブネット内、または同じVCN内もしくは異なるVCN内のいずれかにある異なるサブネット内にあることができる。
計算インスタンスがパブリックサブネット内にある場合、計算インスタンスには、任意選択的に、パブリックIPアドレスが割り当てられてよい。サブネットが作成されるときに、サブネットは、パブリックサブネットまたはプライベートサブネットのいずれかとして指定され得る。プライベートサブネットは、サブネット内のリソース(例えば、計算インスタンス)および関連付けられたVNICがパブリックオーバーレイIPアドレスを有することができないということを意味する。パブリックサブネットは、サブネット内のリソースおよび関連付けられたVNICがパブリックIPアドレスを有することができるということを意味する。顧客は、単一の可用性ドメイン内に存在するか、またはリージョン内もしくはレルム内の複数の可用性ドメインにわたって存在するように、サブネットを指定することができる。
前述したように、VCNは、1つまたは複数のサブネットに細分化されてよい。ある実施形態では、VCNのために構成された仮想ルータ(VR:Virtual Router)(VCN VRまたは単にVRと呼ばれる)が、VCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRは、そのサブネットの論理ゲートウェイを表し、サブネット(すなわち、そのサブネット上の計算インスタンス)が、VCN内の他のサブネット上のエンドポイントと、およびVCNの外側の他のエンドポイントと、通信できるようにする。VCN VRは、VCN内のVNICとVCNに関連付けられた仮想ゲートウェイ(「ゲートウェイ」)の間のトラフィックをルーティングするように構成された論理的実体である。ゲートウェイは、図1に関して下でさらに説明される。VCN VRは、レイヤ3/IPレイヤの概念である。1つの実施形態では、1つのVCNに対して1つのVCN VRが存在し、VCN VRは、場合によっては、IPアドレスによってアドレス指定される無制限の数のポートを有し、VCNのサブネットごとに1つのポートがある。このようにして、VCN VRは、VCN VRが接続されたVCN内のサブネットごとに異なるIPアドレスを有する。VRは、VCNのために構成されたさまざまなゲートウェイにも接続される。ある実施形態では、サブネットのオーバーレイIPアドレス範囲からの特定のオーバーレイIPアドレスが、そのサブネットのVCN VRのポートのために予約されている。例えば、関連付けられたアドレス範囲10.0/16および10.1/16をそれぞれ有する2つのサブネットを含んでいるVCNについて考える。アドレス範囲10.0/16を有するVCN内の第1のサブネットの場合、この範囲からのアドレスが、そのサブネットのVCN VRのポートのために予約されている。場合によっては、この範囲からの最初のIPアドレスが、VCN VRのために予約されてよい。例えば、オーバーレイIPアドレス範囲10.0/16を有するサブネットの場合、IPアドレス10.0.0.1が、そのサブネットのVCN VRのポートのために予約されてよい。アドレス範囲10.1/16を有する同じVCN内の第2のサブネットの場合、VCN VRは、IPアドレス10.1.0.1を有するその第2のサブネットのポートを有してよい。VCN VRは、VCN内のサブネットの各々について、異なるIPアドレスを有する。
一部の他の実施形態では、VCN内の各サブネットは、VRに関連付けられた予約されたIPアドレスまたはデフォルトのIPアドレスを使用してサブネットによってアドレス指定可能である、それ自体に関連付けられたVRを含んでよい。予約されたIPアドレスまたはデフォルトのIPアドレスは、例えば、そのサブネットに関連付けられたIPアドレスの範囲からの最初のIPアドレスであってよい。サブネット内のVNICは、このデフォルトのIPアドレスまたは予約されたIPアドレスを使用して、サブネットに関連付けられたVRと通信する(例えば、パケットを送信および受信する)ことができる。そのような実施形態では、VRは、そのサブネットの入口/出口ポイントである。VCN内のサブネットに関連付けられたVRは、VCN内の他のサブネットに関連付けられた他のVRと通信することができる。VRは、VCNに関連付けられたゲートウェイと通信することもできる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行している1つまたは複数のNVD上で動作しているか、または1つまたは複数のNVDによって実行される。
ルートテーブル、セキュリティルール、およびDHCPオプションが、VCNのために構成されてよい。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由してVCN内のサブネットからVCNの外側の送信先へトラフィックをルーティングするためのルールを含む。VCNのルートテーブルは、VCNとの間でパケットが転送/ルーティングされる方法を制御するようにカスタマイズされ得る。DHCPオプションは、インスタンスが起動するときにインスタンスに自動的に提供される構成情報のことを指す。
VCNのために構成されたセキュリティルールは、VCNのオーバーレイファイアウォールルールを表す。セキュリティルールは、入口ルールおよび出口ルールを含み、VCN内のインスタンスの内外に許可される(例えば、プロトコルおよびポートに基づく)トラフィックの種類を指定することができる。顧客は、特定のルールがステートフルであるか、またはステートレスであるかを選択することができる。例えば、顧客は、送信元CIDR0.0.0.0/0および送信先TCPポート22を含むステートフル入口ルールを設定することによって、任意の位置からインスタンスのセットへの着信SSHトラフィックを許可することができる。ネットワークセキュリティグループまたはセキュリティリストを使用して、セキュリティルールが実装され得る。ネットワークセキュリティグループは、そのグループ内のリソースのみに当てはまるセキュリティルールのセットで構成される。一方、セキュリティリストは、セキュリティリストを使用する任意のサブネット内のすべてのリソースに当てはまるルールを含む。VCNは、デフォルトのセキュリティルールを含むデフォルトのセキュリティリストを備えてよい。VCNのために構成されたDHCPオプションは、インスタンスが起動するときにVCN内のインスタンスに自動的に提供される構成情報を提供する。
ある実施形態では、VCNの構成情報は、VCN制御プレーンによって決定されて格納される。VCNの構成情報は、例えば、VCNに関連付けられたアドレス範囲に関する情報、VCN内のサブネットおよび関連付けられた情報、VCNに関連付けられた1つまたは複数のVR、VCN内の計算インスタンスおよび関連付けられたVNIC、VCNに関連付けられたさまざまな仮想化ネットワーク機能を実行するNVD(例えば、VNIC、VR、ゲートウェイ)、VCNの状態情報、ならびに他のVCNに関連する情報を含んでよい。ある実施形態では、VCN配布サービスが、VCN制御プレーンまたはその一部によって格納された構成情報をNVDに公開する。配布された情報は、パケットをVCN内の計算インスタンスとの間で転送するためにNVDによって格納されて使用される情報(例えば、転送テーブル、ルーティングテーブルなど)を更新するために使用されてよい。
ある実施形態では、VCNおよびサブネットの作成は、VCN制御プレーン(CP:Control Plane)によって処理され、計算インスタンスの起動は、計算制御プレーンによって処理される。計算制御プレーンは、物理的リソースを計算インスタンスに割り当てる役割を担い、その後、VCN制御プレーンを呼び出してVNICを作成し、計算インスタンスに接続する。VCN CPは、VCNデータマッピングも、パケット転送およびルーティング機能を実行するように構成されたVCNデータプレーンに送信する。ある実施形態では、VCN CPは、更新をVCNデータプレーンに提供する役割を担う配布サービスを提供する。VCN制御プレーンの例が、図6、図7、図8、および図9にも示されており(参照番号616、716、816、および916を参照)、下で説明される。
顧客は、CSPIによってホストされたリソースを使用して、1つまたは複数のVCNを作成してよい。顧客のVCNにデプロイされた計算インスタンスは、さまざまなエンドポイントと通信してよい。これらのエンドポイントは、CSPIによってホストされているエンドポイント、およびCSPIの外側のエンドポイントを含むことができる。
CSPIを使用してクラウドベースのサービスを実装するためのさまざまな異なるアーキテクチャが、図1、図2、図3、図4、図5、および図18~図22に示されており、下で説明される。図1は、ある実施形態によるCSPIによってホストされたオーバーレイVCNまたは顧客のVCNを示す分散環境100の高レベルの図である。図1に示された分散環境は、オーバーレイネットワーク内に複数のコンポーネントを含む。図1に示された分散環境100は、単に例であり、主張される実施形態の範囲を過度に限定するよう意図されていない。多くの変形、代替手段、および変更が可能である。例えば、一部の実装では、図1に示された分散環境は、図1に示されたシステムまたはコンポーネントより多いか、または少ないシステムまたはコンポーネントを含んでよく、2つ以上のサブシステムを組み合わせてよく、またはシステムの異なる構成もしくは配置を含んでよい。
図1に示された例に示されているように、分散環境100は、顧客が加入し、自分の仮想クラウドネットワーク(VCN)を構築するために使用できるサービスおよびリソースを提供するCSPI101を含む。ある実施形態では、CSPI101は、IaaSサービスを加入している顧客に提供する。CSPI101内のデータセンターは、1つまたは複数のリージョンに編成されてよい。1つの例示的なリージョン「リージョンUS」102が、図1に示されている。顧客は、リージョン102に関して、Oracle International Corporationの顧客のVCNを構成している。顧客は、さまざまな計算インスタンスをVCN104にデプロイしてよく、計算インスタンスは、仮想マシンまたはベアメタルインスタンスを含んでよい。インスタンスの例としては、アプリケーション、データベース、ロードバランサなどが挙げられる。
図1に示された実施形態では、顧客のVCN104は、2つのサブネット、すなわち、「サブネット1」および「サブネット2」を含み、各サブネットは、それ自体のCIDR IPアドレス範囲を有する。図1では、サブネット1のオーバーレイIPアドレス範囲が10.0/16であり、サブネット2のアドレス範囲が10.1/16である。VCN仮想ルータ105は、VCN104のサブネット間およびVCNの外側の他のエンドポイントとの通信を可能にする、VCNの論理ゲートウェイを表す。VCN VR105は、VCN104内のVNICとVCN104に関連付けられたゲートウェイの間のトラフィックをルーティングするように構成される。VCN VR105は、VCN104のサブネットごとにポートを提供する。例えば、VR105は、サブネット1のIPアドレス10.0.0.1を有するポートおよびサブネット2のIPアドレス10.1.0.1を有するポートを提供してよい。
複数の計算インスタンスが各サブネットにデプロイされてよく、計算インスタンスは、仮想マシンインスタンスおよび/またはベアメタルインスタンスであることができる。サブネット内の計算インスタンスは、CSPI101内の1つまたは複数のホストマシンによってホストされてよい。計算インスタンスは、計算インスタンスに関連付けられたVNICを介してサブネットに参加する。例えば、図1に示されているように、計算インスタンスC1は、この計算インスタンスに関連付けられたVNICを介してサブネット1の一部になる。同様に、計算インスタンスC2は、C2に関連付けられたVNICを介してサブネット1の一部になる。同様の方法で、仮想マシンインスタンスまたはベアメタルインスタンスであってよい複数の計算インスタンスが、サブネット1の一部になってよい。各計算インスタンスには、それに関連付けられたVNICを介して、プライベートオーバーレイIPアドレスおよびMACアドレスが割り当てられる。例えば、図1では、計算インスタンスC1は、10.0.0.2のオーバーレイIPアドレスおよびM1のMACアドレスを有し、一方、計算インスタンスC2は、10.0.0.3のプライベートオーバーレイIPアドレスおよびM2のMACアドレスを有する。計算インスタンスC1およびC2を含むサブネット1内の各計算インスタンスは、サブネット1のVCN VR105のポートのIPアドレスであるIPアドレス10.0.0.1を使用するVCN VR105へのデフォルトのルートを有する。
サブネット2には、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む、複数の計算インスタンスがデプロイされ得る。例えば、図1に示されているように、計算インスタンスD1およびD2は、それぞれの計算インスタンスに関連付けられたVNICを介してサブネット2の一部になる。図1に示された実施形態では、計算インスタンスD1は、10.1.0.2のオーバーレイIPアドレスおよびMM1のMACアドレスを有し、一方、計算インスタンスD2は、10.1.0.3のプライベートオーバーレイIPアドレスおよびMM2のMACアドレスを有する。計算インスタンスD1およびD2を含むサブネット2内の各計算インスタンスは、サブネット2のVCN VR105のポートのIPアドレスであるIPアドレス10.1.0.1を使用するVCN VR105へのデフォルトのルートを有する。
VCN A104は、1つまたは複数のロードバランサを含んでもよい。例えば、ロードバランサは、サブネットに提供されてよく、サブネット上の複数の計算インスタンスにわたってトラフィックをロードバランスするように構成されてよい。ロードバランサは、VCN内の複数のサブネットにわたってトラフィックをロードバランスするために提供されてもよい。
VCN104にデプロイされた特定の計算インスタンスは、さまざまなエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイント、およびCSPI200の外側のエンドポイントを含んでよい。CSPI101によってホストされているエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(例えば、サブネット1内の2つの計算インスタンス間の通信)、異なるサブネット上の、ただし同じVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスとサブネット2内の計算インスタンスとの間の通信)、同じリージョン内の異なるVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスと同じリージョン106または110内のVCN内のエンドポイントとの間の通信、サブネット1内の計算インスタンスと同じリージョン内のサービスネットワーク110内のエンドポイントとの間の通信)、または異なるリージョン内のVCN内のエンドポイント(例えば、サブネット1内の計算インスタンスと異なるリージョン108内のVCN内のエンドポイントとの間の通信)を含んでよい。CSPI101によってホストされたサブネット内の計算インスタンスは、CSPI101によってホストされていない(すなわち、CSPI101の外側にある)エンドポイントと通信してもよい。これらの外側のエンドポイントは、顧客のオンプレミスネットワーク116内のエンドポイント、他のリモートクラウドによってホストされたネットワーク118内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114、および他のエンドポイントを含む。
同じサブネット上の計算インスタンス間の通信は、送信元計算インスタンスおよび送信先計算インスタンスに関連付けられたVNICを使用して容易にされる。例えば、サブネット1内の計算インスタンスC1は、サブネット1内の計算インスタンスC2にパケットを送信したいことがある。送信元計算インスタンスから発生し、送信先が同じサブネット内の別の計算インスタンスであるパケットの場合、パケットは、送信元計算インスタンスに関連付けられたVNICによって最初に処理される。送信元計算インスタンスに関連付けられたVNICによって実行される処理は、パケットヘッダーからパケットの送信先情報を決定すること、送信元計算インスタンスに関連付けられたVNICのために構成された任意のポリシー(例えば、セキュリティリスト)を識別すること、パケットのネクストホップを決定すること、必要に応じて任意のパケットカプセル化/カプセル解除機能を実行すること、およびその後、意図された送信先とのパケットの通信を容易にすることを目的に、パケットをネクストホップに転送/ルーティングすることを含むことができる。送信先計算インスタンスが送信元計算インスタンスと同じサブネット内にある場合、送信元計算インスタンスに関連付けられたVNICは、送信先計算インスタンスに関連付けられたVNICを識別し、パケットを処理するためにそのVNICに転送するように構成される。次に、送信先計算インスタンスに関連付けられたVNICが実行され、パケットを送信先計算インスタンスに転送する。
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントに伝達されるパケットの場合、この通信は、送信元および送信先計算インスタンスに関連付けられたVNICならびにVCN VRによって容易にされる。例えば、図1のサブネット1内の計算インスタンスC1が、パケットをサブネット2内の計算インスタンスD1に送信したい場合、このパケットは、計算インスタンスC1に関連付けられたVNICによって最初に処理される。計算インスタンスC1に関連付けられたVNICは、VCN VRのデフォルトのルートまたはポート10.0.0.1を使用してパケットをVCN VR105にルーティングするように構成される。VCN VR105は、ポート10.1.0.1を使用してパケットをサブネット2にルーティングするように構成される。次に、D1に関連付けられたVNICによってパケットが受信されて処理され、VNICは、パケットを計算インスタンスD1に転送する。
VCN104内の計算インスタンスからVCN104の外側にあるエンドポイントに伝達されるパケットのために、送信元計算インスタンスに関連付けられたVNIC、VCN VR105、およびVCN104に関連付けられたゲートウェイによって、通信が容易にされる。1つまたは複数の種類のゲートウェイが、VCN104に関連付けられてよい。ゲートウェイは、VCNと別のエンドポイントの間のインターフェイスであり、別のエンドポイントはVCNの外側にある。ゲートウェイは、レイヤ3/IPレイヤの概念であり、VCNがVCNの外側のエンドポイントと通信することを可能にする。したがって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。さまざまな種類のゲートウェイが、さまざまな種類のエンドポイントとのさまざまな種類の通信を容易にするように、VCNのために構成されてよい。ゲートウェイに応じて、通信は、パブリックネットワーク(例えば、インターネット)を経由するか、またはプライベートネットワークを経由してよい。さまざまな通信プロトコルが、これらの通信に使用されてよい。
例えば、計算インスタンスC1は、VCN104の外側のエンドポイントと通信したいことがある。送信元計算インスタンスC1に関連付けられたVNICによって、パケットが最初に処理されてよい。このVNICの処理は、パケットの送信先がC1のサブネット1の外側にあるということを決定する。C1に関連付けられたVNICは、パケットをVCN104のVCN VR105に転送してよい。次にVCN VR105は、パケットを処理し、この処理の一部として、パケットの送信先に基づいて、パケットのネクストホップとして、VCN104に関連付けられた特定のゲートウェイを決定する。その後、VCN VR105は、パケットを特定の識別されたゲートウェイに転送してよい。例えば、送信先が顧客のオンプレミスネットワーク内のエンドポイントである場合、VCN VR105によってパケットが、VCN104のために構成されたダイナミックルーティングゲートウェイ(DRG:Dynamic Routing Gateway)ゲートウェイ122に転送されてよい。次に、パケットは、最終的な意図された送信先へのパケットの伝達を容易にするために、ゲートウェイからネクストホップに転送されてよい。
さまざまな種類のゲートウェイが、VCNのために構成されてよい。VCNのために構成され得るゲートウェイの例が、図1に示されており、下で説明される。VCNに関連付けられたゲートウェイの例は、図18、図19、図20、および図21(例えば、参照番号1834、1836、1838、1934、1936、1938、2034、2036、2038、2134、2136、および2138によって参照されるゲートウェイ)にも示されており、下で説明される。図1に示された実施形態に示されているように、ダイナミックルーティングゲートウェイ(DRG)122は、顧客のVCN104に追加されるか、または関連付けられてよく、顧客のVCN104と別のエンドポイントの間のプライベートネットワークトラフィック通信のための経路を提供し、この別のエンドポイントは、顧客のオンプレミスネットワーク116、CSPI101の異なるリージョン内のVCN108、またはCSPI101によってホストされていない他のリモートクラウドネットワーク118であることができる。顧客のオンプレミスネットワーク116は、顧客のリソースを使用して構築された顧客のネットワークまたは顧客のデータセンターであってよい。顧客のオンプレミスネットワーク116へのアクセスは、通常、極めて制限される。顧客のオンプレミスネットワーク116、およびCSPI101によってクラウド内でデプロイまたはホストされた1つまたは複数のVCN104の両方を有する顧客の場合、顧客は、顧客のオンプレミスネットワーク116および顧客のクラウドベースのVCN104が互いに通信できることを望むことがある。これによって、顧客が、CSPI101によってホストされた顧客のVCN104および顧客のオンプレミスネットワーク116を包含する拡張されたハイブリッド環境を構築することを可能にする。DRG122は、この通信を可能にする。そのような通信を可能にするために、通信チャネル124が設定され、このチャネルの1つのエンドポイントが、顧客のオンプレミスネットワーク116内にあり、他のエンドポイントが、CSPI101内にあり、顧客のVCN104に接続される。通信チャネル124は、インターネットなどのパブリック通信ネットワークまたはプライベート通信ネットワークを経由することができる。インターネットなどのパブリック通信ネットワークを経由するIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するOracleのFastConnect技術などの、さまざまな通信プロトコルが使用されてよい。通信チャネル124の1つのエンドポイントを形成する顧客のオンプレミスネットワーク116内のデバイスまたは機器は、図1に示されたCPE126などの、加入者宅内機器(CPE:customer premise equipment)と呼ばれる。CSPI101側では、エンドポイントは、DRG122を実行するホストマシンであってよい。
ある実施形態では、顧客が1つのVCNを異なるリージョン内の別のVCNとピアリングすることを可能にする、リモートピアリング接続(RPC:Remote Peering Connection)がDRGに追加され得る。そのようなRPCを使用すると、顧客のVCN104は、DRG122を使用して、別のリージョン内のVCN108と接続することができる。DRG122は、Microsoft Azureクラウド、Amazon AWSクラウドなどの、CSPI101によってホストされていない他のリモートクラウドネットワーク118と通信するために使用されてもよい。
図1に示されているように、VCN104上の計算インスタンスが、インターネットなどのパブリックネットワークを経由してアクセス可能なパブリックエンドポイント114と通信することを可能にするインターネットゲートウェイ(IGW:Internet Gateway)120が、顧客のVCN104のために構成されてよい。IGW120は、VCNをインターネットなどのパブリックネットワークに接続するゲートウェイである。IGW120は、VCN104などのVCN内のパブリックサブネット(パブリックサブネット内のリソースは、パブリックオーバーレイIPアドレスを有する)の、インターネットなどのパブリックネットワーク114上のパブリックエンドポイント112への直接アクセスを可能にする。IGW120を使用して、VCN104内のサブネットから、またはインターネットから、接続が開始され得る。
ネットワークアドレス変換(NAT:Network Address Translation)ゲートウェイ128が、顧客のVCN104のために構成され、専用パブリックオーバーレイIPアドレスを有さない顧客のVCN内のクラウドリソースのインターネットへのアクセスを可能にし、ネットワークアドレス変換ゲートウェイ128は、それらのリソースを直接着信インターネット接続(例えば、L4-L7接続)に公開せずに、そのようなアクセスを可能にする。これによって、VCN104内のプライベートサブネット1などの、VCN内のプライベートサブネットの、インターネット上のパブリックエンドポイントへのプライベートアクセスを可能にする。NATゲートウェイでは、プライベートサブネットからパブリックインターネットへの接続のみが開始されることが可能であり、インターネットからプライベートサブネットへの接続は開始され得ない。
ある実施形態では、サービスゲートウェイ(SGW:Service Gateway)126が、顧客のVCN104のために構成されることが可能であり、VCN104とサービスネットワーク110内のサポートされているサービスエンドポイントの間のプライベートネットワークトラフィックのための経路を提供する。ある実施形態では、サービスネットワーク110は、CSPによって提供されてよく、さまざまなサービスを提供してよい。そのようなサービスネットワークの例は、顧客によって使用され得るさまざまなサービスを提供するOracleのServices Networkである。例えば、顧客のVCN104のプライベートサブネット内の計算インスタンス(例えば、データベースシステム)は、パブリックIPアドレスもインターネットへのアクセスも必要とせずに、データをサービスエンドポイント(例えば、オブジェクトストレージ)にバックアップすることができる。ある実施形態では、VCNは、1つのみのSGWを含むことができ、接続は、VCN内のサブネットのみから開始されることが可能であり、サービスネットワーク110からは開始され得ない。VCNが別のVCNとピアリングされた場合、通常、他のVCN内のリソースは、SGWにアクセスできない。FastConnectまたはVPN接続を使用してVCNに接続されているオンプレミスネットワーク内のリソースは、そのVCNのために構成されたサービスゲートウェイを使用することもできる。
ある実装では、SGW126は、対象のサービスまたはサービスのグループのすべてのリージョンのパブリックIPアドレス範囲を表す文字列である、サービスクラスレスドメイン間ルーティング(CIDR)ラベルの概念を使用する。顧客は、サービスへのトラフィックを制御するようにSGWおよび関連するルートルールを構成するときに、サービスCIDRラベルを使用する。顧客は、任意選択的に、セキュリティルールを構成するときに、サービスCIDRラベルを利用することができ、将来、サービスのパブリックIPアドレスが変化する場合に、それらのセキュリティルールを調整する必要がない。
ローカルピアリングゲートウェイ(LPG:Local Peering Gateway)132は、顧客のVCN104に追加され得るゲートウェイであり、VCN104が同じリージョン内の別のVCNとピアリングすることを可能にする。ピアリングは、トラフィックがインターネットなどのパブリックネットワークを横断せず、または顧客のオンプレミスネットワーク116を通ってトラフィックをルーティングすることもなく、VCNが、プライベートIPアドレスを使用して通信することを意味する。好ましい実施形態では、VCNは、確立するピアリングごとに別々のLPGを含む。ローカルピアリングまたはVCNピアリングは、異なるアプリケーションまたはインフラストラクチャ管理機能間でネットワーク接続を確立するために使用される一般的な方法である。
サービスネットワーク110内のサービスのプロバイダなどのサービスプロバイダは、さまざまなアクセスモデルを使用してサービスへのアクセスを提供してよい。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客のVCN内の計算インスタンスによってパブリックにアクセス可能である、およびまたはSGW126を介してプライベートにアクセス可能であってよい、パブリックエンドポイントとして公開されてよい。特定のプライベートアクセスモデルによれば、サービスは、顧客のVCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセス可能にされる。このアクセスは、プライベートエンドポイント(PE:Private Endpoint)アクセスと呼ばれ、サービスプロバイダがサービスを顧客のプライベートネットワーク内のインスタンスとして公開することを可能にする。プライベートエンドポイントのリソースは、顧客のVCN内のサービスを表す。各PEは、顧客のVCN内の顧客によって選択されたサブネット内のVNIC(1つまたは複数のプライベートIPを有するPE-VNICと呼ばれる)として現れる。したがって、PEは、VNICを使用して、プライベートな顧客のVCNのサブネット内のサービスを提示するための方法を提供する。エンドポイントがVNICとして公開されるため、ルーティングルール、セキュリティリストなどの、VNICに関連付けられたすべての特徴は、PE VNICに使用可能になっている。
サービスプロバイダは、PEを介してアクセスを可能にするために、サービスを登録することができる。プロバイダは、サービスの可視性を顧客のテナンシに制限するポリシーを、サービスに関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、単一の仮想IPアドレス(VIP:virtual IP address)の下で、複数のサービスを登録することができる。同じサービスを表す(複数のVCN内の)複数のそのようなプライベートエンドポイントが存在してよい。
次に、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスのDNS名を使用してサービスにアクセスすることができる。顧客のVCN内の計算インスタンスは、トラフィックを顧客のVCN内のPEのプライベートIPアドレスに送信することによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW:Private Access Gateway)130は、サービスプロバイダのVCN(例えば、サービスネットワーク110内のVCN)に接続され得るゲートウェイリソースであり、顧客のサブネットのプライベートエンドポイントとの間のすべてのトラフィックの入口/出口ポイントとして機能する。PAGW130は、プロバイダが内部のIPアドレスリソースを利用せずにPEの接続数をスケーリングすることを可能にする。プロバイダは、単一のVCN内で登録された任意の数のサービスに対して、1つのPAGWのみを構成する必要がある。プロバイダは、サービスを1人または複数の顧客の複数のVCN内のプライベートエンドポイントとして表すことができる。顧客の視点からは、PE VNICは、顧客のインスタンスに接続される代わりに、顧客が対話することを望むサービスに接続されているように見える。プライベートエンドポイントに行くトラフィックは、PAGW130を介してサービスにルーティングされる。これらは、顧客-サービス間プライベート接続(C2S(customer-to-service)接続)と呼ばれる。
PEの概念は、トラフィックがFastConnect/IPsecリンクおよび顧客のVCN内のプライベートエンドポイントを通って流れることを可能にすることによって、サービスのプライベートアクセスを顧客のオンプレミスネットワークおよびデータセンターに拡張するために使用されることも可能である。サービスのプライベートアクセスは、トラフィックがLPG132と顧客のVCN内のPEの間を流れることを可能にすることによって、顧客のピアリングされたVCNに拡張されることも可能である。
顧客は、サブネットレベルでVCN内のルーティングを制御することができ、そのため顧客は、VCN104などの顧客のVCN内のどのサブネットが各ゲートウェイを使用するかを指定することができる。トラフィックが特定のゲートウェイを通ってVCNから外に出ることを許容されるかどうかを判定するために、VCNのルートテーブルが使用される。例えば、特定の例では、顧客のVCN104内のパブリックサブネットのルートテーブルは、IGW120を介して非ローカルトラフィックを送信してよい。同じ顧客のVCN104内のプライベートサブネットのルートテーブルは、SGW126を介してCSPサービスに行くトラフィックを送信してよい。すべての残りのトラフィックは、NATゲートウェイ128を介して送信されてよい。ルートテーブルは、VCNから出るトラフィックのみを制御する。
VCNに関連付けられたセキュリティリストは、インバウンド接続を経由してゲートウェイを介してVCNに入るトラフィックを制御するために使用される。サブネット内のすべてのリソースは、同じルートテーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに入ること、およびインスタンスから出ることを許可された特定の種類のトラフィックを制御するために使用されてよい。セキュリティリストルールは、入口(インバウンド)ルールおよび出口(アウトバウンド)ルールを含んでよい。例えば、入口ルールは、許可された送信元アドレス範囲を指定してよく、一方、出口ルールは、許可された送信先アドレス範囲を指定してよい。セキュリティルールは、特定のプロトコル(例えば、TCP、ICMP)、特定のポート(例えば、SSHの場合は22、Windows RDPの場合は3389)などを指定してよい。ある実装では、インスタンスのオペレーティングシステムは、セキュリティリストルールと一致する、それ自体のファイアウォールルールを強制してよい。ルールは、ステートフル(例えば、接続が追跡され、応答トラフィックに関する明示的なセキュリティリストルールを使用しないで、応答が自動的に許可される)またはステートレスであってよい。
顧客のVCNからの(すなわち、VCN104にデプロイされたリソースまたは計算インスタンスによる)アクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスとして分類され得る。パブリックアクセスは、パブリックエンドポイントにアクセスするためにパブリックIPアドレスまたはNATが使用されるアクセスモデルのことを指す。プライベートアクセスは、プライベートIPアドレスを有するVCN104内の顧客のワークロード(例えば、プライベートサブネット内のリソース)が、インターネットなどのパブリックネットワークを横断せずにサービスにアクセスすることを可能にする。ある実施形態では、CSPI101は、プライベートIPアドレスを有する顧客のVCNのワークロードが、サービスゲートウェイを使用してサービス(のパブリックサービスエンドポイント)にアクセスすることを可能にする。したがって、サービスゲートウェイは、顧客のVCNと顧客のプライベートネットワークの外側に存在するサービスのパブリックエンドポイントとの間の仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
さらに、CSPIは、FastConnectパブリックピアリングなどの技術を使用して専用パブリックアクセスを提供してよく、このアクセスでは、顧客のオンプレミスインスタンスが、FastConnect接続を使用して、インターネットなどのパブリックネットワークを横断せずに、顧客のVCN内の1つまたは複数のサービスにアクセスすることができる。CSPIは、FastConnectプライベートピアリングを使用して専用プライベートアクセスを提供してもよく、このアクセスでは、プライベートIPアドレスを有する顧客のオンプレミスインスタンスが、FastConnect接続を使用して顧客のVCNのワークロードにアクセスすることができる。FastConnectは、顧客のオンプレミスネットワークをCSPIおよびそのサービスに接続するための、パブリックインターネットを使用することに代わるネットワーク接続である。FastConnectは、インターネットに基づく接続と比較した場合に、より高い帯域幅の選択肢およびより信頼できる一貫性のあるネットワーク体験を伴う専用のプライベート接続を作成するための、容易で弾力性のある経済的な方法を提供する。
図1および上記の付随する説明は、例示的な仮想ネットワーク内のさまざまな仮想コンポーネントを説明する。前述したように、仮想ネットワークは、基盤になる物理ネットワークまたは基板ネットワークの上に構築される。図2は、ある実施形態に従って、仮想ネットワークのための基盤になるCSPI200内の物理ネットワークにおける物理コンポーネントの簡略化されたアーキテクチャ図を示している。図に示されているように、CSPI200は、クラウドサービスプロバイダ(CSP)によって提供されたコンポーネントおよびリソース(例えば、計算リソース、メモリリソース、およびネットワークリソース)を含んでいる分散環境を提供する。これらのコンポーネントおよびリソースは、クラウドサービス(例えば、IaaSサービス)を、加入している顧客、すなわち、CSPによって提供された1つまたは複数のサービスに加入している顧客に提供するために使用される。顧客が加入したサービスに基づいて、CSPI200のリソース(例えば、計算リソース、メモリリソース、およびネットワークリソース)のサブセットが、顧客のためにプロビジョニングされる。次に、顧客は、CSPI200によって提供された物理的な計算リソース、メモリリソース、およびネットワークリソースを使用して、自分自身のクラウドベースの(すなわち、CSPIによってホストされた)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。すでに示されたように、これらの顧客のネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、計算インスタンスなどの1つまたは複数の顧客のリソースを、これらの顧客のVCNにデプロイすることができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態であることができる。CSPI200は、顧客が高度に利用可能なホストされた環境内で広範囲のアプリケーションおよびサービスを構築して実行できるようにする、インフラストラクチャおよび一連の補完するクラウドサービスを提供する。
図2に示された実施形態例では、CSPI200の物理コンポーネントは、1つまたは複数の物理ホストマシンまたは物理サーバ(例えば、202、206、208)、ネットワーク仮想化デバイス(NVD)(例えば、210、212)、トップオブラック(TOR)スイッチ(例えば、214、216)、ならびに物理ネットワーク(例えば、218)、および物理ネットワーク218内のスイッチを含む。物理ホストマシンまたは物理サーバは、VCNの1つまたは複数のサブネットに参加するさまざまな計算インスタンスをホストし、実行してよい。計算インスタンスは、仮想マシンインスタンスおよびベアメタルインスタンスを含んでよい。例えば、図1に示されたさまざまな計算インスタンスは、図2に示された物理ホストマシンによってホストされてよい。VCN内の仮想マシン計算インスタンスは、1つのホストマシンによって、または複数の異なるホストマシンによって、実行されてよい。物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストしてもよい。図1に示されたVNICおよびVCN VRは、図2に示されたNVDによって実行されてよい。図1に示されたゲートウェイは、ホストマシンによって、および/または図2に示されたNVDによって、実行されてよい。
ホストマシンまたはサーバは、ホストマシン上の仮想環境を作成して有効化するハイパーバイザ(仮想マシンモニタまたはVMM(virtual machine monitor)とも呼ばれる)を実行してよい。仮想化環境または仮想環境は、クラウドベースのコンピューティングを容易にする。ホストマシン上で、そのホストマシン上のハイパーバイザによって、1つまたは複数の計算インスタンスが作成、実行、および管理されてよい。ホストマシン上のハイパーバイザは、ホストマシンの物理的コンピューティングリソース(例えば、計算リソース、メモリリソース、およびネットワークリソース)が、ホストマシンによって実行されるさまざまな計算インスタンス間で共有されることを可能にする。
例えば、図2に示されているように、ホストマシン202および208は、ハイパーバイザ260および266をそれぞれ実行する。これらのハイパーバイザは、ソフトウェア、ファームウェア、またはハードウェア、あるいはこれらの組合せを使用して実装されてよい。通常、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS:operating system)の上に存在するプロセスまたはソフトウェアレイヤであり、オペレーティングシステムは、ホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理的コンピューティングリソース(例えば、プロセッサ/コアなどの処理リソース、メモリリソース、ネットワークリソース)が、ホストマシンによって実行されるさまざまな仮想マシン計算インスタンス間で共有されることを可能にすることによって、仮想環境を提供する。例えば、図2では、ハイパーバイザ260は、ホストマシン202のOSの上に存在してよく、ホストマシン202のコンピューティングリソース(例えば、処理リソース、メモリリソース、およびネットワークリソース)が、ホストマシン202によって実行される計算インスタンス(例えば、仮想マシン)間で共有されることを可能にする。仮想マシンは、ホストマシンのOSと同じであるか、または異なってよい、それ自体のオペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)を有することができる。ホストマシンによって実行される仮想マシンのオペレーティングシステムは、同じホストマシンによって実行される別の仮想マシンのオペレーティングシステムと同じであるか、または異なってよい。したがって、ハイパーバイザは、複数のオペレーティングシステムが、ホストマシンの同じコンピューティングリソースを共有しながら互いに並行して実行されることを可能にする。図2に示されたホストマシンは、同じ種類または異なる種類のハイパーバイザを有してよい。
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスであることができる。図2では、ホストマシン202上の計算インスタンス268およびホストマシン208上の計算インスタンス274は、仮想マシンインスタンスの例である。ホストマシン206は、顧客に提供されているベアメタルインスタンスの例である。
ある例では、ホストマシン全体が単一の顧客にプロビジョニングされてよく、そのホストマシンによってホストされた1つまたは複数の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)のすべてが、その同じ顧客に属する。他の例では、ホストマシンは、複数の顧客(すなわち、複数のテナント)間で共有されてよい。そのようなマルチテナンシの状況では、ホストマシンは、異なる顧客に属する仮想マシン計算インスタンスをホストしてよい。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバーであってよい。ある実施形態では、ベアメタル計算インスタンスは、ハイパーバイザを有さないベアメタルサーバによってホストされる。ベアメタル計算インスタンスがプロビジョニングされる場合、単一の顧客またはテナントが、ベアメタルインスタンスをホストしているホストマシンの物理的CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンが、他の顧客またはテナントと共有されない。
前述のように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバーになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられたVNICは、計算インスタンスとの間のパケットまたはフレームの通信を容易にする。VNICは、計算インスタンスが作成されるときに、計算インスタンスに関連付けられる。ある実施形態では、ホストマシンによって実行される計算インスタンスの場合、その計算インスタンスに関連付けられたVNICが、ホストマシンに接続されたNVDによって実行される。例えば、図2では、ホストマシン202が、VNIC276に関連付けられている仮想マシン計算インスタンス268を実行し、VNIC276が、ホストマシン202に接続されたNVD210によって実行される。別の例として、ホストマシン206によってホストされたベアメタルインスタンス272が、ホストマシン206に接続されたNVD212によって実行されるVNIC280に関連付けられる。さらに別の例として、VNIC284が、ホストマシン208によって実行される計算インスタンス274に関連付けられ、VNIC284は、ホストマシン208に接続されたNVD212によって実行される。
ホストマシンによってホストされた計算インスタンスの場合、そのホストマシンに接続されたNVDは、それらの計算インスタンスがメンバーであるVCNに対応するVCN VRも実行する。例えば、図2に示された実施形態では、NVD210は、計算インスタンス268がメンバーであるVCNに対応するVCN VR277を実行する。NVD212は、ホストマシン206および208によってホストされた計算インスタンスに対応するVCNに対応する1つまたは複数のVCN VR283を実行してもよい。
ホストマシンは、ホストマシンが他のデバイスに接続されることを可能にする1つまたは複数のネットワークインターフェイスカード(NIC)を含んでよい。ホストマシン上のNICは、ホストマシンが別のデバイスに通信可能に接続されることを可能にする1つまたは複数のポート(またはインターフェイス)を提供してよい。例えば、ホストマシンは、ホストマシンおよびNVDに設けられた1つまたは複数のポート(またはインターフェイス)を使用してNVDに接続されてよい。ホストマシンは、別のホストマシンなどの他のデバイスに接続されてもよい。
例えば、図2では、ホストマシン202は、ホストマシン202のNIC232によって提供されたポート234とNVD210のポート236の間に延びるリンク220を使用して、NVD210に接続される。ホストマシン206は、ホストマシン206のNIC244によって提供されたポート246とNVD212のポート248の間に延びるリンク224を使用して、NVD212に接続される。ホストマシン208は、ホストマシン208のNIC250によって提供されたポート252とNVD212のポート254の間に延びるリンク226を使用して、NVD212に接続される。
次に、NVDは、物理ネットワーク218に接続されている(スイッチファブリックとも呼ばれる)トップオブラック(TOR)スイッチへの通信リンクを介して接続される。ある実施形態では、ホストマシンとNVDの間およびNVDとTORスイッチの間のリンクは、イーサネットリンクである。例えば、図2では、リンク228および230を使用して、NVD210および212がTORスイッチ214および216にそれぞれ接続される。ある実施形態では、リンク220、224、226、228、および230は、イーサネットリンクである。TORに接続されているホストマシンおよびNVDの集合は、ラックと呼ばれることがある。
物理ネットワーク218は、TORスイッチが互いに通信できるようにする通信ファブリックを提供する。物理ネットワーク218は、多層ネットワークであることができる。ある実装では、物理ネットワーク218は、スイッチの多層Closネットワークであり、TORスイッチ214および216は、多層のマルチノード物理スイッチングネットワーク218の葉レベルのノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般に、「n」層ネットワークを含むが、これらに限定されない、さまざまなClosネットワーク構成が可能である。Closネットワークの例が、図5に示されており、下で説明される。
ホストマシンとNVDの間で、1対1構成、多対1構成、1対多構成などの、さまざまな接続構成が可能である。1対1構成の実装では、各ホストマシンがそれ自体の別々のNVDに接続される。例えば、図2では、ホストマシン202が、ホストマシン202のNIC232を介してNVD210に接続される。多対1構成では、複数のホストマシンが1つのNVDに接続される。例えば、図2では、ホストマシン206および208が、NIC244および250を介して同じNVD212にそれぞれ接続される。
1対多構成では、1つのホストマシンが複数のNVDに接続される。図3は、ホストマシンが複数のNVDに接続されるCSPI300内の例を示している。図3に示されているように、ホストマシン302は、複数のポート306および308を含むネットワークインターフェイスカード(NIC)304を備える。ホストマシン300は、ポート306およびリンク320を介して第1のNVD310に接続され、ポート308およびリンク322を介して第2のNVD312に接続される。ポート306および308は、イーサネットポートであってよく、ホストマシン302とNVD310および312の間のリンク320および322は、イーサネットリンクであってよい。次に、NVD310が第1のTORスイッチ314に接続され、NVD312が第2のTORスイッチ316に接続される。NVD310および312とTORスイッチ314および316の間のリンクは、イーサネットリンクであってよい。TORスイッチ314および316は、多層物理ネットワーク318内の層0のスイッチングデバイスを表す。
図3に示された配置は、TORスイッチ314を横断してNVD310を通り、ホストマシン302に向かう第1の経路、およびTORスイッチ316を横断してNVD312を通り、ホストマシン302に向かう第2の経路という、物理スイッチネットワーク318とホストマシン302の間の2つの別々の物理ネットワーク経路を提供する。別々の経路が、ホストマシン302の改善された可用性(高可用性と呼ばれる)をもたらす。経路(例えば、経路のうちの1つのリンクが故障する)またはデバイス(例えば、特定のNVDが機能していない)のうちの1つに問題がある場合、他の経路がホストマシン302との間の通信に使用されてよい。
図3に示された構成では、ホストマシンのNICによって提供された2つの異なるポートを使用して、ホストマシンが2つの異なるNVDに接続される。他の実施形態では、ホストマシンは、複数のNVDへのホストマシンの接続を可能にする複数のNICを含んでよい。
再び図2を参照すると、NVDは、1つまたは複数のネットワークおよび/またはストレージ仮想化機能を実行する物理デバイスまたはコンポーネントである。NVDは、1つまたは複数の処理ユニット(例えば、CPU、ネットワーク処理ユニット(NPU:Network Processing Units)、FPGA、パケット処理パイプラインなど)、キャッシュを含むメモリ、およびポートを有する任意のデバイスであってよい。NVDの1つまたは複数の処理ユニットによって実行されるソフトウェア/ファームウェアによって、さまざまな仮想化機能が実行されてよい。
NVDは、さまざまな形態で実装されてよい。例えば、ある実施形態では、NVDは、組み込みプロセッサを内蔵するスマートNICまたはインテリジェントNICと呼ばれるインターフェイスカードとして実装される。スマートNICは、ホストマシン上のNICとは別のデバイスである。図2では、NVD210および212は、ホストマシン202、ならびにホストマシン206および208にそれぞれ接続されたスマートNICとして実装されてよい。
しかし、スマートNICは、NVDの実装の単に1つの例である。さまざまな他の実装が可能である。例えば、一部の他の実装では、NVDまたはNVDによって実行される1つまたは複数の機能は、1つまたは複数のホストマシン、1つまたは複数のTORスイッチ、およびCSPI200の他のコンポーネントに組み込まれるか、またはこれらによって実行されてよい。例えば、NVDはホストマシンにおいて具現化されてよく、NVDによって実行される機能がホストマシンによって実行される。別の例として、NVDはTORスイッチの一部であってよく、またはTORスイッチは、NVDによって実行される機能を実行するように構成されてよく、これによってTORスイッチは、パブリッククラウドに使用されるさまざまな複雑なパケット変換を実行できる。NVDの機能を実行するTORは、スマートTORと呼ばれることがある。ベアメタル(BM:bare metal)インスタンスではなく仮想マシン(VM:virtual machines)インスタンスが顧客に提供されるさらに他の実装では、NVDによって実行される機能が、ホストマシンのハイパーバイザの内部に実装されてよい。一部の他の実装では、NVDの機能の一部が、一連のホストマシン上で動作している集中型のサービスにオフロードされてよい。
ある実施形態では、図2に示されているようなスマートNICとして実装されるなどの場合、NVDは、NVDが1つまたは複数のホストマシンおよび1つまたは複数のTORスイッチに接続されることを可能にする複数の物理ポートを備えてよい。NVD上のポートは、ホスト向きポート(「南ポート」とも呼ばれる)またはネットワーク向きまたはTOR向きポート(「北ポート」とも呼ばれる)として分類され得る。NVDのホスト向きポートは、NVDをホストマシンに接続するために使用されるポートである。図2のホスト向きポートの例は、NVD210上のポート236、ならびにNVD212上のポート248および254を含む。NVDのネットワーク向きポートは、NVDをTORスイッチに接続するために使用されるポートである。図2のネットワーク向きポートの例は、NVD210上のポート256およびNVD212上のポート258を含む。図2に示されているように、NVD210は、NVD210のポート256からTORスイッチ214に延びるリンク228を使用してTORスイッチ214に接続される。同様に、NVD212は、NVD212のポート258からTORスイッチ216に延びるリンク230を使用してTORスイッチ216に接続される。
NVDは、ホスト向きポートを介してホストマシンからパケットおよびフレーム(例えば、ホストマシンによってホストされた計算インスタンスによって生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後に、それらのパケットおよびフレームを、NVDのネットワーク向きポートを介してTORスイッチに転送してよい。NVDは、NVDのネットワーク向きポートを介してTORスイッチからパケットおよびフレームを受信してよく、必要なパケット処理を実行した後に、それらのパケットおよびフレームを、NVDのホスト向きポートを介してホストマシンに転送してよい。
ある実施形態では、複数のポート、およびNVDとTORスイッチの間の関連付けられたリンクが存在してよい。これらのポートおよびリンクは、集約されて、複数のポートまたはリンクのリンクアグリゲータグループ(LAG(link aggregator group)と呼ばれる)を形成してよい。リンクの集約は、2つのエンドポイント間(例えば、NVDとTORスイッチの間の)の複数の物理リンクが単一の論理リンクとして扱われることを可能にする。特定のLAG内のすべての物理リンクは、同じ速度で全二重モードで動作してよい。LAGは、帯域幅を増やし、2つのエンドポイント間の接続の信頼性を向上させるのに役立つ。LAG内の物理リンクのうちの1つが故障した場合、トラフィックは、LAG内の他の物理リンクのうちの1つに動的かつ透過的に再割り当てされる。集約された物理リンクは、個々のリンクより高い帯域幅を供給する。LAGに関連付けられた複数のポートが、単一の論理ポートとして扱われる。LAGの複数の物理リンクにわたってトラフィックがロードバランスされ得る。1つまたは複数のLAGが、2つのエンドポイント間に構成されてよい。2つのエンドポイントが、NVDとTORスイッチの間、ホストマシンとNVDの間などに存在してよい。
NVDは、ネットワーク仮想化機能を実装または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウェアによって実行される。ネットワーク仮想化機能の例としては、パケットカプセル化およびカプセル解除機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実施するための機能、VCN内の計算インスタンスとの間でのパケットのルーティングおよび転送を容易にする機能などが挙げられるが、これらに限定されない。ある実施形態では、パケットの受信時に、NVDは、パケットを処理して、パケットが転送されまたはルーティングされる方法を決定するために、パケット処理パイプラインを実行するように構成される。このパケット処理パイプラインの一部として、NVDは、VCN内の計算インスタンスに関連付けられたVNICを実行すること、VCNに関連付けられた仮想ルータ(VR)を実行すること、仮想ネットワーク内の転送またはルーティングを容易にするためのパケットのカプセル化およびカプセル解除、あるゲートウェイ(例えば、ローカルピアリングゲートウェイ)の実行、セキュリティリスト、ネットワークセキュリティグループの実施、ネットワークアドレス変換(NAT)機能(例えば、ホストごとのパブリックIPからプライベートIPへの変換)、帯域幅調整機能、ならびに他の機能などの、オーバーレイネットワークに関連付けられた1つまたは複数の仮想機能を実行してよい。
ある実施形態では、NVD内のパケット処理データ経路は、一連のパケット変換段で各々構成された、複数のパケットパイプラインを備えてよい。ある実装では、パケットの受信時に、パケットが構文解析され、単一のパイプラインに分類される。次に、パケットは、パケットが除去されるか、またはNVDのインターフェイスを経由して送信されるまで、1段ずつ線形方式で処理される。これらの段は、既存の段を組み立てることによって新しいパイプラインが構築されることが可能になり、新しい段を作成して既存のパイプラインに挿入することによって、新しい機能が追加されることが可能になるように、基本機能的パケット処理構成要素(例えば、ヘッダーの妥当性確認、帯域幅調整の実施、新しいレイヤ2ヘッダーの挿入、L4ファイアウォールの実施、VCNカプセル化/カプセル解除など)を提供する。
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両方を実行してよい。VCN制御プレーンの例が、図18、図19、図20、および図21にも示されており(参照番号1816、1916、2016、および2116を参照)、下で説明される。VCNデータプレーンの例が、図18、図19、図20、および図21に示されており(参照番号1818、1918、2018、および2118を参照)、下で説明される。制御プレーン機能は、データが転送される方法を制御するネットワークを構成する(例えば、ルートおよびルートテーブルを設定する、VNICを構成するなどの)ために使用される機能を含む。ある実施形態では、すべてのオーバーレイと基板の間のマッピングを中心的に計算し、それらのマッピングをNVDに、およびDRG、SGW、IGWなどのさまざまなゲートウェイのような仮想ネットワークエッジデバイスに公開する、VCN制御プレーンが提供される。同じメカニズムを使用して、ファイアウォールルールが公開されてもよい。ある実施形態では、NVDは、そのNVDに関連するマッピングのみを取得する。データプレーン機能は、制御プレーンを使用する構成設定に基づくパケットの実際のルーティング/転送のための機能を含む。VCNデータプレーンは、顧客のネットワークパケットが基板ネットワークを横断する前に、それらのパケットをカプセル化することによって実施される。カプセル化/カプセル解除機能は、NVDで実施される。ある実施形態では、NVDは、ホストマシンに入るネットワークパケットおよびホストマシンから出るネットワークパケットをすべて傍受し、ネットワーク仮想化機能を実行するように構成される。
上で示されたように、NVDは、VNICおよびVCN VRを含むさまざまな仮想化機能を実行する。NVDは、VNICに接続された1つまたは複数のホストマシンによってホストされた計算インスタンスに関連付けられているVNICを実行してよい。例えば、図2に示されているように、NVD210は、NVD210に接続されたホストマシン202によってホストされた計算インスタンス268に関連付けられているVNIC276の機能を実行する。別の例として、NVD212は、ホストマシン206によってホストされたベアメタル計算インスタンス272に関連付けられているVNIC280を実行し、ホストマシン208によってホストされた計算インスタンス274に関連付けられているVNIC284を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストしてよく、ホストマシンに接続されたNVDは、計算インスタンスに対応するVNICを実行してよい(すなわち、VNICに関連する機能を実行してよい)。
NVDは、計算インスタンスのVCNに対応するVCN仮想ルータも実行する。例えば、図2に示された実施形態では、NVD210は、計算インスタンス268が属するVCNに対応するVCN VR277を実行する。NVD212は、ホストマシン206および208によってホストされた計算インスタンスが属する1つまたは複数のVCNに対応する1つまたは複数のVCN VR283を実行する。ある実施形態では、そのVCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続されたすべてのNVDによって実行される。ホストマシンが、異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されたNVDは、それらの異なるVCNに対応するVCN VRを実行してよい。
VNICおよびVCN VRに加えて、NVDは、さまざまなソフトウェア(例えば、デーモン)を実行してよく、NVDによって実行されるさまざまなネットワーク仮想化機能を容易にする1つまたは複数のハードウェアコンポーネントを含んでよい。簡単にする目的で、これらのさまざまなコンポーネントは、図2に示された「パケット処理コンポーネント」として一緒にグループ化される。例えば、NVD210はパケット処理コンポーネント286を備え、NVD212はパケット処理コンポーネント288を備える。例えば、NVDのパケット処理コンポーネントは、NVDのポートおよびハードウェアインターフェイスとやりとりして、NVDによって受信されたパケットおよびNVDを使用して伝達されたパケットをすべて監視し、ネットワーク情報を格納するように構成された、パケットプロセッサを含んでよい。ネットワーク情報は、例えば、NVDによって処理されるさまざまなネットワークフローを識別するネットワークフロー情報およびフローごとの情報(例えば、フローごとの統計値)を含んでよい。ある実施形態では、ネットワークフロー情報は、VNICごとに格納されてよい。パケットプロセッサは、パケットごとの操作を実行することに加えて、ステートフルNATおよびL4ファイアウォール(FW:firewall)を実施してよい。別の例として、パケット処理コンポーネントは、NVDによって格納された情報を1つまたは複数の異なる複製ターゲットストアに複製するように構成された複製エージェントを含んでよい。さらに別の例として、パケット処理コンポーネントは、NVDのロギング機能を実行するように構成されたロギングエージェントを含んでよい。パケット処理コンポーネントは、NVDの性能および健全性を監視するためのソフトウェア、および場合によっては、NVDに接続された他のコンポーネントの状態および健全性を監視するソフトウェアも、含んでもよい。
図1は、VCN、VCN内のサブネット、サブネットにデプロイされた計算インスタンス、計算インスタンスに関連付けられたVNIC、VCNのVR、およびVCNのために構成されたゲートウェイのセットを含む、例示的な仮想ネットワークまたはオーバーレイネットワークのコンポーネントを示している。図1に示されたオーバーレイコンポーネントは、図2に示された物理コンポーネントのうちの1つまたは複数によって実行またはホストされてよい。例えば、VCN内の計算インスタンスは、図2に示された1つまたは複数のホストマシンによって実行またはホストされてよい。ホストマシンによってホストされた計算インスタンスの場合、その計算インスタンスに関連付けられたVNICは、通常、そのホストマシンに接続されたNVDによって実行される(すなわち、そのホストマシンに接続されたNVDによって、VNIC機能が提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストしているか、または実行しているホストマシンに接続されているすべてのNVDによって実行される。VCNに関連付けられたゲートウェイは、1つまたは複数の異なる種類のNVDによって実行されてよい。例えば、あるゲートウェイは、スマートNICによって実行されてよく、一方、他のゲートウェイは、1つまたは複数のホストマシンまたはNVDの他の実装によって実行されてよい。
前述したように、顧客のVCN内の計算インスタンスは、さまざまなエンドポイントと通信してよく、エンドポイントは、送信元計算インスタンスと同じサブネット内、または送信元計算インスタンスと同じVCN内の、異なるサブネット内にあることができ、あるいはエンドポイントは、送信元計算インスタンスのVCNの外側にある。これらの通信は、計算インスタンスに関連付けられたVNIC、VCN VR、およびVCNに関連付けられたゲートウェイを使用して容易にされる。
VCN内の同じサブネット上の2つの計算インスタンス間の通信の場合、通信は、送信元計算インスタンスおよび送信先計算インスタンスに関連付けられたVNICを使用して容易にされる。送信元計算インスタンスおよび送信先計算インスタンスは、同じホストマシンによって、または異なるホストマシンによってホストされてよい。送信元計算インスタンスから生じるパケットは、送信元計算インスタンスをホストしているホストマシンから、そのホストマシンに接続されたNVDに転送されてよい。NVDでは、パケット処理パイプラインを使用してパケットが処理され、パケット処理パイプラインは、送信元計算インスタンスに関連付けられたVNICの実行を含むことができる。パケットの送信先エンドポイントが同じサブネット内にあるため、送信元計算インスタンスに関連付けられたVNICの実行は、パケットが、送信先計算インスタンスに関連付けられたVNICを実行しているNVDに転送されることを引き起こし、次に、このVNICは、パケットを処理して、送信先計算インスタンスに転送する。送信元計算インスタンスおよび送信先計算インスタンスに関連付けられたVNICは、同じNVD上(例えば、送信元計算インスタンスおよび送信先計算インスタンスが、両方とも同じホストマシンによってホストされる場合)、または異なるNVD上(例えば、送信元計算インスタンスおよび送信先計算インスタンスが、異なるNVDに接続された異なるホストマシンによってホストされる場合)で実行されてよい。VNICは、NVDによって格納されたルーティングテーブル/転送テーブルを使用して、パケットのネクストホップを決定してよい。
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントに伝達されるパケットの場合、送信元計算インスタンスから生じるパケットは、送信元計算インスタンスをホストしているホストマシンから、そのホストマシンに接続されたNVDに伝達される。NVDでは、パケット処理パイプラインを使用してパケットが処理され、パケット処理パイプラインは、1つまたは複数のVNIC、およびVCNに関連付けられたVRの実行を含むことができる。例えば、パケット処理パイプラインの一部として、NVDは、送信元計算インスタンスに関連付けられたVNICに対応する機能を実行するか、または呼び出す(VNICを実行する、とも呼ばれる)。VNICによって実行される機能は、パケット上のVLANタグを調べることを含んでよい。パケットの送信先がサブネットの外側にあるため、VCN VR機能が次に呼び出され、NVDによって実行される。次に、VCN VRは、パケットを、送信先計算インスタンスに関連付けられたVNICを実行しているNVDにルーティングする。次に、送信先計算インスタンスに関連付けられたVNICがパケットを処理し、パケットを送信先計算インスタンスに転送する。送信元計算インスタンスおよび送信先計算インスタンスに関連付けられたVNICは、同じNVD上(例えば、送信元計算インスタンスおよび送信先計算インスタンスが、両方とも同じホストマシンによってホストされる場合)、または異なるNVD上(例えば、送信元計算インスタンスおよび送信先計算インスタンスが、異なるNVDに接続された異なるホストマシンによってホストされる場合)で実行されてよい。
パケットの送信先が、送信元計算インスタンスのVCNの外側である場合、送信元計算インスタンスから生じるパケットは、送信元計算インスタンスをホストしているホストマシンから、そのホストマシンに接続されたNVDに伝達される。NVDは、送信元計算インスタンスに関連付けられたVNICを実行する。パケットの送信先エンドポイントがVCNの外側にあるため、次にパケットは、そのVCNのVCN VRによって処理される。NVDは、VCN VR機能を呼び出し、パケットが、VCNに関連付けられた適切なゲートウェイを実行しているNVDに転送されることを引き起こしてよい。例えば、送信先が顧客のオンプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VRによって、VCNのために構成されたDRGゲートウェイを実行しているNVDに転送されてよい。VCN VRは、送信元計算インスタンスに関連付けられたVNICを実行しているNVDと同じNVD上で、または異なるNVDによって、実行されてよい。ゲートウェイは、スマートNIC、ホストマシン、または他のNVDの実装であることができるNVDによって、実行されてよい。次に、パケットは、ゲートウェイによって処理され、意図された送信先エンドポイントへのパケットの伝達を容易にするネクストホップに転送される。例えば、図2に示された実施形態では、計算インスタンス268から生じるパケットは、リンク220を経由して(NIC232を使用して)ホストマシン202からNVD210に伝達されてよい。NVD210で、VNIC276が、送信元計算インスタンス268に関連付けられたVNICであるため、呼び出される。VNIC276は、パケット内のカプセル化された情報を調べ、意図された送信先エンドポイントへのパケットの伝達を容易にすることを目的に、パケットを転送するためのネクストホップを決定し、その後、パケットを決定されたネクストホップに転送するように構成される。
VCNにデプロイされた計算インスタンスは、さまざまなエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイント、およびCSPI200の外側のエンドポイントを含んでよい。CSPI200によってホストされたエンドポイントは、同じVCNまたは他のVCN内のインスタンスを含んでよく、これらのVCNは、顧客のVCNまたは顧客に属していないVCNであってよい。CSPI200によってホストされたエンドポイント間の通信は、物理ネットワーク218を経由して実行されてよい。計算インスタンスは、CSPI200によってホストされていないか、またはCSPI200の外側にある、エンドポイントと通信してもよい。これらのエンドポイントの例としては、顧客のオンプレミスネットワークまたはデータセンター内のエンドポイント、あるいはインターネットなどのパブリックネットワークを経由してアクセスできるパブリックエンドポイントが挙げられる。CSPI200の外側のエンドポイントとの通信は、さまざまな通信プロトコルを使用して、パブリックネットワーク(例えば、インターネット)(図2に示されていない)またはプライベートネットワーク(図2に示されていない)を経由して実行されてよい。
図2に示されたCSPI200のアーキテクチャは、単に例であり、限定することを意図されていない。代替の実施形態では、変形、代替手段、および変更が可能である。例えば、一部の実装では、CSPI200は、図2に示されたシステムまたはコンポーネントより多いか、または少ないシステムまたはコンポーネントを含んでよく、2つ以上のシステムを組み合わせてよく、またはシステムの異なる構成もしくは配置を含んでよい。図2に示されたシステム、サブシステム、および他のコンポーネントは、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)において、ハードウェアを使用して、またはこれらの組合せで実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。
図4は、ある実施形態による、マルチテナンシ機能をサポートするためのI/O仮想化を実現するための、ホストマシンとNVDの間の接続を示している。図4に示されているように、ホストマシン402は、仮想環境を提供するハイパーバイザ404を実行する。ホストマシン402は、顧客/テナント1番に属するVM1 406および顧客/テナント2番に属するVM2 408という2つの仮想マシンインスタンスを実行する。ホストマシン402は、リンク414を介してNVD412に接続されている物理NIC410を備える。計算インスタンスの各々は、NVD412によって実行されるVNICに接続される。図4の実施形態では、VM1 406はVNIC-VM1 420に接続され、VM2 408はVNIC-VM2 422に接続される。
図4に示されているように、NIC410は、論理NIC A 416および論理NIC B 418という2つの論理NICを備えている。各仮想マシンは、それ自体の論理NICに接続され、その論理NICと共に機能するように構成される。例えば、VM1 406は論理NIC A 416に接続され、VM2 408は論理NIC B 418に接続される。ホストマシン402が、複数のテナントによって共有されている1つのみの物理NIC410を備えているとしても、論理NICに起因して、各テナントの仮想マシンは、自分のホストマシンおよびNICを有しているということを確信している。
ある実施形態では、各論理NICがそれ自体のVLAN IDを割り当てられる。したがって、特定のVLAN IDが、テナント1番の論理NIC A 416に割り当てられ、別のVLAN IDが、テナント2番の論理NIC B 418に割り当てられる。パケットがVM1 406から伝達されるときに、テナント1番に割り当てられたタグが、ハイパーバイザによってパケットに取り付けられ、次に、パケットが、リンク414を経由してホストマシン402からNVD412に伝達される。同様の方法で、パケットがVM2 408から伝達されるときに、テナント2番に割り当てられたタグが、ハイパーバイザによってパケットに取り付けられ、次に、パケットが、リンク414を経由してホストマシン402からNVD412に伝達される。したがって、ホストマシン402からNVD412に伝達されたパケット424は、特定のテナントおよび関連付けられたVMを識別する関連付けられたタグ426を有する。NVDで、ホストマシン402から受信されたパケット424に関して、パケットに関連付けられたタグ426が、パケットがVNIC-VM1 420によって処理されるべきか、またはVNIC-VM2 422によって処理されるべきかを判定するために使用される。次に、パケットは、対応するVNICによって処理される。図4に示された構成は、各テナントの計算インスタンスが、自分のホストマシンおよびNICを所有しているということを確信できるようにする。図4に示された設定は、マルチテナンシ機能をサポートするためのI/O仮想化を可能にする。
図5は、ある実施形態による、物理ネットワーク500の簡略化されたブロック図を示している。図5に示された実施形態は、Closネットワークとして構造化される。Closネットワークは、高い2分割帯域幅および最大のリソース利用を維持しながら、接続冗長性をもたらすように設計された特定の種類ネットワークトポロジーである。Closネットワークは、ノンブロッキングの多段または多層スイッチングネットワークの一種であり、その段または層の数は、2つ、3つ、4つ、5つなどであることができる。図5に示された実施形態は、層1、2、および3を含んでいる3層ネットワークである。TORスイッチ504は、Closネットワーク内の層0スイッチを表す。1つまたは複数のNVDがTORスイッチに接続される。層0スイッチは、物理ネットワークのエッジデバイスとも呼ばれる。層0スイッチは、リーフスイッチとも呼ばれる層1スイッチに接続される。図5に示された実施形態では、「n」個の層0TORスイッチのセットが、「n」個の層1スイッチのセットに接続され、一緒にポッドを形成する。ポッド内の各層0スイッチは、ポッド内のすべての層1スイッチに相互接続されるが、ポッド間にスイッチの接続は存在しない。ある実装では、2つのポッドはブロックと呼ばれる。各ブロックは、「n」個の層2スイッチ(スパインスイッチと呼ばれることがある)のセットによってサービスを提供されるか、またはそれらに接続される。物理ネットワークトポロジーには、複数のブロックが存在することができる。次に、層2スイッチは、「n」個の層3スイッチ(スーパースパインスイッチと呼ばれることがある)に接続される。物理ネットワーク500を経由するパケットの通信は、通常、1つまたは複数のレイヤ3通信プロトコルを使用して実行される。通常、TORレイヤを除く物理ネットワークのすべてのレイヤは、n方向の冗長性を有し、したがって、高可用性を可能にする。物理ネットワークのスケーリングを可能にするように、物理ネットワーク内で互いのスイッチの可視性を制御するために、ポッドおよびブロックに対してポリシーが指定されてよい。
Closネットワークの特徴は、1つの層0スイッチから別の層0スイッチに(または層0スイッチに接続されたNVDから層0スイッチに接続された別のNVDに)達するための最大ホップ数が固定されることである。例えば、3層Closネットワークでは、パケットが1つのNVDから別のNVDに達するために、最大で7ホップが必要とされ、送信元NVDおよびターゲットNVDが、Closネットワークのリーフ層に接続される。同様に、4層Closネットワークでは、パケットが1つのNVDから別のNVDに達するために、最大で9ホップが必要とされ、送信元NVDおよびターゲットNVDが、Closネットワークのリーフ層に接続される。したがって、Closネットワークアーキテクチャは、ネットワーク全体を通じて一貫性のある待ち時間を維持し、これは、データセンター内およびデータセンター間の通信にとって重要である。Closトポロジーは、水平にスケーリングし、コスト効率が高い。より多くのスイッチ(例えば、より多くのリーフスイッチおよびスパインスイッチ)をさまざまな層に追加することによって、および隣接する層でスイッチ間のリンクの数を増やすことによって、ネットワークの帯域幅/スループット能力が容易に増やされ得る。
ある実施形態では、CSPI内の各リソースに、クラウド識別子(CID:Cloud Identifier)と呼ばれる一意の識別子が割り当てられる。この識別子は、リソースの情報の一部として含まれ、例えばコンソールを介して、またはAPIを介して、リソースを管理するために使用され得る。CIDの例示的な構文は次のとおりである。
ocid1.<リソースの種類>.<レルム>.[リージョン][.将来の使用].<一意のID>
ここで、
ocid1:CIDのバージョンを示すリテラル列。
リソースの種類:リソースの種類(例えば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)。
レルム:リソースが存在するレルム。例示的な値は、商用レルムの場合の「c1」、政府クラウドレルムの場合の「c2」、または連邦政府クラウドレルムの場合の「c3」などである。各レルムは、それ自体のドメイン名を有してよい。
リージョン:リソースが存在するリージョン。リージョンをリソースに適用できない場合、この部分は空白であってよい。
将来の使用:将来の使用のために予約されている。
一意のID:IDの一意の部分。この形式は、リソースまたはサービスの種類に応じて変わってよい。
ocid1.<リソースの種類>.<レルム>.[リージョン][.将来の使用].<一意のID>
ここで、
ocid1:CIDのバージョンを示すリテラル列。
リソースの種類:リソースの種類(例えば、インスタンス、ボリューム、VCN、サブネット、ユーザ、グループなど)。
レルム:リソースが存在するレルム。例示的な値は、商用レルムの場合の「c1」、政府クラウドレルムの場合の「c2」、または連邦政府クラウドレルムの場合の「c3」などである。各レルムは、それ自体のドメイン名を有してよい。
リージョン:リソースが存在するリージョン。リージョンをリソースに適用できない場合、この部分は空白であってよい。
将来の使用:将来の使用のために予約されている。
一意のID:IDの一意の部分。この形式は、リソースまたはサービスの種類に応じて変わってよい。
マルチクラウドの導入
図6は、ある実施形態による、異なるクラウドサービスプロバイダ(CSP)によって提供された複数のクラウド環境を含んでいる分散環境600の簡略化された高レベルの図を示し、クラウド環境が、その特定のクラウド環境によって提供された1つまたは複数のクラウドサービスが他のクラウド環境の顧客によって使用されることを可能にする特殊なインフラストラクチャを提供する特定のクラウド環境を含む。図6に示されているように、さまざまなクラウド環境(「クラウド」とも呼ばれる)が、異なるクラウドサービスプロバイダ(CSP)によって提供されてよく、各クラウド環境またはクラウドは、そのクラウド環境の1人または複数の顧客が加入することができる1つまたは複数のクラウドサービスを提供する。CSPによって提供されたクラウド環境によって提供される一連のクラウドサービスは、SaaS(Software-as-a-Service)サービス、IaaS(Infrastructure-as-a-Service)サービス、PaaS(Platform-as-a-Service)サービス、DBaaS(Database-as-a-Service)などを含むが、これらに限定されない、1つまたは複数の異なる種類のクラウドサービスを含んでよい。さまざまなCSPによって提供されたクラウド環境の例としては、Oracle Corporationによって提供されたOracle(登録商標)クラウドインフラストラクチャ(OCI)、Microsoft Corporationによって提供されたMicrosoft(登録商標)Azure、Google LLCによって提供されたGoogle Cloud(商標)、Amazon Corporationによって提供されたAmazon Web Services(AWS(登録商標))などが挙げられる。特定のクラウド環境によって提供されたクラウドサービスは、別のクラウド環境によって提供されたクラウドサービスのセットと異なってよい。
図6は、ある実施形態による、異なるクラウドサービスプロバイダ(CSP)によって提供された複数のクラウド環境を含んでいる分散環境600の簡略化された高レベルの図を示し、クラウド環境が、その特定のクラウド環境によって提供された1つまたは複数のクラウドサービスが他のクラウド環境の顧客によって使用されることを可能にする特殊なインフラストラクチャを提供する特定のクラウド環境を含む。図6に示されているように、さまざまなクラウド環境(「クラウド」とも呼ばれる)が、異なるクラウドサービスプロバイダ(CSP)によって提供されてよく、各クラウド環境またはクラウドは、そのクラウド環境の1人または複数の顧客が加入することができる1つまたは複数のクラウドサービスを提供する。CSPによって提供されたクラウド環境によって提供される一連のクラウドサービスは、SaaS(Software-as-a-Service)サービス、IaaS(Infrastructure-as-a-Service)サービス、PaaS(Platform-as-a-Service)サービス、DBaaS(Database-as-a-Service)などを含むが、これらに限定されない、1つまたは複数の異なる種類のクラウドサービスを含んでよい。さまざまなCSPによって提供されたクラウド環境の例としては、Oracle Corporationによって提供されたOracle(登録商標)クラウドインフラストラクチャ(OCI)、Microsoft Corporationによって提供されたMicrosoft(登録商標)Azure、Google LLCによって提供されたGoogle Cloud(商標)、Amazon Corporationによって提供されたAmazon Web Services(AWS(登録商標))などが挙げられる。特定のクラウド環境によって提供されたクラウドサービスは、別のクラウド環境によって提供されたクラウドサービスのセットと異なってよい。
標準的なクラウド環境では、CSPは、そのクラウド環境によって顧客に提供されている1つまたは複数のクラウドサービスを提供するために使用されるクラウドサービスプロバイダインフラストラクチャ(CSPI)を提供する。CSPによって提供されたCSPIは、計算リソース、メモリリソース、ネットワークリソース、クラウドサービスにアクセスするためのコンソールなどを含む、さまざまな種類のハードウェアリソースおよびソフトウェアリソースを含んでよい。CSPによって提供されたクラウド環境の顧客は、そのクラウド環境によって提供されたクラウドサービスのうちの1つまたは複数に加入してよい。CSPによって、さまざまなサブスクリプションモデルが顧客に提供されてよい。顧客がクラウド環境によって提供されたクラウドサービスに加入した後に、1人または複数のユーザが、加入している顧客に関連付けられてよく、これらのユーザは、顧客が加入したクラウドサービスを使用することができる。ある実装では、顧客が、特定のクラウド環境によって提供されたクラウドサービスに加入するときに、顧客のアカウントまたは顧客のテナンシが、その顧客のために作成される。次に、1人または複数のユーザが、顧客のテナンシに関連付けられることが可能であり、その後、これらのユーザは、顧客のテナンシの下で顧客が加入したサービスを使用することができる。顧客が加入したサービス、顧客のテナンシに関連付けられたユーザなどに関する情報が、通常は、クラウド環境内に格納され、顧客のテナンシに関連付けられる。
例えば、3つの異なるCSPによって提供された3つの異なるクラウド環境が、図6に示されている。これらのクラウド環境は、CSP Aによって提供されたクラウド環境A(クラウドA)610、CSP Bによって提供されたクラウド環境B(クラウドB)640、およびCSP Cによって提供されたクラウド環境C(クラウドC)660を含む。クラウドA 610は、CSP Aによって提供されたインフラストラクチャCSPI_A 612を含み、このインフラストラクチャは、クラウドA 610によって提供されたサービスのセット「サービスA」614を提供するために使用されてよい。1人または複数の顧客(例えば、顧客A1 616-1、顧客A2 616-2)は、クラウドA 610によって提供されたサービスA 614からの1つまたは複数のサービスに加入してよい。1人または複数のユーザ618-1は、顧客A1 616-1に関連付けられてよく、クラウドA 610内で顧客A1 616-1が加入したサービスを使用することができる。同様の方法で、1人または複数のユーザ618-2は、顧客A2 616-2に関連付けられてよく、クラウドA 610内で顧客A2 616-2が加入したサービスを使用することができる。さまざまな使用事例では、顧客A1 616-1が加入したサービスは、顧客A2 616-2が加入したサービスと異なってよい。
図6に示されているように、クラウドB 640は、CSP Bによって提供されたインフラストラクチャCSPI_B 642を含み、このインフラストラクチャは、クラウドB 640によって提供されたサービスのセット「サービスB」644を提供するために使用されてよい。1人または複数の顧客(例えば、顧客B1 646-1)は、サービスB 644からの1つまたは複数のサービスに加入してよい。1人または複数のユーザ648-1は、顧客B1 646-1に関連付けられてよく、クラウドB 640内で顧客B1 646-1が加入したサービスを使用することができる。
図6に示されているように、クラウドC 660は、CSP Cによって提供されたインフラストラクチャCSPI_C 662を含み、このインフラストラクチャは、クラウドC 660によって提供されたサービスのセット「サービスC」664を提供するために使用されてよい。1人または複数の顧客(例えば、顧客C1 666-1)は、サービスC 664からの1つまたは複数のサービスに加入してよい。1人または複数のユーザ668-1は、顧客C1 666-1に関連付けられてよく、クラウドC 660内で顧客C1 666-1が加入したサービスを使用することができる。サービスA 614、サービスB 644、およびサービスC 664が互いに異なることができるということに、注意するべきである。
既存のクラウドの実装では、各クラウドは、閉じたエコシステムを加入している顧客および関連付けられたユーザに提供する。その結果、クラウド環境の顧客および関連付けられたユーザは、顧客が加入しているクラウドによって提供されたサービスを使用することに制限される。例えば、顧客B1 646-1およびそのユーザ648-1は、クラウドB 640によって提供されたサービスB 644を使用することに制限され、クラウドB 640内の自分のアカウントを使用して、クラウドA 610によって提供されたサービスA 614からのサービスまたはクラウドC 660によって提供されたサービスC 664からのサービスなどの、異なるクラウド環境からのサービスにアクセスすることができない。本明細書に記載された教示は、この制限を克服する。本開示において説明されているように、リンクが2つのクラウド環境間に作成されることを可能にし、それによって、第1のCSPによって提供された第1のクラウド環境によって提供されたサービスが、第2の異なるCSPによって提供された第2の異なるクラウド環境の顧客(および関連付けられたユーザ)によって、第2のクラウド環境内の顧客のアカウントを使用して、使用されることを可能にする、さまざまな技術が説明される。
例えば、図6に示された実施形態では、CSP Aによって提供されたインフラストラクチャCSPI_A 612は、他のインフラストラクチャ620に加えて、クラウドAによって提供された1つまたは複数のサービス614が、クラウドB 640およびC 660などの他のクラウドの顧客および関連付けられたユーザによって、それらの他のクラウド内の顧客のアカウントを使用して、使用されることを可能にする、特殊なインフラストラクチャ622(マルチクラウド有効化インフラストラクチャ622またはMEI(multi-cloud enabling infrastructure)622あるいはマルチクラウドインフラストラクチャ622と呼ばれる)を含む。ある実装では、クラウドBおよびCの顧客は、クラウドA 610によって提供されたサービス614のうちの1つまたは複数を使用するために、クラウドAを使用して別々のアカウントを開く必要がない。クラウドB 640の顧客B1 646-1および関連付けられたユーザ648-1は、クラウドB 640内の顧客のアカウントまたはテナンシを使用して、クラウドA 610によって提供された1つまたは複数のサービス614を使用することができる。別の例として、クラウドC 660の顧客C1 666-1および関連付けられたユーザ668-1は、クラウドC 660内の顧客のアカウントまたはテナンシを使用して、クラウドA 610によって提供された1つまたは複数のサービス614を使用することができる。
ある実装では、MEI622は、クラウドA 610と他のクラウドの間にリンクが作成されることを可能にし、これらのリンクは、クラウドA 610によって提供されたサービスにアクセスして利用するために、他のクラウドの顧客および関連付けられたユーザによって使用され得る。これが、クラウドA 610とクラウドB 640の間に作成されたリンク670、およびクラウドA 610とクラウドC 660の間に作成されたリンク672として、図6に記号的に示されている。リンク670を介して、クラウドB 640の顧客は、クラウドA 610によって提供された1つまたは複数のサービス614にアクセスするか、またはサービス614を使用することができる。同様に、リンク672を介して、クラウドC 660の顧客は、クラウドA 610によって提供された1つまたは複数のサービス614にアクセスするか、またはサービス614を使用することができる。
MEI612が実装され得るさまざまな方法が存在する。ある実施形態では、MEI612は、異なるクラウドとのリンクが確立されることを可能にするコンポーネントを含んでよい。例えば、図6では、MEI622は、クラウドB 640とのリンク670を有効化する役割を担うインフラストラクチャコンポーネント624、およびクラウドC 660とのリンク672を有効化する役割を担うインフラストラクチャコンポーネント626を含む。同様の方法で、MEI622は、他のクラウドとのリンクを有効化し、容易にする他のコンポーネントを含んでよい。一部の実装では、MEI622のコンポーネントは、複数の異なるクラウドとのリンクを容易にしてもよい。
1つのクラウドの顧客が、異なるクラウドによって提供されたクラウドサービスを使用したい理由、または使用することを望む理由は、複数ある。例として図6を使用すると、クラウドB 640の顧客B1 646-1がクラウドA 610によって提供されたクラウドサービス614を使用したい理由が複数ある。1つの使用事例の状況では、この理由は、クラウドA 610が、クラウドB 640によって提供されない機能を有するクラウドサービスを提供するために発生することがある。別の使用事例の状況として、クラウドAおよびBは、同様のサービスを提供することができるが、クラウドA 610によって提供されたサービスが、クラウドB 640によって提供された対応するサービスより良い(例えば、より多くの特徴/機能、より高速など)ことがある。さらに別の使用事例の状況として、クラウドB 640の顧客B1 646-1は、クラウドB 640によって提供されたクラウドサービスより低価格でサービスが提供されるため、クラウドA 610によって提供されたクラウドサービスを使用したいことがある。場合によっては、クラウドB 640の顧客B1 646-1がクラウドA 610によって提供されたクラウドサービスを使用したい、地理的制約または他の理由が存在することがある。例えば、クラウドA 610は、クラウドB 640によってサービス提供されていない所望のサービスを地理的領域内で提供することがあり、または特定のサービスが、顧客がサービスを望んでいる地理的領域内で、クラウドB 640によって提供されていない。1つのクラウドの顧客が異なるクラウドによって提供されたサービスを使用したい理由に関して、複数の他の使用事例の状況も可能である。
ある実施形態では、MEI622は、クラウドA 610と別のクラウドの間のリンクを作成し、このリンクを介して、他のクラウドの顧客に関連付けられたユーザが、シームレスな方法で、他のクラウド自体から、クラウドA 610によって提供されたサービスにアクセスして使用できるようにするための能力を提供し、その機能を実行する。例えば、MEI622は、クラウド640の顧客B1 646-1に関連付けられたユーザ648-1が、シームレスな方法で、クラウドA 610によって提供されたサービスA 614からのサービスにアクセスできるようにする。ある実装では、クラウドB 640内からユーザ648-1がアクセスできるユーザインターフェイス(例えば、コンソール)が提供されてよく、このユーザインターフェイスは、ユーザが、クラウドA 610によって提供されたサービス614のリストを見ること、およびユーザ648-1がアクセスすることを望む特定のサービスを選択することを可能にする。ユーザの選択に応答して、MEI622は、要求されたサービスへのアクセスを可能にするために、クラウドAとBの間のリンク670を確立する処理を実行する役割を担う。リンク670を設定するための処理が、MEI622によって実質的に自動的に実行される。顧客B1 646-1または関連付けられたユーザ648-1は、クラウドA 610とB 640の間のリンク670の作成、維持、および使用を容易にするために必要とされるすべてのシステム、ネットワーク、または他の構成の変更を実行することに関して、心配することがない。クラウド間のリンクの作成において、ユーザにも顧客にも負担を与えない。本開示で説明された技術を使用して、高速で効率的な方法でリンクが作成される。
MEI622は、さまざまな技術を使用して、ユーザおよび顧客にとってシームレスなリンクの作成および使用を行い、このようにして、改善されたユーザ体験を提供することができる。ある実装では、MEI622は、クラウドA 610にサービスを要求する、およびクラウドA 610からの要求されたサービスにアクセスするなどのために、顧客B1および関連付けられたユーザ648-1が対話するユーザインターフェイス(例えば、グラフィカルユーザインターフェイスGUI(graphical user interfaces)など)およびプロセスフローを、クラウドB 640内で顧客/ユーザが体験するインターフェイスおよびプロセスフローに実質的に類似させる。このようにして、クラウドB 640のインターフェイスおよびプロセスフローに慣れていることがある顧客またはユーザは、クラウドA 610からのサービス614にアクセスするために、新しいインターフェイスおよびプロセスフローを学習する必要がない。MEI622は、異なるクラウド環境のユーザに、異なるインターフェイスおよびプロセスフローを提示してよい。例えば、クラウドBのユーザインターフェイスおよびフローに実質的に類似しているユーザインターフェイスおよびプロセスフローの第1のセットが、クラウドB 640からのユーザに提示されてよく、一方、クラウドCのユーザインターフェイスおよびフローに実質的に類似しているユーザインターフェイスおよびプロセスフローの異なるセットが、クラウドC 660からからクラウドA 610にアクセスしているユーザに提示されてよい。これは、他のクラウドからクラウドA 610のサービス614にアクセスするためのユーザの体験を簡略化し、その結果、改善するために実行される。
別の例として、各クラウド環境は、通常、セキュリティをクラウド環境に提供するように構成されたアイデンティティ管理システムを含む。アイデンティティ管理システムは、クラウド環境にデプロイされている、CSPによって提供されたリソース、および加入しているクラウドの顧客のリソースを含む、クラウド環境内のリソースを保護するように構成される。アイデンティティ管理システムによって実行される機能は、例えば、クラウドの加入している顧客および関連付けられたユーザに関連付けられたアイデンティティ認証情報(例えば、ユーザ名、パスワードなど)を管理すること、アイデンティティ認証情報を使用して、クラウド環境のために構成された許可/アクセスポリシーに基づいてクラウドリソースおよびサービスへのユーザのアクセスを規制すること、ならびに他の機能を含む。異なるクラウドは、異なるアイデンティティ管理システムおよび関連する技術を使用してよい。例えば、クラウドA 610内のアイデンティティ管理システムおよび関連する手順は、クラウドB 640内のアイデンティティ管理システムおよび関連する手順と完全に異なってよく、さらに、クラウドB 640内のアイデンティティ管理システムおよび関連する手順は、クラウドC 660内のアイデンティティ管理システムおよび関連する手順と完全に異なってよい。ある実装では、異なるクラウド環境間のアイデンティティ管理システムおよび関連する手順におけるこれらの違いにもかかわらず、本明細書に記載された技術は、第1のクラウドの顧客に関連付けられたユーザが、第1のクラウド内の顧客およびユーザに関連付けられた同じアイデンティティ認証情報を使用して、異なるクラウドによって提供されたクラウドサービスにアクセスすることを可能にする。
例えば、図6に示された実施形態では、CSP Bによって提供されたクラウドB 640は、アイデンティティ認証情報を、顧客B1 646-1および関連付けられたユーザ648-1などの加入している顧客および関連付けられたユーザに割り当てる(assigns)か、または割り当てる(allocates)、アイデンティティ管理システムを含んでよい。これらのアイデンティティ認証情報は、クラウドB 640内の顧客B1 646-1のために作成されたテナンシに関連付けられる。ある実装では、クラウドA 610によって提供されたMEI622は、クラウドBの顧客B1 646-1に関連付けられたユーザ648-1が、クラウドB 640内のユーザ648-1および顧客B1 646-1に関連付けられたアイデンティティ認証情報を使用してクラウドA 610内のサービスA 614からのサービスにアクセスすることを可能にする。これによって、単にクラウドA 610内のサービス614にアクセスする目的で、ユーザ648-1がクラウドA 610に固有の新しいアイデンティティ認証情報を作成する必要がないため、ユーザ648-1のユーザ体験を大幅に改善する。MEI622は、そのようなアクセスを容易にする。
例として、クラウドB 640の顧客B1は、クラウドA 610によって提供されたサービスのセット614からのDBaaS(Database-as-a Service)などのサービスを使用することを選択してよい。そのような選択に応答して、MEI622は、顧客B1 646-1に関連付けられたユーザ648-1がクラウドA 610によって提供されたDBaaSサービスを使用できるようにするために、リンク670がクラウドA 610とクラウドB 640の間に自動的に作成されることを引き起こす。リンク670の自動的な設定は、MEI622によって容易にされる。リンク670が設定された後に、ユーザ648-1は、クラウドB 640を介してクラウドA 610内のDBaaSサービスを使用することができる。このサービスを使用することの一部として、ユーザ648-1は、クラウドB 640を介して、データベースリソースを作成する要求をクラウドA 610に送信することができる。それに応じて、CSPI_A 612は、要求されたデータベースをクラウドA 610内に作成してよい。ある実装では、作成されたデータベースは、クラウドA 610内で顧客B1のために作成された仮想ネットワーク(例えば、仮想クラウドネットワークまたはVCN)内でプロビジョニングされてよく、クラウドB 640を介してユーザ648-1によってアクセス可能である。次に、ユーザ648-1は、クラウドB 640から、プロビジョニングされたデータベースを使用する要求をクラウドA 610に送信してよい。これらの要求は、例えば、データをデータベースに書き込むこと、データベースに格納されたデータを更新すること、データベース内のデータを削除すること、データベースを削除すること、追加のデータベースを作成することなどの要求を含んでよい。一部の使用事例では、これらの要求は、クラウドB 640を介してユーザ648-1から、またはクラウドB 640によって提供されたサービス644から、生じてよい。このようにして、クラウドA 610によって提供されたMEI622は、異なるCSPによって提供された異なるクラウドの顧客に関連付けられたユーザが、クラウドA 610によって提供されたサービスにシームレスにアクセスできるようにする。
図6に示された分散環境600は、単に例であり、主張される実施形態の範囲を過度に限定するよう意図されていない。多くの変形、代替手段、および変更が可能である。例えば、代替の実施形態では、分散環境600は、より多くの、またはより少ない、クラウド環境を含んでよい。クラウド環境は、より多くの、またはより少ない、システムおよびコンポーネントを含んでもよく、あるいはシステムおよびコンポーネントの異なる構成または配置を有してよい。図6に示されたシステムおよびコンポーネントは、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)において、ハードウェアを使用して、またはこれらの組合せで実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。
マルチクラウド制御プレーン(MCCP)
図7は、一部の実施形態による、マルチクラウド制御プレーン(MCCP)の高レベルのアーキテクチャを示している。図7に示されているように、高レベルのアーキテクチャ700は、第1のクラウドサービスプロバイダ(例えば、OCI)720によって提供された第1のクラウド環境、および第2のクラウドサービスプロバイダ710(すなわち、Azure)によって提供された第2のクラウド環境を含む。第1のクラウド環境720は、第1のクラウド環境720のユーザに複数のサービスを提供する第1のクラウドインフラストラクチャ720Aを含む。さらに、第1のクラウド環境720は、第1のクラウドインフラストラクチャ720A(例えば、Oracleクラウドインフラストラクチャ(OCI))のサービスを他のクラウド環境(例えば、第2のクラウドインフラストラクチャ710A)のユーザに配信する能力をプロビジョニングするマルチクラウドインフラストラクチャ720Bを含む。マルチクラウドインフラストラクチャ720Bは、クラウド環境間の単純な統合をもたらしながら、ユーザが、ユーザのネイティブなクラウド環境のユーザ体験にできるだけ近いユーザ体験を伴って、他のクラウド上のサービス(例えば、Oracle PaaSサービス)にアクセスすることを可能にする。
図7は、一部の実施形態による、マルチクラウド制御プレーン(MCCP)の高レベルのアーキテクチャを示している。図7に示されているように、高レベルのアーキテクチャ700は、第1のクラウドサービスプロバイダ(例えば、OCI)720によって提供された第1のクラウド環境、および第2のクラウドサービスプロバイダ710(すなわち、Azure)によって提供された第2のクラウド環境を含む。第1のクラウド環境720は、第1のクラウド環境720のユーザに複数のサービスを提供する第1のクラウドインフラストラクチャ720Aを含む。さらに、第1のクラウド環境720は、第1のクラウドインフラストラクチャ720A(例えば、Oracleクラウドインフラストラクチャ(OCI))のサービスを他のクラウド環境(例えば、第2のクラウドインフラストラクチャ710A)のユーザに配信する能力をプロビジョニングするマルチクラウドインフラストラクチャ720Bを含む。マルチクラウドインフラストラクチャ720Bは、クラウド環境間の単純な統合をもたらしながら、ユーザが、ユーザのネイティブなクラウド環境のユーザ体験にできるだけ近いユーザ体験を伴って、他のクラウド上のサービス(例えば、Oracle PaaSサービス)にアクセスすることを可能にする。
第2のクラウドインフラストラクチャ710Aは、第2のクラウドポータル711、アクティブディレクトリ712、リソースマネージャ713、顧客サブスクリプション715、第1のクラウドプロバイダのサブスクリプション717を含む。第2のクラウドポータル711は、第2の環境710の顧客がログインし、クラウドのデプロイメントおよびインスタンスを管理することができる、集中型のアクセスポイントである。第2のクラウドポータルが、第2のクラウドインフラストラクチャによって提供された監視サービスおよび操作サービスの両方の選択肢を提供してよいということに注意する。アクティブディレクトリ712は、エンドユーザのアイデンティティおよびアクセス権限を管理する能力を管理者に提供する、第2のクラウドインフラストラクチャ710Aによって提供されたサービスである。そのサービスは、コアディレクトリ、アクセス管理、およびアイデンティティ保護を含んでよい。リソースマネージャ713は、第2のクラウドインフラストラクチャのデプロイメントおよび管理サービス、すなわち、顧客サブスクリプション715においてデプロイされるリソースに関する操作(例えば、作成、更新、削除など)を実行するための、ユーザに提供する管理レイヤである。顧客サブスクリプションが、顧客のアプリケーションがデプロイされて実行される仮想ネットワーク(VNET:virtual network)と呼ばれることもあるということに注意する。第2のクラウドインフラストラクチャ710A内の第1のクラウドプロバイダ717のサブスクリプションは、第2のクラウドインフラストラクチャ710Aと確立される(例えば、オンプレミスの場所から、外部クラウド環境からの)ネットワーク接続をプロビジョニングするエクスプレスルートならびにハブおよびスポークVNETを含む。そのような接続が、パブリックインターネットを介してルーティングされなくてよく、それによって、さらなる信頼性、より速い速度、一貫性のある待ち時間、およびより高いセキュリティをユーザにもたらすということに注意する。
第1のクラウドインフラストラクチャ720Aは、制御プレーン724、顧客のテナンシ726、およびマルチクラウドインフラストラクチャ720Bを含む。第1のクラウドインフラストラクチャ720Aの制御プレーン724は、クラウド環境にわたって管理およびオーケストレーションを提供する第1のクラウド環境のネイティブな制御プレーンである。制御プレーン724では、構成ベースラインが設定され、ユーザおよびロールのアクセスがプロビジョニングされ、アプリケーションが存在するため、アプリケーションが関連するサービスと共に実行され得る。マルチクラウドインフラストラクチャ720Bは、マルチクラウドプラットフォームデータプレーン722、およびマルチクラウドプラットフォームデータプレーン728を含む。前述したように、マルチクラウドインフラストラクチャ720Bは、クラウド環境間の単純な統合をもたらしながら、他のクラウド環境(例えば、第2のクラウド環境710)のユーザが、ユーザのネイティブなクラウド環境(例えば、第2のクラウド環境710)のユーザ体験にできるだけ近いユーザ体験を伴って、第1のクラウド環境によって提供されたサービスにアクセスするために、プロビジョニングする。
図7のMCCPアーキテクチャは、第2のクラウドインフラストラクチャ710内で認証されたユーザが、マルチクラウドインフラストラクチャ720Bを介して公開される第1のクラウドインフラストラクチャ720のリソースに対して制御プレーンの操作を実行することを許可する、マルチクラウドコンソール721(第2のクラウドポータル711と異なる)をさらに含む。一部の実装では、図7に示されているように、マルチクラウドコンソール721に送信されたすべてのユーザ705の要求は、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャに向けられる。ユーザ705が、第1のクラウドインフラストラクチャによって提供されたリソースに関する要求(例えば、CRUD要求)をマルチクラウドコンソール721に直接送信できるということが理解される。マルチクラウドコンソール721は、第2のクラウドインフラストラクチャ内でローカルに使用される構文または形式に類似する構文または形式を有する要求を処理するように構成される。言い換えると、マルチクラウドコンソール721は、第2のクラウドインフラストラクチャ710Aに含まれている第2のクラウドポータル711に類似するルックアンドフィールを有するだけでなく、類似する用語を使用する。一部の実装では、第2のクラウドコンソール711内で、ユーザをマルチクラウドコンソール721に向けるリンク(例えば、ウェブリンク)が提供されてよい。
第1のクラウドインフラストラクチャ720Aに含まれているマルチクラウドインフラストラクチャ720Bは、権限モジュール722A、プロキシモジュール722B、プラットフォームサービスモジュール722C、クラウドリンクアダプタ722D、アダプタ1、アダプタ2、アダプタ3、およびアダプタ4を含んでいるアダプタのプール722E、ならびにネットワークリンクアダプタ722Fなどの、複数のマイクロサービスを含む。アダプタのプール722Eは、エクサデータクラウドサービスアダプタ、自律的データベース共有アダプタ、自律的データベース専用アダプタ、および仮想マシンデータベースアダプタなどのアダプタを含むことができる。
アダプタのプール722Eに含まれているアダプタの各々は、(第1のクラウドインフラストラクチャ720Aによって提供された)固有の基盤になるリソースのセットを、他のクラウド環境(例えば、第2のクラウド環境)のユーザに公開する役割を担う。特に、アダプタのプール722E内のアダプタの各々は、第1のクラウドインフラストラクチャ720Aによって提供された特定の製品またはリソースにマッピングされる。実際のリソースが、第1のクラウドインフラストラクチャのネイティブな制御プレーン724によって作成されるということに注意する。例えば、DBaaS(database as a service)に関して、制御プレーン724に含まれているDBaaS制御プレーンは、第1のクラウド環境の顧客のテナンシ726内のエクサデータベースリソースをインスタンス化するように構成される。
マルチクラウドインフラストラクチャ720Bによって受信された着信要求は、認証およびアクセス制御を実行するために、権限モジュール722Aによって処理される。各要求は、第2のクラウドインフラストラクチャ内のユーザのアカウントに関連付けられたトークンを含む。権限モジュールは、このトークンを抽出し、アクティブディレクトリ712(すなわち、第2のクラウドインフラストラクチャ710Aのアイデンティティプロバイダシステム)と共に、トークンの妥当性を確認する。妥当性確認の成功時に、権限モジュール722Aは、ユーザに関連付けられたロール(すなわち、権限のセット)をチェックしてよい。ロールが、ロールに対して許可されている1つまたは複数のタスク/操作に関連付けられてよいということに注意する。1つの実施形態によれば、権限モジュール722Aは、MCCPへの着信要求を認証する役割、およびトークンに関連付けられたロールに基づいて、ユーザが要求された操作を実行することを許容されている場合に許可する役割を担う。一部の実装では、権限モジュール722Aは、サービスプラットフォーム(すなわち、第1のクラウドインフラストラクチャに関連付けられたSPLAT)のカスタム認証機能を利用することによって、前述の認証プロセスを実行してよい。SPLATは、着信要求を受け取って権限モジュール722Aに転送し、権限モジュール722Aは、着信要求をさらに構文解析して、許可決定を判定し、成功メッセージまたは失敗メッセージをSPLATに返す。成功時に、この要求がSPLATによってルーティングプロキシ722Bに渡され、一方、失敗時に、SPLATは、エラー応答を呼び出し元に直接返す。
マルチクラウドインフラストラクチャ720Bに含まれているプロキシモジュール722B(ルーティングプロキシモジュールとも呼ばれる)は、マルチクラウドコンソール721から着信要求を受信し、この要求を、アダプタのプール722Eに含まれている特定のアダプタにルーティングするコンポーネントである。1つの実施形態によって、プロキシモジュール722Bは、第1のクラウドインフラストラクチャのサービスプラットフォーム(すなわち、SPLAT)から事前に認証された要求を受け取り、着信要求に含まれている経路情報に基づいて、この要求を適切なアダプタにルーティングする。一部の実装では、プロキシモジュール722Bは、(着信要求から)サービスのプロバイダに対応する識別子を抽出し、この要求を、アダプタのプール722E内の適切なアダプタにルーティングする。
マルチクラウドインフラストラクチャ720Bに含まれているクラウドリンクアダプタ722Dは、第1のクラウドインフラストラクチャによって提供されたリソースのライフサイクル操作を処理する役割を担う。クラウドリンクアダプタ722Dは、第2のクラウドインフラストラクチャのアクティブディレクトリテナント(および関連付けられたサブスクリプション)と第1のクラウドインフラストラクチャ内のユーザの対応するテナンシ/アカウントの間のマッピング(またはサインアッププロセスで作成される関係)を作成するように構成される。言い換えると、クラウドリンクアダプタ722Dは、第2のクラウドインフラストラクチャ内のユーザのアカウントに関連付けられた第2の識別子への、第1のクラウドインフラストラクチャ内のユーザのテナンシに関連付けられた第1の識別子のマッピングを生成する。
一部の実装では、クラウドリンクアダプタ722Dは、外部のクラウド識別子(例えば、第2のクラウドインフラストラクチャ内のユーザのアカウントに関連付けられた第2の識別子)と(第1のクラウドインフラストラクチャ内のユーザのテナンシに関連付けられた)第1の識別子の間の変換を実行し、マルチクラウド制御プレーン722を通過する操作が、第1のクラウドインフラストラクチャ内の適切な基盤になるリソースにマッピングされることを可能にする。一部の実施形態では、クラウドリンクアダプタは、前述のマッピング情報を格納するために、データオブジェクトを生成する。さらに、クラウドリンクアダプタ722Dは、データオブジェクトに関連付けられているリソースプリンシパルも生成する。リソースプリンシパルには、要求に含まれているトークン(およびその関連付けられたロール)に基づいて1つまたは複数の許可が割り当てられる。第1のクラウドインフラストラクチャによって提供された下流のサービスへのアクセスは、リソースプリンシパルに基づいて、第2のクラウドインフラストラクチャからのユーザによって達成される。クラウドリンクアダプタ722Dは、データオブジェクトおよび関連付けられたリソースプリンシパルを、第1のクラウドインフラストラクチャ内のユーザのテナンシのルート区画に格納してよい。代替的または追加的に、クラウドリンクアダプタ722Dは、データオブジェクトおよびリソースプリンシパルを、マルチクラウドインフラストラクチャに含まれている他のアダプタによるシームレスなアクセスのために、マルチクラウドインフラストラクチャのプラットフォームサービスモジュール722Cにローカルに維持してもよい。
ネットワークリンクモジュール(ネットワークアダプタとも呼ばれる)722Fは、(第2のクラウドインフラストラクチャ内の)顧客サブスクリプション715と(第1のクラウドインフラストラクチャ内の)対応する顧客のテナンシ/アカウント726の間のネットワークリンクを作成する役割を担う。一部の実施形態によって、ネットワークリンクモジュール722Fは、(プラットフォームサービスモジュール722Cから)トークンを取得し、(1)マルチクラウドプラットフォームデータプレーン728と顧客のテナンシ726の間の(第1のクラウド環境内の)第1のピアリング関係、および(2)第2のクラウドインフラストラクチャに含まれている顧客サブスクリプション715と第1のクラウドサービスプロバイダのサブスクリプション717の間の(第2のクラウド環境内の)第2のピアリング関係を作成する。
ネットワークリンクモジュール722Fは、第1のクラウド環境と第2のクラウド環境の間のネットワーク接続を確立するようにも構成され、すなわち、ネットワークリンクモジュール722Fは、相互接続719を、2つのクラウド環境を通信可能に結合するように構成することができる。2つのクラウド環境間にネットワークリンクを形成すると、顧客のサブスクリプションにおいて(例えば、第2のクラウドインフラストラクチャのVNET内で)実行されるアプリケーションが、リソース(例えば、第1のクラウドインフラストラクチャの顧客のテナンシ726にデプロイされているエクサデータベースリソース)にアクセスできるということが理解される。さらに、図7に示されているように、テナンシ726内で、遠隔測定の機能が提供されている。そのような機能は、顧客のテナンシにデプロイされたリソースおよびそれらの各使用に関連する、ログ、指標、および他の性能パラメータを維持することに関連している。一部の実施形態によれば、MCCPは、第1のクラウド環境内の異なるリソースに関連付けられたログおよび指標をミラーリングし、指標、ログ、イベントなどを、さらなる処理のために、例えばダッシュボードに(例えば、第2のクラウド環境の顧客サブスクリプション715に含まれているアプリケーションインサイトモジュールに)公開する。
一部の実施形態によって、マルチクラウドインフラストラクチャに含まれているプラットフォームサービスモジュール722Cは、第2のクラウドインフラストラクチャに提供された第1のクラウドインフラストラクチャのサービスに関連付けられた認証情報を格納するように構成される。プラットフォームサービスモジュール722Cは、アダプタが、第1のクラウドインフラストラクチャのネイティブな制御プレーン724と通信できるように、例えば、アダプタ722Eのプールに含まれているさまざまなアダプタのトークン/リソースプリンシパルを提供する。一部の実施形態によって、プラットフォームサービスモジュール722Cは、次のようなタスクを実行するために、さまざまなアダプタによって呼び出されるAPIを公開する。
・(第2のクラウドインフラストラクチャによって発行された)最小限に範囲指定されたアクセストークンをアダプタに販売する。例えば、ネットワークアダプタ722Fは、前述のネットワークピアリング操作を実行するために、アクセストークンを必要とする。
・下流のサービスを呼び出して第1のクラウドインフラストラクチャの顧客のテナンシにリソースを作成するためにアダプタが使用する、リソースプリンシパルを提供する。
・第1のクラウドインフラストラクチャから第2のクラウドインフラストラクチャへの可観測性データ(ログ、指標、イベント)の複製を引き起こす。
・(第2のクラウドインフラストラクチャによって発行された)最小限に範囲指定されたアクセストークンをアダプタに販売する。例えば、ネットワークアダプタ722Fは、前述のネットワークピアリング操作を実行するために、アクセストークンを必要とする。
・下流のサービスを呼び出して第1のクラウドインフラストラクチャの顧客のテナンシにリソースを作成するためにアダプタが使用する、リソースプリンシパルを提供する。
・第1のクラウドインフラストラクチャから第2のクラウドインフラストラクチャへの可観測性データ(ログ、指標、イベント)の複製を引き起こす。
前述したように、アダプタのプールは複数のアダプタを含み、それらのアダプタの各々は、第1のクラウドインフラストラクチャの固有の基盤になるリソースのセットを第2のクラウドインフラストラクチャのユーザに公開する役割を担い、すなわち、各アダプタは、第1のクラウド環境によって提供された特定の製品またはリソースにマッピングされる。例えば、エクサデータベースアダプタは、第2のクラウドインフラストラクチャのユーザがエクサデータベースリソースを作成して利用するための、プロキシとして機能する。エクサデータベースは、データベースを実行するためのインフラストラクチャを提供するハードウェアとソフトウェアの事前に構成された組合せである。一部の実施形態によって、エクサデータベースは、(a)エクサデータインフラストラクチャ(すなわち、ハードウェア)、(b)VMクラウドクラスタ、(c)コンテナデータベース、および(d)プラガブルデータベースという、リソースのスタックを備える。一部の実施形態によれば、マルチクラウドインフラストラクチャは、積み重ねられたインフラストラクチャのレベルの各々を分析する能力を(第2のクラウドインフラストラクチャのユーザに)提供する。さらに、MCCPは、ユーザが(マルチクラウドコンソール721を介して)ワークフローの作成コマンドを単に発行するための柔軟性を提供し、その後、MCCPは、スタックの各レベルで、個別のリソースの自動作成を実行する。図7に示されているように、アダプタのプール722Fは、4つの異なるアダプタを含んでいるが、これがMCCPアーキテクチャ700の範囲を全く制限していないということが、理解される。MCCPアーキテクチャは、他のアダプタ、例えば、クラウドサービスプロバイダの要求に基づいて、特定のクラウドサービスプロバイダによる使用を目的とする専用アダプタを含んでよい。
図8Aおよび図8Bは、一部の実施形態による、異なるクラウド環境内の2つのユーザアカウントをリンクするための例示的なフロー図を示している。2つのユーザアカウントは、第1のクラウドインフラストラクチャ内の第1のユーザアカウント(例えば、テナンシ)および第2のクラウドインフラストラクチャ内の第2のユーザアカウントに対応してよい。図8Aは、2つのユーザアカウントをリンクするプロセスを示しており、最初に、ユーザのテナンシが第1のクラウドインフラストラクチャ内に作成され、次に、第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクされる。図8Bは、2つのユーザアカウントをリンクするプロセスを示しており、第1のクラウドインフラストラクチャ内のユーザのテナンシがすでに作成されており、すなわち、テナンシがすでに存在する。
図8Aは、システム管理者などの、顧客を表すユーザが、第1のクラウドインフラストラクチャにおいて提供されたサービスにサインアップするために、第2のクラウドインフラストラクチャから(第1のクラウドインフラストラクチャに含まれている)マルチクラウドインフラストラクチャへの呼び出しを行うときに実行される、データフローを示している。第2のクラウドインフラストラクチャのユーザが第1のクラウドインフラストラクチャ内でアカウントを開くため、および第1のクラウドインフラストラクチャ内のユーザのアカウントを第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクするために、特殊なコンソール(本明細書では、マルチクラウドコンソールと呼ばれる)が提供されてよい。第1および第2のクラウドインフラストラクチャ内のアカウントをリンクすることによって、(第2のクラウドインフラストラクチャからの)ユーザが、第1のクラウドインフラストラクチャによって提供された1つまたは複数のサービスを利用できるようになるということに注意する。ある実装では、ユーザは、マルチクラウドコンソールを使用してサービスにサインアップする。サインアップに応答して、ユーザがマルチクラウドコンソールにログインできるようにするURLが、ユーザに送信されてよい。マルチクラウドコンソールは、第2のクラウドインフラストラクチャのUIおよびAPIに類似するUIおよびAPIを公開する。
マルチクラウドコンソールは、第2のクラウドインフラストラクチャのユーザが、第1のクラウドインフラストラクチャ内でアカウントを開くこと、ならびに第1および第2のクラウドインフラストラクチャ内のユーザアカウントをさらにリンクすることを可能にする、ユーザ選択可能な選択肢を提供するさまざまなUI(例えば、GUI)を提供してよい。例えば、マルチクラウドコンソールは、ユーザが第1のクラウドインフラストラクチャ内でアカウント/テナンシを作成すること、および(第1のクラウドインフラストラクチャ内の)ユーザのアカウントを第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクすることを可能にする、サインアップUIを提供してよい。サインアップ/リンク要求に応答して引き起こされた処理が完了した後に、それぞれのクラウドインフラストラクチャ内のユーザのアカウントが一緒にリンクされる。この処理の一部として、マルチクラウドコンソールは、ユーザ(例えば、システム管理者)が、第2のクラウドインフラストラクチャにログインし、(a)(第1のクラウドインフラストラクチャ内の)ユーザのアカウントの作成を要求すること、およびユーザのアカウントをリンクすること、または(b)ユーザが第1のクラウドインフラストラクチャ内ですでに保有しているアカウントの場合、ユーザの第1のクラウドインフラストラクチャのアカウントがユーザの第2のクラウドインフラストラクチャのアカウントにリンクされることを要求することを可能にする。
したがって、ある使用事例では、次の2つの可能性がある。(a)ユーザが、第1のクラウドインフラストラクチャ内で既存のアカウントまたはテナンシをすでに保有しており、ユーザが、現在、マルチクラウドコンソールのサインアップUIを介して、ユーザのアカウント間にリンクが作成されることを要求している(この処理に関する詳細が、次に、図8Bを参照して説明される)、または(b)ユーザが、第1のクラウドインフラストラクチャ内の新しいアカウントの作成、および第2のクラウドインフラストラクチャ内のユーザのアカウントとの新たに作成されたアカウントのリンクの両方を要求する。この処理に関する詳細が、次に、図8Aを参照して説明される。アカウントのリンクは、ユーザが第2のクラウドを介して第1のクラウド内のリソースを使用することを可能にするということが、理解される。例えば、第2のクラウドを介して、ユーザは、第1のクラウド内でリソースが作成されるか、またはプロビジョニングされることを要求すること、第1のクラウド内のリソースを利用して管理すること、第1のクラウド内のリソースを削除することなどができる。
図8Aに示されているように、ステップ1で、第1のクラウドインフラストラクチャ内でユーザの新しいアカウントが作成され、第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクされることを要求する、マルチクラウドコンソール(例えば、マルチクラウドコンソールのサインアップUI)に提供されたユーザの入力に応答して、新しいアカウントを作成するために、マルチクラウドコンソールによって、(第1のクラウドインフラストラクチャ内の)アカウントサービスへの呼び出しが行われる。この呼び出しが、第2のクラウドインフラストラクチャによって生成されるトークンを含むということに注意する。第2のクラウドインフラストラクチャによって生成され、アカウントサービスへの呼び出しに含まれるトークンは、第1のクラウドインフラストラクチャ内で作成されたアカウントまたはテナンシが第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクされることを可能にする。
ステップ2で、ユーザの新しいアカウントを設定するための処理の一部として、アカウントサービスは、マルチクラウド制御プレーンに含まれている権限/プロキシモジュール(例えば、図7のマルチクラウドインフラストラクチャに含まれている権限モジュール722A)への呼び出しを行い、トークンの妥当性を確認してよい。権限/プロキシモジュールは、(図7を参照して前に説明されたように)トークンの妥当性を確認し、トークンの妥当性確認の成功時にのみ、さらに処理が続行してよい。トークンの妥当性確認の成功時に、アカウントサービスは、第1のクラウドインフラストラクチャ内のユーザの新しいアカウントを作成する。新しいアカウントを作成することの一部として、ネイティブユーザが作成され、新たに作成されたアカウントに関連付けられてよい。しかし、このネイティブユーザの認証情報が使用されないということに注意する。むしろ、第1のクラウドインフラストラクチャ内の(第2のクラウドインフラストラクチャからの)アカウントおよびそのリソースを管理するために、第2のクラウドインフラストラクチャ内のユーザのアイデンティティが使用される。
第1のクラウドインフラストラクチャ内のアカウントサービスによって新しいアカウントが正常に作成された後に、ステップ3で、アカウントサービスは、(マルチクラウドインフラストラクチャに含まれている)クラウドリンクアダプタへの呼び出しを行い、第2のクラウドインフラストラクチャ内のユーザのアカウントと第1のクラウドインフラストラクチャ内の新たに作成されたアカウントの間のリンク(クラウドリンクとも呼ばれる)を作成する。ある実装では、クラウドリンクアダプタが、APIをアカウントサービスに、およびマルチクラウドコンソールに公開する。これらのAPIは、アカウントのリンクを要求するために、アカウントサービスによって(または、マルチクラウドコンソールによって)呼び出されてよい。一部の実装では、リンクを要求する呼び出しが、ユーザによって行われず、むしろ、アカウントサービスによって開始されるため、ステップ3の呼び出しにトークンが含まれていないということに注意する。この場合、クラウドリンクアダプタは、アカウントサービスが、ステップ1で受信されたトークンを使用してアカウントを設定するための処理の一部として、ユーザに対して必要な認証をすでに実行しているということを信頼するため、別のトークンを必要とする別の認証を行わない。
一部の実装では、2つのアカウントをリンクするためにクラウドリンクアダプタによってステップ3で実行される処理は、以下を含む。
(a)クラウドリンクアダプタが、リンクされている2つのアカウントを識別するメタデータ情報を格納するためのデータオブジェクト(本明細書では、クラウドリンクリソースオブジェクトとも呼ばれる)を作成する。例えば、データオブジェクトは、第1のクラウドインフラストラクチャ内に作成されたテナンシ(すなわち、アカウント)に関連付けられた第1の識別子、および第2のクラウドサービスプロバイダを使用してユーザのアカウントに関連付けられた第2の識別子のマッピングを含んでいるメタデータ情報を格納する。
(b)クラウドリンクアダプタが、第1のクラウドインフラストラクチャ側でリソースを格納し、含むための新しい区画を作成し、ユーザは、この区画を、マルチクラウドコンソールを使用して管理することができる/管理する。一部の実装では、クラウドリンクリソースオブジェクトは、第1のクラウドインフラストラクチャ内の顧客のアカウントのルートに作成される。
(c)クラウドリンクアダプタが、第2のクラウドインフラストラクチャのユーザによって使用されるのが望ましいリソースに関して、新しいリソースプリンシパル(本明細書では、クラウドリンクリソースプリンシパルと呼ばれる)を作成する。
(d)クラウドリンクアダプタが、アクティブディレクトリ(例えば、図7に示されているような第2のクラウドインフラストラクチャのアクティブディレクトリ712)への第1のクラウドインフラストラクチャ内のドメインのリンクを容易にする1つまたは複数のフェデレーション設定を実行してよい。第1のクラウドインフラストラクチャおよび第2のクラウドインフラストラクチャのアカウントをフェデレートするプロセスは、第2のクラウドインフラストラクチャ内のユーザ/ユーザのグループが第1のクラウドインフラストラクチャ内で認証されること、および第1のクラウドインフラストラクチャからのユーザ/グループが第2のクラウドインフラストラクチャ内へ認証されることを可能にする。
(a)クラウドリンクアダプタが、リンクされている2つのアカウントを識別するメタデータ情報を格納するためのデータオブジェクト(本明細書では、クラウドリンクリソースオブジェクトとも呼ばれる)を作成する。例えば、データオブジェクトは、第1のクラウドインフラストラクチャ内に作成されたテナンシ(すなわち、アカウント)に関連付けられた第1の識別子、および第2のクラウドサービスプロバイダを使用してユーザのアカウントに関連付けられた第2の識別子のマッピングを含んでいるメタデータ情報を格納する。
(b)クラウドリンクアダプタが、第1のクラウドインフラストラクチャ側でリソースを格納し、含むための新しい区画を作成し、ユーザは、この区画を、マルチクラウドコンソールを使用して管理することができる/管理する。一部の実装では、クラウドリンクリソースオブジェクトは、第1のクラウドインフラストラクチャ内の顧客のアカウントのルートに作成される。
(c)クラウドリンクアダプタが、第2のクラウドインフラストラクチャのユーザによって使用されるのが望ましいリソースに関して、新しいリソースプリンシパル(本明細書では、クラウドリンクリソースプリンシパルと呼ばれる)を作成する。
(d)クラウドリンクアダプタが、アクティブディレクトリ(例えば、図7に示されているような第2のクラウドインフラストラクチャのアクティブディレクトリ712)への第1のクラウドインフラストラクチャ内のドメインのリンクを容易にする1つまたは複数のフェデレーション設定を実行してよい。第1のクラウドインフラストラクチャおよび第2のクラウドインフラストラクチャのアカウントをフェデレートするプロセスは、第2のクラウドインフラストラクチャ内のユーザ/ユーザのグループが第1のクラウドインフラストラクチャ内で認証されること、および第1のクラウドインフラストラクチャからのユーザ/グループが第2のクラウドインフラストラクチャ内へ認証されることを可能にする。
ある実装では、第2のクラウドインフラストラクチャのアカウントにおけるユーザの認証情報/トークンに基づいて、許可がクラウドリンクリソースプリンシパルに関連付けられる。ユーザが、マルチクラウドコンソールを使用して新しいアカウントを要求するか、または第1のクラウドインフラストラクチャ内のユーザのアカウントが第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクされることを要求するときに、ユーザによって、リソースプリンシパルを設定することに対する同意が提供される。さらに、ステップ4に示されているように、ユーザが第2のクラウドインフラストラクチャから下流のサービス(例えば、第1のクラウドインフラストラクチャによって提供された1つまたは複数のサービス)を利用できるようにするために、クラウドリンクリソースプリンシパルが下流のサービスに送信される。
図8Bを参照すると、第1のクラウドインフラストラクチャ内の既存のアカウントまたはテナンシを第2のクラウドインフラストラクチャ内のユーザのアカウントにリンクすることに関連する処理が示されている。図8Bに示されているように、ユーザは、マルチクラウドコンソールによって提供されたサインアップUIを介して、第1のクラウドインフラストラクチャおよび第2のクラウドインフラストラクチャ内のユーザのアカウントがリンクされることを要求する。それに応じて、ステップ1で、マルチクラウドコンソールがクラウドリンクアダプタへの呼び出しを行い、アカウントをリンクする。そのような呼び出しは、クラウドリンクアダプタによってサインアップUIに公開されたAPIのうちの1つを使用して行われてよい。ある実装では、ステップ1でクラウドリンクアダプタに渡される情報は、第2のクラウドインフラストラクチャ内のユーザのアカウントおよびさらに第1のクラウドインフラストラクチャ内のユーザのアカウントを識別する情報、第2のクラウドインフラストラクチャによって発行されたトークンなどを含む。
ステップ2で、クラウドリンクアダプタは、マルチクラウドインフラストラクチャに含まれている権限/プロキシモジュールへの呼び出しを行い、ステップ1で受信されたトークンを認証する。この認証の一部として、権限/プロキシモジュールは、要求を行っているユーザが、第2のクラウドインフラストラクチャ側でリンク要求を行うための十分な権限を持っているかどうかを判定する。この妥当性確認の一部として、第2のクラウドインフラストラクチャ側でのロールおよび許可設定がチェックされてよい。ユーザの妥当性確認が成功することに応答して、クラウドリンクアダプタは、ユーザのために前に作成されたデータオブジェクトから、ユーザによって利用されるのが望ましいリソースに関連付けられたリソースプリンシパルを取り出す。さらに、ステップ3に示されているように、ユーザが第2のクラウドインフラストラクチャから下流のサービス(例えば、第1のクラウドインフラストラクチャによって提供された1つまたは複数のサービス)を利用できるようにするために、クラウドリンクリソースプリンシパルが下流のサービスに送信される。
図9は、一部の実施形態による、マルチクラウド制御プレーン(MCCP)のコンポーネントを示す例示的なシステム図を示している。MCCP900は、サービスプラットフォーム(SPLAT)910、ルーティングプロキシ915、クラウドリンクアダプタ920、データベースアダプタ925、ネットワークアダプタ930、およびMCCPプラットフォーム935を含む。図8Aおよび図8Bを参照して上で説明されたように、ユーザがサインアッププロセスを正常に完了すると、ユーザは、マルチクラウドコンソール905を利用して、第1のクラウドインフラストラクチャ内のユーザのテナンシにおけるリソースにアクセスするか、リソースを作成するか、または更新するためのコマンドを発行してよい。説明の目的で、以下では、ユーザがマルチクラウドコンソールを利用して、エクサデータベースリソースを作成する要求を発行する状況が説明されている。
一部の実装では、ユーザが、マルチクラウドコンソール905にアクセスし、ログイン情報、例えば、第2のクラウドインフラストラクチャ内のユーザの認証情報を提供する。マルチクラウドコンソール905は、例えば、リソースの作成、リソースへのアクセス、リソースの更新などの、複数の選択肢を提供する。そのような選択肢は、マルチクラウドコンソール905内の選択可能なアイコン(例えば、ボタン)の形態でユーザに提供されてよい。ユーザが(例えば、リソースを作成するための)選択を実行すると、サービスプラットフォーム910へのAPI呼び出しが引き起こされる。サービスプラットフォーム910に対して行われる要求が、第1のクラウドインフラストラクチャに関するネイティブな呼び出しでないということが理解される。むしろ、この呼び出しは、第2のクラウドインフラストラクチャ内のユーザに関連付けられたトークンを含む許可ヘッダーを含んでいるREST型の呼び出しである。
トークンを含んでいるREST呼び出しが、認証動作およびアクセス制御動作を実行するルーティングプロキシモジュール915にさらに転送される。一部の実施形態によれば、ルーティングプロキシモジュール915は、REST呼び出しに含まれているトークンを抽出することによって、認証動作を実行する。ルーティングプロキシモジュール915は、署名(要求に署名するために使用される)を、第2のクラウドインフラストラクチャの公開されている署名と比較することによって、トークンの妥当性を確認し、要求が第2のクラウドインフラストラクチャに関連付けられた有効な顧客から生じていることを保証する。さらに、ルーティングプロキシモジュール915は、ロール、すなわち、トークンに関連付けられた権限をチェックしてもよく、例えば、ロールがエクサデータDB管理者に対応するかどうかなどをチェックしてもよい。ロールに基づいて、ルーティングプロキシモジュール915は、要求をMCCPフレームワーク900に含まれている適切なアダプタにルーティングしてよい。
1つの実施形態によれば、ルーティングプロキシモジュール915は、(トークンに関連付けられた)ロールを、公開されて(API仕様の一部として)アダプタの各々に割り当てられたロールの事前に構成されたリストと比較する。例えば、トークンに関連付けられたロールが「エクサデータDB管理者」に対応する場合、要求は、エクサデータベースを作成する要求として理解されてよく、したがって要求が、データベースアダプタ925に転送される。さらに、一部の実施形態によって、ルーティングプロキシモジュール915は、プロバイダID、要求されたリソースの種類などの、REST呼び出しに含まれている情報を分析してよく、分析された情報に基づいて、ルーティングプロキシモジュール915は、要求を適切なアダプタに転送してよい。
一部の実装では、ルーティングプロキシモジュール915によって取得された要求は、リソースがデプロイされるべきである第1のクラウドインフラストラクチャ内のユーザのテナンシを識別する情報を含まなくてよい。したがって、ルーティングプロキシモジュール915は、クラウドリンクアダプタ920と通信し、第1のクラウドインフラストラクチャ内のユーザのテナンシへの、第2のクラウドインフラストラクチャ内のユーザのアカウントのマッピング情報を取得する。マッピング情報が存在する場合、ルーティングプロキシモジュール915は、第1のクラウドインフラストラクチャ内のユーザのテナンシに関する情報を取得し、この情報をデータベースアダプタ925に渡す。このようにして、データベースアダプタ925は、リソースが作成/デプロイされるべきである第1のクラウドインフラストラクチャ内のユーザのテナンシを認識する。しかし、クラウドリンクアダプタ920が、マッピング情報が存在しないということを決定した場合、ルーティングプロキシモジュール915は、データベースリソースを作成する要求に対する応答として、ユーザに返信される「許可されないアクセス」メッセージを単に発行してよい。
一部の実装では、クラウドリンクアダプタ920が、リンクされている2つのアカウントを識別するメタデータ情報を格納するためのデータオブジェクト(本明細書では、クラウドリンクリソースオブジェクトと呼ばれる)を作成するということに注意する。例えば、データオブジェクトは、第1のクラウドインフラストラクチャ内のテナンシ(すなわち、アカウント)に関連付けられた第1の識別子、および第2のクラウドサービスプロバイダを使用してユーザのアカウントに関連付けられた第2の識別子のマッピングを含んでいるメタデータ情報を格納する。さらに、クラウドリンクアダプタ920が、第2のクラウドインフラストラクチャのユーザによって作成/管理されるのが望ましいリソース(例えば、データベース)に関して、リソースプリンシパル(本明細書では、クラウドリンクリソースプリンシパルと呼ばれる)も作成する。クラウドリンクアダプタ920は、データオブジェクトおよびリソースプリンシパルを、第1のクラウドインフラストラクチャ内のユーザのテナンシのルート区画内で維持してよい。一部の実施形態では、クラウドリンクアダプタ920は、MCCPプラットフォーム935内のデータオブジェクトおよび/またはリソースプリンシパルをローカルに維持してもよい。
一部の実施形態では、データベースアダプタ925は、ネットワークアダプタ930と通信し(またはネットワークアダプタ930に指示し)、第2のクラウドインフラストラクチャ内のユーザのアカウントと第1のクラウドインフラストラクチャ内のユーザのテナンシの間のネットワークリンクを作成してよい。例えば、ネットワークアダプタ930は、第2のクラウドインフラストラクチャモジュール945内のネイティブなサービスから、ユーザに関連付けられたトークンを取得し、(1)MCCPのデータプレーンと第1のクラウドインフラストラクチャ内のユーザのテナンシの間の(第1のクラウド環境内の)第1のピアリング関係、および(2)第2のクラウドインフラストラクチャに含まれているユーザのアカウントと第1のクラウドプロバイダのサブスクリプションの間の(第2のクラウド環境内の)第2のピアリング関係を作成してよい。
ネットワークアダプタ930は、第1のクラウドインフラストラクチャと第2のクラウドインフラストラクチャの間のネットワーク接続を確立するようにも構成され、すなわち、ネットワークアダプタ930は、2つのクラウド環境を通信可能に結合する相互接続(例えば、図7の相互接続719)を構成することができる。第1のクラウドインフラストラクチャ内のユーザのテナンシと第2のクラウドインフラストラクチャ内のユーザのアカウントの間にネットワークリンクを形成すると、ユーザのサブスクリプション/アカウントにおいて実行されるアプリケーションが、リソース、例えば、第1のクラウドインフラストラクチャのテナンシにデプロイされたエクサデータベースにアクセスできるということが、理解される。さらに、ピアリング関係の作成は、第2のクラウドインフラストラクチャ内で、例えば、第2のクラウドインフラストラクチャ内のユーザのサブスクリプションにおいて実行されるダッシュボードアプリケーションにおいて、アクセスできるように、指標、例えば、データベース使用量指標をプロビジョニングする。
一部の実装では、データベースアダプタ925は、MCCPプラットフォーム935内でローカルに維持されているリソースプリンシパルを取得してよい。データベースアダプタ925は、(リソースプリンシパルを含んでいる)要求を、第1のクラウドインフラストラクチャ940に含まれている1つまたは複数の下流のサービスに送信し、第1のクラウドインフラストラクチャ内のユーザのテナンシにリソースを作成してよい。言い換えると、第1のクラウドインフラストラクチャ940に含まれている下流のサービスは、アイデンティティを利用し、すなわち、要求されたリソース(例えば、第1のクラウドインフラストラクチャ内のユーザのテナンシにおけるエクサデータベース)を作成/デプロイするためにMCCPプラットフォーム935から取得されたリソースプリンシパルを利用する。ユーザが、エクサデータベースを作成する要求を発行すると、ユーザは、MCCP900を断続的にポーリングし、要求の状態を取得してよい。第1のクラウドインフラストラクチャ940の下流のサービスが、第1のクラウドインフラストラクチャ内のユーザのテナンシにリソースを作成し、ネットワークアダプタ930がピアリング関係を確立すると、MCCP900は、要求の正常な完了に関してユーザに通知してよい。
マルチクラウドネットワークサービス-ネットワークアダプタ
図7を参照すると、マルチクラウド制御プレーン700のアーキテクチャは、(外部クラウドサービスプロバイダによって提供されている)外部クラウド環境、例えば、第2のクラウド環境710の顧客が、(第1のクラウド環境に含まれている)マルチクラウドコンソール721およびマルチクラウドインフラストラクチャ720Bを利用することによって、第1のクラウド環境720内で提供されたリソース(例えば、データベースリソース)をデプロイすること、サービスを実行することなどを可能にする。一部の実装では、第1のクラウド環境と第2のクラウド環境の間のネットワーク接続は、第1のクラウド環境のサービスの提供(例えば、PaaSの提供)を第2のクラウド環境の顧客に公開するように構成されて維持されるべきである。下で詳細に説明されるように、ネットワークアダプタ(例えば、図7のネットワークリンクコンポーネント722)は、そのようなネットワークに関連するリソースを処理する役割を担う。
図7を参照すると、マルチクラウド制御プレーン700のアーキテクチャは、(外部クラウドサービスプロバイダによって提供されている)外部クラウド環境、例えば、第2のクラウド環境710の顧客が、(第1のクラウド環境に含まれている)マルチクラウドコンソール721およびマルチクラウドインフラストラクチャ720Bを利用することによって、第1のクラウド環境720内で提供されたリソース(例えば、データベースリソース)をデプロイすること、サービスを実行することなどを可能にする。一部の実装では、第1のクラウド環境と第2のクラウド環境の間のネットワーク接続は、第1のクラウド環境のサービスの提供(例えば、PaaSの提供)を第2のクラウド環境の顧客に公開するように構成されて維持されるべきである。下で詳細に説明されるように、ネットワークアダプタ(例えば、図7のネットワークリンクコンポーネント722)は、そのようなネットワークに関連するリソースを処理する役割を担う。
ある実施形態では、第1のクラウド環境と他のクラウド環境、例えば、第2のクラウド環境との間のネットワーク接続を構成して維持する役割を担うマルチクラウドネットワーク(MCN:multi-cloud network)サービスが提供されている。MCNは、PaaSの提供などのサービスを、他のクラウド環境の顧客にシームレスな方法で公開する。MCNサービスが、ネットワークアダプタコンポーネント722Fのように、図7のマルチクラウド制御プレーン700のアーキテクチャに適合するということが理解される。一部の実施形態によれば、MCNサービスは、次のような役割を担う。
1.マルチクラウドプラットフォームと統合され、クラウド間仮想ネットワーク相互接続の抽象化として機能する、ネットワークリンクと呼ばれる顧客向けのAPIオブジェクトを顧客に公開する。
2.N人の顧客間で共有される、外部クラウド環境と第1のクラウド環境の間の直接相互接続リンク(例えば、ExpressRoute、FastConnectなど)を構成して維持する。
3.顧客ごとのパケットプロセッサインスタンスを起動して監視し、外部クラウド環境と第1のクラウド環境の間のエンドツーエンドのパケットフローを可能にする。
4.外部クラウド環境および第1のクラウド環境内で任意のドメイン名システム(DNS:domain name system)に関連するリソースを構成し、シームレスな名前解決を可能にする。
1.マルチクラウドプラットフォームと統合され、クラウド間仮想ネットワーク相互接続の抽象化として機能する、ネットワークリンクと呼ばれる顧客向けのAPIオブジェクトを顧客に公開する。
2.N人の顧客間で共有される、外部クラウド環境と第1のクラウド環境の間の直接相互接続リンク(例えば、ExpressRoute、FastConnectなど)を構成して維持する。
3.顧客ごとのパケットプロセッサインスタンスを起動して監視し、外部クラウド環境と第1のクラウド環境の間のエンドツーエンドのパケットフローを可能にする。
4.外部クラウド環境および第1のクラウド環境内で任意のドメイン名システム(DNS:domain name system)に関連するリソースを構成し、シームレスな名前解決を可能にする。
名前が示唆するように、ネットワークリンクは、2つのクラウド環境を相互接続する抽象化である。例えば、ネットワークリンクは、第2のクラウド環境内の顧客の仮想ネットワークを、第1のクラウド環境内の顧客の仮想クラウドネットワーク(VCN)に相互接続してよい。顧客がネットワークリンクを手動で設定する必要がある場合、顧客は、第2のクラウド環境のための相互接続(例えば、Express Route)を構成すること、第1のクラウド環境のための別の相互接続(例えば、Fast Connect)を構成すること、ダイナミックルーティングゲートウェイを構成すること、ゲートウェイ接続およびルートテーブルを構成することなどの、多数のタスクの責任を負うということが、理解される。そのようなタスクは、実際は、決してささいなことではなく、さらに、不十分な顧客満足体験を引き起こす。本開示の実施形態によって説明されるように、顧客の対話を最小限に抑えるか、または顧客の対話なしで、ネットワークリンク(および関連するネットワークリソース)を自動的に構成するマルチクラウドネットワーク(MCN)サービスが提供されている。したがって、MCNサービスを利用することによって、顧客は、第1のクラウド環境のマルチクラウドインフラストラクチャによって提供されたネットワークリンクコンポーネントの内部について心配する必要がなく、ネットワークリンクを、単に、異なるクラウド環境内の顧客の仮想ネットワークとの間のトラフィックを可能にするブラックボックスとして使用する。さらに、異なるクラウド環境間で確立されたネットワークリンクが、極めて短い送信待ち時間を有する必要があることがあるということに注意する。これは、第1のクラウド環境にデプロイされたリソースが、オンライントランザクション処理イベントを処理するエクサデータベースリソースなどのリソースであることがあるという事実に起因する。そのようなイベントが最小限の待ち時間を要求するため、本開示のマルチクラウドネットワーク(MCN)サービスは、異なるクラウド環境間で、短い送信待ち時間を有する高性能で高可用性のエンドツーエンドのネットワークリンクを確立することを信頼される。
図10は、ある実施形態による、ネットワークリンクコンポーネントの高レベルのブロック図を示している。特に、図10は、第1のクラウド環境1005と第2のクラウド環境1010の間に確立されているネットワークリンクコンポーネント1007(本明細書では、マルチクラウドネットワークインフラストラクチャ(MCNI:multi-cloud network infrastructure)とも呼ばれる)を示している。図10に示されているように、ネットワークリンクコンポーネント1007は、顧客の仮想ネットワーク(VNET)、例えば第2のクラウド環境1010に含まれているVNET1022と、顧客の仮想クラウドネットワーク(VCN)1012、すなわち、第1のクラウド環境1005内のVNETとの間に確立される。したがって、(第1のクラウド環境1005内の)顧客のVCN1012内でホストされたリソース1013(例えば、エクサデータベース)が、第2のクラウド環境1010内の顧客のVNET1022内でホストされている仮想マシン1023によってアクセス/利用されてよい。
図10に示されているように、第2のクラウド環境側で、ネットワークリンクコンポーネント1007は、第2のクラウド環境1010に含まれている顧客のVNET1022とピアリングする(リーフVNETとラベル付けされた)VNET1019を含んでいる。顧客のVCN1012との間の任意のトラフィックが、このVNETピアリングにつながれる。リーフVNET1019が、顧客への汎用「ネットワークリンクVNET」のように見えるということに注意する。第1のクラウド環境側で、ネットワークリンクコンポーネント1007は、マルチクラウド接続1017という名前のダイナミックルーティングゲートウェイ(DRG)接続を含む。一部の実装では、顧客は、顧客のVCN(例えば、顧客のVCN1012)を、VCN接続を使用して顧客が所有するDRG1015に接続してよく、MCNI1007が、マルチクラウド接続1017を介してこのDRG1015にリンクされる。(第2のクラウド環境1010に含まれている)顧客のVNET1022との間の任意のトラフィックが、VCN接続につながれ、次に、DRG内のマルチクラウド接続1017につながれるということに注意する。
図11~図13を参照して下で説明されるように、ネットワークリンクコンポーネント1007の一部が第1のクラウド環境1005に含まれ、一方、ネットワークリンクコンポーネント1007の他の一部が第2のクラウド環境1010に含まれる。さらに、ネットワークリンクコンポーネント1007の目的のうちの1つが、第1のクラウド環境と第2のクラウド環境の間の相互接続を共有するために、マルチテナントトンネルインフラストラクチャを構築することであるということが理解される。マルチテナントのトラフィックが単一のクラウド間相互接続を共有するために、ネットワークリンクコンポーネント1007が、例えばGENEVEトンネルを使用することによって顧客のトラフィックをカプセル化/カプセル解除するように、トンネルをプロビジョニングするということに注意する。
図11を参照すると、ある実施形態による、ネットワークリンク構成の詳細なアーキテクチャ1100が示されている。図11に示されているように、ネットワークリンクが、第2のクラウド環境1105のリージョンを第1のクラウド環境1135のリージョンに通信可能に結合する。第2のクラウド環境1105のリージョンは、1つまたは複数の顧客のVNETを含んでよい。例えば、第2のクラウド環境1105のリージョンは、2つの顧客のVNET、すなわち、顧客1のVNET1101および顧客2のVNET1102を含む。したがって、顧客のVNETをホストしている第2のクラウド環境1105の一部は、顧客ドメイン1150Aとして表される。同様に、第1のクラウド環境1135のリージョンは、1つまたは複数の顧客のVCN(すなわち、顧客の仮想ネットワーク)を含んでよい。例えば、第1のクラウド環境1135のリージョンは、2つの顧客のVCN、すなわち、顧客1のVCN1131および顧客2のVCN1132を含む。したがって、顧客のVCNをホストしている第1のクラウド環境1135の一部は、顧客ドメイン1150Cとして表される。
一部の実施形態によれば、マルチクラウドネットワークインフラストラクチャ(MCNI)ドメイン1150B、すなわち、ネットワークリンクは、顧客の仮想ネットワークの対を通信可能に結合する。例えば、図11に示されているように、(第2のクラウド環境1105のリージョンに含まれている)顧客1のVNET1101は、(第1のクラウド環境1135のリージョンに含まれている)顧客1のVCN1131と通信可能に結合される。同様の方法で、(第2のクラウド環境1105のリージョンに含まれている)顧客2のVNET1102は、(第1のクラウド環境1135のリージョンに含まれている)顧客2のVCN1132と通信可能に結合される。MCNIドメイン1150がネットワークリンクドメインに対応し、点線1160と1170の間に配置されるということに注意する。より詳細には、MCNIドメインは、第2のクラウド環境1105のリージョンに配置されている第1の部分、および第1のクラウド環境1135のリージョンに配置されている第2の部分を含む。
一部の実装では、顧客の仮想ネットワーク(例えば、第2のクラウド環境1105のリージョン内の顧客1のVNET1101および第1のクラウド環境1135のリージョン内の顧客1のVCN1131)の各対が、マルチクラウドネットワーク(MCN)サービスによって(第1のクラウド環境および第2のクラウド環境に)デプロイされている複数の仮想ネットワーク(本明細書では、リンク有効化仮想ネットワークと呼ばれる)を使用して通信可能に結合される。例えば、第1のリンク有効化仮想ネットワーク1103(リーフ1VNETとしてラベル付けされている)および第2のリンク有効化仮想ネットワーク1107(スポーク1VNETとしてラベル付けされている)が、第2のクラウド環境1105のリージョンにデプロイされ、顧客1のVNET1101に関連付けられる。さらに、第3のリンク有効化仮想ネットワーク1123(スポーク1VCNとしてラベル付けされている)が、第1のクラウド環境1135のリージョンにデプロイされ、顧客1のVCN1131に関連付けられる。同様の方法で、顧客2のVNET1102が、第2のクラウド環境1105のリージョンにデプロイされているリンク有効化仮想ネットワーク1104(リーフ2VNETとしてラベル付けされている)および別のリンク有効化仮想ネットワーク1106(スポーク2VNETとしてラベル付けされている)に関連付けられ、一方、顧客2のVCN1132が、異なるリンク有効化仮想ネットワーク1124(スポーク2VCNとしてラベル付けされている)に関連付けられる。したがって、図11のアーキテクチャでは、顧客の仮想ネットワークの各対が、3つのリンク有効化仮想ネットワークに関連付けられる。
さらに、第2のクラウド環境1105のリージョンは、第2のクラウド環境に含まれている異なる顧客の仮想ネットワーク間で共有されているハブVNET1110を含む。言い換えると、ハブVNET1110は、第2のクラウド環境1105のリージョンに含まれている複数の顧客のテナンシのトラフィックを処理する。同様に、第1のクラウド環境1135のリージョンは、第1のクラウド環境に含まれている異なる顧客の仮想クラウドネットワーク間で共有されているハブVNET1122を含み、すなわち、ハブVNET1122は、第1のクラウド環境1135のリージョンに含まれている複数の顧客のVCNのトラフィックを処理する。図11に示されているように、第2のクラウド環境1105のリージョンは、高帯域幅ネットワーク相互接続1115によって、第1のクラウド環境1135のリージョンに通信可能に接続される。以下では、(第2のクラウド環境1105のリージョンに含まれている)顧客1のVNET1101と(第1のクラウド環境1135のリージョンに含まれている)顧客1のVCN1131の間のエンドツーエンドのネットワーク経路を構成することについての詳細な説明が提供されている。
図11に示されているように、顧客1のVNET1101内で実行される(例えば、ユーザ1101Aによって操作される)仮想マシンからトラフィックを受信するために、第1のリンク有効化仮想ネットワーク1103(すなわち、リーフ1VNET)が、顧客1のVNET1101にピアリングされる。ハブVNET1110が第2のクラウド環境1105のリージョン内の複数の顧客のVNET間で共有されるため、本開示の一部の実装では、第2のクラウド環境1105のリージョン内の顧客のVNETから生じる異なる顧客のトラフィックを区別するために、カプセル化およびトンネルフレームワークが利用される。第1のリンク有効化仮想ネットワーク1103は、ネットワークアダプタ1103A(本明細書では、リモート仮想ネットワークアダプタ(RVNA:remote virtual network adaptors)と呼ばれる)の対を含む。第1のリンク有効化仮想ネットワーク1103に含まれているネットワークアダプタ1103Aの各々は、顧客1のVNET1101から受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成するように構成される。
一部の実装では、ネットワークアダプタ1103Aの対は、高可用性を実現する目的で使用され、アクティブ-アクティブ状態に維持される。言い換えると、ネットワークアダプタ1103Aの対に含まれている各アダプタは、機能的であり、顧客1のVNET1101から受信されたトラフィックをカプセル化する。一部の実施形態では、ネットワークアダプタ1103Aの対は、BGPピアリングを実行する目的で、第2のクラウド環境1105によって提供されたサービスを利用してよい。ネットワークアダプタ1103Aの対は、そのようなサービスに、等コストマルチパスルーティング(ECMP:equal cost multi-path routing)などのメカニズムを使用することによって、均一な方法で(顧客のVNETから生じる)トラフィックを分散するように指示してよい。例えば、第2のクラウド環境1105がAzureクラウド(すなわち、Microsoftによって運用されているクラウド)に対応するということを考慮して、ネットワークアダプタ1103Aの対は、BGPピアリングを実行する目的で、Azureルートサーバ(ARS:Azure route server)を利用してよい。
しかし、第2のクラウド環境のそのようなサービス(例えば、ARS)の利用は、いくつかの制限を課す。例えば、ARSなどのサービスは、直接ピアリングされたVNET内のルートのみを学習して伝搬することができる。これは、サービスがRVNAルートを顧客のVNETに投入するために、(第2のクラウド環境によって提供された)サービスが、第1のリンク有効化仮想ネットワーク(すなわち、リーフVNET1103)に存在するか、または顧客のVNET1101と直接ピアリングされている分離したVNETに存在する必要があるということを意味する。2つのVNETのピアを顧客のネットワークに含めることによる顧客の混乱を防ぐために、本開示の1つの実施形態によって、サービス(例えば、ARS)が第1のリンク有効化仮想ネットワーク1103に配置されるのが好ましい。
一部の実施形態によれば、第2のクラウド環境のある種の制限は、ピアリングにおける両方のVNETが、その内部にデプロイされた仮想ネットワークゲートウェイ(VNG:virtual network gateway)またはサービス(例えば、ARS)のいずれかを含む場合に、VNETを経由するルート伝搬を禁止することである。ハブVNET1110がVNG1112を含み、第1のリンク有効化仮想ネットワーク1103がサービス(例えば、ARS)をホストするため、これらの2つのVNETを直接ピアリングすることは、VNGに次にホップされるハブVCN1122のCIDRのルートが自動的に設置されず、ユーザ定義ルート(UDR:user defined routes)によって構成可能でもないということを意味する。そのため、ネットワークインダイレクションの追加のレイヤが、第1のリンク有効化仮想ネットワーク1103とハブVNET1110の間に導入される。詳細には、図11に示されているように、トラフィックを第1のリンク有効化仮想ネットワーク1103からハブVNET1110に転送するために、第2のリンク有効化仮想ネットワーク1107がネクストホップとして導入される。
第2のリンク有効化仮想ネットワーク1107は、仮想ネットワークフォワーダ(VNF:virtual network forwarder)の対1107Aを含む。VNFの対1107Aに含まれている各VNFは、第1のリンク有効化仮想ネットワーク1103から受信された、カプセル化されたトラフィックを、第2のクラウド環境1105のリージョンに含まれているハブ仮想ネットワーク1110に転送するように構成される。一部の実装では、仮想ネットワークフォワーダ(VNF)の対1107Aは、第1のリンク有効化仮想ネットワーク1103から受信されているカプセル化されたトラフィックに対して、ネットワークアドレス変換(NAT)を実行する。詳細には、仮想ネットワークフォワーダ(VNF)の対1107Aは、データパケットが仮想ネットワークインターフェイスカード(VNIC)、例えば、第1のクラウド環境1135のリージョンのハブVCN1122に含まれているVNIC1122Aに送信されるように、第1のリンク有効化仮想ネットワーク1103から受信されている各データパケットに対してNAT動作を実行する。仮想ネットワークフォワーダ(VNF)の対1107Aが、トラフィックをハブVNET1110に含まれているVNG1112に転送し、その後、トラフィックが、高帯域幅相互接続1115を介して(第1のクラウド環境1135のリージョンに含まれている)ハブVCN1122に伝達されるということが理解される。
一部の実施形態によれば、ハブVCN1122に含まれているVNIC(例えば、VNIC1122A)によって受信された、カプセル化されたトラフィックが、第1のクラウド環境1135のリージョンに含まれている第3のリンク有効化仮想ネットワーク1123(スポークVCNとしてラベル付けされている)に転送される。第3のリンク有効化仮想ネットワーク1123は、仮想ネットワークアダプタの対1123A(ローカル仮想ネットワークアダプタ(LVNA:local virtual network adaptors)としてラベル付けされている)を含み、これらの仮想ネットワークアダプタの各々は、ハブVCN1122に含まれているVNIC1122Aから受信された、カプセル化されたトラフィックをカプセル解除するように構成される。さらに、図11に示されているように、第1のクラウド環境1135の第3のリンク有効化仮想ネットワーク1123に含まれている仮想ネットワークアダプタの対1123Aは、カプセル解除されたトラフィックを、ダイナミックルーティングゲートウェイ(DRG)接続を介して顧客1のVCN1131に(例えば、顧客1のVCN1131にデプロイされているリソース1131Aに)送信する。
このようにして、第1のリンク有効化仮想ネットワーク1103、第2のリンク有効化仮想ネットワーク1107、(第1のクラウド環境内の)ハブVNET1110、(第2のクラウド環境内の)ハブVCN1122、および第3のリンク有効化仮想ネットワーク1123を介して、第2のクラウド環境1105のリージョン内の顧客1のVNET1101と、第1のクラウド環境1135のリージョン内の顧客1のVCN1131の間に、エンドツーエンドのネットワークリンクが確立される。顧客1のVNETと顧客1のVCNの間に確立されるネットワークリンクに関して上で説明された方法と同様の方法で、(第2のクラウド環境1105のリージョン内の)顧客2のVNET1102と、(第1のクラウド環境1135のリージョン内の)顧客2のVCN1132の間に、ネットワークリンクが確立され得るということが理解される。さらに、第1のクラウド環境および第2のクラウド環境内の顧客の仮想ネットワークは、IPアドレス空間を共有してよいが、トラフィックの衝突を防ぐために、第1のクラウド環境および第2のクラウド環境に含まれている第1のリンク有効化仮想ネットワーク、第2のリンク有効化仮想ネットワーク、第3のリンク有効化仮想ネットワーク、およびハブ仮想ネットワークの各々に、固有のクラスレスドメイン間ルーティングIPアドレス空間が割り当てられるということに注意する。
図12Aおよび図12Bは、ある実施形態による、図11のネットワークリンクのアーキテクチャに関して観察された例示的な待ち時間値を示している。詳細には、図11を参照して上で説明されたネットワークリンクのアーキテクチャは、3ミリ秒の待ち時間を有するように、(例えば、点線によって示されているような顧客1のVNETと顧客1のVCNの間の通信経路に対応する)観察された待ち時間をもたらす。前述の経路上の個別のコンポーネント間で観察された待ち時間の内訳が、図12Aに示されている。図12Aに示された事例では、第2のクラウド環境内でRVNAおよびVNFがランダムに配置されているということに注意する。一部の実施形態によれば、(ランダムに配置されるのとは対照的に)ある条件に従ってRVNAおよびVNFが配置される配置戦略を使用すると、観察される待ち時間が改善される。例えば、RVNAおよびVNF(すなわち、顧客の仮想ネットワークに関連付けられているRVNAおよびVNF)を同じゾーン(例えば、第2のクラウド環境の可用性ゾーン)に配置すると、観察される待ち時間が改善される。例えば、個別のコンポーネント間の待ち時間の内訳を提供する図12Bに示されているように、RVNAおよびVNFを第2のクラウド環境の同じ可用性ドメインに配置することによって、エンドツーエンドの待ち時間が3ミリ秒から1.6ミリ秒に減らされることが観察される。
図12Cは、ある実施形態による、ネットワークリンクを確立するプロセスを示す例示的なフローチャートを示している。図12Cに示された処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはこれらの組合せにおいて実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。図12Cに提示され、下で説明される方法は、例示的かつ非限定的であるよう意図されている。図12Cは、特定のシーケンスまたは順序で発生するさまざまな処理ステップを示しているが、これは、限定することを意図されていない。ある代替の実施形態では、これらのステップは、何らかの異なる順序で実行されてよく、または一部のステップは、並列に実行されてもよい。
プロセスがステップ1250で開始し、ステップ1250で、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャ(例えば、図7のマルチクラウドインフラストラクチャ720B)が、第1のクラウド環境内の第1の仮想ネットワーク(例えば、図11の顧客1のVCN1131)と第2のクラウド環境内の第2の仮想ネットワーク(例えば、図11の顧客1のVNET1101)の間にネットワークリンクを作成する要求を受信する。第2のクラウド環境1105内の顧客のテナンシに関連付けられたユーザが、第1のクラウド環境1135内で提供された1つまたは複数のサービスにアクセスできるようにするために、第1のクラウド環境内の第1の仮想ネットワークがすでに作成されているということに注意する。その後、プロセスが、第1の仮想ネットワークと第2の仮想ネットワークの間にネットワークリンクを作成するために、ステップ1260に進む。
ステップ1260で、ネットワークリンクを作成するプロセスは、第2のクラウド環境内の第1のリンク有効化仮想ネットワークによって、第2の仮想ネットワークから受信されているトラフィックをカプセル化して、カプセル化されたトラフィックを生成することを含む。例えば、図11を参照すると、RVNAを含んでいる第1のリンク有効化仮想ネットワーク1103が、顧客1のVNET1101から受信されたトラフィックをカプセル化する(ステップ1263)。
さらに、ステップ1265で、第2のクラウド環境内の第2のリンク有効化仮想ネットワーク(例えば、図11のリンク有効化仮想ネットワーク1107)が、第1のリンク有効化仮想ネットワークから受信された、カプセル化されたトラフィックを、(例えば、VNFによって)第2のクラウド環境に含まれているハブ仮想ネットワーク(例えば、ハブVNET1110)に転送する。次に、プロセスがステップ1267に移動し、ステップ1267で、第1のクラウド環境内の第3のリンク有効化仮想ネットワーク(例えば、図11のリンク有効化仮想ネットワーク1123)が、ハブ仮想ネットワーク、例えば、ハブVCN1122から受信された、カプセル化されたトラフィックを(例えば、LVNAによって)カプセル解除する。さらに、ステップ1269で、第1のクラウド環境内の第3のリンク有効化仮想ネットワークが、カプセル解除されたトラフィックを、DRG接続を介して第1のクラウド環境内の第1の仮想ネットワーク(例えば、図11の顧客1のVCN1131)に送信する。このようにして、本開示のマルチクラウドインフラストラクチャは、異なる顧客の仮想ネットワーク間で、高性能で高可用性の、待ち時間の短いネットワークリンクを構成する。
図13を参照すると、ある実施形態による、ネットワークリンク構成の詳細なアーキテクチャ1300が示されている。図13に示されているように、ネットワークリンクが、第2のクラウド環境1305のリージョンを第1のクラウド環境1335のリージョンに通信可能に結合する。第2のクラウド環境1305のリージョンは、1つまたは複数の顧客のVNETを含んでよい。例えば、第2のクラウド環境1305のリージョンは、2つの顧客のVNET、すなわち、顧客1のVNET1301および顧客2のVNET1302を含む。したがって、顧客のVNETをホストしている第2のクラウド環境1305の一部は、顧客ドメイン1350Aとして表される。同様に、第1のクラウド環境1335のリージョンは、1つまたは複数の顧客のVCN(すなわち、顧客の仮想ネットワーク)を含んでよい。例えば、第1のクラウド環境1335のリージョンは、2つの顧客のVCN、すなわち、顧客1のVCN1331および顧客2のVCN1332を含む。したがって、顧客のVCNをホストしている第1のクラウド環境1335の一部は、顧客ドメイン1350Cとして表される。
一部の実施形態によれば、マルチクラウドネットワークインフラストラクチャ(MCNI)ドメイン1350B、すなわち、ネットワークリンクは、顧客の仮想ネットワークの対を通信可能に結合する。例えば、図13に示されているように、(第2のクラウド環境1305のリージョンに含まれている)顧客1のVNET1301は、(第1のクラウド環境1335のリージョンに含まれている)顧客1のVCN1331と通信可能に結合される。同様の方法で、(第2のクラウド環境1305のリージョンに含まれている)顧客2のVNET1302は、(第1のクラウド環境1335のリージョンに含まれている)顧客2のVCN1332と通信可能に結合される。MCNIドメイン1350がネットワークリンクドメインに対応し、点線1360と1370の間に配置されるということに注意する。より詳細には、MCNIドメインは、第2のクラウド環境1305のリージョンに配置されている第1の部分、および第1のクラウド環境1335のリージョンに配置されている第2の部分を含む。
一部の実装では、顧客の仮想ネットワーク(例えば、第2のクラウド環境1305のリージョン内の顧客1のVNET1301および第1のクラウド環境1335のリージョン内の顧客1のVCN1331)の各対が、マルチクラウドネットワーク(MCN)サービスによって(第1のクラウド環境および第2のクラウド環境に)デプロイされている複数の仮想ネットワーク(本明細書では、リンク有効化仮想ネットワークと呼ばれる)を使用して通信可能に結合される。例えば、第1のリンク有効化仮想ネットワーク1303(リーフ1VNETとしてラベル付けされている)が、第2のクラウド環境1305のリージョンにデプロイされる。第2のリンク有効化仮想ネットワーク1323(スポーク1VCNとしてラベル付けされている)が、第1のクラウド環境1335のリージョンにデプロイされる。同様の方法で、顧客2のVNET1302が、第2のクラウド環境1305のリージョンおよび第1のクラウド環境1335のリージョンにそれぞれデプロイされているリンク有効化仮想ネットワーク1304(リーフ2VNETとしてラベル付けされている)および別のリンク有効化仮想ネットワーク1324(スポーク2VCNとしてラベル付けされている)に関連付けられる。したがって、図13のアーキテクチャでは、顧客の仮想ネットワークの各対が、2つのリンク有効化仮想ネットワークに関連付けられる。
さらに、第2のクラウド環境1305のリージョンは、第2のクラウド環境に含まれている異なる顧客の仮想ネットワーク間で共有されているハブVNET1310を含む。言い換えると、ハブVNET1310は、第2のクラウド環境1305のリージョンに含まれている複数の顧客のテナンシのトラフィックを処理する。同様に、第1のクラウド環境1335のリージョンは、第1のクラウド環境に含まれている異なる顧客の仮想クラウドネットワーク間で共有されているハブVCN1322を含み、すなわち、ハブVCN1322は、第1のクラウド環境1335のリージョンに含まれている複数の顧客のVCNのトラフィックを処理する。図13に示されているように、第2のクラウド環境1305のリージョンは、高帯域幅ネットワーク相互接続1315によって、第1のクラウド環境1335のリージョンに通信可能に接続される。以下では、(第2のクラウド環境1305のリージョンに含まれている)顧客1のVNET1301と(第1のクラウド環境1335のリージョンに含まれている)顧客1のVCN1331の間のエンドツーエンドのネットワーク経路を構成することについての詳細な説明が提供されている。
図13に示されているように、顧客1のVNET1301内で操作される(例えば、ユーザ1301Aによって操作される)仮想マシンからトラフィックを受信するために、第1のリンク有効化仮想ネットワーク1303(すなわち、リーフ1VNET)が、顧客1のVNET1301にピアリングされる。ハブVNET1310が第2のクラウド環境1305のリージョン内の複数の顧客のVNET間で共有されるため、本開示の一部の実装では、第2のクラウド環境1305のリージョン内の顧客のVNETから生じる異なる顧客のトラフィックを区別するために、カプセル化およびトンネルフレームワークが利用される。第1のリンク有効化仮想ネットワーク1303は、ネットワークアダプタ1303A(本明細書では、リモート仮想ネットワークアダプタ(RVNA)と呼ばれる)の対を含む。第1のリンク有効化仮想ネットワーク1303に含まれているネットワークアダプタ1303Aの各々は、顧客1のVNET1301から受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成するように構成される。
一部の実装では、ネットワークアダプタ1303Aの対は、高可用性を実現する目的で使用され、アクティブ-アクティブ状態に維持される。言い換えると、ネットワークアダプタ1303Aの対に含まれている各アダプタは、機能的であり、顧客1のVNET1301から受信されたトラフィックをカプセル化する。一部の実施形態では、ネットワークアダプタ1303Aの対は、BGPピアリングを実行する目的で、第2のクラウド環境1305によって提供されたサービスを利用してよい。ネットワークアダプタ1303Aの対は、そのようなサービスに、等コストマルチパスルーティング(ECMP)などのメカニズムを使用することによって、均一な方法で(顧客のVNETから生じる)トラフィックを分散するように指示してよい。
図13に示されているように、ハブVNET1310は、仮想ネットワークフォワーダ(VNF)1306および1307の対を含む。VNFの対は、第2のクラウド環境1305のリージョンに含まれている顧客のVNETごとに関連付けられる。例えば、VNFの対1307が顧客1のVNET1301に関連付けられ、VNFの対1306が顧客2のVNET1301に関連付けられる。VNFの対1307に含まれている各VNFは、第1のリンク有効化仮想ネットワーク1303から(すなわち、対応するRVNAから)受信された、カプセル化されたトラフィックを、第1のクラウド環境1335のリージョンに含まれているハブ仮想ネットワーク1322に転送するように構成される。
一部の実装では、仮想ネットワークフォワーダ(VNF)の対1307は、第1のリンク有効化仮想ネットワーク1303から受信されているカプセル化されたトラフィックに対して、ネットワークアドレス変換(NAT)を実行する。詳細には、仮想ネットワークフォワーダ(VNF)の対1307は、データパケットが仮想ネットワークインターフェイスカード(VNIC)、例えば、第1のクラウド環境1335のリージョンのハブVCN1322に含まれているVNIC1322Aに送信されるように、第1のリンク有効化仮想ネットワーク1303から受信されている各データパケットに対してNAT動作を実行する。仮想ネットワークフォワーダ(VNF)の対1307が、トラフィックをハブVNET1310に含まれている仮想ネットワークゲートウェイ(VNG)1312に転送し、その後、トラフィックが、高帯域幅相互接続1315を介して(第1のクラウド環境1335のリージョンに含まれている)ハブVCN1322に伝達されるということが理解される。
一部の実施形態によれば、ハブVCN1322に含まれているVNIC(例えば、VNIC1322A)によって受信された、カプセル化されたトラフィックが、第1のクラウド環境1335のリージョンに含まれている第2のリンク有効化仮想ネットワーク1323(スポークVCNとしてラベル付けされている)に転送される。第2のリンク有効化仮想ネットワーク1323は、仮想ネットワークアダプタの対1323A(ローカル仮想ネットワークアダプタ(LVNA)としてラベル付けされている)を含み、これらの仮想ネットワークアダプタの各々は、ハブVCN1322に含まれているVNIC1322Aから受信された、カプセル化されたトラフィックをカプセル解除するように構成される。さらに、図13に示されているように、第1のクラウド環境1335の第2のリンク有効化仮想ネットワーク1323に含まれている仮想ネットワークアダプタの対1323Aは、カプセル解除されたトラフィックを、ダイナミックルーティングゲートウェイ(DRG)接続を介して顧客1のVCN1331に(例えば、顧客1のVCN1331にデプロイされているリソース1331Aに)送信する。
このようにして、第1のリンク有効化仮想ネットワーク1303、第2のリンク有効化仮想ネットワーク1323、(第1のクラウド環境内の)ハブVNET1310、および(第2のクラウド環境内の)ハブVCN1322を介して、第2のクラウド環境1305のリージョン内の顧客1のVNET1301と、第1のクラウド環境1335のリージョン内の顧客1のVCN1331の間に、エンドツーエンドのネットワークリンクが確立される。顧客1のVNETと顧客1のVCNの間に確立されるネットワークリンクに関して上で説明された方法と同様の方法で、(第2のクラウド環境1305のリージョン内の)顧客2のVNET1302と、(第1のクラウド環境1335のリージョン内の)顧客2のVCN1332の間に、ネットワークリンクが確立され得るということが理解される。さらに、第1のクラウド環境および第2のクラウド環境内の顧客の仮想ネットワークは、IPアドレス空間を共有して(例えば、重複するIPアドレス空間を有して)よいが、トラフィックの衝突を防ぐために、第1のクラウド環境および第2のクラウド環境に含まれている第1のリンク有効化仮想ネットワーク、第2のリンク有効化仮想ネットワーク、およびハブ仮想ネットワークの各々に、固有のクラスレスドメイン間ルーティングIPアドレス空間が割り当てられるということに注意する。
図14Aは、一部の実施形態による、図13の相互接続共有構造の例示的な観察された待ち時間の内訳を示している。この構成では、(顧客1のVNETから顧客1のVCNへの例示的な経路1の)エンドツーエンドの待ち時間が950マイクロ秒であることが観察される。したがって、本開示は、パケットプロセッサの戦略的配置を提供し、例えば、VNFがハブVNETに配置され、エクサデータベースアプリケーションなどの、ハイスループットの待ち時間に敏感なアプリケーションをサポートすることにとって有利な、短い待ち時間を実現する。前述の実施形態では、待ち時間測定結果が、顧客のVNETおよび顧客のVCNの、すなわち、可用性ゾーンおよびリージョン内の、特定の設定に対応するということに注意する。
図14Bは、ある実施形態による、ネットワークリンクを確立するプロセスを示す別の例示的なフローチャートを示している。図14Bに示された処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはこれらの組合せにおいて実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。図14Bに提示され、下で説明される方法は、例示的かつ非限定的であるよう意図されている。図14Bは、特定のシーケンスまたは順序で発生するさまざまな処理ステップを示しているが、これは、限定することを意図されていない。ある代替の実施形態では、これらのステップは、何らかの異なる順序で実行されてよく、または一部のステップは、並列に実行されてもよい。
プロセスがステップ1450で開始し、ステップ1450で、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャ(例えば、図7のマルチクラウドインフラストラクチャ720B)が、第1のクラウド環境内の第1の仮想ネットワーク(例えば、図13の顧客1のVCN1331)と第2のクラウド環境内の第2の仮想ネットワーク(例えば、図13の顧客1のVNET1301)の間にネットワークリンクを作成する要求を受信する。第2のクラウド環境1305内の顧客のテナンシに関連付けられたユーザが、第1のクラウド環境1335内で提供された1つまたは複数のサービスにアクセスできるようにするために、第1のクラウド環境内の第1の仮想ネットワークがすでに作成されているということに注意する。その後、プロセスが、複数のリンク有効化仮想ネットワークを使用して第1の仮想ネットワークと第2の仮想ネットワークの間にネットワークリンクを作成するために、ステップ1455に進む。
次に、プロセスがステップ1460に移動し、ステップ1460で、複数のリンク有効化仮想ネットワークからの第1のリンク有効化仮想ネットワークが、第2のクラウド環境に配置される。例えば、図13を参照すると、第1のリンク有効化仮想ネットワーク1303が、顧客のVNETとピアリングするために、第2のクラウド環境のリージョンにデプロイされる。プロセスが、ステップ1465で、複数のリンク有効化仮想ネットワークからの第2のリンク有効化仮想ネットワークを第1のクラウド環境に配置/デプロイする。例えば、図13を参照すると、第2のリンク有効化仮想ネットワーク1323が、DRG接続を介して顧客のVCNとピアリングするために、第1のクラウド環境のリージョンにデプロイされる。このようにして、本開示のマルチクラウドインフラストラクチャは、異なる顧客の仮想ネットワーク間で、高性能で高可用性の、待ち時間の短いネットワークリンクを構成する。
図15は、ある実施形態による、マルチクラウドネットワークサービス制御プレーン(MCNS-CP:multi-cloud network service control plane)を含んでいるサービスインフラストラクチャ1500のアーキテクチャを示している。MCNS-CPは、図11および図13を参照して上で説明されたネットワークリンクのようなネットワークリンクを構成する役割を担う。図15に示されているように、サービスアーキテクチャ1500は、高帯域幅相互接続(例えば、Express RouteまたはFast Connect)を介して互いに通信可能に結合され得る第2のクラウド環境1501のリージョンおよび第1のクラウド環境1551のリージョンを含んでいる。第2のクラウド環境1501のリージョンは、顧客のVNET1503、スポークVNET1505、リーフVNET1507、ハブVNET1509、およびマルチクラウドサービスVNET1510を含む。顧客のVNET1503は顧客ドメインに対応し、一方、スポークVNET1505およびリーフVNET1507は、顧客ごとにインスタンス化されるサービスドメインに対応する。ハブVNET1509およびマルチクラウドサービスVNET1510が、マルチテナントされているサービスプレーンの一部に対応するということが理解される。
リーフVNET1507は、顧客のVNET1503とピアリングし、顧客のVNET1503との間で受信されたトラフィックをカプセル化/カプセル解除するように構成されている1つまたは複数の仮想ネットワークアダプタ(例えば、RVNA1507A)を含む。スポークVNET1505は、リーフVNET1507から受信されたトラフィックをハブVNET1509に転送するように構成されている1つまたは複数の仮想ネットワークフォワーダ(例えば、VNF1505A)を含む。さらに、リーフVNET1507およびスポークVNET1505の各々はプライベートエンドポイントを含み、プライベートエンドポイントを介して、ネットワーク構成情報がRVNAおよびVNFにそれぞれ提供されてよい。例えば、リーフVNET1507はプライベートエンドポイント1507Bを含み、スポークVNET1505はプライベートエンドポイント1505Bを含み、これらのプライベートエンドポイントを介して、ネットワーク構成情報(すなわち、マッピング情報)が取得され得る。以下では、ネットワーク構成情報の配布に関する詳細がさらに説明される。
ハブVNET1509は、第2のクラウド環境を第1のクラウド環境に結合するために、高帯域幅相互接続に通信可能に結合されている仮想ネットワークゲートウェイ(VNG)を含む。一部の実装では、ハブVNET1509は、仮想ネットワーク内でプロビジョニングされている、完全にプラットフォームによって管理されたPaaSサービスであるBastion1509Aを含んでよい。特に、Bastion1509は、例えば、ブラウザを使用する、ネイティブSSHを介する、などによって、仮想マシンに接続することを可能にするサービスである。マルチクラウドサービスVNET1510は、内部ロードバランサ(ILB:load balancer)1510Bおよびアウトポスト1510Aを含む。アウトポスト1510AとILB1510Bの組合せは、(第1のクラウド環境から受信された)ネットワーク構成情報をプライベートエンドポイント1505Bおよび1507Bに配布するために使用される。このようにして、VNF1505AおよびRVNA1507Aは、それぞれのプライベートエンドポイント、すなわち、プライベートエンドポイント1505Bおよびプライベートエンドポイント1507Bから、ネットワーク構成情報を受信することができる。
第1のクラウド環境1551のリージョンは、リソース1558(例えば、エクサデータベース)をホストする顧客のVCN1557、スポークVCN1555、ハブVCN1553、およびマルチクラウドサービスVCN1560を含む。顧客のVCN1557は顧客ドメインに対応し、一方、スポークVCN1555は、顧客ごとにインスタンス化されるサービスドメインに対応する。ハブVCN1553およびマルチクラウドサービスVCN1560が、マルチテナントされているサービスプレーンの一部に対応するということが理解される。
スポークVCN1555は、(例えば、DRG接続を介して)顧客のVCN1557とピアリングし、顧客のVCN1557との間で受信されたトラフィックをカプセル化/カプセル解除するように構成されている1つまたは複数の仮想ネットワークアダプタ(例えば、LVNA1555A)を含む。スポークVCN1555は、VNIC接続を含み、VNIC接続を介してマルチクラウドサービスVCN1560と通信する。例えば、スポークVCN1555に含まれているLVNA1555Aは、ネットワーク構成情報を受信するために、マルチクラウドサービスVCN1560に含まれているVNICに接続する。スポークVCN1555は、ハブVCN1553に含まれている別のVNIC接続1553Bを介して、ハブVCN1553にさらに通信可能に結合される。ハブVCN1553はDRGを含み、DRGを介して、ハブVCN1553が、第1のクラウド環境を第2のクラウド環境に結合する高帯域幅相互接続に結合される。
一部の実施形態によれば、マルチクラウドサービスVCN1560は、第1のクラウド環境1551内に構築されている制御プレーンのスタックに対応する。詳細には、マルチクラウドサービスは、VCN、ルートテーブル、DRG、接続、VNET、インスタンス、VNIC、ピアリングなどの、複数のネットワークリソースで構成される。マルチクラウドサービスVCN1560は、ロードバランサ1560A、1つまたは複数のAPIサーバ1560B、キー値ストア1560(K-Vストアとしてラベル付けされている)、配布サービス1560D、WFaaS(workflow-as-a-service)ワーカー1560F、およびゲートウェイ1560Gを含む。一部の実装では、1つまたは複数のAPIサーバ1560Bは、第1のクラウド環境と第2のクラウド環境の間のネットワークリンクを設定する要求を受信する。それに応じて、1つまたは複数のAPIサーバ1560Bは、(WFaaSワーカー1560Fに含まれている)ワーカーを開始してよい。一部の実装では、WFaaSワーカー1560は、第1のクラウド環境および第2のクラウド環境の制御プレーンとの通信を開始し、必要とされるネットワークリソースをデプロイして、ネットワークリンクをプロビジョニングし、例えば、第1のクラウド環境および第2のクラウド環境内のリンク有効化仮想ネットワークを起動し、ネットワークリンク接続をピアリングする。WFaaSワーカー1560Fによって実行される1つのそのような例示的なプロセスが、図16Aを参照して後で説明される。1つまたは複数のAPIサーバ1560Bは、マルチクラウドサービスのさまざまなコンポーネントへのCIDRアドレス割り当てを管理するように構成される。
配布サービス1560Dは、RVNA、VNF、およびLVNAから要求(例えば、マッピング要求)を受信するマッピングサービスである。配布サービス1560Dは、ネットワークパケット(すなわち、トラフィック)のカプセル化/カプセル解除を実行するためにRVNA、VNF、およびLVNAによって要求されたネットワーク構成情報を提供することによって、そのようなマッピング要求に応答する。例えば、1つの実装では、RVNA、VNF、およびLVNAは、配布サービス1560Dを定期的にポーリングして、それぞれのネットワーク構成情報を取得してよい。配布サービス1560Dは、VNIC接続を介して、ネットワーク構成情報を(スポークVCN1555に位置する)LVNA1555Aに提供する。
さらに、マルチクラウドサービスVCN1560は、第2のクラウド環境に各々位置するVNF1505AおよびRVNA1507Aによって(それぞれのプライベートエンドポイントを介して)ネットワーク構成情報が最終的に取得され得るように、ネットワーク構成情報を(マルチクラウドサービスVNET1510に含まれている)アウトポスト1510Aに送信するために、マルチクラウドサービスVNET1510との通信チャネル、例えば、トンネル(例えば、IPsecトンネル)を設定してよい。特に、アウトポスト1510AによってVNFおよびRVNAのポーリング要求が(それぞれのエンドポイント1505Bおよび1507Bを介して)受信される。次に、アウトポスト1510Aが、そのような要求を配布サービス1560Dにリダイレクトする。ポーリング要求を受信することに応答して、配布サービス1560Dは、対応するネットワーク構成情報をVNFおよびRVNAに提供する。一部の実装では、配布サービス1560Dは、K-Vストア1560からネットワーク構成情報を取得し、取得された情報をさまざまなパケットプロセッサ(すなわち、VNF、RVNA、およびLVNA)にさらに配布する。配布サービス1560Dが、それぞれのパケットプロセッサによって発行されたポーリング要求において、RVNA、LVNA、およびVNFの各々に対応する健全性の状態を示す情報を受信してよいということが理解される。さらに、マルチクラウドサービスVCN1560はゲートウェイ1560Gを含み、ゲートウェイ1560Gは、外部の関係者に対してマルチクラウドサービスVCN1560によって行われる呼び出し/要求、例えば、第2のクラウド環境に対して行われる呼び出し、パブリックIPアドレスに対して行われる呼び出しなどを、プロビジョニングする/可能にするために使用される。
図16Aを参照すると、ある実施形態による、異なるクラウド環境とのマルチクラウドサービス制御プレーンの情報のやりとりを示すスイム図が示されている。図16Aのスイム図は、クライアント1601、マルチクラウドプラットフォーム制御プレーン1602、第2のクラウド環境のIaaS API1603、および第1のクラウド環境1604に対応するIaaS APIという実体の間の情報のやりとりを示している。
図16Aに示されているように、ステップS1で、ネットワークリンクを作成するためにクライアント1601によって発行された要求が、マルチクラウドプラットフォーム制御プレーン1602によって受信される。一部の実装では、マルチクラウドプラットフォーム制御プレーン1602は、要求を受け取り、確認応答をクライアント1601に返す(ステップS2)。その後、クライアント1601が、マルチクラウドプラットフォーム制御プレーン1602をポーリングして、要求の状態を取得してよい。
ステップS3で、マルチクラウドプラットフォーム制御プレーン1602は、ネットワークリンクを作成する要求を受け取ると、例えばWFaaSワーカー(図15の1560F)を使用して、ワークフローを開始する。ステップS4で、マルチクラウドプラットフォーム制御プレーン1602は、第1の要求を、第1のクラウド環境1604に対応するIaaS APIに送信する。そのような要求が第1のクラウド環境の第1のエンドポイントに送信されてよいということに注意する(例えば、第1のエンドポイントは、第1のクラウド環境のリソースマネージャに対応してよい)。第1の要求は、マルチクラウドプラットフォーム制御プレーン1602によって発行されている要求に対応し、第1のクラウド環境内のリソースの第1のセットのプロビジョニングを要求する。リソースの第1のセットは、LVNA、ハブVCN、スポークVCN、VNICなどの作成に対応してよい。一部の実装では、第1の要求が、第1のエンドポイントに、第1のクラウド環境内のすべての必要とされるリソースの集合的インスタンス化を要求するテンプレートを含んでよいということが理解される。
ステップS5で、マルチクラウドプラットフォーム制御プレーン1602は、第2の要求を、第2のクラウド環境1603に対応するIaaS APIに送信する。そのような要求が第2のクラウド環境の第2のエンドポイントに送信されてよいということに注意する(例えば、第2のエンドポイントは、第2のクラウド環境のリソースマネージャに対応してよい)。第2の要求は、マルチクラウドプラットフォーム制御プレーン1602によって発行されている要求に対応し、第2のクラウド環境内のリソースの第2のセットのプロビジョニングを要求する。リソースの第2のセットは、RVNA、VNF、ハブVNET、スポークVNET、サービスエンドポイント、ネットワークピアリングなどの作成に対応してよい。一部の実装では、第2の要求が、第2のエンドポイントに、第2のクラウド環境内のすべての必要とされるリソースの集合的インスタンス化を要求するテンプレートを含んでよいということが理解される。
ステップ6および7で、マルチクラウドプラットフォーム制御プレーン1602が、第1のエンドポイントおよび第2のエンドポイントそれぞれから確認応答を受信してよい。その後、マルチクラウドプラットフォーム制御プレーン1602は、要求されたネットワークリンクの状態に関するクライアント1601からのポーリング要求を受信すると、ステップ9で、ネットワークリンクの作成の成功を示すメッセージ(すなわち、ネットワークリンクが使用可能であることを示すメッセージ)をクライアントに送信してよい。
図16Bは、ある実施形態による、マルチクラウドサービス制御プレーンによって実行されるプロセスを示す例示的なフローチャートを示している。図16Bに示された処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはこれらの組合せにおいて実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。図16Bに提示され、下で説明される方法は、例示的かつ非限定的であるよう意図されている。図16Bは、特定のシーケンスまたは順序で発生するさまざまな処理ステップを示しているが、これは、限定することを意図されていない。ある代替の実施形態では、これらのステップは、何らかの異なる順序で実行されてよく、または一部のステップは、並列に実行されてもよい。
プロセスがステップ1650で開始し、ステップ1650で、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャの制御プレーンが、第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間にネットワークリンクを作成する要求を受信する。第2のクラウド環境内の顧客のテナンシに関連付けられたユーザが、第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスできるようにするために、第1のクラウド環境内の第1の仮想ネットワークがすでに作成されているということに注意する。ネットワークリンクを作成する要求の受信時に、制御プレーンは、ワークフローを実行して、ネットワークリンクの作成を開始する(ステップ1660)。
一部の実装では、ワークフローは、ネットワークリンクを作成するために実行される複数のサブステップを含んでよい。例えば、ワークフローはステップ1663を含んでよく、ステップ1663で、第1の要求が、第1のクラウド環境の第1のエンドポイントに送信される(例えば、第1のエンドポイントは、第1のクラウド環境のリソースマネージャに対応してよい)。第1の要求は、マルチクラウドプラットフォーム制御プレーン1602によって発行されている要求に対応し、第1のクラウド環境内のリソースの第1のセットのプロビジョニングを要求する。リソースの第1のセットは、LVNA、ハブVCN、スポークVCN、VNICなどの作成に対応してよい。
その後、プロセスがステップ1665に移動し、ステップ1665で、第2の要求が、第2のクラウド環境の第2のエンドポイントに送信される(例えば、第2のエンドポイントは、第2のクラウド環境のリソースマネージャに対応してよい)。第2の要求は、マルチクラウドプラットフォーム制御プレーン1602によって発行されている要求に対応し、第2のクラウド環境内のリソースの第2のセットのプロビジョニングを要求する。リソースの第2のセットは、RVNA、VNF、ハブVNET、スポークVNET、サービスエンドポイント、ネットワークピアリングなどの作成に対応してよい。
さらに、ステップ1670で、リソースの第1のセットおよびリソースの第2のセットがプロビジョニングされることに応答して、制御プレーンは、ネットワーク構成情報を、リソースの第1のセットおよびリソースの第2のセットのうちの1つまたは複数のリソースに配布してよい。ネットワーク構成情報は、例えば、リソースのIPアドレスに対応する情報を含んでよい。そのため、パケットプロセッサに、(制御プレーンの配布サービスによって)トラフィックが転送されるネクストホップの送信先のアドレスに関する情報が提供される。言い換えると、ネットワーク構成情報は、第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークとの間でトラフィックが伝達されることを可能にする。
図11および図13に関して上で説明されたように、第1のクラウド環境と第2のクラウド環境の間に作成されるネットワークリンクのアーキテクチャは、ネットワークリンクをプロビジョニングするために作成されているリンク有効化仮想ネットワーク内のパケットプロセッサの位置および配置に関連する。本開示の実施形態によって作成されたネットワークリンクが、エクサデータベースアプリケーションなどの、ハイスループットの待ち時間に敏感なアプリケーションをサポートするということが理解される。一部の実施形態によれば、第1のクラウド環境と第2のクラウド環境の間の通信の送信待ち時間(例えば、往復待ち時間)も、計算インスタンスがプロビジョニングされる第1のクラウド環境および第2のクラウド環境内のドメインの選択による影響を受けることがある。言い換えると、短い待ち時間を実現するために、計算インスタンスをホストするドメインの最適な対(すなわち、第1のクラウド環境および第2のクラウド環境の各々に1つのドメイン)を選択するのが望ましい。
クラウドインフラストラクチャが、通常はリージョンおよびドメイン(可用性ドメインとも呼ばれる)内でホストされるということに注意する。リージョンは、局所的な地理的領域として定義され、可用性ドメインは、リージョン内に位置する1つまたは複数のデータセンターに対応してよく、すなわち、リージョンは、1つまたは複数の可用性ドメインで構成される。さらに、クラウドインフラストラクチャリソースは、仮想クラウドネットワークなど、リージョンに固有であってよく、または計算インスタンスなど、可用性ドメインに固有であってよい。可用性ドメインは、互いに分離され、故障耐性があり、同時に故障する可能性が極めて低い。可用性ドメインが、電力または冷却あるいは内部の可用性ドメインネットワークなどのインフラストラクチャを共有しないため、リージョン内の1つの可用性ドメインでの故障が、同じリージョン内の他の可用性ドメインの可用性に影響を与える可能性が低い。以下では、図17Aを参照して、第1のクラウド環境から第2のクラウド環境へ、および第2のクラウド環境から第1のクラウド環境への情報の送信において短い待ち時間が実現されるように、計算インスタンスの配置のために第1のクラウド環境および第2のクラウド環境内の可用性ドメインを選択するためのフレームワークが説明される。
図17Aは、ある実施形態による、異なるクラウド環境の可用性ドメイン内の計算インスタンスの例示的な配置戦略を示している。簡単にするため、および説明のために、図17Aは、3つの可用性ドメイン(AD)、すなわち、AD-1 1703A、AD-2 1703B、およびAD-3 1703Cを含んでいる第1のクラウド環境1701を示している。同様に、第2のクラウド環境1721は、3つの可用性ドメイン、すなわち、AD-1’ 1723A、AD-2’ 1723B、およびAD-3’ 1723Cを含んでいるとして示されている。第2のクラウド環境内の顧客は、第1のクラウド環境によって提供されたサービス(例えば、データベースサービス)を利用することを望むことがある。第1のクラウド環境によって提供されたある種のサービス(例えば、エクサデータベースサービス)は、待ち時間に敏感であることに加えて、ハイスループットであることがある。したがって、図17Aに示されているように、一部の実施形態によれば、サービスをプロビジョニングするために、各クラウド環境内の特定の可用性ドメインにおける1つまたは複数の計算インスタンス1720のデプロイメントが必要になることがある。ADがランダムな方法で顧客に割り当てられるということが、理解される。詳細には、特定のクラウド環境内の顧客1に割り当てられているAD1、AD2、およびAD3は、別の顧客、例えば顧客2に割り当てられている第1、第2、および第3の可用性ドメインに(順序に関して)対応しなくてよい。
前述のフレームワークでは、第2のクラウド環境内の顧客が第1のクラウド環境によって提供されたサービスを利用するために、望ましいサービスを可能にするように選択されたAD内で1つまたは複数の計算インスタンスがデプロイされ得るように、各クラウド環境内の1つのADの選択が決定されるべきである。ADの対(すなわち、第1のクラウド環境内の1つのAD、および第2のクラウド環境内の別のAD)の選択が、選択されたADによってサービスを提供することにおいて発生する待ち時間が最小になるような方法で実行されるべきであるということに注意する。ADのそのような選択戦略は、待ち時間に敏感なサービスを提供することを可能にする。
一部の実施形態によれば、最小の待ち時間を取得するために、各クラウド環境内のADの選択が経験的に導き出される。1つの実装では、各クラウド環境内のADの選択に関与するステップは、次のように説明されてよい。
ステップ1-各クラウド環境内の各可用性ドメインにおいて、単一の計算インスタンス(本明細書では、テスト計算インスタンスと呼ばれる)を割り当てる。
ステップ2-ADの対(k,j)ごとに送信待ち時間を取得し、k=1,2,3およびj=1’,2’,3’である。待ち時間が、1つのADにデプロイされた計算インスタンスから他のADにデプロイされた別の計算インスタンスへのデータの送信において発生する時間量に対応するということに注意する。
ステップ3-最も短い待ち時間を有するADの対を選択する。
ステップ4-選択されていない(各クラウド環境内の)AD内のインスタンスをシャットダウンし、望ましい数の計算インスタンスをADの選択された対の各ADにデプロイする。一部の応用では、2つの計算インスタンス(すなわち、プライマリ計算インスタンスおよびセカンダリ計算インスタンス)が、各クラウド環境の選択されたADにデプロイされてよい。例えば、図17Aに示されているように、第1のクラウド環境内のAD-1 1703Aおよび第2のクラウド環境内のAD-2’ 1723Bが、最も短い送信待ち時間をもたらすADの対として決定される。そのため、サービスをプロビジョニングするために、2つの計算インスタンスがAD-1 1703AおよびAD-2’ 1723Bの各々にデプロイされる。
ステップ1-各クラウド環境内の各可用性ドメインにおいて、単一の計算インスタンス(本明細書では、テスト計算インスタンスと呼ばれる)を割り当てる。
ステップ2-ADの対(k,j)ごとに送信待ち時間を取得し、k=1,2,3およびj=1’,2’,3’である。待ち時間が、1つのADにデプロイされた計算インスタンスから他のADにデプロイされた別の計算インスタンスへのデータの送信において発生する時間量に対応するということに注意する。
ステップ3-最も短い待ち時間を有するADの対を選択する。
ステップ4-選択されていない(各クラウド環境内の)AD内のインスタンスをシャットダウンし、望ましい数の計算インスタンスをADの選択された対の各ADにデプロイする。一部の応用では、2つの計算インスタンス(すなわち、プライマリ計算インスタンスおよびセカンダリ計算インスタンス)が、各クラウド環境の選択されたADにデプロイされてよい。例えば、図17Aに示されているように、第1のクラウド環境内のAD-1 1703Aおよび第2のクラウド環境内のAD-2’ 1723Bが、最も短い送信待ち時間をもたらすADの対として決定される。そのため、サービスをプロビジョニングするために、2つの計算インスタンスがAD-1 1703AおよびAD-2’ 1723Bの各々にデプロイされる。
一部の実施形態によれば、高可用性の目的で、2つの計算インスタンスがAD内の異なる障害ドメインにデプロイされてよいということに注意する。一部の他の実施形態によって、1つの計算インスタンスを最も短い待ち時間を有するADの対にデプロイし、別の計算インスタンスを2番目に短い待ち時間を有する別のADの対にデプロイすることを選択してよい。前述の選択戦略に基づくADの他の可能な選択が、十分に本開示の範囲内であるということが、理解される。
図17Bは、ある実施形態による、計算インスタンスがデプロイされる異なるクラウド環境の可用性ドメインを決定することにおいてマルチクラウドサービス制御プレーンによって実行されるプロセスを示す例示的なフローチャートを示している。図17Bに示された処理は、それぞれのシステムの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはこれらの組合せにおいて実装されてよい。ソフトウェアは、非一時的ストレージ媒体に(例えば、メモリデバイスに)格納されてよい。図17Bに提示され、下で説明される方法は、例示的かつ非限定的であるよう意図されている。図17Bは、特定のシーケンスまたは順序で発生するさまざまな処理ステップを示しているが、これは、限定することを意図されていない。ある代替の実施形態では、これらのステップは、何らかの異なる順序で実行されてよく、または一部のステップは、並列に実行されてもよい。
プロセスがステップ1755で開始し、ステップ1755で、第1のクラウド環境に含まれているマルチクラウドインフラストラクチャが、(i)第1の複数の計算インスタンスを第1のクラウド環境内の第1の複数の可用性ドメインのうちの第1の可用性ドメインにデプロイし、(ii)第2の複数の計算インスタンスを第2のクラウド環境内の第2の複数の可用性ドメインのうちの第2の可用性ドメインにデプロイする要求を受信する。第1のクラウド環境の第1の可用性ドメイン内の第1の複数の計算インスタンスおよび第2のクラウド環境内の第2の複数の計算インスタンスは、第2のクラウド環境内のユーザが、第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスすることを可能にする。
次に、プロセスがステップ1760に移動し、第1のクラウド環境内の第1の複数の可用性ドメインのうちの第1の可用性ドメインおよび第2のクラウド環境内の第2の複数の可用性ドメインのうちの第2の可用性ドメインを決定する。第1および第2の可用性ドメインを決定するために、プロセスがステップ1765に移動し、ステップ1765で、プロセスが、第1のクラウド環境内の第1の複数の可用性ドメインのうちの可用性ドメインごと、および第2のクラウド環境内の第2の複数の可用性ドメインのうちの可用性ドメインごとに、動作のセットを反復的に実行する。この反復的動作は、ステップ1765A~1765Dを含む。
ステップ1765Aで、第1のテスト計算インスタンスが、第1のクラウド環境内の第1の複数の可用性ドメインのうちの可用性ドメインに配置される。ステップ1765Bで、第2のテスト計算インスタンスが、第2のクラウド環境内の第2の複数の可用性ドメインのうちの可用性ドメインに配置される。次に、反復プロセスがステップ1765Cに移動し、ステップ1765Cで、テストパケットが、第1のテスト計算インスタンスから第2のテスト計算インスタンスに送信される。ステップ1765Dで、第1のテスト計算インスタンスおよび第2のテスト計算インスタンスをホストしている可用性ドメインの対に対応する送信待ち時間が計算される。プロセスは、ステップ1765A~1765Dを反復的に処理すると、ステップ1770に移動し、ステップ1770で、可用性ドメインの対に対して計算された送信待ち時間に関連付けられた条件に基づいて、第1のクラウド環境内の第1の可用性ドメインおよび第2のクラウド環境内の第2の可用性ドメインが選択される。
この条件は、ステップ1765A~1765Dの反復プロセスにおいて観察された最も短い送信待ち時間をもたらすADの対を選択することに対応してよい。プロセスは、第1のクラウド環境内の第1の可用性ドメインおよび第2のクラウド環境内の第2の可用性ドメインを識別すると、選択されたドメイン内で望ましい数の計算インスタンスをインスタンス化し、第2のクラウド環境内のユーザが、第1のクラウド環境によって提供された1つまたは複数のサービスを利用できるようにしてよい。
クラウドインフラストラクチャの例
前述したように、IaaS(infrastructure as a service)は、クラウドコンピューティングの1つの特定の種類である。IaaSは、パブリックネットワーク(例えば、インターネット)を経由して仮想化されたコンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(例えば、サーバ、ストレージデバイス、ネットワークノード(例えば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザレイヤ)など)をホストすることができる。場合によっては、IaaSプロバイダは、それらのインフラストラクチャコンポーネントに付随して生じるように、さまざまなサービス(例えば、請求書送付、監視、ロギング、セキュリティ、ロードバランシング、およびクラスタ化など)を提供してもよい。したがって、これらのサービスはポリシー主導であることができるため、IaaSユーザは、ロードバランシングを駆動してアプリケーションの可用性および性能を維持するようにポリシーを実装することができてよい。
前述したように、IaaS(infrastructure as a service)は、クラウドコンピューティングの1つの特定の種類である。IaaSは、パブリックネットワーク(例えば、インターネット)を経由して仮想化されたコンピューティングリソースを提供するように構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(例えば、サーバ、ストレージデバイス、ネットワークノード(例えば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザレイヤ)など)をホストすることができる。場合によっては、IaaSプロバイダは、それらのインフラストラクチャコンポーネントに付随して生じるように、さまざまなサービス(例えば、請求書送付、監視、ロギング、セキュリティ、ロードバランシング、およびクラスタ化など)を提供してもよい。したがって、これらのサービスはポリシー主導であることができるため、IaaSユーザは、ロードバランシングを駆動してアプリケーションの可用性および性能を維持するようにポリシーを実装することができてよい。
場合によっては、IaaSの顧客は、インターネットなどの広域ネットワーク(WAN)を介してリソースおよびサービスにアクセスしてよく、クラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、オペレーティングシステム(OS)を各VMにインストールし、データベースなどのミドルウェアをデプロイし、ワークロードおよびバックアップのためのストレージバケットを作成し、企業ソフトウェアをVMにインストールすることもできる。次に、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックをバランス調整すること、アプリケーションの問題をトラブルシューティングすること、性能を監視すること、災害復旧を管理することなどを含む、さまざまな機能を実行することができる。
ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSを提供する(例えば、提供する、貸し出す、販売する)ことを専門とするサードパーティサービスであってよいが、そうである必要はない。実体は、プライベートクラウドをデプロイし、インフラストラクチャサービスのそれ自身のプロバイダになることを選択してもよい。
一部の例では、IaaSのデプロイメントは、新しいアプリケーションまたは新しいバージョンのアプリケーションを、準備されたアプリケーションサーバなどにつなぐプロセスである。このプロセスは、サーバを準備する(例えば、ライブラリ、デーモンなどをインストールする)プロセスを含んでもよい。このプロセスは、多くの場合、ハイパーバイザレイヤ(例えば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下でクラウドプロバイダによって管理される。したがって、顧客は、(例えば、(例えば、オンデマンドでスピンアップされ得る)セルフサービス仮想マシンなどの上の)OS、ミドルウェア、および/またはアプリケーションのデプロイメントを処理する役割を担ってよい。
一部の例では、IaaSのプロビジョニングは、コンピュータまたは仮想ホストを使用のために取得すること、および必要とされるライブラリまたはサービスをそれらのコンピュータまたは仮想ホストにインストールすることも、指してよい。ほとんどの場合、デプロイメントはプロビジョニングを含まず、プロビジョニングは、最初に実行される必要があることがある。
場合によっては、IaaSのプロビジョニングには2つの異なる問題が存在する。第一に、何かが実行される前に、インフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第二に、すべてがプロビジョニングされた後に、既存のインフラストラクチャを発達させるという(例えば、新しいサービスを追加する、サービスを変更する、サービスを除去するなどの)課題がある。場合によっては、これらの2つの課題は、インフラストラクチャの構成が宣言的に定義されることを可能にすることによって対処されてよい。言い換えると、インフラストラクチャ(例えば、どのコンポーネントが必要とされるか、およびそれらのコンポーネントがどのように情報をやりとりするか)が、1つまたは複数の構成ファイルによって定義され得る。このようにして、インフラストラクチャのトポロジー全体(例えば、どのリソースがどのリソースに依存するか、およびそれらの各リソースがどのように連携するか)が、宣言的に記述され得る。場合によっては、トポロジーが定義された後に、構成ファイルに記述されたさまざまなコンポーネントを作成および/または管理するワークフローが生成され得る。
一部の例では、インフラストラクチャは、多くの相互接続された要素を含んでよい。例えば、コアネットワークとしても知られている1つまたは複数の仮想プライベートクラウド(VPC:virtual private clouds)(例えば、構成可能な、および/または共有されたコンピューティングリソースの、場合によってはオンデマンドのプール)が存在してよい。一部の例では、ネットワークのセキュリティがどのように設定されるかを定義するためにプロビジョニングされた1つまたは複数のセキュリティグループルール、および1つまたは複数の仮想マシン(VM)が存在してもよい。ロードバランサ、データベースなどの他のインフラストラクチャ要素がプロビジョニングされてもよい。より多くのインフラストラクチャ要素が望まれ、かつ/または追加されるにつれて、インフラストラクチャが徐々に発達することができる。
場合によっては、さまざまな仮想コンピューティング環境にわたってインフラストラクチャコードのデプロイメントを可能にするために、継続的デプロイメント技術が採用されてよい。さらに、説明された技術は、これらの環境内のインフラストラクチャ管理を可能にすることができる。一部の例では、サービスチームは、1つまたは複数の、ただし多くの場合は多数の、(例えば、さまざまな地理的位置にわたって、ときには世界全体にわたって)異なる実稼働環境にデプロイされるのが望ましいコードを記述する可能性がある。しかし、一部の例では、コードがデプロイされるインフラストラクチャは、最初に設定されなければならない。場合によっては、プロビジョニングが手動で行われることが可能であり、リソースをプロビジョニングするためにプロビジョニングツールが利用されてよく、かつ/またはインフラストラクチャがプロビジョニングされた後に、コードをデプロイするためにデプロイメントツールが利用されてよい。
図18は、少なくとも1つの実施形態による、IaaSアーキテクチャの例示的なパターンを示すブロック図1800である。サービスオペレータ1802は、仮想クラウドネットワーク(VCN)1806およびセキュアホストサブネット1808を含むことができるセキュアホストテナンシ1804に通信可能に結合され得る。一部の例では、サービスオペレータ1802は、1つまたは複数のクライアントコンピューティングデバイスを使用していてよく、クライアントコンピューティングデバイスは、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/またはiOS、Windows Phone、Android, BlackBerry 8、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行している、インターネット、電子メール、ショートメッセージサービス(SMS:short message service)、Blackberry(登録商標)、または他の通信プロトコルが有効化されている、ポータブルハンドヘルドデバイス(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA:personal digital assistant))またはウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)であってよい。代替として、クライアントコンピューティングデバイスは、例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行しているパーソナルコンピュータおよび/またはラップトップコンピュータを含む、汎用パーソナルコンピュータであることができる。クライアントコンピューティングデバイスは、例えばGoogle Chrome OSなどの、さまざまなGNU/Linuxオペレーティングシステムを含むが、これらに限定されない、さまざまな市販されているUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを実行しているワークステーションコンピュータであることができる。代替または追加として、クライアントコンピューティングデバイスは、VCN1806にアクセスできるネットワークおよび/またはインターネットを経由して通信することができる、シンクライアントコンピュータ、インターネット対応のゲーミングシステム(例えば、Kinect(登録商標)ジェスチャー入力デバイスを含むか、または含まないMicrosoft Xboxゲーム機)、および/またはパーソナルメッセージングデバイスなどの、任意の他の電子デバイスであってよい。
VCN1806は、SSH VCN1812に含まれているLPG1810を介してセキュアシェル(SSH)VCN1812に通信可能に結合され得る、ローカルピアリングゲートウェイ(LPG)1810を含むことができる。SSH VCN1812はSSHサブネット1814を含むことができ、SSH VCN1812は、制御プレーンVCN1816に含まれているLPG1810を介して、制御プレーンVCN1816に通信可能に結合され得る。また、SSH VCN1812は、LPG1810を介して、データプレーンVCN1818に通信可能に結合され得る。制御プレーンVCN1816およびデータプレーンVCN1818は、IaaSプロバイダによって所有および/または操作され得るサービステナンシ1819に含まれ得る。
制御プレーンVCN1816は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークの間の企業ネットワークの一部)として機能する制御プレーン非武装ゾーン(DMZ:demilitarized zone)層1820を含むことができる。DMZに基づくサーバは、制限された責任を有し、セキュリティ侵害を封じ込められた状態に保つのに役立つことができる。さらに、DMZ層1820は、1つまたは複数のロードバランサ(LB:load balancer)サブネット1822、アプリサブネット1826を含むことができる制御プレーンアプリ層1824、データベース(DB:database)サブネット1830(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含むことができる制御プレーンデータ層1828を含むことができる。制御プレーンDMZ層1820に含まれているLBサブネット1822は、制御プレーンVCN1816に含まれ得る制御プレーンアプリ層1824に含まれているアプリサブネット1826およびインターネットゲートウェイ1834に通信可能に結合されることが可能であり、アプリサブネット1826は、制御プレーンデータ層1828に含まれているDBサブネット1830ならびにサービスゲートウェイ1836およびネットワークアドレス変換(NAT)ゲートウェイ1838に通信可能に結合され得る。制御プレーンVCN1816は、サービスゲートウェイ1836およびNATゲートウェイ1838を含むことができる。
制御プレーンVCN1816は、アプリサブネット1826を含むことができるデータプレーンミラーアプリ層1840を含むことができる。データプレーンミラーアプリ層1840に含まれているアプリサブネット1826は、計算インスタンス1844を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC:virtual network interface controller)1842を含むことができる。計算インスタンス1844は、データプレーンミラーアプリ層1840のアプリサブネット1826を、データプレーンアプリ層1846に含まれ得るアプリサブネット1826に通信可能に結合することができる。
データプレーンVCN1818は、データプレーンアプリ層1846、データプレーンDMZ層1848、およびデータプレーンデータ層1850を含むことができる。データプレーンDMZ層1848は、データプレーンアプリ層1846のアプリサブネット1826およびデータプレーンVCN1818のインターネットゲートウェイ1834に通信可能に結合され得るLBサブネット1822を含むことができる。アプリサブネット1826は、データプレーンVCN1818のサービスゲートウェイ1836およびデータプレーンVCN1818のNATゲートウェイ1838に通信可能に結合され得る。データプレーンデータ層1850は、データプレーンアプリ層1846のアプリサブネット1826に通信可能に結合され得るDBサブネット1830を含むこともできる。
制御プレーンVCN1816の、およびデータプレーンVCN1818のインターネットゲートウェイ1834は、パブリックインターネット1854に通信可能に結合され得るメタデータ管理サービス1852に通信可能に結合され得る。パブリックインターネット1854は、制御プレーンVCN1816の、およびデータプレーンVCN1818のNATゲートウェイ1838に通信可能に結合され得る。制御プレーンVCN1816の、およびデータプレーンVCN1818のサービスゲートウェイ1836は、クラウドサービス1856に通信可能に結合され得る。
一部の例では、制御プレーンVCN1816の、またはデータプレーンVCN1818のサービスゲートウェイ1836は、パブリックインターネット1854を通らずに、クラウドサービス1856へのアプリケーションプログラミングインターフェイス(API:application programming interface)呼び出しを行うことができる。サービスゲートウェイ1836からクラウドサービス1856へのAPI呼び出しは、一方向であることができ、サービスゲートウェイ1836は、クラウドサービス1856へのAPI呼び出しを行うことができ、クラウドサービス1856は、要求されたデータをサービスゲートウェイ1836に送信することができる。しかし、クラウドサービス1856は、サービスゲートウェイ1836へのAPI呼び出しを開始しなくてよい。
一部の例では、セキュアホストテナンシ1804は、サービステナンシ1819に直接接続されることが可能であり、そうでなければ、分離されてよい。セキュアホストサブネット1808は、LPG1810を介してSSHサブネット1814と通信することができ、LPG1810は、そうしないと分離されたシステム上で、双方向通信を可能にすることができる。セキュアホストサブネット1808をSSHサブネット1814に接続することは、セキュアホストサブネット1808に、サービステナンシ1819内の他の実体へのアクセスを与えてよい。
制御プレーンVCN1816は、サービステナンシ1819のユーザが、望ましいリソースを設定するか、またはそうでなければ、プロビジョニングすることを可能にしてよい。制御プレーンVCN1816内でプロビジョニングされた望ましいリソースは、データプレーンVCN1818においてデプロイされるか、またはそうでなければ、使用されてよい。一部の例では、制御プレーンVCN1816は、データプレーンVCN1818から分離されることが可能であり、制御プレーンVCN1816のデータプレーンミラーアプリ層1840は、データプレーンミラーアプリ層1840およびデータプレーンアプリ層1846に含まれ得るVNIC1842を介して、データプレーンVCN1818のデータプレーンアプリ層1846と通信することができる。
一部の例では、システムのユーザまたは顧客は、要求をメタデータ管理サービス1852に伝達することができるパブリックインターネット1854を介して、要求、例えば、作成、読み取り、更新、または削除(CRUD:create, read, update, or delete)操作を行うことができる。メタデータ管理サービス1852は、インターネットゲートウェイ1834を介して、要求を制御プレーンVCN1816に伝達することができる。要求は、制御プレーンDMZ層1820に含まれているLBサブネット1822によって受信され得る。LBサブネット1822は、要求が有効であるということを決定してよく、この決定に応答して、LBサブネット1822は、要求を、制御プレーンアプリ層1824に含まれているアプリサブネット1826に送信することができる。要求の妥当性が確認され、要求がパブリックインターネット1854への呼び出しを必要とする場合、パブリックインターネット1854への呼び出しが、パブリックインターネット1854への呼び出しを行うことができるNATゲートウェイ1838に送信されてよい。要求によって格納されるのが望ましいことがあるメモリが、DBサブネット1830内で格納され得る。
一部の例では、データプレーンミラーアプリ層1840は、制御プレーンVCN1816とデータプレーンVCN1818の間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正が、データプレーンVCN1818に含まれているリソースに適用されるのが望ましいことがある。VNIC1842を介して、制御プレーンVCN1816は、データプレーンVCN1818に含まれているリソースと直接通信し、それによって、リソースの構成に対する変更、更新、または他の適切な修正を実行することができる。
一部の実施形態では、制御プレーンVCN1816およびデータプレーンVCN1818は、サービステナンシ1819に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN1816またはデータプレーンVCN1818のいずれかを、所有することも、操作することも行わなくてよい。代わりに、IaaSプロバイダが、両方ともサービステナンシ1819に含まれ得る制御プレーンVCN1816およびデータプレーンVCN1818を所有するか、または操作してよい。この実施形態は、ユーザまたは顧客が他のユーザのリソースまたは他の顧客のリソースと情報をやりとりするのを防ぐことができる、ネットワークの分離を可能にすることができる。また、この実施形態は、システムのユーザまたは顧客が、格納のために、望ましいレベルのセキュリティを有さないことがあるパブリックインターネット1854に頼ることを必要とせずに、データベースをプライベートに格納することを可能にしてよい。
他の実施形態では、制御プレーンVCN1816に含まれているLBサブネット1822は、サービスゲートウェイ1836から信号を受信するように構成され得る。この実施形態では、制御プレーンVCN1816およびデータプレーンVCN1818は、パブリックインターネット1854を呼び出さずに、IaaSプロバイダの顧客によって呼び出されるように構成されてよい。IaaSプロバイダの顧客は、顧客が使用するデータベースが、IaaSプロバイダによって制御されることがあり、パブリックインターネット1854から分離され得るサービステナンシ1819に格納されることがあるため、この実施形態を望むことがある。
図19は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図1900である。サービスオペレータ1902(例えば、図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)1906(例えば、図18のVCN1806)およびセキュアホストサブネット1908(例えば、図18のセキュアホストサブネット1808)を含むことができるセキュアホストテナンシ1904(例えば、図18のセキュアホストテナンシ1804)に通信可能に結合され得る。VCN1906は、セキュアシェル(SSH)VCN1912に含まれているローカルピアリングゲートウェイ(LPG)1810を介してSSH VCN1912(例えば、図18のSSH VCN1812)に通信可能に結合され得る、LPG1910(例えば、図18のLPG1810)を含むことができる。SSH VCN1912はSSHサブネット1914(例えば、図18のSSHサブネット1814)を含むことができ、SSH VCN1912は、制御プレーンVCN1916に含まれているLPG1910を介して、制御プレーンVCN1916(例えば、図18の制御プレーンVCN1816)に通信可能に結合され得る。制御プレーンVCN1916は、サービステナンシ1919(例えば、図18のサービステナンシ1819)に含まれることが可能であり、データプレーンVCN1918(例えば、図18のデータプレーンVCN1818)は、システムのユーザまたは顧客によって所有または操作され得る顧客のテナンシ1921に含まれることが可能である。
制御プレーンVCN1916は、LBサブネット1922(例えば、図18のLBサブネット1822)を含むことができる制御プレーンDMZ層1920(例えば、図18の制御プレーンDMZ層1820)、アプリサブネット1926(例えば、図18のアプリサブネット1826)を含むことができる制御プレーンアプリ層1924(例えば、図18の制御プレーンアプリ層1824)、データベース(DB)サブネット1930(例えば、図18のデータベース(DB)サブネット1830に類似する)を含むことができる制御プレーンデータ層1928(例えば、図18の制御プレーンデータ層1828)を含むことができる。制御プレーンDMZ層1920に含まれているLBサブネット1922は、制御プレーンVCN1916に含まれ得る制御プレーンアプリ層1924に含まれているアプリサブネット1926およびインターネットゲートウェイ1934(例えば、図18のインターネットゲートウェイ1834)に通信可能に結合されることが可能であり、アプリサブネット1926は、制御プレーンデータ層1928に含まれているDBサブネット1930ならびにサービスゲートウェイ1936(例えば、図18のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1938(例えば、図18のNATゲートウェイ1838)に通信可能に結合され得る。制御プレーンVCN1916は、サービスゲートウェイ1936およびNATゲートウェイ1938を含むことができる。
制御プレーンVCN1916は、アプリサブネット1926を含むことができるデータプレーンミラーアプリ層1940(例えば、図18のデータプレーンミラーアプリ層1840)を含むことができる。データプレーンミラーアプリ層1940に含まれているアプリサブネット1926は、計算インスタンス1944(例えば、図18の計算インスタンス1844に類似する)を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)1942(例えば、1842のVNIC)を含むことができる。計算インスタンス1944は、データプレーンミラーアプリ層1940に含まれているVNIC1942およびデータプレーンアプリ層1946に含まれているVNIC1942を介して、データプレーンミラーアプリ層1940のアプリサブネット1926とデータプレーンアプリ層1946(例えば、図18のデータプレーンアプリ層1846)に含まれ得るアプリサブネット1926の間の通信を容易にすることができる。
制御プレーンVCN1916に含まれているインターネットゲートウェイ1934は、パブリックインターネット1954(例えば、図18のパブリックインターネット1854)に通信可能に結合され得るメタデータ管理サービス1952(例えば、図18のメタデータ管理サービス1852)に通信可能に結合され得る。パブリックインターネット1954は、制御プレーンVCN1916に含まれているNATゲートウェイ1938に通信可能に結合され得る。制御プレーンVCN1416に含まれているサービスゲートウェイ1936は、クラウドサービス1956(例えば、図18のクラウドサービス1856)に通信可能に結合され得る。
一部の例では、データプレーンVCN1918は、顧客のテナンシ1921に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN1916を提供してよく、IaaSプロバイダは、顧客ごとに、サービステナンシ1919に含まれている固有の計算インスタンス1944を設定してよい。各計算インスタンス1944は、サービステナンシ1919に含まれている制御プレーンVCN1916と顧客のテナンシ1921に含まれているデータプレーンVCN1918の間の通信を可能にしてよい。計算インスタンス1944は、サービステナンシ1919に含まれている制御プレーンVCN1916内でプロビジョニングされているリソースが、顧客のテナンシ1921に含まれているデータプレーンVCN1918においてデプロイされること、またはそうでなければ、使用されることを可能にしてよい。
他の例では、IaaSプロバイダの顧客は、顧客のテナンシ1921に存続するデータベースを保有してよい。この例では、制御プレーンVCN1916は、アプリサブネット1926を含むことができるデータプレーンミラーアプリ層1940を含むことができる。データプレーンミラーアプリ層1940は、データプレーンVCN1918に存在することができるが、データプレーンミラーアプリ層1940は、データプレーンVCN1918に存続しなくてよい。すなわち、データプレーンミラーアプリ層1940は、顧客のテナンシ1921に対するアクセス権限を有してよいが、データプレーンミラーアプリ層1940は、データプレーンVCN1918に存在しなくてよく、IaaSプロバイダの顧客によって所有されることも操作されることもなくてよい。データプレーンミラーアプリ層1940は、データプレーンVCN1918への呼び出しを行うように構成されてよいが、制御プレーンVCN1916に含まれているいずれかの実体への呼び出しを行うように構成されなくてよい。顧客は、制御プレーンVCN1916内でプロビジョニングされているデータプレーンVCN1918内のリソースをデプロイすること、またはそうでなければ、使用することを望むことがあり、データプレーンミラーアプリ層1940は、顧客のリソースの望ましいデプロイメントまたは他の使用を容易にすることができる。
一部の実施形態では、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN1918に適用することができる。この実施形態では、顧客は、どのデータプレーンVCN1918がアクセスできるかを決定することができ、顧客は、データプレーンVCN1918からパブリックインターネット1954へのアクセスを制限してよい。IaaSプロバイダは、フィルタを適用すること、またはそうでなければ、任意の外部のネットワークまたはデータベースへのデータプレーンVCN1918のアクセスを制御することが、できなくてよい。顧客によってフィルタおよび制御を顧客のテナンシ1921に含まれているデータプレーンVCN1918に適用することは、他の顧客から、およびパブリックインターネット1954から、データプレーンVCN1918を分離するのに役立つことができる。
一部の実施形態では、クラウドサービス1956は、パブリックインターネット1954、制御プレーンVCN1916、またはデータプレーンVCN1918に存在しないことがあるサービスにアクセスするために、サービスゲートウェイ1936によって呼び出され得る。クラウドサービス1956と制御プレーンVCN1916またはデータプレーンVCN1918との間の接続は、作動中であることも、継続的であることもなくてよい。クラウドサービス1956は、IaaSプロバイダによって所有または操作される異なるネットワークに存在してよい。クラウドサービス1956は、サービスゲートウェイ1936からの呼び出しを受信するように構成されてよく、パブリックインターネット1954からの呼び出しを受信しないように構成されてよい。一部のクラウドサービス1956は、他のクラウドサービス1956から分離されてよく、制御プレーンVCN1916は、制御プレーンVCN1916と同じリージョンに存在しないことがあるクラウドサービス1956から分離されてよい。例えば、制御プレーンVCN1916が「リージョン1」に位置することがあり、クラウドサービスの「デプロイメント13」がリージョン1および「リージョン2」に位置することがある。リージョン1に位置する制御プレーンVCN1916に含まれているサービスゲートウェイ1936によってデプロイメント13への呼び出しが行われる場合、この呼び出しは、リージョン1内のデプロイメント13に送信されてよい。この例では、制御プレーンVCN1916、またはリージョン1内のデプロイメント13は、リージョン2内のデプロイメント13に通信可能に結合されること、またはそうでなければ、リージョン2内のデプロイメント13と通信することがなくてよい。
図20は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図2000である。サービスオペレータ2002(例えば、図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)2006(例えば、図18のVCN1806)およびセキュアホストサブネット2008(例えば、図18のセキュアホストサブネット1808)を含むことができるセキュアホストテナンシ2004(例えば、図18のセキュアホストテナンシ1804)に通信可能に結合され得る。VCN2006は、SSH VCN2012に含まれているLPG2010を介してSSH VCN2012(例えば、図18のSSH VCN1812)に通信可能に結合され得る、LPG2010(例えば、図18のLPG1810)を含むことができる。SSH VCN2012はSSHサブネット2014(例えば、図18のSSHサブネット1814)を含むことができ、SSH VCN1812は、制御プレーンVCN2016に含まれているLPG2010を介して制御プレーンVCN2016(例えば、図18の制御プレーンVCN1816)に、およびデータプレーンVCN2018に含まれているLPG2010を介してデータプレーンVCN2018(例えば、図18のデータプレーン1818)に、通信可能に結合され得る。制御プレーンVCN2016およびデータプレーンVCN2018は、サービステナンシ2019(例えば、図18のサービステナンシ1819)に含まれ得る。
制御プレーンVCN1816は、ロードバランサ(LB)サブネット1822(例えば、図18のLBサブネット1822)を含むことができる制御プレーンDMZ層1820(例えば、図18の制御プレーンDMZ層1820)、アプリサブネット2026(例えば、図18のアプリサブネット1826に類似する)を含むことができる制御プレーンアプリ層2024(例えば、図18の制御プレーンアプリ層1824)、DBサブネット2030を含むことができる制御プレーンデータ層2028(例えば、図18の制御プレーンデータ層1828)を含むことができる。制御プレーンDMZ層2020に含まれているLBサブネット2022は、制御プレーンVCN2016に含まれ得る制御プレーンアプリ層2024に含まれているアプリサブネット2026に、およびインターネットゲートウェイ1834(例えば、図18のインターネットゲートウェイ1834)に通信可能に結合されることが可能であり、アプリサブネット2026は、制御プレーンデータ層1828に含まれているDBサブネット1830に、ならびにサービスゲートウェイ1836(例えば、図18のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1838(例えば、図18のNATゲートウェイ1838)に通信可能に結合され得る。制御プレーンVCN2016は、サービスゲートウェイ2036およびNATゲートウェイ2038を含むことができる。
データプレーンVCN2018は、データプレーンアプリ層2046(例えば、図18のデータプレーンアプリ層1846)、データプレーンDMZ層2048(例えば、図18のデータプレーンDMZ層1848)、およびデータプレーンデータ層2050(例えば、図18のデータプレーンデータ層1850)を含むことができる。データプレーンDMZ層2048は、データプレーンアプリ層2046の信頼できるアプリサブネット2060および信頼できないアプリサブネット2062ならびにデータプレーンVCN2018に含まれているインターネットゲートウェイ2034に通信可能に結合され得るLBサブネット2022を含むことができる。信頼できるアプリサブネット2060は、データプレーンVCN2018に含まれているサービスゲートウェイ2036、データプレーンVCN2018に含まれているNATゲートウェイ2038、およびデータプレーンデータ層2050に含まれているDBサブネット2030に、通信可能に結合され得る。信頼できないアプリサブネット2062は、データプレーンVCN2018に含まれているサービスゲートウェイ2036、およびデータプレーンデータ層2050に含まれているDBサブネット2030に、通信可能に結合され得る。データプレーンデータ層2050は、データプレーンVCN2018に含まれているサービスゲートウェイ2036に通信可能に結合され得るDBサブネット2030を含むことができる。
信頼できないアプリサブネット2062は、テナント仮想マシン(VM)2066(1)~(N)に通信可能に結合され得る1つまたは複数のプライマリVNIC2064(1)~(N)を含むことができる。各テナントVM2066(1)~(N)は、それぞれの顧客のテナンシ2070(1)~(N)に含まれ得るそれぞれのコンテナ出口VCN2068(1)~(N)に含まれ得るそれぞれのアプリサブネット2067(1)~(N)に、通信可能に結合され得る。それぞれのセカンダリVNIC2072(1)~(N)は、データプレーンVCN2018に含まれている信頼できないアプリサブネット2062とコンテナ出口VCN2068(1)~(N)に含まれているアプリサブネットの間の通信を容易にすることができる。各コンテナ出口VCN2068(1)~(N)は、パブリックインターネット2054(例えば、図18のパブリックインターネット1854)に通信可能に結合され得るNATゲートウェイ2038を含むことができる。
制御プレーンVCN2016に含まれており、データプレーンVCN2018に含まれているインターネットゲートウェイ2034は、パブリックインターネット2054に通信可能に結合され得るメタデータ管理サービス2052(例えば、図18のメタデータ管理システム1852)に通信可能に結合され得る。パブリックインターネット2054は、制御プレーンVCN2016に含まれており、データプレーンVCN2018に含まれているNATゲートウェイ2038に通信可能に結合され得る。制御プレーンVCN2016に含まれており、データプレーンVCN2018に含まれているサービスゲートウェイ2036は、クラウドサービス2056に通信可能に結合され得る。
一部の実施形態では、データプレーンVCN2018は、顧客のテナンシ2070と統合され得る。この統合は、コードを実行するときにサポートを望むことがある場合など、場合によっては、IaaSプロバイダの顧客にとって有用なまたは望ましいことであり得る。顧客は、破壊的であり得るコードを実行するために提供することがあり、他の顧客のリソースと通信することがあり、またはそうでなければ、望ましくない影響を引き起こすことがある。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行するべきかどうかを判定してよい。
一部の例では、IaaSプロバイダの顧客は、一時的なネットワークアクセス権限をIaaSプロバイダに付与し、データプレーンアプリ層2046に接続される機能を要求することがある。この機能を実行するためのコードは、VM2066(1)~(N)において実行されてよく、このコードは、データプレーンVCN2018上の他の場所で実行するように構成されなくてよい。各VM2066(1)~(N)は、1つの顧客のテナンシ2070に接続されてよい。VM2066(1)~(N)に含まれているそれぞれのコンテナ2071(1)~(N)は、コードを実行するように構成されてよい。この場合、二重の分離が存在することができ(例えば、コードを実行しているコンテナ2071(1)~(N)、コンテナ2071(1)~(N)は、信頼できないアプリサブネット2062に含まれている少なくともVM2066(1)~(N)に含まれてよい)、これは、正しくないか、またはそうでなければ、望ましくないコードが、IaaSプロバイダのネットワークに損傷を与えること、または異なる顧客のネットワークに損傷を与えることを防ぐのに役立つことができる。コンテナ2071(1)~(N)は、顧客のテナンシ2070に通信可能に結合されてよく、顧客のテナンシ2070との間でデータを送信または受信するように構成されてよい。コンテナ2071(1)~(N)は、データプレーンVCN2018内の任意の他の実体との間でデータを送信または受信するように構成されなくてよい。コードの実行の完了時に、IaaSプロバイダは、コンテナ2071(1)~(N)を強制終了するか、またはそうでなければ、破棄してよい。
一部の実施形態では、信頼できるアプリサブネット2060は、IaaSプロバイダによって所有または操作され得るコードを実行してよい。この実施形態では、信頼できるアプリサブネット2060は、DBサブネット2030に通信可能に結合されてよく、DBサブネット2030内でCRUD操作を実行するように構成されてよい。信頼できないアプリサブネット2062は、DBサブネット2030に通信可能に結合されてよいが、この実施形態では、信頼できないアプリサブネットは、DBサブネット2030内で読み取り操作を実行するように構成されてよい。各顧客のVM2066(1)~(N)に含まれ得る、顧客からのコードを実行できるコンテナ2071(1)~(N)は、DBサブネット2030と通信可能に結合されなくてよい。
他の実施形態では、制御プレーンVCN2016およびデータプレーンVCN2018は、直接、通信可能に結合されなくてよい。この実施形態では、制御プレーンVCN2016とデータプレーンVCN2018の間に、直接通信が存在しなくてよい。しかし、通信は、少なくとも1つの方法によって間接的に発生することができる。LPG2010は、IaaSプロバイダによって確立されてよく、制御プレーンVCN2016とデータプレーンVCN2018の間の通信を容易にすることができる。別の例では、制御プレーンVCN2016またはデータプレーンVCN2018は、サービスゲートウェイ2036を介して、クラウドサービス2056への呼び出しを行うことができる。例えば、制御プレーンVCN2016からクラウドサービス2056への呼び出しは、データプレーンVCN2018と通信することができるサービスに対する要求を含むことができる。
図21は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック図2100である。サービスオペレータ2102(例えば、図18のサービスオペレータ1802)は、仮想クラウドネットワーク(VCN)2106(例えば、図18のVCN1806)およびセキュアホストサブネット2108(例えば、図18のセキュアホストサブネット1808)を含むことができるセキュアホストテナンシ2104(例えば、図18のセキュアホストテナンシ1804)に通信可能に結合され得る。VCN2106は、SSH VCN2112に含まれているLPG2110を介してSSH VCN2112(例えば、図18のSSH VCN1812)に通信可能に結合され得る、LPG2110(例えば、図18のLPG1810)を含むことができる。SSH VCN2112はSSHサブネット2114(例えば、図18のSSHサブネット1814)を含むことができ、SSH VCN2112は、制御プレーンVCN2116に含まれているLPG2110を介して制御プレーンVCN2116(例えば、図18の制御プレーンVCN1816)に、およびデータプレーンVCN2118に含まれているLPG2110を介してデータプレーンVCN2118(例えば、図18のデータプレーン1818)に、通信可能に結合され得る。制御プレーンVCN2116およびデータプレーンVCN2118は、サービステナンシ2119(例えば、図18のサービステナンシ1819)に含まれ得る。
制御プレーンVCN2116は、LBサブネット2122(例えば、図18のLBサブネット1822)を含むことができる制御プレーンDMZ層2120(例えば、図18の制御プレーンDMZ層1820)、アプリサブネット2126(例えば、図18のアプリサブネット1826)を含むことができる制御プレーンアプリ層2124(例えば、図18の制御プレーンアプリ層1824)、DBサブネット2130(例えば、図20のDBサブネット2030)を含むことができる制御プレーンデータ層2128(例えば、図18の制御プレーンデータ層1828)を含むことができる。制御プレーンDMZ層2120に含まれているLBサブネット2122は、制御プレーンVCN2116に含まれ得る制御プレーンアプリ層2124に含まれているアプリサブネット2126に、およびインターネットゲートウェイ2134(例えば、図18のインターネットゲートウェイ1834)に通信可能に結合されることが可能であり、アプリサブネット2126は、制御プレーンデータ層2128に含まれているDBサブネット2130に、ならびにサービスゲートウェイ2136(例えば、図18のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2138(例えば、図18のNATゲートウェイ1838)に通信可能に結合され得る。制御プレーンVCN2116は、サービスゲートウェイ2136およびNATゲートウェイ2138を含むことができる。
データプレーンVCN2118は、データプレーンアプリ層2146(例えば、図18のデータプレーンアプリ層1846)、データプレーンDMZ層2148(例えば、図18のデータプレーンDMZ層2148)、およびデータプレーンデータ層2150(例えば、図18のデータプレーンデータ層1850)を含むことができる。データプレーンDMZ層2148は、データプレーンアプリ層2146の信頼できるアプリサブネット2160(例えば、図20の信頼できるアプリサブネット2060)および信頼できないアプリサブネット2162(例えば、図20の信頼できないアプリサブネット2062)ならびにデータプレーンVCN2118に含まれているインターネットゲートウェイ2134に通信可能に結合され得るLBサブネット2122を含むことができる。信頼できるアプリサブネット2160は、データプレーンVCN2118に含まれているサービスゲートウェイ2136、データプレーンVCN2118に含まれているNATゲートウェイ2138、およびデータプレーンデータ層2150に含まれているDBサブネット2130に、通信可能に結合され得る。信頼できないアプリサブネット2162は、データプレーンVCN2118に含まれているサービスゲートウェイ2136、およびデータプレーンデータ層2150に含まれているDBサブネット2130に、通信可能に結合され得る。データプレーンデータ層2150は、データプレーンVCN2118に含まれているサービスゲートウェイ2136に通信可能に結合され得るDBサブネット2130を含むことができる。
信頼できないアプリサブネット2162は、信頼できないアプリサブネット2162内に存在するテナント仮想マシン(VM)2166(1)~(N)に通信可能に結合され得るプライマリVNIC2164(1)~(N)を含むことができる。各テナントVM2166(1)~(N)は、それぞれのコンテナ2167(1)~(N)内のコードを実行することができ、コンテナ出口VCN2168に含まれ得るデータプレーンアプリ層2146に含まれ得るアプリサブネット2126に、通信可能に結合され得る。それぞれのセカンダリVNIC2172(1)~(N)は、データプレーンVCN2118に含まれている信頼できないアプリサブネット2162とコンテナ出口VCN2168に含まれているアプリサブネットの間の通信を容易にすることができる。コンテナ出口VCNは、パブリックインターネット2154(例えば、図18のパブリックインターネット1854)に通信可能に結合され得るNATゲートウェイ2138を含むことができる。
制御プレーンVCN2116に含まれており、データプレーンVCN2118に含まれているインターネットゲートウェイ2134は、パブリックインターネット2154に通信可能に結合され得るメタデータ管理サービス2152(例えば、図18のメタデータ管理システム1852)に通信可能に結合され得る。パブリックインターネット2154は、制御プレーンVCN2116に含まれており、データプレーンVCN2118に含まれているNATゲートウェイ2138に通信可能に結合され得る。制御プレーンVCN2116に含まれており、データプレーンVCN2118に含まれているサービスゲートウェイ2136は、クラウドサービス2156に通信可能に結合され得る。
一部の例では、図21のブロック図2100のアーキテクチャによって示されたパターンは、図20のブロック図2000のアーキテクチャによって示されたパターンの例外と見なされてよく、IaaSプロバイダが顧客(例えば、切断されたリージョン)と直接通信することができない場合、IaaSプロバイダの顧客にとって望ましいことがある。顧客ごとにVM2166(1)~(N)に含まれているそれぞれのコンテナ2167(1)~(N)は、顧客によってリアルタイムにアクセスされ得る。コンテナ2167(1)~(N)は、コンテナ出口VCN2168に含まれ得るデータプレーンアプリ層2146のアプリサブネット2126に含まれているそれぞれのセカンダリVNIC2172(1)~(N)への呼び出しを行うように構成されてよい。セカンダリVNIC2172(1)~(N)は、呼び出しをNATゲートウェイ2138に送信することができ、NATゲートウェイ2138は、呼び出しをパブリックインターネット2154に送信してよい。この例では、顧客によってリアルタイムにアクセスされ得るコンテナ2167(1)~(N)が、制御プレーンVCN2116から分離されることが可能であり、データプレーンVCN2118に含まれている他の実体から分離され得る。コンテナ2167(1)~(N)は、他の顧客のリソースから分離されてもよい。
他の例では、顧客は、コンテナ2167(1)~(N)を使用して、クラウドサービス2156を呼び出すことができる。この例では、顧客は、クラウドサービス2156に対してサービスを要求するコンテナ2167(1)~(N)内のコードを実行してよい。コンテナ2167(1)~(N)は、この要求をセカンダリVNIC2172(1)~(N)に送信することができ、セカンダリVNIC2172(1)~(N)は、この要求をNATゲートウェイに送信することができ、NATゲートウェイは、この要求をパブリックインターネット2154に送信することができる。パブリックインターネット2154は、この要求を、インターネットゲートウェイ2134を介して、制御プレーンVCN2116に含まれているLBサブネット2122に送信することができる。この要求が有効であるということを決定することに応答して、LBサブネットは、この要求をアプリサブネット2126に送信することができ、アプリサブネット2126は、サービスゲートウェイ2136を介して、この要求をクラウドサービス2156に送信することができる。
図に示されているIaaSアーキテクチャ1800、1900、2000、2100が、示されているコンポーネント以外のコンポーネントを含んでよいということが、理解されるべきである。さらに、図に示されている実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムの単に一部の例である。一部の他の実施形態では、IaaSシステムは、図に示されているコンポーネントより多いか、または少ないコンポーネントを含んでよく、2つ以上のコンポーネントを結合してよく、あるいはコンポーネントの異なる構成または配置を有してよい。
ある実施形態では、本明細書に記載されたIaaSシステムは、セルフサービスの、サブスクリプションに基づく、弾力的に拡張可能な、信頼できる、高度に利用可能な、および安全な方法で顧客に配信される、一連のアプリケーション、ミドルウェア、およびデータベースサービスの提供を含んでよい。そのようなIaaSシステムの例は、本譲受人によって提供されるOracleクラウドインフラストラクチャ(OCI)である。
図22は、本開示のさまざまな実施形態が実装され得る例示的なコンピュータシステム2200を示している。システム2200は、前述のコンピュータシステムのいずれかを実装するために使用されてよい。図に示されているように、コンピュータシステム2200は、バスサブシステム2202を介して複数の周辺サブシステムと通信する処理ユニット2204を含んでいる。これらの周辺サブシステムは、処理加速ユニット2206、I/Oサブシステム2208、ストレージサブシステム2218、および通信サブシステム2224を含んでよい。ストレージサブシステム2218は、有形のコンピュータ可読ストレージ媒体2222およびシステムメモリ2210を含む。
バスサブシステム2202は、コンピュータシステム2200のさまざまなコンポーネントおよびサブシステムに、意図されたとおりに互いに通信させるためのメカニズムを提供する。バスサブシステム2202は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。バスサブシステム2202は、メモリバスまたはメモリコントローラ、ペリフェラルバス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む、複数の種類のバス構造のいずれかであってよい。例えば、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびIEEE P1386.1規格で製造されたメザニンバスとして実装され得るPCI(Peripheral Component Interconnect)バスを含んでよい。
1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装され得る処理ユニット2204は、コンピュータシステム2200の動作を制御する。1つまたは複数のプロセッサが、処理ユニット2204に含まれてよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでよい。ある実施形態では、処理ユニット2204は、1つまたは複数の独立した処理ユニット2232および/または2234として実装されてよく、シングルコアプロセッサまたはマルチコアプロセッサが各処理ユニットに含まれている。他の実施形態では、処理ユニット2204は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されたクアッドコア処理ユニットとして実装されてもよい。
さまざまな実施形態では、処理ユニット2204は、プログラムコードに応じてさまざまなプログラムを実行することができ、複数の同時に実行するプログラムまたはプロセスを維持することができる。任意の特定の時間に、実行されるプログラムコードの一部またはすべてが、プロセッサ2204に、および/またはストレージサブシステム2218に存在することができる。適切なプログラミングによって、プロセッサ2204は、前述のさまざまな機能を提供することができる。コンピュータシステム2200は、デジタル信号プロセッサ(DSP:digital signal processor)、専用プロセッサ、および/または同様のものを含むことができる処理加速ユニット2206を、さらに含んでよい。
I/Oサブシステム2208は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含んでよい。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備える音声入力デバイス、マイクロホン、および他の種類の入力デバイスを含んでよい。ユーザインターフェイス入力デバイスは、例えば、ユーザが、ジェスチャーおよび話されたコマンドを使用する自然なユーザインターフェイスを介して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御して情報をやりとりすることを可能にする、Microsoft Kinect(登録商標)モーションセンサなどの、動作検出デバイスおよび/またはジェスチャー認識デバイスを含んでよい。ユーザインターフェイス入力デバイスは、ユーザの目の活動(例えば、写真を撮っているとき、および/またはメニューを選択しているときの「まばたき」)を検出し、アイジェスチャーを入力デバイス(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)まばたき検出器などの、アイジェスチャー認識デバイスを含んでもよい。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(例えば、Siri(登録商標)ナビゲーター)とやりとりできるようにする音声認識検出デバイスを含んでよい。
ユーザインターフェイス入力デバイスは、3次元(3D:three dimensional)マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、およびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡デバイスなどの、音声/視覚デバイスを含んでもよいが、これらに限定されない。さらに、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、位置放出断層撮影、医用超音波検査デバイスなどの、医用画像入力デバイスを含んでよい。ユーザインターフェイス入力デバイスは、例えば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでもよい。
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの視覚表示以外などを含んでよい。ディスプレイサブシステムは、ブラウン管(CRT:cathode ray tube)、液晶ディスプレイ(LCD:liquid crystal display)またはプラズマディスプレイを使用するフラットパネルデバイスなどのフラットパネルデバイス、投射デバイス、タッチスクリーンなどであってよい。一般に、「出力デバイス」という用語の使用は、情報をコンピュータシステム2200からユーザまたは他のコンピュータに出力するためのすべての可能性のある種類のデバイスおよびメカニズムを含むよう意図されている。例えば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドホン、カーナビ、プロッター、音声出力デバイス、およびモデムなどの、テキスト情報、グラフィックス情報、および音声/ビデオ情報を視覚的に伝達するさまざまなディスプレイデバイスを含んでよいが、これらに限定されない。
コンピュータシステム2200は、システムメモリ2210内に現在あるように示されているソフトウェア要素を含む、ストレージサブシステム2218を備えてよい。システムメモリ2210は、処理ユニット2204で読み込み可能かつ実行可能なプログラム命令に加えて、これらのプログラムの実行中に生成されたデータを格納してよい。
コンピュータシステム2200の構成および種類に応じて、システムメモリ2210は、揮発性(ランダムアクセスメモリ(RAM:random-access memory)など)および/または不揮発性(読み取り専用メモリ(ROM:read-only memory)、フラッシュメモリなど)であってよい。RAMは、通常、処理ユニット2204によって直ちにアクセス可能である、かつ/または現在操作されて実行されているデータおよび/またはプログラムモジュールを含む。一部の実装では、システムメモリ2210は、スタティックランダムアクセスメモリ(SRAM:static random-access memory)またはダイナミックランダムアクセスメモリ(DRAM:dynamic random-access memory)などの、複数の異なる種類のメモリを含んでよい。一部の実装では、起動中などにコンピュータシステム2200内の要素間で情報を転送するのに役立つ基本ルーチンを含んでいる基本入出力システム(BIOS:basic input/output system)が、通常はROMに格納されてよい。限定ではなく例として、システムメモリ2210は、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルデータベース管理システム(RDBMS:relational database management systems)などを含んでよいアプリケーションプログラム2212、プログラムデータ2214、およびオペレーティングシステム2216も示している。オペレーティングシステム2216の例としては、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステム、さまざまな市販されているUNIX(登録商標)またはUNIXのようなオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されない)、ならびに/あるいはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)17 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムの、さまざまなバージョンが挙げられ得る。
ストレージサブシステム2218は、一部の実施形態の機能を提供する基本的なプログラミングおよびデータの構成を格納するための有形のコンピュータ可読ストレージ媒体を提供してもよい。プロセッサによって実行されたときに前述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム2218に格納されてよい。これらのソフトウェアモジュールまたは命令は、処理ユニット2204によって実行されてよい。ストレージサブシステム2218は、本開示に従って使用されるデータを格納するためのリポジトリを提供してもよい。
ストレージサブシステム2200は、コンピュータ可読ストレージ媒体2222にさらに接続され得るコンピュータ可読ストレージ媒体リーダ2220を含んでもよい。システムメモリ2210と組み合わせて、一緒に、任意選択的に、コンピュータ可読ストレージ媒体2222は、リモートの、ローカルな、固定された、および/または取り外し可能なストレージ媒体に加えて、コンピュータ可読情報を一時的に、かつ/またはより永続的に含むため、格納するため、送信するため、および取り出すためのストレージ媒体を、包括的に表してよい。
コードまたはコードの一部を含んでいるコンピュータ可読ストレージ媒体2222は、情報の格納および/または送信のために任意の方法または技術で実装された、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体などの、ただしこれらに限定されない、ストレージ媒体および通信媒体を含む、当技術分野において知られているか、または使用されている任意の適切な媒体を含むこともできる。コンピュータ可読ストレージ媒体2222は、RAM、ROM、電子的消去可能プログラマブルROM(EEPROM:electronically erasable programmable ROM)、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタルバーサタイルディスク(DVD:digital versatile disk)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは他の有形のコンピュータ可読媒体などの、有形のコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体2222は、所望の情報を送信するために使用されることが可能であり、コンピューティングシステム2200によってアクセスされ得る、データ信号、データ送信、または任意の他の媒体などの非有形のコンピュータ可読媒体を含むこともできる。
例として、コンピュータ可読ストレージ媒体2222は、取り外し不可能な不揮発性の磁気媒体から読み取るか、または磁気媒体に書き込むハードディスクドライブ、取り外し可能な不揮発性の磁気ディスクから読み取るか、または磁気ディスクに書き込む磁気ディスクドライブ、ならびにCD ROM、DVD、およびブルーレイ(登録商標)ディスク、または他の光媒体などの取り外し可能な不揮発性の光ディスクから読み取るか、または光ディスクに書き込む光ディスクドライブを含んでよい。コンピュータ可読ストレージ媒体2222は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB:universal serial bus)フラッシュドライブ、セキュアデジタル(SD:secure digital)カード、DVDディスク、デジタルビデオテープなどを含んでよいが、これらに限定されない。コンピュータ可読ストレージ媒体2222は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、半導体ROMなどの、不揮発性メモリに基づく半導体ドライブ(SSD:solid-state drives)、半導体RAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM:magneto resistive RAM)SSDなどの、揮発性メモリに基づくSSD、およびDRAMとフラッシュメモリベースのSSDの組合せを使用するハイブリッドSSDを含んでもよい。ディスクドライブおよび関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータシステム2200の他のデータの不揮発性ストレージを提供してよい。
通信サブシステム2224は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム2224は、コンピュータシステム2200の他のシステムからデータを受信するため、および他のシステムにデータを送信するためのインターフェイスとして機能する。例えば、通信サブシステム2224は、コンピュータシステム2200がインターネットを介して1つまたは複数のデバイスに接続できるようにしてよい。一部の実施形態では、通信サブシステム2224は、ワイヤレス音声および/またはデータネットワークにアクセスするための無線周波(RF:radio frequency)トランシーバのコンポーネント(例えば、携帯電話技術、3G、4G、もしくはEDGE(enhanced data rates for global evolution:エンハンストデータレーツフォーグローバルエボリューション)などの高度なデータネットワーク技術、Wi-Fi(IEEE 802.11群規格、または他の移動体通信技術、あるいはこれらの任意の組合せを使用する)、全地球測位システム(GPS:global positioning system)レシーバのコンポーネント、および/または他のコンポーネントを含むことができる。一部の実施形態では、通信サブシステム2224は、ワイヤレスインターフェイスに加えて、またはワイヤレスインターフェイスの代わりに、有線ネットワーク接続(例えば、イーサネット)を提供することができる。
一部の実施形態では、通信サブシステム2224は、コンピュータシステム2200を使用することがある1人または複数のユーザの代わりに、構造化および/または非構造化データフィード2226、イベントストリーム2228、イベント更新2230などの形態で入力通信を受信してもよい。
例として、通信サブシステム2224は、Twitter(登録商標)フィード、Facebook(登録商標)の更新などのソーシャルネットワークおよび/または他の通信サービスのユーザ、リッチサイトサマリー(RSS:Rich Site Summary)フィードなどのウェブフィード、ならびに/あるいは1つまたは複数のサードパーティの情報源からのリアルタイムの更新から、データフィード2226をリアルタイムに受信するように構成されてよい。
さらに、通信サブシステム2224は、連続データストリームの形態でデータを受信するように構成されてもよく、連続データストリームは、明示的な末尾がなく、本質的に連続的であるか、または境界がなくてよいリアルタイムイベントのイベントストリーム2228および/またはイベント更新2230を含むことができる。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(例えば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などが挙げられ得る。
通信サブシステム2224は、構造化および/または非構造化データフィード2226、イベントストリーム2228、イベント更新2230などを、コンピュータシステム2200に結合された1つまたは複数のストリーミングデータソースコンピュータと通信することができる1つまたは複数のデータベースに出力するように構成されてもよい。
コンピュータシステム2200は、ハンドヘルドポータブルデバイス(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、自動発券機、サーバラック、または任意の他のデータ処理システムを含む、さまざまな種類のうちの1つであることができる。
コンピュータおよびネットワークの絶えず変化する性質のため、図に示されたコンピュータシステム2200の説明は、単に具体的な例となるよう意図されている。図に示されたシステムよりも多いか、または少ないコンポーネントを含んでいる多くの他の構成が可能である。例えば、カスタマイズされたハードウェアが使用されてもよく、かつ/または特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、またはこれらの組合せにおいて実装されてよい。さらに、ネットワーク入出力デバイスなどの他のコンピューティングデバイスへの接続が採用されてよい。本明細書において提供された開示および教示に基づいて、当業者は、さまざまな実施形態を実施するための他の方法および/または方式を理解するであろう。
本開示の特定の実施形態が説明されたが、さまざまな修正、変更、代替の構造、および同等のものも、本開示の範囲内に包含される。本開示の実施形態は、ある特定のデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して本開示の実施形態が説明されたが、本開示の範囲が説明された一連のトランザクションおよびステップに限定されないということが、当業者にとって明らかであるはずである。前述の実施形態のさまざまな特徴および態様は、個別に、または一緒に使用されてよい。
さらに、ハードウェアとソフトウェアの特定の組合せを使用して本開示の実施形態が説明されたが、ハードウェアとソフトウェアの他の組合せも本開示の範囲内にあるということが認識されるべきである。ハードウェアのみにおいて、またはソフトウェアのみにおいて、あるいはこれらの組合せを使用して、本開示の実施形態が実装されてよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組合せでの異なるプロセッサ上で実施され得る。したがって、コンポーネントまたはモジュールが、ある動作を実行するように構成されていると説明される場合、そのような構成は、例えば、この動作を実行するように電子回路を設計することによって、この動作を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、あるいはこれらの任意の組合せによって、実現され得る。プロセスは、プロセス間通信のための従来技術を含むが、これらに限定されないさまざまな技術を使用して通信することができ、プロセスの異なる対は、異なる技術を使用してよく、またはプロセスの同じ対は、異なる時間に異なる技術を使用してよい。
したがって、本明細書および図面は、限定を意味するのではなく、例示であると見なされるべきである。しかし、特許請求の範囲に示されるようなより広い思想および範囲から逸脱することなく、本明細書および図面に対して追加、削減、削除、ならびに他の修正および変更が行われてよいということが、明らかである。したがって、特定の開示の実施形態が説明されたが、これらは限定することを意図されていない。さまざまな変更および同等のものが、添付の特許請求の範囲内にある。
開示された実施形態を説明する文脈における(特に、添付の特許請求の範囲の文脈における)「a」および「an」および「the」という用語ならびに同様の指示対象の使用は、本明細書において特に示されない限り、または文脈と明らかに矛盾しない限り、単数と複数の両方を対象にすると解釈されるべきである。「備えている」、「有している」、「含んでいる(including)」、および「含んでいる(containing)」という用語は、特に注記されない限り、無制限の(すなわち、「~を含むが、これに限定されない」ということを意味する)用語であると解釈されるべきである。「接続される」という用語は、介在する何かが存在する場合でも、内部に部分的に、または完全に含まれるか、接続されるか、あるいは一緒に接合されると解釈されるべきである。本明細書における値の範囲の列挙は、本明細書において特に示されない限り、単に、範囲に含まれる別々の各値を個別に参照する簡単な方法として役立つよう意図されており、別々の各値は、本明細書において個別に列挙されたかのように、本明細書に組み込まれる。本明細書に記載されたすべての方法は、本明細書において特に示されない限り、または文脈と特に明確に矛盾しない限り、任意の適切な順序で実行され得る。本明細書において提供される、ありとあらゆる例、または例示的な言語(例えば、「など」)の使用は、単に、本開示の実施形態をより良く明らかにするよう意図されており、特に主張されない限り、本開示の範囲に限定を課さない。本明細書における言語は、いずれかの主張されない要素を、本開示の実践にとって不可欠であるとして示すと解釈されるべきでない。
「X、Y、またはZのうちの少なくとも1つ」という語句などの選言的言語は、特に明確に述べられない限り、一般に、項目、条件などが、X、Y、またはZのいずれか、あるいはこれらの任意の組合せ(例えば、X、Y、および/またはZ)であってよいということを提示するために使用されると文脈内で理解されるよう意図されている。したがって、そのような選言的言語は、一般に、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが各々存在することを必要とするということを意味するよう意図されておらず、そのようなことを意味するべきでない。
本明細書では、本開示を実行するための本発明者に知られている最良のモードを含む、本開示の好ましい実施形態が説明される。前述の説明を読むときに、当業者にとって、そのような好ましい実施形態の変形が明らかになり得る。本発明者は、当業者が、必要に応じてそのような変形を採用することを期待し、本発明者は、本開示が、本明細書において詳細に説明されたような実践以外に実践されることを意図する。したがって、本開示は、適用可能な法律によって認可される、本明細書に添付されている特許請求の範囲において列挙された本主題のすべての変更および同等のものを含む。さらに、実施形態のすべての可能な変形における前述の要素の任意の組合せは、本明細書において特に示されない限り、または文脈と特に明確に矛盾しない限り、本開示によって包含される。
本明細書において引用された公表文献、特許出願、および特許を含むすべての参考文献は、各参考文献が、参照によって組み込まれるように個別に詳細に示され、本明細書において全体として示された場合と同じ程度に、参照によって本明細書に組み込まれる。
前述の明細書では、本明細書の特定の実施形態を参照して本開示の態様が説明されたが、当業者は、本開示がそれらに限定されないということを認識するであろう。前述の開示のさまざまな特徴および態様は、個別に、または一緒に使用されてよい。さらに、実施形態は、本明細書のより広い思想および範囲から逸脱することなく、本明細書に記載された環境および応用を越えて、任意の数の環境および応用において利用され得る。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。
Claims (20)
- 方法であって、
第1のクラウド環境に含まれているマルチクラウドインフラストラクチャによって、前記第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間のネットワークリンクを作成する要求を受信することを含み、前記第2のクラウド環境内の顧客のテナンシに関連付けられたユーザが、前記第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスできるようにするために、前記第1のクラウド環境内の前記第1の仮想ネットワークは前もって作成されており、
前記方法は、複数のリンク有効化仮想ネットワークを使用して前記第1のクラウド環境内の前記第1の仮想ネットワークと前記第2のクラウド環境内の前記第2の仮想ネットワークの間に前記ネットワークリンクを作成することをさらに含み、前記複数のリンク有効化仮想ネットワークからの第1のリンク有効化仮想ネットワークは前記第2のクラウド環境に配置され、前記複数のリンク有効化仮想ネットワークからの第2のリンク有効化仮想ネットワークは前記第1のクラウド環境に配置される、方法。 - 前記第2のクラウド環境内の前記第1のリンク有効化仮想ネットワークおよび前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークの各々に、固有のクラスレスドメイン間ルーティングIPアドレス空間が割り当てられる、請求項1に記載の方法。
- 前記第2のクラウド環境内の前記第1のリンク有効化仮想ネットワークおよび前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークは、前記第2のクラウド環境の複数の顧客のテナンシの顧客のテナンシごとに作成される、請求項1に記載の方法。
- 前記第1のリンク有効化仮想ネットワークは、前記第2のクラウド環境内の前記第2の仮想ネットワークから受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成し、前記カプセル化されたトラフィックは、前記第1のリンク有効化仮想ネットワークによって前記第2のクラウド環境に含まれているハブ仮想ネットワークに送信される、請求項1に記載の方法。
- 前記第1のリンク有効化仮想ネットワークは、仮想ネットワークアダプタの第1の対を含み、前記仮想ネットワークアダプタの各々は、前記第2のクラウド環境内の前記第2の仮想ネットワークから受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成するように構成される、請求項1に記載の方法。
- 前記第2のクラウド環境に含まれている前記ハブ仮想ネットワークは、仮想ネットワークフォワーダの対を含み、前記仮想ネットワークフォワーダの各々は、前記第1のリンク有効化仮想ネットワークから受信された、前記カプセル化されたトラフィックに対してネットワークアドレス変換を実行し、前記カプセル化されたトラフィックを前記第1のクラウド環境に含まれているハブ仮想ネットワークに転送するように構成される、請求項4に記載の方法。
- 前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークは、仮想ネットワークアダプタの第2の対を含み、前記仮想ネットワークアダプタの各々は、前記第2のクラウド環境に含まれているハブ仮想ネットワークから受信された、カプセル化されたトラフィックをカプセル解除するように構成される、請求項1に記載の方法。
- 前記第2のクラウド環境に含まれているハブ仮想ネットワークは、高帯域幅相互接続リンクによって、前記第1のクラウド環境に含まれているハブ仮想ネットワークに通信可能に結合される、請求項1に記載の方法。
- 前記第1のクラウド環境に含まれている前記ハブ仮想ネットワークは、前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークに通信可能に結合されているVNICを含む、請求項8に記載の方法。
- 前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークは、ダイナミックルーティングゲートウェイを介して、トラフィックを前記第1のクラウド環境内の前記第1の仮想ネットワークに転送する、請求項1に記載の方法。
- コンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体であって、前記コンピュータ実行可能命令は、1つまたは複数のプロセッサによって実行された場合に、
第1のクラウド環境に含まれているマルチクラウドインフラストラクチャによって、前記第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間のネットワークリンクを作成する要求を受信することを引き起こし、前記第2のクラウド環境内の顧客のテナンシに関連付けられたユーザが、前記第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスできるようにするために、前記第1のクラウド環境内の前記第1の仮想ネットワークは前もって作成されており、
複数のリンク有効化仮想ネットワークを使用して前記第1のクラウド環境内の前記第1の仮想ネットワークと前記第2のクラウド環境内の前記第2の仮想ネットワークの間に前記ネットワークリンクを作成することをさらに引き起こし、前記複数のリンク有効化仮想ネットワークからの第1のリンク有効化仮想ネットワークは前記第2のクラウド環境に配置され、前記複数のリンク有効化仮想ネットワークからの第2のリンク有効化仮想ネットワークは前記第1のクラウド環境に配置される、コンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。 - 前記第2のクラウド環境内の前記第1のリンク有効化仮想ネットワークおよび前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークの各々に、固有のクラスレスドメイン間ルーティングIPアドレス空間が割り当てられる、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第2のクラウド環境内の前記第1のリンク有効化仮想ネットワークおよび前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークは、前記第2のクラウド環境の複数の顧客のテナンシの顧客のテナンシごとに作成される、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第1のリンク有効化仮想ネットワークは、前記第2のクラウド環境内の前記第2の仮想ネットワークから受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成し、前記カプセル化されたトラフィックは、前記第1のリンク有効化仮想ネットワークによって前記第2のクラウド環境に含まれているハブ仮想ネットワークに送信される、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第1のリンク有効化仮想ネットワークは、仮想ネットワークアダプタの第1の対を含み、前記仮想ネットワークアダプタの各々は、前記第2のクラウド環境内の前記第2の仮想ネットワークから受信されたトラフィックをカプセル化して、カプセル化されたトラフィックを生成するように構成される、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第2のクラウド環境に含まれている前記ハブ仮想ネットワークは、仮想ネットワークフォワーダの対を含み、前記仮想ネットワークフォワーダの各々は、前記第1のリンク有効化仮想ネットワークから受信された、前記カプセル化されたトラフィックに対してネットワークアドレス変換を実行し、前記カプセル化されたトラフィックを前記第1のクラウド環境に含まれているハブ仮想ネットワークに転送するように構成される、請求項14に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークは、仮想ネットワークアダプタの第2の対を含み、前記仮想ネットワークアダプタの各々は、前記第2のクラウド環境に含まれているハブ仮想ネットワークから受信された、カプセル化されたトラフィックをカプセル解除するように構成される、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 前記第2のクラウド環境に含まれているハブ仮想ネットワークは、高帯域幅相互接続リンクによって、前記第1のクラウド環境に含まれているハブ仮想ネットワークに通信可能に結合される、請求項11に記載のコンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読非一時的媒体。
- 1つまたは複数のプロセッサと、
命令を含んでいるメモリとを備えているコンピューティングデバイスであって、前記命令は、前記1つまたは複数のプロセッサを使用して実行された場合に、前記コンピューティングデバイスに、少なくとも、
第1のクラウド環境に含まれているマルチクラウドインフラストラクチャによって、前記第1のクラウド環境内の第1の仮想ネットワークと第2のクラウド環境内の第2の仮想ネットワークの間のネットワークリンクを作成する要求を受信することを実行させ、前記第2のクラウド環境内の顧客のテナンシに関連付けられたユーザが、前記第1のクラウド環境内で提供された1つまたは複数のサービスにアクセスできるようにするために、前記第1のクラウド環境内の前記第1の仮想ネットワークは前もって作成されており、
複数のリンク有効化仮想ネットワークを使用して前記第1のクラウド環境内の前記第1の仮想ネットワークと前記第2のクラウド環境内の前記第2の仮想ネットワークの間に前記ネットワークリンクを作成することをさらに実行させ、前記複数のリンク有効化仮想ネットワークからの第1のリンク有効化仮想ネットワークは前記第2のクラウド環境に配置され、前記複数のリンク有効化仮想ネットワークからの第2のリンク有効化仮想ネットワークは前記第1のクラウド環境に配置される、コンピューティングデバイス。 - 前記第2のクラウド環境内の前記第1のリンク有効化仮想ネットワークおよび前記第1のクラウド環境内の前記第2のリンク有効化仮想ネットワークの各々に、固有のクラスレスドメイン間ルーティングIPアドレス空間が割り当てられる、請求項19に記載のコンピューティングデバイス。
Applications Claiming Priority (21)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263306007P | 2022-02-02 | 2022-02-02 | |
| US63/306,007 | 2022-02-02 | ||
| US202263306918P | 2022-02-04 | 2022-02-04 | |
| US63/306,918 | 2022-02-04 | ||
| US202263321614P | 2022-03-18 | 2022-03-18 | |
| US63/321,614 | 2022-03-18 | ||
| US202263333965P | 2022-04-22 | 2022-04-22 | |
| US63/333,965 | 2022-04-22 | ||
| US202263336811P | 2022-04-29 | 2022-04-29 | |
| US63/336,811 | 2022-04-29 | ||
| US202263339297P | 2022-05-06 | 2022-05-06 | |
| US63/339,297 | 2022-05-06 | ||
| US202263346004P | 2022-05-26 | 2022-05-26 | |
| US63/346,004 | 2022-05-26 | ||
| US202263389145P | 2022-07-14 | 2022-07-14 | |
| US202263389305P | 2022-07-14 | 2022-07-14 | |
| US63/389,305 | 2022-07-14 | ||
| US63/389,145 | 2022-07-14 | ||
| US202263380326P | 2022-10-20 | 2022-10-20 | |
| US63/380,326 | 2022-10-20 | ||
| PCT/US2023/061713 WO2023150522A1 (en) | 2022-02-02 | 2023-02-01 | Enhanced network-link architecture for improved end-to-end latency in communication between different cloud environments |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2025506391A true JP2025506391A (ja) | 2025-03-11 |
| JPWO2023150522A5 JPWO2023150522A5 (ja) | 2025-10-02 |
Family
ID=85410495
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024545974A Pending JP2025506394A (ja) | 2022-02-02 | 2023-02-01 | 異なるクラウド環境間の通信を確立するためのネットワークリンクの構成 |
| JP2024545976A Pending JP2025506395A (ja) | 2022-02-02 | 2023-02-01 | マルチクラウド制御プレーンネットワークアダプタのアーキテクチャ |
| JP2024545964A Pending JP2025506391A (ja) | 2022-02-02 | 2023-02-01 | 異なるクラウド環境間の通信における改善されたエンドツーエンドの待ち時間のための改良されたネットワークリンクアーキテクチャ |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024545974A Pending JP2025506394A (ja) | 2022-02-02 | 2023-02-01 | 異なるクラウド環境間の通信を確立するためのネットワークリンクの構成 |
| JP2024545976A Pending JP2025506395A (ja) | 2022-02-02 | 2023-02-01 | マルチクラウド制御プレーンネットワークアダプタのアーキテクチャ |
Country Status (4)
| Country | Link |
|---|---|
| US (6) | US12101222B2 (ja) |
| EP (3) | EP4473406A1 (ja) |
| JP (3) | JP2025506394A (ja) |
| WO (3) | WO2023150527A1 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11240156B2 (en) * | 2019-09-06 | 2022-02-01 | Netflix, Inc. | Techniques for steering network traffic to regions of a cloud computing system |
| EP4473401A1 (en) | 2022-02-02 | 2024-12-11 | Oracle International Corporation | Cloud-link adaptor of a multi-cloud infrastructure |
| WO2023150527A1 (en) | 2022-02-02 | 2023-08-10 | Oracle International Corporation | Configuring a network-link for establishing communication between different cloud environments |
| WO2023150144A1 (en) | 2022-02-02 | 2023-08-10 | Oracle International Corporation | Multi-cloud infrastructure-database adaptor |
| US12040958B2 (en) * | 2022-03-09 | 2024-07-16 | Cisco Technology, Inc. | Dynamic multi-cloud network traffic flow monitoring |
| WO2024081842A1 (en) | 2022-10-14 | 2024-04-18 | Oracle International Corporation | Network link establishment for saas applications in a multi-cloud infrastructure |
| WO2024233125A1 (en) * | 2023-05-10 | 2024-11-14 | Oracle International Corporation | Scalable hub and spoke topology for routing using compute instances |
| US12052172B1 (en) | 2023-06-30 | 2024-07-30 | Oracle International Corporation | Egress traffic policy enforcement at target service on traffic from service tenancy |
| US12395532B2 (en) | 2023-06-30 | 2025-08-19 | Oracle International Corporation | Egress traffic policy enforcement at target service on traffic from customer network |
| US12363042B2 (en) * | 2023-06-30 | 2025-07-15 | Oracle International Corporation | Egress traffic policy enforcement at target service |
| WO2025042980A1 (en) * | 2023-08-22 | 2025-02-27 | Oracle International Corporation | Providing services based on infrastructure distributed between multiple cloud service providers |
| US12137145B1 (en) * | 2023-09-15 | 2024-11-05 | Oracle International Corporation | Nested resource identity management for cloud resources |
| US20250175522A1 (en) * | 2023-11-29 | 2025-05-29 | Oracle International Corporation | Cluster placement group |
| WO2025117319A1 (en) * | 2023-11-30 | 2025-06-05 | Oracle International Corporation | Subscription to a service provided by a first cloud service provider via a second cloud service provider |
Family Cites Families (114)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2367643B (en) | 2000-09-14 | 2005-03-30 | Wecomm Ltd | Distributing displayable data |
| US7631346B2 (en) | 2005-04-01 | 2009-12-08 | International Business Machines Corporation | Method and system for a runtime user account creation operation within a single-sign-on process in a federated computing environment |
| US9235442B2 (en) | 2010-10-05 | 2016-01-12 | Accenture Global Services Limited | System and method for cloud enterprise services |
| JP5741271B2 (ja) | 2011-07-21 | 2015-07-01 | 富士ゼロックス株式会社 | 認証装置、サービス提供システム、及びプログラム |
| US10142160B1 (en) | 2011-10-04 | 2018-11-27 | Big Switch Networks, Inc. | System and methods for managing network hardware address requests with a controller |
| US9336061B2 (en) | 2012-01-14 | 2016-05-10 | International Business Machines Corporation | Integrated metering of service usage for hybrid clouds |
| US20130238785A1 (en) | 2012-03-06 | 2013-09-12 | Rackspace Us, Inc. | System and Method for Metadata Discovery and Metadata-Aware Scheduling |
| US9348652B2 (en) | 2012-07-02 | 2016-05-24 | Vmware, Inc. | Multi-tenant-cloud-aggregation and application-support system |
| JP5962261B2 (ja) | 2012-07-02 | 2016-08-03 | 富士ゼロックス株式会社 | 中継装置 |
| US9563480B2 (en) | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
| JP6181185B2 (ja) | 2012-09-07 | 2017-08-16 | オラクル・インターナショナル・コーポレイション | Ldapベースのマルチカスタマ・インクラウド・アイデンティティ管理システム |
| US9838370B2 (en) | 2012-09-07 | 2017-12-05 | Oracle International Corporation | Business attribute driven sizing algorithms |
| US9015212B2 (en) | 2012-10-16 | 2015-04-21 | Rackspace Us, Inc. | System and method for exposing cloud stored data to a content delivery network |
| US9348491B2 (en) | 2012-12-12 | 2016-05-24 | 2236008 Ontario Inc. | Method and system to layout applications on multiple platforms |
| US10382401B1 (en) * | 2013-02-26 | 2019-08-13 | Zentera Systems, Inc. | Cloud over IP for enterprise hybrid cloud network and security |
| US9967111B2 (en) | 2013-03-15 | 2018-05-08 | Rackspace Us, Inc. | Software-defined multinetwork bridge |
| US9391801B2 (en) * | 2013-08-13 | 2016-07-12 | Vmware, Inc. | Virtual private networks distributed across multiple cloud-computing facilities |
| WO2015100656A1 (zh) | 2013-12-31 | 2015-07-09 | 华为技术有限公司 | 一种实现虚拟机通信的方法和装置 |
| US10097372B2 (en) * | 2014-01-09 | 2018-10-09 | Ciena Corporation | Method for resource optimized network virtualization overlay transport in virtualized data center environments |
| US9729419B2 (en) | 2014-03-27 | 2017-08-08 | International Business Machines Corporation | Smart migration of overperforming operators of a streaming application to virtual machines in a cloud |
| EP3175590B1 (en) | 2014-05-12 | 2021-08-11 | NetApp, Inc. | Bridging clouds |
| CN106415519B (zh) | 2014-06-10 | 2019-09-17 | 上海诺基亚贝尔股份有限公司 | 安全的统一云存储 |
| US9531814B2 (en) | 2014-09-23 | 2016-12-27 | Nuvem Networks, Inc. | Virtual hosting device and service to provide software-defined networks in a cloud environment |
| US10757170B2 (en) | 2014-10-13 | 2020-08-25 | Vmware, Inc. | Cross-cloud namespace management for multi-tenant environments |
| US9971574B2 (en) | 2014-10-31 | 2018-05-15 | Oracle International Corporation | JSON stylesheet language transformation |
| US20160142409A1 (en) | 2014-11-18 | 2016-05-19 | Microsoft Technology Licensing, Llc | Optimized token-based proxy authentication |
| US9967350B2 (en) | 2015-05-12 | 2018-05-08 | Equinix, Inc. | Third-party orchestration module for a cloud exchange programmable network platform |
| US10547540B2 (en) * | 2015-08-29 | 2020-01-28 | Vmware, Inc. | Routing optimization for inter-cloud connectivity |
| US10067780B2 (en) | 2015-10-06 | 2018-09-04 | Cisco Technology, Inc. | Performance-based public cloud selection for a hybrid cloud environment |
| US10361919B2 (en) | 2015-11-09 | 2019-07-23 | At&T Intellectual Property I, L.P. | Self-healing and dynamic optimization of VM server cluster management in multi-cloud platform |
| US10892942B2 (en) | 2016-01-22 | 2021-01-12 | Equinix, Inc. | Container-based cloud exchange disaster recovery |
| US10116502B2 (en) | 2016-02-23 | 2018-10-30 | Salesforce.Com, Inc. | System and method for providing configuration settings to services in a cloud infrastructure |
| US10819630B1 (en) | 2016-04-20 | 2020-10-27 | Equinix, Inc. | Layer three instances for a cloud-based services exchange |
| US10291636B2 (en) | 2016-05-23 | 2019-05-14 | International Business Machines Corporation | Modifying a user session lifecycle in a cloud broker environment |
| US10230710B2 (en) | 2016-08-04 | 2019-03-12 | Visa International Service Association | Token based network service among IoT applications |
| US10484302B2 (en) | 2016-08-27 | 2019-11-19 | Nicira, Inc. | Managed forwarding element executing in public cloud data compute node with different internal and external network addresses |
| US10333959B2 (en) | 2016-08-31 | 2019-06-25 | Nicira, Inc. | Use of public cloud inventory tags to configure data compute node for logical network |
| US10681131B2 (en) * | 2016-08-29 | 2020-06-09 | Vmware, Inc. | Source network address translation detection and dynamic tunnel creation |
| US10389628B2 (en) * | 2016-09-02 | 2019-08-20 | Oracle International Corporation | Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network |
| US10547646B2 (en) | 2016-09-16 | 2020-01-28 | Oracle International Corporation | Dynamic policy injection and access visualization for threat detection |
| US9699114B1 (en) | 2016-10-27 | 2017-07-04 | International Business Machines Corporation | Providing use of local or private cloud infrastructure resources to public cloud providers |
| CN108924930B (zh) | 2017-03-24 | 2024-05-21 | 华为技术有限公司 | 无线连接建立方法及装置 |
| WO2018213350A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Business messaging interface |
| US10747585B2 (en) | 2017-05-26 | 2020-08-18 | Vmware Inc. | Methods and apparatus to perform data migration in a distributed environment |
| US11134146B2 (en) | 2017-08-14 | 2021-09-28 | Carrier Corporation | User preference utilization in remote applications |
| US10587703B2 (en) | 2017-08-18 | 2020-03-10 | Citrix Systems, Inc. | Providing communication connectivity between disparate network entities located in isolated communication networks through a centralized cloud service |
| WO2019046071A1 (en) | 2017-08-27 | 2019-03-07 | Nicira, Inc. | EXECUTING AN ONLINE SERVICE IN A PUBLIC CLOUD |
| US10374831B2 (en) | 2017-08-29 | 2019-08-06 | Futurewei Technologies, Inc. | Stitching multi-domain LSPs in hierarchical SDN architecture |
| US10862753B2 (en) | 2017-12-04 | 2020-12-08 | Nicira, Inc. | High availability for stateful services in public cloud logical networks |
| US11372787B2 (en) * | 2017-12-09 | 2022-06-28 | Intel Corporation | Unified address space for multiple links |
| US10803187B2 (en) | 2017-12-22 | 2020-10-13 | Oracle International Corporation | Computerized methods and systems for implementing access control to time series data |
| US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust for a multi-tenant identity cloud service |
| US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
| US11336453B2 (en) | 2018-06-15 | 2022-05-17 | Paypal, Inc. | Transactions between services in a multi-tenant architecture |
| US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
| CN112639737B (zh) | 2018-07-09 | 2024-07-02 | 瑞典爱立信有限公司 | 用于在云提供商联盟中使用智能合同和区块链来管理云服务的方法和设备 |
| US10680831B2 (en) | 2018-08-14 | 2020-06-09 | Juniper Networks, Inc. | Single point of management for multi-cloud environment including route propagation, security, and application deployment |
| US11159569B2 (en) | 2018-08-20 | 2021-10-26 | Cisco Technology, Inc. | Elastic policy scaling in multi-cloud fabrics |
| US11374794B2 (en) | 2018-08-24 | 2022-06-28 | Vmware, Inc. | Transitive routing in public cloud |
| US10990256B2 (en) | 2018-09-12 | 2021-04-27 | Salesforce.Com, Inc. | Modifying default display configurations for objects in a user interface |
| US11102113B2 (en) | 2018-11-08 | 2021-08-24 | Sap Se | Mapping of internet protocol addresses in a multi-cloud computing environment |
| US11102074B2 (en) * | 2019-01-11 | 2021-08-24 | Cisco Technology, Inc. | Software defined access fabric without subnet restriction to a virtual network |
| US11012299B2 (en) | 2019-01-18 | 2021-05-18 | Cisco Technology, Inc. | Seamless multi-cloud routing and policy interconnectivity |
| US11429440B2 (en) | 2019-02-04 | 2022-08-30 | Hewlett Packard Enterprise Development Lp | Intelligent orchestration of disaggregated applications based on class of service |
| US10972386B2 (en) * | 2019-03-29 | 2021-04-06 | Juniper Networks, Inc. | Scalable multi-tenant underlay network supporting multi-tenant overlay network |
| US11057350B2 (en) * | 2019-05-30 | 2021-07-06 | Cisco Technology, Inc. | Layer 2 mobility for hybrid multi-cloud deployments without host-overlay |
| US11216309B2 (en) | 2019-06-18 | 2022-01-04 | Juniper Networks, Inc. | Using multidimensional metadata tag sets to determine resource allocation in a distributed computing environment |
| US11411771B1 (en) | 2019-06-28 | 2022-08-09 | Amazon Technologies, Inc. | Networking in provider network substrate extensions |
| US11321207B2 (en) * | 2019-07-09 | 2022-05-03 | Cisco Technology, Inc. | Seamless multi-cloud SDWAN distaster recovery using orchestration plane |
| US11635995B2 (en) | 2019-07-16 | 2023-04-25 | Cisco Technology, Inc. | Systems and methods for orchestrating microservice containers interconnected via a service mesh in a multi-cloud environment based on a reinforcement learning policy |
| US11699150B2 (en) | 2019-07-25 | 2023-07-11 | Paypal, Inc. | Systems and methods for two-way account onboarding and linking across multiple service providers |
| US11055066B2 (en) | 2019-08-29 | 2021-07-06 | EMC IP Holding Company LLC | Multi-cloud operations center for function-based applications |
| CN116208658A (zh) | 2019-09-06 | 2023-06-02 | 华为云计算技术有限公司 | 混合云环境中的通信方法及网关、管理方法及装置 |
| GB2588161B (en) | 2019-10-10 | 2021-12-22 | Metaswitch Networks Ltd | Processing traffic in a virtualised environment |
| US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
| US11599623B2 (en) | 2019-12-03 | 2023-03-07 | Aetna Inc. | Global identity for use in a hybrid cloud network architecture |
| US11546208B2 (en) | 2019-12-31 | 2023-01-03 | Vmware, Inc. | Multi-site hybrid networks across cloud environments |
| US11388227B1 (en) | 2020-02-27 | 2022-07-12 | Aviatrix Systems, Inc. | Multi-cloud active mesh network system and method |
| US11595410B2 (en) | 2020-03-04 | 2023-02-28 | Raytheon Bbn Technologies Corp. | Fragmented cross-domain solution |
| US20210311957A1 (en) | 2020-04-07 | 2021-10-07 | Snowflake Inc. | Cross-cloud auto ingest |
| KR102524540B1 (ko) | 2020-04-17 | 2023-04-24 | 한국전자통신연구원 | 멀티 클라우드 서비스 플랫폼 장치 및 방법 |
| US11283695B2 (en) * | 2020-04-21 | 2022-03-22 | Aviatrix Systems, Inc. | System and method for determination of network operation metrics and generation of network operation metrics visualizations |
| US11169974B1 (en) | 2020-05-08 | 2021-11-09 | Sap Se | Database setup using a master copy |
| US11727034B2 (en) | 2020-06-08 | 2023-08-15 | Mongodb, Inc. | Cross-cloud deployments |
| US11216265B1 (en) | 2020-07-02 | 2022-01-04 | Ryan L. Hornbeck | Repeatable security hardening for virtualized hardware and infrastructure |
| EP4183120B1 (en) * | 2020-07-14 | 2024-04-24 | Oracle International Corporation | Interface-based acls in an layer-2 network |
| US11848998B2 (en) | 2020-07-29 | 2023-12-19 | Control Plane Corporation | Cross-cloud workload identity virtualization |
| US11552930B2 (en) * | 2020-08-31 | 2023-01-10 | Equinix, Inc. | Virtual domains within a shared device |
| US11082487B1 (en) | 2020-09-22 | 2021-08-03 | Vignet Incorporated | Data sharing across decentralized clinical trials using customized data access policies |
| US12418424B2 (en) | 2020-12-10 | 2025-09-16 | Lg Electronics Inc. | Method and apparatus for setting registration between IoT controller and IoT controlee on basis of C2C connection in wireless LAN system of smart home environment |
| US11818043B2 (en) * | 2020-12-30 | 2023-11-14 | Oracle International Corporation | Highly-available host networking with active-active or active-backup traffic load-balancing |
| US11734044B2 (en) | 2020-12-31 | 2023-08-22 | Nutanix, Inc. | Configuring virtualization system images for a computing cluster |
| US11929976B2 (en) | 2021-02-14 | 2024-03-12 | Oracle International Corporation | Virtual network routing gateway that supports address translation for dataplane as well as dynamic routing protocols (control plane) |
| US11218421B1 (en) * | 2021-04-07 | 2022-01-04 | Wanclouds Inc. | Methods and systems for migrating virtual private cloud (VPC) resources across public cloud environments |
| US11412051B1 (en) | 2021-04-08 | 2022-08-09 | Cisco Technology, Inc. | System and method for connecting virtual networks in a branch site to clouds |
| US20220350632A1 (en) | 2021-05-03 | 2022-11-03 | Vmware, Inc. | Automated referencing and resolution of properties across virtual network functions and network service |
| US20220382590A1 (en) | 2021-05-28 | 2022-12-01 | HashiCorp | Cloud provider account mappings |
| US12132737B2 (en) | 2021-08-02 | 2024-10-29 | Elevance Health, Inc. | Systems and methods for automated cloud provisioning |
| WO2023015574A1 (zh) | 2021-08-13 | 2023-02-16 | Oppo广东移动通信有限公司 | 用于账号关联的方法、装置、计算机设备及存储介质 |
| US12074884B2 (en) * | 2021-10-04 | 2024-08-27 | Juniper Networks, Inc. | Role-based access control autogeneration in a cloud native software-defined network architecture |
| US11870751B2 (en) * | 2021-10-11 | 2024-01-09 | Cisco Technology, Inc. | Smart service discovery to interconnect clusters having overlapping IP address space |
| US12095868B2 (en) * | 2021-11-23 | 2024-09-17 | Oracle International Corporation | Cloud based cross domain system—virtual data diode |
| US12113795B2 (en) | 2021-12-28 | 2024-10-08 | Atlassian Pty Ltd. | Systems and methods for providing software components as a service |
| US20230231912A1 (en) * | 2022-01-20 | 2023-07-20 | Pure Storage, Inc. | Mesh-aware storage systems |
| US20230239301A1 (en) | 2022-01-21 | 2023-07-27 | Vmware, Inc. | Methods and apparatus for sharing cloud resources in a multi-tenant system using self-referencing adapter |
| WO2023150144A1 (en) | 2022-02-02 | 2023-08-10 | Oracle International Corporation | Multi-cloud infrastructure-database adaptor |
| WO2023150527A1 (en) | 2022-02-02 | 2023-08-10 | Oracle International Corporation | Configuring a network-link for establishing communication between different cloud environments |
| JP2025507460A (ja) | 2022-02-02 | 2025-03-19 | オラクル・インターナショナル・コーポレイション | マルチクラウドインフラストラクチャのための可観測性フレームワーク |
| JP2025506396A (ja) | 2022-02-02 | 2025-03-11 | オラクル・インターナショナル・コーポレイション | 異なるクラウド環境間の通信を可能にするためのネットワーク技術 |
| EP4473401A1 (en) | 2022-02-02 | 2024-12-11 | Oracle International Corporation | Cloud-link adaptor of a multi-cloud infrastructure |
| US12452153B2 (en) | 2022-03-09 | 2025-10-21 | Alkira, Inc. | Regionally distributed multicloud exchange alert triaging |
| US12021743B1 (en) | 2023-03-27 | 2024-06-25 | Amazon Technologies, Inc. | Software-defined multi-network-segment gateways for scalable routing of traffic between customer-premise network segments and cloud-based virtual networks |
| US12483499B2 (en) | 2023-03-27 | 2025-11-25 | Amazon Technologies, Inc. | Custom configuration of cloud-based multi-network-segment gateways |
| US12506815B2 (en) | 2023-09-08 | 2025-12-23 | Juniper Networks, Inc. | Managing access across a cloud boundary |
-
2023
- 2023-02-01 WO PCT/US2023/061718 patent/WO2023150527A1/en not_active Ceased
- 2023-02-01 JP JP2024545974A patent/JP2025506394A/ja active Pending
- 2023-02-01 US US18/104,569 patent/US12101222B2/en active Active
- 2023-02-01 WO PCT/US2023/061719 patent/WO2023150528A1/en not_active Ceased
- 2023-02-01 JP JP2024545976A patent/JP2025506395A/ja active Pending
- 2023-02-01 WO PCT/US2023/061713 patent/WO2023150522A1/en not_active Ceased
- 2023-02-01 US US18/162,889 patent/US12149380B2/en active Active
- 2023-02-01 EP EP23709296.0A patent/EP4473406A1/en active Pending
- 2023-02-01 EP EP23708128.6A patent/EP4473397A1/en active Pending
- 2023-02-01 JP JP2024545964A patent/JP2025506391A/ja active Pending
- 2023-02-01 US US18/104,563 patent/US11979277B2/en active Active
- 2023-02-01 EP EP23709541.9A patent/EP4473408A1/en active Pending
-
2024
- 2024-01-25 US US18/423,065 patent/US12341629B2/en active Active
- 2024-03-19 US US18/610,115 patent/US12381758B2/en active Active
- 2024-10-07 US US18/908,627 patent/US20250030578A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US11979277B2 (en) | 2024-05-07 |
| JP2025506395A (ja) | 2025-03-11 |
| US12149380B2 (en) | 2024-11-19 |
| WO2023150527A1 (en) | 2023-08-10 |
| US12381758B2 (en) | 2025-08-05 |
| US20230246878A1 (en) | 2023-08-03 |
| US20240259261A1 (en) | 2024-08-01 |
| US20230246879A1 (en) | 2023-08-03 |
| US12341629B2 (en) | 2025-06-24 |
| US20230246962A1 (en) | 2023-08-03 |
| JP2025506394A (ja) | 2025-03-11 |
| EP4473397A1 (en) | 2024-12-11 |
| US20250030578A1 (en) | 2025-01-23 |
| US20240259263A1 (en) | 2024-08-01 |
| EP4473406A1 (en) | 2024-12-11 |
| WO2023150522A1 (en) | 2023-08-10 |
| US12101222B2 (en) | 2024-09-24 |
| EP4473408A1 (en) | 2024-12-11 |
| WO2023150528A1 (en) | 2023-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12381758B2 (en) | Enhanced network-link architecture for improved end-to-end latency in communication between different cloud environments | |
| JP2025506397A (ja) | マルチクラウドインフラストラクチャのクラウドリンクアダプタ | |
| US20230244540A1 (en) | Multi-cloud control plane architecture | |
| JP2025506396A (ja) | 異なるクラウド環境間の通信を可能にするためのネットワーク技術 | |
| JP2025507289A (ja) | マルチクラウドアプリケーション用のグラフィカルユーザインターフェイスの生成 | |
| JP2025535772A (ja) | マルチクラウドインフラストラクチャによって提供されるアーキテクチャおよびサービス | |
| US20250086001A1 (en) | Token exchange service | |
| WO2024233126A1 (en) | Architecture of a multicloud network link | |
| CN118871891A (zh) | 用于改善不同云环境之间的通信中的端到端时延的增强网络-链路体系架构 | |
| CN118647978A (zh) | 多云控制平面体系架构 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250924 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250924 |