JP7502386B2 - Hierarchical API for defining multi-segment applications in SDDC - Google Patents
Hierarchical API for defining multi-segment applications in SDDC Download PDFInfo
- Publication number
- JP7502386B2 JP7502386B2 JP2022161790A JP2022161790A JP7502386B2 JP 7502386 B2 JP7502386 B2 JP 7502386B2 JP 2022161790 A JP2022161790 A JP 2022161790A JP 2022161790 A JP2022161790 A JP 2022161790A JP 7502386 B2 JP7502386 B2 JP 7502386B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- segment
- segments
- sddc
- rules
- 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.)
- Active
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/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
- H04L63/0218—Distributed architectures, e.g. distributed firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Description
本発明は、方法、機械可読媒体、コンピュータデバイス及びシステムに関する。 The present invention relates to a method, a machine-readable medium, a computer device and a system.
エンタープライズデータセンタでは、ファイアウォールは、該ファイアウォール上で実行されるアプリケーションのネットワーク形成とセキュリティの本質であった。それは、それぞれがサービスの使用が許可されたホスト及び/またはネットワークのリストを有し、ホストまたは他のレイヤ3で使用可能なポート番号またはIPアドレスに適用されるルールを提供する、アクセス制御リスト(ACL)に端を発する。ACLの後、マクロ・セグメンテーションは、ホスト上で実行されるすべてのアプリケーションにIPベースの実施を提供するようになった。これにより、企業管理者は、VLANに基づいてワークロードを保護するためのきめ細かなレベルの制御が可能になった。 In enterprise datacenters, firewalls have been the essence of networking and security for applications running on them. It started with Access Control Lists (ACLs), which provide rules that apply to hosts or other Layer 3 available port numbers or IP addresses, each with a list of hosts and/or networks that are allowed to use a service. After ACLs, macro-segmentation came to provide IP-based enforcement for all applications running on a host. This allowed enterprise administrators a granular level of control to secure workloads based on VLANs.
ネットワーク仮想化では、マイクロ・セグメンテーションにより、L4-L7ネットワークサービスと属性とに基づいて、データセンタ内のホスト間に分散したファイアウォールルールを実施する機能が提供されるため、ネットワークとセキュリティの領域を一変させた。トランスポート層でディープ・パケット・イントロスペクションを実行する能力を備え、Webアプリケーションフィルタリング、Verbベースのファイアウォール、URLフィルタリングを含む新しいファイアウォールがある。 Network virtualization has transformed the world of networking and security by providing the ability to enforce distributed firewall rules across hosts in the datacenter with micro-segmentation based on L4-L7 network services and attributes. There are new firewalls with the ability to perform deep packet introspection at the transport layer and include web application filtering, verb-based firewalls, and URL filtering.
図1は、マイクロ・セグメント化されたアプリケーションのファイアウォール制御を指定するための、現在のワークフローを示している。図示されるように、管理者はまず(105で)、どのアプリケーションを保護したいかのインテントを定義する必要がある。当該インテントに基づいて、管理者は(110で)、ドメインとグループを作成して、アプリケーションの各コンポーネントの境界を定義する必要がある。グループが作成されると、管理者は(115で)、通信プロファイルに基づいて、これらのコンポーネントが互いに通信可能となる方法を定義する。 Figure 1 shows the current workflow for specifying firewall controls for micro-segmented applications. As shown, an administrator must first define (at 105) the intent of which applications they want to protect. Based on that intent, the administrator must create (at 110) domains and groups to define the boundaries of each component of the application. Once groups are created, the administrator defines (at 115) how these components can communicate with each other based on communication profiles.
プロファイルおよびグループが作成された後、120で、ソフトウェア定義データセンタ(SDDC)ネットワークマネージャ150に結果のポリシーが発行される。ポリシーの発行後、管理者は、該管理者が制御するデータセンタのすべてのインスタンスについてネットワークマネージャにログインし、ドメインとグループの作成で指定されたグループ化基準に基づいて、(125で)ネットワーク及びセキュリティグループを作成する必要がある。当該基準は、論理スイッチポート、タグ、またはVM/コンテナ名に基づき得る。
After the profiles and groups are created, the resulting policies are published at 120 to the Software Defined Data Center (SDDC) Network
管理者は、125におけるネットワーク及びセキュリティグループを作成する際に当該基準にマッチするよう、対応するタグを適用してワークロードVM/コンテナを手動で管理する(130)必要がある。タグが基準にマッチすると、(135で)通信プロファイルで定義されたファイアウォールルールが各VMに適用される。 The administrator must manually manage (130) the workload VMs/containers by applying corresponding tags to match the criteria when creating network and security groups at 125. Once the tags match the criteria, the firewall rules defined in the communication profile (at 135) are applied to each VM.
このアプローチにはいくつかの欠点がある。例えば、グループ化基準(タグ、VM名等)の管理は、手動で面倒である。これは、当該管理が複数の環境(例えば、開発、ステージング、及び生産)にわたって繰り返されなければならないため、特に問題である。さらに、アプリケーションの検出と分類は、管理上のオーバーヘッドであり、しばしばエラーを起こしやすい。このアプローチは、保護されているエンティティが本質的に一時的なものである場合、動的ワークロード(コンテナ等)環境に対してもスケーラブルではない。 This approach has several drawbacks. For example, managing grouping criteria (tags, VM names, etc.) is manual and tedious. This is especially problematic because such management must be repeated across multiple environments (e.g., development, staging, and production). Furthermore, application discovery and classification is an administrative overhead that is often error-prone. This approach is also not scalable for dynamic workload (e.g., container) environments, where the entities being protected are ephemeral in nature.
いくつかの実施形態は、マルチセグメントアプリケーションのアプリケーションセグメントがどのように定義または変更されるべきか、及びこれらのセグメント間の通信プロファイルがどのように定義または変更されるべきかを表現するアプリケーションベースのマニフェストを使用することにより、マルチセグメントアプリケーションをデプロイ及び制御するための簡略化されたメカニズムを提供する。いくつかの実施形態では、これらのマニフェストはアプリケーション固有のものである。また、いくつかの実施形態では、ソフトウェア定義データセンタ(SDDC)内のデプロイメントマネージャがこれらのマニフェストをテンプレートとして管理者に提供し、管理者は、データセンタ内にマルチセグメントアプリケーションをデプロイする際に、これらのテンプレートを使用してそのインテントを表現することができる。アプリケーションベースのマニフェストは、SDDCにおいて以前にデプロイされたマルチセグメントアプリケーションの制御にも使用できる。このようなマニフェストを使用することにより、管理者は、エンドポイント及びネットワーク属性に基づいてきめ細かなマイクロ・セグメンテーションルールを管理することができる。 Some embodiments provide a simplified mechanism for deploying and controlling multi-segment applications by using application-based manifests that express how the application segments of a multi-segment application should be defined or modified, and how the communication profiles between these segments should be defined or modified. In some embodiments, these manifests are application-specific. Also, in some embodiments, a deployment manager in a software-defined data center (SDDC) provides these manifests as templates to an administrator, who can use these templates to express his or her intent when deploying a multi-segment application in the data center. Application-based manifests can also be used to control previously deployed multi-segment applications in the SDDC. Using such manifests, an administrator can manage fine-grained micro-segmentation rules based on endpoint and network attributes.
マルチセグメントアプリケーションは、複数のアプリケーションセグメントを含むアプリケーションである。いくつかの実施形態では、1以上のアプリケーションセグメントのそれぞれは、マルチセグメントアプリケーションの他のアプリケーションセグメントのメモリ空間と独立した、独自のメモリ空間で実行されるスタンドアロンアプリケーションである。いくつかの実施形態では、マルチセグメントアプリケーションの異なるアプリケーションセグメントは、異なるマシン(例えば、異なるVMまたはコンテナ)によって実装される。 A multi-segment application is an application that includes multiple application segments. In some embodiments, each of the one or more application segments is a standalone application that runs in its own memory space, independent of the memory space of other application segments of the multi-segment application. In some embodiments, different application segments of a multi-segment application are implemented by different machines (e.g., different VMs or containers).
いくつかの実施形態では、アプリケーションマニフェストは、マニフェストを実装した後に定義されてもよいし、以前に定義されてもよい、マルチセグメントアプリケーションの構文表現を含む。いくつかの実施形態におけるアプリケーションマニフェストは、(1)1以上のアプリケーションセグメント、及び(2)それらに関連する1以上のポリシーを定義または変更する2以上のコマンドを含む階層型APIである。アプリケーションマニフェストは、異なるコマンドを他のコマンドの下に入れ子にすることができるので、階層型APIである。例えば、アプリケーションの1つのグループの定義は、グループ内の特定のアプリケーションを実装するための特定のマシン(例えば、特定のVM)の定義を含むことができる。いくつかの実施形態では、アプリケーションマニフェストは、管理者の要件に基づいてアプリケーションをモデル化する能力だけでなく、周知のアプリケーションとその依存関係をカプセル化する、事前定義されたテンプレートとして管理者に提供される。 In some embodiments, the application manifest includes a syntactic representation of a multi-segment application, which may be defined after implementing the manifest or may be defined previously. The application manifest in some embodiments is a hierarchical API that includes two or more commands that define or modify (1) one or more application segments and (2) one or more policies associated therewith. The application manifest is a hierarchical API because different commands can be nested under other commands. For example, the definition of a group of applications may include the definition of a specific machine (e.g., a specific VM) for implementing a particular application in the group. In some embodiments, the application manifest is provided to the administrator as a predefined template that encapsulates known applications and their dependencies, as well as the ability to model applications based on the administrator's requirements.
いくつかの実施形態では、マニフェストは宣言型言語で定義される。いくつかの実施形態では、SDDC内のマニフェスト処理フレームワークは、(1)マニフェスト内で定義されたマルチセグメントアプリケーションのアプリケーションセグメントをデプロイ及び構成するようにSDDC内のコンピュートマネージャに指示し、(2)マニフェストによって指定されたアプリケーションセグメント間及びアプリケーションセグメントと他のアプリケーションとの間の通信プロファイルを実装するためのネットワーク転送及びサービスルールを定義及びデプロイするようにSDDC内のネットワークマネージャに指示する、いくつかのコマンドにマニフェストをパースする。 In some embodiments, the manifest is defined in a declarative language. In some embodiments, a manifest processing framework in the SDDC parses the manifest into commands that (1) instruct a compute manager in the SDDC to deploy and configure application segments of a multi-segment application defined in the manifest, and (2) instruct a network manager in the SDDC to define and deploy network forwarding and service rules to implement communication profiles between application segments and between application segments and other applications specified by the manifest.
ある実施形態では、アプリケーションセグメントは、SDDC内のホストコンピュータ上で、及び/またはスタンドアロンコンピュータとして実行されるVMまたはコンテナとしてデプロイされる。同様に、ある実施形態におけるネットワーク転送及びサービスルールは、ソフトウェア転送要素(例えば、ソフトウェアスイッチ及びルータ)とソフトウェアミドルボックスサービスVM(例えば、SDDC内のホストコンピュータ上で実行されるサービスコンテナ及び/またはサービスモジュール)とによって処理される。これらの転送及び/またはサービスルールは、いくつかの実施形態では、SDDCにおけるハードウェア転送要素(例えば、トップオブラックスイッチ)、独立型ハードウェアまたはソフトウェアゲートウェイ、及び/または独立型ミドルボックスアプライアンス上にも構成される。 In some embodiments, application segments are deployed as VMs or containers that run on host computers in the SDDC and/or as standalone computers. Similarly, network forwarding and service rules in some embodiments are processed by software forwarding elements (e.g., software switches and routers) and software middlebox service VMs (e.g., service containers and/or service modules that run on host computers in the SDDC). These forwarding and/or service rules are also configured in some embodiments on hardware forwarding elements in the SDDC (e.g., top-of-rack switches), standalone hardware or software gateways, and/or standalone middlebox appliances.
本発明のいくつかの実施形態は、SDDCにおいてマルチセグメントアプリケーションをデプロイするための方法を提供する。方法は、最初に、マルチセグメントアプリケーションの複数のアプリケーションセグメントを定義するための複数の操作要求を宣言フォーマットで指定する、階層型APIコマンドを受信する。当該方法は、APIコマンドをパースしてアプリケーションセグメントを識別する。パースされたAPIコマンドに基づいて、方法は、複数のアプリケーションセグメントのデプロイに必要なソフトウェア定義(SD)リソースと、これらのセグメント間の転送及びサービス操作をデプロイする。 Some embodiments of the present invention provide a method for deploying a multi-segment application in an SDDC. The method first receives a hierarchical API command that specifies, in a declarative format, multiple operation requests for defining multiple application segments of the multi-segment application. The method parses the API command to identify the application segments. Based on the parsed API command, the method deploys software-defined (SD) resources required to deploy the multiple application segments and transport and service operations between those segments.
いくつかの実施形態では、方法が使用するデプロイメントプロセスは、第2のリソースが依存する任意の第1のSDリソースが、当該第2のリソースよりも先にデプロイされることを保証する。いくつかの実施形態では、第2のSDリソースが第1のSDリソースの子である場合、第2のSDリソースは第1のSDリソースに依存する。代替的に、または付随的に、いくつかの実施形態では、第2のSDリソースが第1のSDリソースに何らかの動作上の依存性を有する場合、第2のSDリソースは第1のSDリソースに依存することも可能である。 In some embodiments, the method uses a deployment process that ensures that any first SD resource on which a second resource depends is deployed before the second resource. In some embodiments, a second SD resource depends on a first SD resource if the second SD resource is a child of the first SD resource. Alternatively, or additionally, in some embodiments, a second SD resource may depend on a first SD resource if the second SD resource has any operational dependency on the first SD resource.
いくつかの実施形態では、方法は、各セットが1つのリソースレベルで1以上のSDリソースを有する、複数のSDリソースのセットを識別することにより、APIコマンドをパースする。いくつかの実施形態におけるデプロイは、より低いリソースレベルでSDリソースをデプロイする前に、より高いリソースレベルで識別されたSDリソースセットをデプロイする。階層型APIコマンドで指定可能なSDリソースの例には、アプリケーションセグメントを実装するためのSDコンピュート要素(例えば、VMまたはコンテナ)、アプリケーションセグメントに関連するデータメッセージを転送するための転送ルールを実装するためのSD転送要素(例えば、管理されたソフトウェアスイッチ及びルータ、該管理されたソフトウェアスイッチ及びルータによって実装される論理スイッチ及びルータ等)、及びアプリケーションセグメントに関連するデータメッセージにサービスを実行するためのサービスルールを実施するためのSDサービスミドルボックスモジュール(例えば、ファイアウォール操作、ロードバランシング操作、ネットワークアドレス変換操作、暗号化操作、侵入検知操作、侵入防御操作等のミドルボックスサービス操作を実行するサービスVMまたはモジュール)が含まれる。 In some embodiments, the method parses the API command by identifying a set of SD resources, each set having one or more SD resources at a resource level. In some embodiments, the deployment deploys the identified SD resource set at a higher resource level before deploying the SD resources at a lower resource level. Examples of SD resources that can be specified in a hierarchical API command include SD compute elements (e.g., VMs or containers) for implementing application segments, SD forwarding elements (e.g., managed software switches and routers, logical switches and routers implemented by the managed software switches and routers, etc.) for implementing forwarding rules for forwarding data messages associated with the application segments, and SD service middlebox modules (e.g., service VMs or modules that perform middlebox service operations such as firewall operations, load balancing operations, network address translation operations, encryption operations, intrusion detection operations, intrusion prevention operations, etc.) for implementing service rules for performing services on data messages associated with the application segments.
ある実施形態では、API処理システムがAPIコマンドを処理する。このコマンドは、以前にデプロイされたSDリソースを更新するための一連のパラメータを含むことができる。この場合、API処理システムは、パースされたAPIコマンドで指定された一連のパラメータを使用して、マルチセグメントアプリケーションに対して先にデプロイされたSDリソースを更新することで、マルチセグメントアプリケーションをデプロイする。このような場合、APIコマンドには、新しいSDリソースを定義する一連のパラメータが含まれる。このような場合、API処理システムは、パースされたAPIコマンドで指定された一連のパラメータに基づいてSDリソースをデプロイすることによって、SDリソースをデプロイする。 In one embodiment, an API processing system processes an API command. The command may include a set of parameters for updating a previously deployed SD resource. In this case, the API processing system deploys the multi-segment application by updating a previously deployed SD resource for the multi-segment application using the set of parameters specified in the parsed API command. In such a case, the API command includes a set of parameters that define a new SD resource. In such a case, the API processing system deploys the SD resource by deploying the SD resource based on the set of parameters specified in the parsed API command.
いくつかの実施形態では、階層型APIコマンドが1つのアトミックユニットとして処理される。従って、API処理システムは、階層型APIコマンド内の識別されたSDリソースがデプロイ可能であるか否かを判断する。もしそうであれば、API処理システムは、APIコマンドが正常に処理されたという確認を、階層型APIコマンドを生成したソースに送信する。そうでなければ、APIコマンド内の1以上のSDリソースがデプロイ可能でない場合、API処理システムは、APIコマンドが正常に処理されていないというメッセージを、階層型APIコマンドを生成したソースに送信する。 In some embodiments, the hierarchical API command is processed as one atomic unit. Thus, the API processing system determines whether the SD resources identified in the hierarchical API command are deployable. If so, the API processing system sends a confirmation to the source that generated the hierarchical API command that the API command was successfully processed. Otherwise, if one or more SD resources in the API command are not deployable, the API processing system sends a message to the source that generated the hierarchical API command that the API command was not successfully processed.
いくつかの実施形態は、データコンピュートエンドポイントからのコンテキストをネットワークに結び付けることによって、次世代のマイクロ・セグメンテーションのための道を開く。エンドポイントベースのコンテキストは、ファイルハッシュ、パブリッシャ情報、ライセンス、プロセス情報等のアプリケーション固有の属性だけでなく、ユーザIDにも関連し得る。いくつかの実施形態では、コンテキスト情報は、(例えば、仮想化されたネットワーク装置を介して)SDDCに配置されたディストリビュータにデプロイされる、アプリケーションベースのファイアウォールによって使用される。アプリケーションベースのファイアウォールをコモディティ化する最大の課題の1つは、このような複雑なファイアウォールの消費モデルであり、これはエンドポイント内では何千ものプロセスが、データセンタ内では何百万ものプロセスが実行され得るからである。しかしながら、アプリケーションマニフェストを使用することにより、いくつかの実施形態は、きめ細かなコンテキストベースのルールを作成し、これらのルールを管理する非常に困難なタスクを管理することを管理者に可能ならしめる新規なアプローチを提供する。 Some embodiments pave the way for next-generation micro-segmentation by binding context from data compute endpoints to the network. Endpoint-based context can be related to user identity as well as application-specific attributes such as file hashes, publisher information, licenses, process information, etc. In some embodiments, the context information is used by application-based firewalls that are deployed to distributors located in SDDC (e.g., via virtualized network appliances). One of the biggest challenges in commoditizing application-based firewalls is the complex consumption model of such firewalls, since there may be thousands of processes running within an endpoint and millions of processes running within a data center. However, by using application manifests, some embodiments provide a novel approach that allows administrators to create fine-grained context-based rules and manage the very difficult task of managing these rules.
前述の概要は、本発明のいくつかの実施形態の簡単な紹介として役立つことを意図している。これは、本文書に開示されたすべての発明主題の紹介または概略であることを意味するものではない。以下の詳細な説明及び当該詳細な説明で参照される図面は、概要で説明された実施形態、並びに他の実施形態をさらに説明する。従って、本文書により説明されるすべての実施形態を理解するために、概要、詳細な説明、図面、及び特許請求の範囲の完全な検討が必要である。また請求される主題は、概要、詳細な説明、及び図面における例示的な詳細によって限定されるべきではない。 The foregoing summary is intended to serve as a brief introduction to some embodiments of the present invention. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The following detailed description and the figures referenced in the detailed description further describe the embodiments described in the summary, as well as other embodiments. Thus, a complete review of the summary, detailed description, drawings, and claims is necessary to understand all embodiments described herein. Also, the claimed subject matter should not be limited by the illustrative details in the summary, detailed description, and drawings.
本発明の新規な特徴は、添付の特許請求の範囲に記載されている。しかしながら、説明の目的のため、本発明のいくつかの実施形態は以下の図面に記載される。 The novel features of the invention are set forth in the appended claims. However, for purposes of illustration, certain embodiments of the invention are set forth in the following drawings.
発明の以下の詳細な説明では、本発明の多数の詳細、実施例、及び実施形態が記載及び説明される。しかしながら、本発明は記載された実施形態に限定されるものではなく、そして本発明は記載された特定の詳細及び例のいくつかがなくても実施され得ることは、当業者には明白であり、明らかであろう。 In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are described and explained. However, it will be apparent and clear to one skilled in the art that the invention is not limited to the described embodiments, and that the invention may be practiced without some of the specific details and examples described.
いくつかの実施形態は、マルチセグメントアプリケーションをデプロイ及び制御し、マルチセグメントアプリケーションのセグメント間の通信プロファイルを定義するための単純化されたメカニズムを提供する、新規なアプリケーションベースのマニフェストを提供する。マルチセグメントアプリケーションは、複数のアプリケーションセグメントを含むアプリケーションである。いくつかの実施形態では、各アプリケーションセグメントは、マルチセグメントアプリケーションの任意の他のアプリケーションセグメントのメモリ空間から分離された、固有のメモリ空間で実行されるスタンドアロンアプリケーションであってよい。いくつかの実施形態では、マルチセグメントアプリケーションの異なるアプリケーションセグメントは、異なるマシン(例えば、異なるVMまたはコンテナ)によって実装される。 Some embodiments provide a novel application-based manifest that provides a simplified mechanism for deploying and controlling a multi-segment application and for defining communication profiles between segments of a multi-segment application. A multi-segment application is an application that includes multiple application segments. In some embodiments, each application segment may be a standalone application that runs in its own memory space, separate from the memory space of any other application segments of the multi-segment application. In some embodiments, different application segments of a multi-segment application are implemented by different machines (e.g., different VMs or containers).
いくつかの実施形態では、ソフトウェア定義データセンタ(SDDC)内のデプロイメントマネージャが、これらのマニフェストをテンプレートとして管理者に提供する。管理者は、これらのテンプレートを使用して、データセンタにマルチセグメントアプリケーションをデプロイする際のインテントを示すことができる。アプリケーションベースのマニフェストは、SDDCにおいて以前にデプロイされたマルチセグメントアプリケーションの制御にも使用できる。このようなマニフェストを使用することにより、管理者は、エンドポイント及びネットワーク属性に基づいてきめ細かなマイクロ・セグメンテーションルールを管理することができる。 In some embodiments, a deployment manager in the software-defined data center (SDDC) provides these manifests as templates to administrators. Administrators can use these templates to indicate their intent in deploying multi-segment applications in the data center. Application-based manifests can also be used to control previously deployed multi-segment applications in the SDDC. Using such manifests, administrators can manage fine-grained micro-segmentation rules based on endpoint and network attributes.
本文書では、データメッセージは、ネットワークを介して送信される特定のフォーマットのビットのコレクションを参照する。本明細書において、データメッセージという文言が、イーサネットフレーム、IPパケット、TCPセグメント、UDPデータグラム等、ネットワークを介して送信され得る種々のフォーマットのビット集合を参照するために用いられ得ることは、当業者により理解されるであろう。また、本文書で用いられるように、L2、L3、L4、及びL7レイヤ(またはレイヤ2、レイヤ3、レイヤ4、及びレイヤ7)への参照は、それぞれ、OSI(Open System Interconnection)レイヤモデルの第2層のデータリンク層、第3層のネットワーク層、第4層のトランスポート層、及び第7層のアプリケーション層への参照である。 In this document, a data message refers to a collection of bits in a particular format that is sent over a network. It will be understood by those skilled in the art that the term data message may be used herein to refer to a collection of bits in various formats that may be sent over a network, such as an Ethernet frame, an IP packet, a TCP segment, a UDP datagram, etc. Also, as used in this document, references to the L2, L3, L4, and L7 layers (or layers 2, 3, 4, and 7) are references to the data link layer at layer 2, the network layer at layer 3, the transport layer at layer 4, and the application layer at layer 7, respectively, of the Open System Interconnection (OSI) layer model.
図2は、SDDCにおいてテナント管理者から受信したアプリケーションマニフェストを処理するマニフェスト処理フレームワーク200を示している。当該処理に基づいて、フレームワーク200は、SDDC内のコンピュートマネージャ及びネットワークマネージャと対話しすることで、マルチセグメントアプリケーションをデプロイし、SDDC内の転送及びサービス要素を構成し、該アプリケーションのセグメント間、及びこれらのセグメントとSDDCの内部及び外部の他のアプリケーション及びデバイスとの間で、所望の通信ルールを設定する。いくつかの実施形態では、アプリケーションマニフェストはまた、以前にデプロイされたマルチセグメントアプリケーション、及び/または以前にデプロイされたセグメントのための以前に構成された通信プロファイルを調整するための要求を含むことができる。
FIG. 2 illustrates a
図示されるように、マニフェストフレームワークは、パーサ205、制約チェッカ210、ソータ220、オーケストレータ230、いくつかのルール及びポリシーストレージ215、225、及び235を含む。これら構成要素の操作は、当該構成要素がアプリケーションマニフェストのために実行するプロセス300を示した図3を参照して説明される。図示されるように、プロセス300は、マニフェスト処理フレームワーク200が(305で)管理者のマシン260から(例えば、アプリケーションマニフェストを指定するために管理者によって使用されるVM、コンテナ、またはスタンドアロンコンピュータから)アプリケーションマニフェストを受信した際に開始する。上述し、以下でさらに説明するように、いくつかの実施形態では管理者は、マニフェスト255を指定するために、マニフェストフレームワークによって提供されるアプリケーションマニフェストテンプレートを使用することができる。
As shown, the manifest framework includes a
いくつかの実施形態において、アプリケーションマニフェスト255は、マルチセグメントアプリケーションの構文表現を含む。いくつかの実施形態のアプリケーションマニフェストは、(1)1以上のアプリケーションセグメント、及び(2)各アプリケーションセグメントと、別のアプリケーションセグメントまたはSDDCの内部または外部の別のアプリケーション/マシンとの間の1以上の通信プロファイルを定義または修正する、2以上のコマンドを含む階層型APIである。
In some embodiments, the
アプリケーションマニフェストは、異なるコマンドを他のコマンドの下に入れ子にすることができる階層型APIであるため、例えば、ドメイン定義はアプリケーションセグメントグループ定義を含むことができ、その順番にアプリケーションセグメントを実装するための1以上のマシン(例えば、特定のVMまたはコンテナ)の1以上の定義を含むことができる。いくつかの実施形態では、マニフェストは宣言型言語で定義される。例えば、マニフェストはある実施形態ではJavascript Object Notation(JSON)フォーマットで書かれるが、他の実施形態ではXML(Extensible Markup Language)フォーマットのような他の階層型フォーマットで表現され得る。 The application manifest is a hierarchical API that allows different commands to be nested under other commands, so that, for example, a domain definition can include an application segment group definition, which in turn can include one or more definitions of one or more machines (e.g., specific VMs or containers) for implementing the application segments. In some embodiments, the manifest is defined in a declarative language. For example, in one embodiment, the manifest is written in Javascript Object Notation (JSON) format, but in other embodiments, the manifest can be expressed in other hierarchical formats, such as Extensible Markup Language (XML) format.
アプリケーションマニフェスト255を受信した後、フレームワーク200のパーサ205は、マニフェストに含まれるいくつかの異なる要求(コマンド)を(310で)識別する。たとえば、典型的な3層アプリケーションでは、マニフェストはWebサーバ、アプリケーションサーバ、データベースサーバのデプロイメントを指定できる。このような状況では、パーサはマニフェストを1以上のコマンドの3つのセットにパースし、各セットは、1つの層のデプロイメント(例えばWebサーバ、アプリサーバ、またはデータベースサーバのデプロイメント)に関連付けられる。ある実施形態では、パーサは、マニフェストから入力APIツリーを生成する。入力APIツリーは、マニフェストの異なる部分間の親子関係を表す。
After receiving the
パーサがマニフェストをいくつかの個別の要求に分割した後、制約チェッカ210は、個別の要求のいずれかが、その制約ストレージ215に格納されたポリシー制約に違反するか否かを(315で)判定する。もしそうであれば、フレームワークは管理者にエラーを返す。そうではない場合、ソータ220は、これらの要求を実装するためのソートされた順序を(320で)識別する。このソートされた順序を識別するために、いくつかの実施形態では、ソータは、マニフェストで識別された各SDリソースをそのタイプに従って識別するタイプ固有マップを構築する。これを行うために、いくつかの実施形態では、ソータは、パーサによってマニフェストから構築された入力APIツリーの幅優先探索を実行し、リソースタイプに基づいて入力を異なるバケットに分類し、分類された入力をタイプ固有マップに格納する。
After the parser splits the manifest into individual requests, the
タイプ固有マップ内の各キーはリソースタイプであり、各キーの値は入力APIツリー内の特定のタイプのすべてのリソースのリストである。各ノード要素は、その親とともに格納される。要約すると、入力APIツリーはリソースタイプ、例えば、1つのバケット内のすべての領域、別のバケット内のすべてのグループ等に基づいて分類される。タイプ固有マップを生成した後、ソータは入力APIツリーにSDリソースを永続化するための実行順序を定義する。ある実施形態では、実行順序は、リソースタイプの事前定義された順序付きリストである。当該リストは、入力ツリー内のリソースを永続化する順序を規定する。新たな型がシステムに導入された場合、実行順序は、該新たな要素の順序を含むように動的に更新される。例えば、いくつかの実施形態におけるサンプル実行順序は、(1)領域、(2)グループ、及び(3)通信マップであってよい。つまり、最初に領域、次にグループ、次に通信マップを作成する必要がある。 Each key in the type-specific map is a resource type, and the value of each key is a list of all resources of a particular type in the input API tree. Each node element is stored with its parent. In summary, the input API tree is sorted based on resource type, e.g., all areas in one bucket, all groups in another bucket, etc. After generating the type-specific map, the sorter defines an execution order for persisting SD resources in the input API tree. In one embodiment, the execution order is a predefined ordered list of resource types that specifies the order in which resources in the input tree are persisted. When new types are introduced into the system, the execution order is dynamically updated to include the order of the new elements. For example, a sample execution order in some embodiments may be (1) areas, (2) groups, and (3) communication maps. That is, areas must be created first, then groups, then communication maps.
次に、ソータはサービスプロバイダレジストリを使用して、構成されたAPIツリー内のSDリソースを永続化する。サービスプロバイダレジストリは、コールバックハンドラへのリソースタイプのマップである。コールバックハンドラは、システム内のタイプごとに登録される。コールバックハンドラの責任は、登録されたタイプを永続化することである。以下にさらに説明されるように、コールバックハンドラは、いくつかの実施形態においてデプロイメントプラグインにより実装される。デプロイメントプラグインは、API処理システムに接続して、受信されたAPIによって要求された変更の永続化、及び永続化された変更のデプロイを処理するモジュールである。 The sorter then uses the service provider registry to persist the SD resources in the configured API tree. The service provider registry is a map of resource types to callback handlers. A callback handler is registered for each type in the system. The responsibility of the callback handler is to persist the registered types. As described further below, the callback handler is implemented by a deployment plugin in some embodiments. The deployment plugin is a module that connects to the API processing system and handles the persistence of changes requested by received APIs and the deployment of persisted changes.
ソータが呼び出し順序を識別し、当該順序に基づいてコールバックハンドラを呼び出してデプロイメントデータを1以上の構成データベースに永続化させると、オーケストレータ230は1以上のネットワーク、コンピュート、及び/またはサービスマネージャ240と(325で)相互作用し、構成データベースに永続化された構成データに基づいてSDリソース250をデプロイする。いくつかの実施形態では、オーケストレータ230は、構成データベースにデータを永続化するためのコールバックハンドラも実装されたデプロイメントプラグインによって実装される。
Once the sorter identifies the invocation order and invokes the callback handlers based on the invocation order to persist the deployment data to one or more configuration databases, the
また、いくつかの実施形態では、SDDCリソースマネージャ240は、1以上のSDDCリソースコントローラ245を使用して、マルチセグメントアプリケーション及びそれに関連する通信プロファイルをSDDCリソース250にデプロイする。このようなリソースの例は、ホストコンピュータ、VM、コンテナ、ソフトウェア及びハードウェア転送要素、ソフトウェア及びハードウェアミドルボックスサービス要素等を含む。リソースマネージャ及びコントローラ240及び245は、(1)マニフェストで定義されたマルチセグメントアプリケーションのアプリケーションセグメントをデプロイ及び構成するコンピュートマネージャ及びコントローラと、(2)マニフェストで指定されたアプリケーションセグメントの通信プロファイルを実装するためのネットワーク転送及びサービスルールを定義及びデプロイするネットワークマネージャ及びコントローラとを含む。
In some embodiments,
ある実施形態では、アプリケーションセグメントはホストコンピュータ上で実行するVMまたはコンテナとして、及び/またはスタンドアロンコンピュータとして、SDDCにデプロイされる。同様に、いくつかの実施形態におけるネットワーク転送及びサービスルールは、ソフトウェア転送要素(例えば、ソフトウェアスイッチ及びルータ)と、SDDC内のホストコンピュータ上で実行するソフトウェアミドルボックスサービスVM、サービスコンテナ及び/またはサービスモジュールによって処理される。これらの転送及び/またはサービスルールは、いくつかの実施形態では、SDDC内の、ハードウェア転送要素(例えば、トップオブラックスイッチ)、スタンドアロンハードウェアまたはソフトウェアゲートウェイ、及び/または独立型ミドルボックスアプライアンスにおいても構成される。 In some embodiments, application segments are deployed in an SDDC as VMs or containers running on host computers and/or as standalone computers. Similarly, network forwarding and service rules in some embodiments are processed by software forwarding elements (e.g., software switches and routers) and software middlebox service VMs, service containers, and/or service modules running on host computers in the SDDC. These forwarding and/or service rules are also configured in hardware forwarding elements (e.g., top-of-rack switches), standalone hardware or software gateways, and/or standalone middlebox appliances in the SDDC in some embodiments.
図4は、Slackと呼ばれるマルチセグメントアプリケーションを定義するアプリケーションマニフェストの例を示している。この例のアプリケーションマニフェストは、マニフェスト処理フレームワークに送信する実際のアプリケーションマニフェストを定義するために使用され得る、階層型APIテンプレート400である。このようなテンプレートは、マルチセグメントアプリケーションをデプロイするためにしばしば順番に呼び出される、共通のセットを指定するメカニズムを提供する。テンプレートAPIを利用することで、管理者は一連のAPIを最初から定義することなく、共通の要求セットをデプロイできる。
Figure 4 shows an example application manifest that defines a multi-segment application called Slack. The application manifest in this example is a
マニフェストテンプレート400から実際のマルチセグメントアプリケーションマニフェストを指定するには、いくつかの実施形態では、管理者は、マニフェストになるテンプレートのコピーにおいて、プレースホルダフィールドと呼ばれる限られた数のフィールドを修正するだけでよい。この観点から、テンプレートAPIは、ブランクフィールドまたはプレースホルダを有する、(1以上のリソースに関しての)1以上の要求セットである。プレースホルダアプリケーション名、アプリケーション識別子(App_ID)、プロセス名、プロセスハッシュ、ユーザ識別子、またはマルチセグメントアプリケーションテンプレートで用いられるその他のキー値ペアの例。一部の実施形態では、管理者は、実際のマニフェストになるテンプレートのコピーの他の構成要素(例えば、セグメントの追加、通信ルールの追加または削除、通信ルールパラメータの変更等)も変更できる。
To specify the actual multi-segment application manifest from the
いくつかの実施形態において、APIテンプレートは管理されたリソースである。このことは、プレースホルダのリスト及びAPIオブジェクトであるボディにより表される。図4のAPIテンプレート400は、Slackアプリケーションをデプロイするためのものである。図5は、Slackアプリケーション500の例示的なデプロイメントを示している。このアプリケーションは、図6に図式されたデータモデルを有する。アプリケーション500及びデータモデル600の両方は、アプリケーションマニフェスト400の部分をさらに説明するために、以下でさらに説明される。
In some embodiments, the API template is a managed resource. This is represented by a list of placeholders and a body that is an API object. The
アプリケーションマニフェスト400は、ツリーフォーマットと同等の階層型JSONフォーマットである。ツリーの各ノードは、SDDCリソースに対応しており、該ノードのリソースタイプを記述するフィールドを有する。各ノードは、親子関係を示すノードのすべての子を保持する特別なプロパティを有する。子ノードは、順番に複数の子を有することができ、これは任意の深さに行くことができる。従って、各ノードは、(ツリー内の非リーフノードと同様に)同時に親及び子になり得る。
The
図4において、各ノードは、ノードのタイプを記述するプロパティ「resource_type」を有する。いくつかの実施形態におけるタイプの例は、Infra、Tenant、Domain、Group、CommunicationMap、CommunicationEntry等を含む。これらはすべて、データセンタ内の異なるタイプのリソースである。1つのノードは、該ノードのすべての子を保持するプロパティ「children」を有することもできる。例えば図4において、タイプDomain410のノードはタイプInfra405の子であり、「Group」及び「CommunicationMap」である2つの異なるタイプの子415~450を有する。いくつかの実施形態において、TenantはマルチテナントSDDCにおけるテナントを参照し、Domainはテナント下のワークロードであり、CommunicationMapはセキュリティポリシーであり、CommunicationEntryはセキュリティポリシー下のルールである。
In FIG. 4, each node has a property "resource_type" that describes the type of the node. Examples of types in some embodiments include Infra, Tenant, Domain, Group, CommunicationMap, CommunicationEntry, etc. These are all different types of resources in a data center. A node can also have a property "children" that holds all the children of the node. For example, in FIG. 4, a node of
いくつかの実施形態では、各SDリソースは、すべての分類上の親が含まれる、ルートからの一意のパスで識別され得る。例えば、/VMwareは、テナントVMwareに関連付けられているすべてのリソースを指定する。path/VMware/domains/Outlookは、テナントVMwareのすべてのOutlookワークロードを指定する。パス/VMware/domains/Outlook/communication-maps/web-profileは、テナントVMwareのOutlookワークロードのwebプロファイルを指定する。パス/vmware/domains/Outlook/communicationmaps/web-profile/communication-entries/open-browser-accessは、テナントVMwareのOutlookワークロードのオープンブラウザアクセスを指定する。より一般的には、セキュリティポリシーのパスのフォーマットは/<tenant-name>/domains/<workload-name>/communication-maps/<security-policyname>/communication-entries/<rule-name>のように指定できる。 In some embodiments, each SD resource may be identified by a unique path from the root that includes all taxonomic parents. For example, /VMware specifies all resources associated with tenant VMware. The path /VMware/domains/Outlook specifies all Outlook workloads for tenant VMware. The path /VMware/domains/Outlook/communication-maps/web-profile specifies the web profile for Outlook workloads for tenant VMware. The path /vmware/domains/Outlook/communicationmaps/web-profile/communication-entries/open-browser-access specifies the open browser access for Outlook workloads for tenant VMware. More generally, the format of a security policy path may be specified as /<tenant-name>/domains/<workload-name>/communication-maps/<security-policyname>/communication-entries/<rule-name>.
図4に示されるように、このマニフェストテンプレート400は、プレースホルダーリスト404と共に名前402とテンプレートの説明403を提供する、テンプレートヘッダ401を含む。マニフェストテンプレート400は、11の要求405~480も含む。要求405は、Infraと呼ばれる構成を作成するためのものである。この構成は、要求405~450によって定義される8つの子を有する。要求410は、slack_appという領域を定義する。
As shown in FIG. 4, this
要求415~445は、slack_appマルチセグメントアプリケーションの7つのアプリケーションセグメントを定義する。これら7つのセグメントが、図5に示されている。図示されるように、これら7つのセグメントは、(要求415によって定義される)slack共有515、(要求420によって定義される)slackベース520、(要求425によって定義される)slackコール525、(要求430によって定義される)slack編集530、(要求435によって定義される)slackダウンロード535、(要求440によって定義される)slackアップロード540、及び(要求445によって定義される)slackファイル転送545を含む。各セグメントについての各要求415~445は、当該セグメントが、当該セグメントの名前(識別子)と等しく設定されたキーでタグ付けされたVMによって実装されることを指定する。 Requests 415-445 define seven application segments for the slack_app multi-segment application. These seven segments are illustrated in FIG. 5. As illustrated, these seven segments include slack share 515 (defined by request 415), slack base 520 (defined by request 420), slack call 525 (defined by request 425), slack edit 530 (defined by request 430), slack download 535 (defined by request 435), slack upload 540 (defined by request 440), and slack file transfer 545 (defined by request 445). Each request 415-445 for each segment specifies that the segment is implemented by a VM tagged with a key set equal to the name (identifier) of the segment.
図5及び図6は、これらのセグメント間の通信がslackベース520を通ることを示している。このように、要求450は、slackベース520と他のセグメント515及び525~545のそれぞれとの間のデータメッセージ交換に関する6つの通信ルール(即ち、通信エントリ)に関して、これらのセグメント間の通信プロファイル(すなわち、通信マップ)を定義する。いくつかの実施形態では、これらの6つの通信規則は、データプレーン内のファイアウォールルールによって実装される。図5はまた、いくつかの実施形態において、通信ルール(例えば、ファイアウォールルール)は、appID、プロセス名等、任意の数の異なるコンテキスト属性に基づき得ることを示している。
5 and 6 show that communication between these segments passes through
図示されるように、各通信エントリは、データメッセージのソース(例えば、ソースグループ)、データメッセージの宛先(例えば、宛先グループ)、通信が許可されるか拒否されるかを指定するアクション、及びデータメッセージによって使用されるサービス、ポート及び/またはプロトコルのセットで表現される。通信マップはまた、図5に示されるアクティブディレクトリサービス590とslackベースがどのように通信するかを指定するルール480(即ち、通信エントリ)を定義する。いくつかの実施形態では、これらの通信エントリ455~480は、Slackの異なるセグメント間、及び他のマシン(SDDCの内部または外部)とこれらのセグメントとの間の通信を制御するために、マニフェスト処理フレームワークによってファイアウォールルールに変換される。
As shown, each communication entry is represented by the source of the data message (e.g., a source group), the destination of the data message (e.g., a destination group), an action that specifies whether the communication is allowed or denied, and a set of services, ports, and/or protocols used by the data message. The communication map also defines rules 480 (i.e., communication entries) that specify how the slack base communicates with the
ある実施形態では、テンプレートは、GET、PATCH、DELETE、及びPOSTコマンドを通じて管理することができる。例えばある実施形態では、GET/policy/templatesは、データベース内のテンプレート識別子のリストを返す。いくつかの実施形態では、GET /policy/templates/<template-id>は、特定のテンプレート識別子のためのテンプレートを返す。また、いくつかの実施形態では、テンプレートJSON定義に続くPATCH /policy/templatesは、新しいテンプレートを作成する。いくつかの実施形態では、DELETE /policy/templates/<template-id>は、特定のテンプレート識別子が与えられたテンプレートを削除する。 In some embodiments, templates can be managed through the GET, PATCH, DELETE, and POST commands. For example, in some embodiments, GET /policy/templates returns a list of template identifiers in the database. In some embodiments, GET /policy/templates/<template-id> returns the templates for a specific template identifier. Also, in some embodiments, PATCH /policy/templates following a template JSON definition creates a new template. In some embodiments, DELETE /policy/templates/<template-id> deletes the template given a specific template identifier.
いくつかの実施形態では、POST /policy/templates/<template-id>?action=deployは、テンプレートAPIに基づいて階層型APIを定義して起動するために規定される。このコマンドは、特定のテンプレート識別子<template-id>が与えられたテンプレートをデプロイする。テンプレート内のプレースホルダの値を提供する引数は、POSTリクエストのボディに渡される。プレースホルダ引数を伴うPOSTコマンドに応答して、いくつかの実施形態では、マニフェスト処理フレームワークのテンプレートマネージャは、識別されたテンプレートをフェッチし、階層型APIを定義するためにプレースホルダ値を表す引数を適用し、そして階層型API内の要求された各操作を識別するための1以上の要求オブジェクトを作成する。このようなテンプレートマネージャについては、以下でさらに説明する。 In some embodiments, POST /policy/templates/<template-id>?action=deploy is defined to define and launch a hierarchical API based on a template API. This command deploys a template given a specific template identifier <template-id>. Arguments providing values for placeholders in the template are passed in the body of the POST request. In response to a POST command with placeholder arguments, in some embodiments, a template manager of the manifest processing framework fetches the identified template, applies arguments representing the placeholder values to define the hierarchical API, and creates one or more request objects to identify each requested operation in the hierarchical API. Such template managers are described further below.
要するに、マニフェストテンプレート400は、マルチセグメントアプリケーションを定義するプロセスのセットと、推奨される通信プロファイルのセットとを指定する。これらの定義は、管理者の要件に基づいて管理者が変更できる。つまり、管理者は、これを環境においてを逐語的に使用するか、またはデータセンタで必要と判断された修正を行うかの選択肢を持っている。このSlack用のサンプルアプリケーションマニフェストは、業界全体の標準として公開することができ、このアプリケーションのデプロイメントやマイクロ・セグメンテーションをより容易にすることができる。
In essence, the
図7は、マニフェストテンプレートに基づいてマルチセグメントアプリケーションを定義及びデプロイするための例示的なフローを表すプロセス700を示している。図示されるように、プロセス700は、最初にアプリケーションマニフェストテンプレートのリストを(705で)提供する。いくつかの実施形態におけるマニフェストテンプレートは、最も一般的に使用されるマルチセグメントアプリケーションのためのテンプレートである。いくつかの実施形態では、マニフェストテンプレートは、オープンソースであり、コミュニティが主導しているため、これらのアプリケーションの露出度及び精度が高くなる。
FIG. 7 illustrates a
次に、710で、管理者は、提供されたマニフェストテンプレートのリストから1つのマニフェストテンプレートを選択する。選択されたテンプレートは、管理者がデプロイを所望するマルチセグメントアプリケーション用である。715で、管理者は、自身のインテントに基づいてマニフェストを確認する。選択したマニフェストは、テンプレートの発行者によって定義されたデフォルトの構成を使用して、コンピュート、ネットワーク、及びセキュリティのインテントを示す。管理者は、デフォルト設定を受け入れるか、所望のインテントと一致するように変更することができる。 Next, at 710, the administrator selects a manifest template from the list of provided manifest templates. The selected template is for the multi-segment application the administrator wants to deploy. At 715, the administrator reviews the manifest based on his intent. The selected manifest indicates the compute, network, and security intents using the default configuration defined by the template publisher. The administrator can accept the default settings or modify them to match the desired intent.
720で、管理者は、マニフェストをマニフェスト処理フレームワークに提出して、処理とデプロイメントを行う。マニフェストがフレームワークに公開されると、フレームワークは、マニフェストで指定されたコンピュート、ネットワーク及び/またはサービスリソースを(725で)デプロイする。725の後、プロセス700は終了する。
At 720, the administrator submits the manifest to a manifest processing framework for processing and deployment. Once the manifest is published to the framework, the framework deploys (at 725) the compute, network, and/or service resources specified in the manifest. After 725,
いくつかの実施形態では、フレームワークは、デプロイメント環境から異なるタイプのコンテキスト属性(既存または新たなワークロードで使用されるもの等)を収集し、マニフェスト内の通信エントリの定義に際してこれらの属性を使用者に使用可能ならしめる、ミドルボックスサービスである新しい分類エンジンを使用する。図8は、いくつかの実施形態のためのこの新しい分類エンジンのアーキテクチャを示している。 In some embodiments, the framework uses a new classification engine, a middlebox service that collects different types of context attributes (such as those used in existing or new workloads) from the deployment environment and makes these attributes available to consumers when defining communication entries in the manifest. Figure 8 illustrates the architecture of this new classification engine for some embodiments.
VM上で実行されるアプリケーションは、本質的に一時的なものではない。管理者がアプリケーションをインストールすると、通常、これらのアプリケーションは長時間実行される。これは、通常、VM及びベアメタルサーバに適用される。いくつかの実施形態では、ホストコンピュータ上で実行されているハイパーバイザ上で実行されるコンテキストエンジンは、ゲストVM上で実行中のプロセスのリストを、SDDC管理プレーンに定期的に送信する。アプリケーション発見エンジン805は、この情報を受信し、アプリケーション情報及び関連する仮想マシンについての視覚化を提供する。
Applications running on VMs are not transient in nature. Once an administrator installs an application, these applications are typically long running. This typically applies to VMs and bare metal servers. In some embodiments, a context engine running on a hypervisor running on a host computer periodically sends a list of processes running on guest VMs to the SDDC management plane. The
いくつかの実施形態では、この情報は連続的にポーリングされず、プロセスは自動化されない。従って、いくつかの実施形態では、管理プレーン上の新しい分類垂直は、VM上で実行中/インストール済みプロセスのリストを検出し、プロセス情報に基づいてそれらにタグを付けるための周期的な同期動作を内部的に実行する。インベントリ垂直810は、システム内のVMのリストを取得し、内部でセキュリティグループを作成し、これらのVMのアプリケーション発見を可能にする。VMで実行されているアプリケーション/プロセスのリストが識別されると、VMにプロセスのタグが付けられる。グルーピング/タグ付けマネージャ815は、分類エンジン800のためのセキュリティグループ及び他のタグ付けデータを収集し、一方、ファイアウォールマネージャ820は、デプロイされたファイアウォールから、及びデプロイされたファイアウォールのためのコンテキストデータを収集する。収集されたタグに基づいて、アプリケーションレベルで作成されたポリシーからのインテントは、これらのプロセスのセキュリティグループと通信プロファイルを決定する。
In some embodiments, this information is not polled continuously and the process is not automated. Thus, in some embodiments, a new classification vertical on the management plane internally performs a periodic synchronization operation to discover the list of running/installed processes on the VMs and tag them based on the process information. The inventory vertical 810 gets the list of VMs in the system and creates security groups internally and enables application discovery for these VMs. Once the list of applications/processes running on the VMs is identified, the VMs are tagged with processes. The grouping/
図9は、本発明のいくつかの実施形態のAPI処理システム900の一例を示している。このAPI処理システム900は、いくつかの実施形態のマニフェスト処理フレームワーク200を実装する。このシステムでは、各テナントは、別々の環境と見なすことができる1以上のSDDCインスタンス905を含む、SDDCクラスタ902を作成できる。図示されるように、いくつかの実施形態では、各SDDCインスタンス905は、APIゲートウェイ920、APIプロセッサ925、コンピュートマネージャ910、ネットワークマネージャ915、コントローラ940、テンプレートマネージャ927、ポリシーチェッカ923、設定データストレージ935、及びいくつかのデプロイメントプラグイン930を含む。
9 illustrates an example of an
いくつかの実施形態において、これらの構成要素の2つ以上は、1以上のデータセンタ内の2以上のマシン(例えば、VM、コンテナ、スタンドアロンサーバ等)において実行され、ネットワークを介して互いに通信する。これらの実施形態または他の実施形態では、各SDDCインスタンスは、負荷を分散し、高可用性を実現するために、これらの各構成要素の複数のインスタンスを含む。 In some embodiments, two or more of these components run on two or more machines (e.g., VMs, containers, standalone servers, etc.) in one or more data centers and communicate with each other over a network. In these or other embodiments, each SDDC instance includes multiple instances of each of these components to distribute load and provide high availability.
コンピュートマネージャ910は、ワークロードマシン(例えば、ワークロードVMまたはコンテナ)をデプロイして管理する。一方、ネットワークマネージャ915は、ネットワークリソース(例えば、ソフトウェアスイッチ及びルータ)及びミドルボックスサービスリソース(例えば、サービスVM及びモジュール)をデータセンタにデプロイする。いくつかの実施形態では、コンピュート及びネットワークマネージャ910及び915は、1以上のコントローラ940を使用して、1以上の構成データストレージ935に格納されている構成データを、ホストコンピュータ、転送要素(例えば、ホストコンピュータ上で実行中のソフトウェアスイッチ及びルータ、またはスタンドアロンのスイッチ及びルータ)、サービスマシン(例えば、サービスVM、サービスコンテナ、他のサービスもジュール、及びスタンドアロンサービスアプライアンス)、及びSDDC内の他のリソースに配布する。
The
APIゲートウェイ920は、URLパターンに基づいて、すべてのAPIコマンドをAPIサービスモジュール925、または場合によってはUIマネージャ922にリダイレクトする。UIマネージャ922は、グラフィカルユーザインタフェースを介して受信されるAPIコマンドを処理し、これらのコマンドをAPIプロセッサ925に指示する。APIプロセッサ925は、受信されたアプリケーションマニフェストの一部である異なる要求が構成データストレージ935に永続化され、正しい順序でデプロイされることを確実にするために、図2及び3に示されるプロセスを実行する。APIプロセッサ925は、データストレージ932に格納するユーザの所望の状態を所有する。いくつかの実施形態では、APIプロセッサ925は、VMまたはコンテナとして実行される。
The
図示されるように、いくつかの実施形態では、APIプロセッサ925は、SDDCリソースのマルチセグメントアプリケーション構成を指定するいくつかのマニフェストテンプレート929にアクセスできる、テンプレートマネージャ927を使用する。テンプレートマネージャ927を介して、ユーザは、完成したマニフェストを生成するために、(例えば、APIコマンドを介して)テンプレートを選択し、修正することができる。そしてこの完成したマニフェストに基づいて、APIプロセッサ925は、以前にデプロイされた一連のSDDCリソースをデプロイまたは更新して、以前にデプロイされたマルチセグメントアプリケーションをデプロイまたは調整できる。
As shown, in some embodiments, the
受信したマニフェスト内の要求、または要求された入力を有するマニフェストテンプレートの読み出しによって完成したマニフェストに基づいて、リソースをデプロイするか、以前にデプロイされたリソースを更新するために、いくつかの実施形態では、APIプロセッサ925は、マニフェストを1つ以上の要求にパースし、ポリシーチェックエンジン923を使用して各要求を検証する(即ち、各要求がポリシーストレージ924に格納されており、要求で参照されたリソースに適用可能なポリシーで指定された制約を満たすかどうかを指定する)。
To deploy resources or update previously deployed resources based on the requests in a received manifest or a completed manifest by reading a manifest template with the required inputs, in some embodiments, the
いくつかの実施形態では、ポリシーストレージ924の各ポリシーは、(1)ポリシーが適用される1以上のデータセンタリソースのセットを指定するターゲットと、(2)指定されたリソースセットに対する操作の制約を指定する式とを含む。いくつかの実施形態では、ポリシーは宣言フォーマットで表現される。故に、マニフェスト内の要求ごとに、ポリシーエンジンは、選択された要求のリソースの属性のセットをポリシーのターゲットと比較して、ポリシーがリソースに適用可能か否かを判断する。1つの適用可能なポリシーを特定した後、ポリシーチェックエンジンは、特定されたポリシーの式が、選択されたリクエストを拒否するか許可するかを要求する制約を指定しているか否かを判断する。
In some embodiments, each policy in
デプロイメントプラグイン930を介して、APIプロセッサ925は、構成データベース935のAPIコール内のSDリソースデータを永続化する。いくつかの実施形態では、デプロイメントプラグイン930は、VMまたはコンテナとして実行される。各プラグイン930は、1以上のSDリソースタイプをデプロイする実行能力を有する。そのようなタイプの例には、データコンピュートノード(例えば、VMまたはコンテナのようなコンピュートマシン)、分散ファイアウォールルール、エッジファイアウォールルール、L2及びL3転送要素(ソフトウェアスイッチ予備ルータ)、セキュリティグループ、VPNサービス、DHCPサービス、DNSサービス、ロードバランシングサービス等が含まれる。
Through the
これらのサービスをデプロイするために、プラグイン930は、コンピュートマネージャ910及びネットワークマネージャ915と相互作用し、これらは、順番に、1以上のコントローラ940と相互作用する。これらのマネージャ及びコントローラを介して、プラグイン930は、これらのコンピュータ及びデバイスに所望のSDリソースをデプロイするように指示するために、永続的データベース935からの構成データをSDDC内のホストコンピュータ及びスタンドアロンネットワーク/サービスデバイスに分配する。
To deploy these services,
いくつかの実施形態では、SDDCインスタンスごとに1つの所望の状態およびオーケストレーションサービス(即ち、API処理モジュール)が存在する。これは、いくつかの実施形態ではコンテナまたはVMの形態でデプロイされる、利用可能性の高いサービスである。このサービスは、ユーザのインテントを受け入れ、異なるサービス間でオーケストレーションを実行する。またこのサービスは、ポリシーをプッシュダウンする必要がある実施ポイント(コンピュート及びネットワークマネージャ)の詳細を所有している。 In some embodiments, there is one desired state and orchestration service (i.e., API processing module) per SDDC instance. This is a highly available service that is deployed in the form of a container or VM in some embodiments. This service accepts the user intent and performs the orchestration between different services. This service also owns the details of the enforcement points (compute and network managers) to which policies need to be pushed down.
デプロイメントプラグイン930は、インテントの実現を提供する。上述したように、いくつかの実施形態では、これらのプラグインのそれぞれは、別個のコンテナまたはVMで実行される別個のサービスとしてデプロイされる。いくつかの実施形態では、いくつかのサービスは、単一のコンテナ内に一緒にパッケージ化されるが、設計及び通信の観点では別個のサービスとして実行される。オーケストレーションは所望の状態サービスによって実行されるため、いくつかの実施形態における各プラグインサービスは、起動されるであろうREST APIエンドポイントのセットを公開する。また、いくつかの実施形態では、所望の状態サービスは、異なるサービスにわたって実現されたリソースの状態を返す共通サービスとして働く。これは、いくつかの実施形態では、実現された状態データがプラグインサービスによってデータストア内で更新される場合であっても同様である。
従って、マニフェストの実行は、一挙に所望の状態を生成することになる。システムがインテント全体を検証して永続化できる場合、マニフェストのソースに通知が送信される(例えば、http status code 200 OKが返される)。インテントが作成されると、通知が生成される。これらの通知は、デプロイプラグインによって非同期に消費される。次に、デプロイメントプラグインは、当該インテントを実現することを処理する。ステータスAPIを使用して、システムから実現状況を問い合わせることができる。
Thus, the execution of the manifest produces the desired state in one fell swoop. If the system can validate and persist the entire intent, a notification is sent to the source of the manifest (e.g.,
いくつかの実施形態では、API処理システム900は、階層的にインテントをクエリする能力をユーザに提供する。例えば、いくつかの実施形態では、システムは、一挙にインテント全体を読み取ることを促進するGET APIを提供する。専用のフラグはURLパラメータに渡され、階層的にGETを要求する。パラメータが渡されない場合、一部の実施形態におけるGETは、通常のGETとして機能し、単一のリソースが返される。いくつかの実施形態では、階層型GETは、ツリー全体またはツリーの部分に対して機能することができ、即ち、階層型GETは、ツリー内の任意のレベルから機能することができるため、階層が取得されるノードを指定することができる。
In some embodiments, the
階層型GETの別の態様は、いくつかの実施形態におけるフィルタリングである。これらの実施形態において、管理者は、インテントツリーをフィルタして、自分の関心があるタイプのみを閲覧することができる。当該フィルタリングは、単純なタイプベースのフィルタリングであってよく、例えば、管理者は、「Domain」タイプのインテント階層をGETと言うことができる。高度なフィルタリングメカニズムでは、ユーザは、機能に基づいて意図を取得することを選択することができ、例えば、管理者は、ファイアウォール機能に関連するインテント階層において、すべてのリソースをGETと言うことができる。 Another aspect of hierarchical GET is filtering in some embodiments. In these embodiments, an administrator can filter the intent tree to see only the types that they are interested in. Such filtering can be simple type-based filtering, for example, an administrator can say GET the intent hierarchy for the "Domain" type. In advanced filtering mechanisms, the user can choose to get intent based on function, for example, an administrator can say GET all resources in the intent hierarchy related to the firewall function.
いくつかの実施形態において、ユーザは階層型GETを実行し、それを階層型POSTでクラブすることができる。いくつかの実施形態では、管理者は、インテント階層を取得し、それを修正してPOSTすることができる。これにより、「インポート/エクスポート」のユースケースが有効になる。いくつかの実施形態では、管理者は、マニフェストを取得し、それを格納することもできる。その後、管理者は、以前に取得したインテントを復元できる。 In some embodiments, a user can perform a hierarchical GET and club it with a hierarchical POST. In some embodiments, an administrator can get the intent hierarchy, modify it, and POST it. This enables "import/export" use cases. In some embodiments, an administrator can also get the manifest and store it. The administrator can then restore the previously obtained intents.
図10は、いくつかの実施形態がどのように、コンテキストベースのファイアウォールルールをホストコンピュータで実施するかを示している。いくつかの実施形態では、SDDCは、ホストコンピュータ上でそのようなコンテキストベースのルールを定義して実施することによって、その所望のセグメンテーション通信プロファイルを達成する。上述したように、マニフェスト処理フレームワークは、マニフェスト内で定義された通信プロファイルールを変換し、それをネットワーク管理層(即ち、ネットワークマネージャクラスタ)がアプリケーションに必要なマイクロ・セグメンテーションを達成するために処理できるルールにコンバートする。 Figure 10 illustrates how some embodiments implement context-based firewall rules on a host computer. In some embodiments, the SDDC achieves its desired segmentation communication profile by defining and implementing such context-based rules on the host computer. As described above, the manifest processing framework translates the communication profile rules defined in the manifest and converts them into rules that the network management layer (i.e., the network manager cluster) can process to achieve the micro-segmentation required for the application.
図10は、グループ化プロバイダを使用して、マニフェストで定義されたこれらのアプリケーションセグメントを、プロセス名/ハッシュに基づいてセキュリティグループにマッピングする一連のルールを受信するネットワーク管理クラスタを示している。ネットワーク管理クラスタは、マニフェストで定義された通信プロファイルに基づいて、これらのプロセスベースのグループに一致する、変換されたファイアウォールルールも受信する。処理ベースのグループ及びファイアウォールルールが作成されると、マネージャクラスタ1005のファイアウォールマネージャ1010は、ルールをSDDC内のホストコンピュータ及び他の実施ノードに分配する。
Figure 10 shows the network management cluster receiving a set of rules that use the grouping provider to map these application segments defined in the manifest to security groups based on process name/hash. The network management cluster also receives translated firewall rules that match these process-based groups based on the communication profiles defined in the manifest. Once the process-based groups and firewall rules are created, the
ファイル、モジュール、及び他のプロセスデータをネットワークイベントにマップするため、いくつかの実施形態は、マシン1015(例えば、ホストVM及びコンテナ)上で実行されるゲストイントロスペクション(GI)エージェント1020を通じて捕捉されたコンテキストデータを用いる。いくつかの実施形態では、GIエージェント1020は、任意のゲストネットワーク接続及びファイルアクセス、並びにその関連プロセスコンテキストを捕捉する。いくつかの実施形態では、すべてのネットワーク接続及びファイルアクセスは、このエージェントによって傍受され、ホスト上で実行されるコンテキストサービスエンジン1030に送られる。Vmware社によって提供されるESXハイパーバイザでは、コンテキストデータは、Mux 1025と呼ばれるハイパーバイザコンポーネントを介して、GIエージェントからホストコンピュータ上で実行されるコンテキストエンジンにネットワークイベント及びファイルイベントを送信するための導管として機能するコンテキストエンジン1030に送られる。この情報を使用して、コンテキストエンジンは、ゲストVMによって開始される、ユーザ、ソースIPアドレス、ソースポート、プロトコル、及びプロセス情報についての情報を含むコンテキストテーブル1035を更新する。
To map file, module, and other process data to network events, some embodiments use context data captured through a Guest Introspection (GI) agent 1020 running on the machine 1015 (e.g., host VM and container). In some embodiments, the GI agent 1020 captures any guest network connections and file accesses and their associated process context. In some embodiments, all network connections and file accesses are intercepted by this agent and sent to a
その後、データコンピュートマシン1015がネットワークコネクションを行うと、ホストコンピュータ上で実行するファイアウォールモジュール1040は、発信パケットを検査し、コンテキストテーブルからのパケットフローにコンテキスト情報を関連付け、ファイアウォールテーブル内のルールと一致させることによって、プロセスレベルで有効なファイアウォールルールを実施する。VM上で実行されているプロセスのこのレベルのきめ細かな制御は、管理者が環境にインストールされている未承認のソフトウェア/アプリケーションを検出し、さらにシステム内で実行されている悪意のあるプロセスをブロックすることに役立つ。有効なルールの実現は、ネットワーク管理クラスタに返送され、管理者にデプロイされたアプリケーションのステータスと有効なルールを提供する。コンテキストベースのファイアウォール及び他のミドルボックスサービスエンジンは、2018-0181423として公開された米国特許出願第15/650,251号にさらに記載されており、参照により本明細書に組み込まれる。
Subsequently, when the data compute
いくつかの実施形態では、マニフェスト処理フレームワークは、インテントベースの学習エンジンを有する。ゲストマシン(例えば、ゲストVMまたはコンテナ)にインストールされたGIエージェントを使用して、マニフェスト処理フレームワークは、検出されたネットワークアクティビティに関与するプロセスだけでなく、インストールされたバイナリ、及びこれらのアクティビティに関連するファイル属性も識別することができる。最も一般的な属性には、ファイルハッシュ、パブリッシャ情報、インストールパス、証明書等が含まれる。いくつかの実施形態では、これらの識別されたプロセス及び他の属性は、新しいマルチセグメントアプリケーションテンプレートを生成するために、デプロイメント環境から(例えば、ホストコンピュータから)収集され、学習エンジンによって解析される。収集されて解析されたデータは、一部の管理者が一般的にどのようにマルチセグメントアプリケーション(例えば、新しいマルチセグメントアプリケーション)をデプロイするかを示す。いくつかの実施形態では、学習エンジンは、収集されたデータから共通のデプロイメント属性を判別し、その解析に基づいて、新しいマルチセグメントマニフェストテンプレートを推奨する。 In some embodiments, the manifest processing framework has an intent-based learning engine. Using a GI agent installed on the guest machine (e.g., guest VM or container), the manifest processing framework can identify not only the processes involved in the detected network activity, but also the installed binaries and file attributes associated with these activities. The most common attributes include file hashes, publisher information, installation paths, certificates, etc. In some embodiments, these identified processes and other attributes are collected from the deployment environment (e.g., from the host computer) and analyzed by the learning engine to generate a new multi-segment application template. The collected and analyzed data indicates how some administrators typically deploy multi-segment applications (e.g., new multi-segment applications). In some embodiments, the learning engine determines common deployment attributes from the collected data and recommends a new multi-segment manifest template based on the analysis.
上述したように、GIエージェントによって捕捉されたネットワークイベント及びファイルイベントは、コンテキストテーブルに格納される。ここから、図11に示されるように、マニフェスト処理フレームワークは、これらの捕捉されたイベントに関するデータを収集することができる。いくつかの実施形態では、このデータは、収集時間とアプリケーションワークロードに応じて非常に大きくなり得るため、別個のサーバクラスタまたはアプライアンスのセットで収集される。この情報は、ホスト内の各VMで見られるすべてのプロセスについて、ホストレベルで格納される。 As mentioned above, network and file events captured by the GI agent are stored in a context table. From here, the manifest processing framework can collect data about these captured events, as shown in FIG. 11. In some embodiments, this data is collected on a separate server cluster or set of appliances, as it can become very large depending on the collection time and application workload. This information is stored at the host level for all processes found on each VM within the host.
いくつかの実施形態では、収集されたネットワーク及びファイルイベントデータは、その後、VM内のプロセスレベルで適切なセグメンテーションを得るためにカスタマイズされたアプリケーションテンプレートを生成するために、集約されてモデル化される。ネットワークイベントごとに、GI エージェントは、対応するプロセス、ソケット、接続レート、接続のタイプを取得できる。いくつかの実施形態におけるフレームワークは、そのインスタンスでプロセスによって使用されるライブラリと、プロセスによってアクセスされるファイルとを照会するために確立された通信チャネルを有する。 In some embodiments, the collected network and file event data is then aggregated and modeled to generate customized application templates for proper segmentation at the process level within the VM. For each network event, the GI agent can retrieve the corresponding process, socket, connection rate, and type of connection. The framework in some embodiments has communication channels established to query the libraries used by the process and the files accessed by the process in that instance.
このデータは、ラウンドトリップ時間、一日の時間、及び他のプロセスとの相関関係に加えて、いくつかの実施形態では、教師なしまたは半教師付き機械学習モデルを訓練するために使用される。いくつかの実施形態は、プロセス情報を識別するために1クラスサポートベクタマシン(SVM)分類機を使用する。SVMモジュールは、「正常」なデータが多く、異常を検出する必要があるケースが少ないシナリオで有用である。 This data, along with round trip times, time of day, and correlations with other processes, in some embodiments is used to train unsupervised or semi-supervised machine learning models. Some embodiments use a one-class support vector machine (SVM) classifier to identify process information. The SVM module is useful in scenarios where there is a lot of "normal" data and few cases where anomalies need to be detected.
1クラスSVMは、新規性検出のための決定関数を学習する教師なしアルゴリズムであり、新しいデータをトレーニングセットと類似または異なるものとして分類する。SVMは、分類タスクに使用することができる教師付き学習モデルである。典型的には、SVMには、n-d空間にマッピングすることができるラベル付けされたデータが与えられる。異なるカテゴリは、明確なギャップによって分割され、SVMは可能な限り広いカテゴリを見つける。新しいデータサンプルは、ギャップのどの側に入るかに基づいて、1つのカテゴリに属するように分類される。一部の実施形態は、見られた新しいデータに基づいて情報を分類または処理し、管理者がネットワークを保護するために必要とする適切なアプリケーションテンプレートのセットを推奨する。このモデルを使用して、いくつかの実施形態は、実行中のアプリケーション及びそれらに対応するプロセスを予測することができる。このようにすることで、モデルは新しいアプリケーションの識別に役立ち、アプリケーションを保護するために適切なアプリケーションテンプレートを推奨する。 One-class SVM is an unsupervised algorithm that learns a decision function for novelty detection, classifying new data as similar or different from the training set. SVM is a supervised learning model that can be used for classification tasks. Typically, the SVM is given labeled data that can be mapped to an n-d space. Different categories are divided by clear gaps, and the SVM finds the broadest possible category. New data samples are classified as belonging to one category based on which side of the gap they fall on. Some embodiments classify or process the information based on the new data seen and recommend a set of appropriate application templates that the administrator needs to protect the network. Using this model, some embodiments can predict running applications and their corresponding processes. In this way, the model helps identify new applications and recommends appropriate application templates to protect them.
上述の実施形態は、いくつかの利点を提供する。それらは、階層型APIデータモデルを介してマルチセグメントアプリケーションをデプロイする、インテントベースのAPI処理システムを提供しており、ユーザはこれらのリソースの永続化や実現の仕組みを気にすることなく、それらのインテント(例えば、複数のアプリケーションセグメントやそれらの間の通信プロファイル)を指定することができる。いくつかの実施形態では、インテントベースのAPIシステムは、単純化された階層型データモデルを参照する単純な宣言型言語を使用することにより、階層型APIコマンドを定義することをユーザに可能ならしめる。各階層型APIコマンドは、以前のAPIコマンドで特定のSDリソースを他のリソースよりも先に作成する必要はなく、SDDC内の複数のリソースレベルで複数のSDリソースを定義できる。実際、いくつかの実施形態では、1つの階層型コマンドは、SDDCの(例えば、マルチテナントSDDCの)1つのユーザ(例えば、1つのテナント)のすべてのSDリソースの定義に使用することができる。 The above-described embodiments provide several advantages. They provide an intent-based API processing system for deploying multi-segment applications through a hierarchical API data model, allowing users to specify their intents (e.g., multiple application segments and communication profiles between them) without worrying about how these resources are persisted or realized. In some embodiments, the intent-based API system allows users to define hierarchical API commands by using a simple declarative language that references a simplified hierarchical data model. Each hierarchical API command can define multiple SD resources at multiple resource levels within an SDDC, without requiring that a particular SD resource be created before another in a previous API command. Indeed, in some embodiments, one hierarchical command can be used to define all SD resources for one user (e.g., one tenant) of an SDDC (e.g., a multi-tenant SDDC).
いくつかの実施形態のマニフェスト処理フレームワークは、データモデルの階層を活用して、単一のAPI呼び出しで階層の一部または全体を受け入れ、検証し、実現するためのプロセスを提供する。このシステムは、データモデルの固有の知識を利用して、依存性を識別し、インテントの永続化と実現の両方のために、基盤となるサービスを正しい順序で呼び出す。また、すべての永続化は、単一のトランザクションで行われるため、インテント全体がアトミックユニットとして受け入れられるようになる。 The manifest processing framework of some embodiments leverages the hierarchy of the data model to provide a process for accepting, validating, and fulfilling part or all of the hierarchy in a single API call. The system leverages inherent knowledge of the data model to identify dependencies and invoke the underlying services in the correct order to both persist and fulfill the intent. Additionally, all persistence is done in a single transaction, allowing the entire intent to be accepted as an atomic unit.
受信したマニフェストで定義されたマルチセグメントアプリケーションがデプロイ可能であると、マニフェスト処理フレームワークが決定すると、いくつかの実施形態では、APIシステムは非同期プロセスを使用して、管理者からのさらなる入力なしに、適切な順序でリソースを自動的にデプロイする。このプロセスは、1以上のネットワーク、サービス、またはコンピュートマネージャと連携して、デプロイされたリソースに適した作業指示に基づいて、1以上のネットワーク、サービス、またはコンピュートリソースをデプロイまたは更新する。 When the manifest processing framework determines that a multi-segment application defined in a received manifest is deployable, in some embodiments, the API system uses an asynchronous process to automatically deploy the resources in the appropriate order without further input from an administrator. This process coordinates with one or more network, service, or compute managers to deploy or update one or more network, service, or compute resources based on work orders appropriate for the deployed resources.
上記の機能及びアプリケーションの多くは、コンピュータ読み取り可能な記録媒体(コンピュータ可読媒体とも呼ばれる)に記録された一連の命令として指定されるソフトウェアプロセスとして実装される。これらの命令が1以上の処理ユニット(例えば、1以上のプロセッサ、プロセッサコア、または他の処理ユニット)によって実行される場合、それらは、命令に示された動作を該処理ユニットに実行させる。コンピュータ可読媒体の例としては、CD-ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等を含むが、これらに限定されない。コンピュータ可読媒体は、無線または有線接続を介して通過する搬送波および電気信号を含まない。 Many of the functions and applications described above are implemented as software processes specified as a series of instructions recorded on a computer-readable recording medium (also called a computer-readable medium). When these instructions are executed by one or more processing units (e.g., one or more processors, processor cores, or other processing units), they cause the processing units to perform the operations indicated in the instructions. Examples of computer-readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. Computer-readable media does not include carrier waves and electrical signals that pass over wireless or wired connections.
本明細書では、「ソフトウェア」という文言は、読み取り専用メモリに常駐するファームウェア、またはプロセッサによって処理するためにメモリに読み取ることができる磁気記憶装置に格納されたアプリケーションを含むことを意味する。またいくつかの実施形態では、複数のソフトウェア発明は、別個のソフトウェア発明を残しながら、より大きなプログラムのサブパーツとして実装され得る。いくつかの実施形態では、複数のソフトウェア発明は、別個のプログラムとしても実装され得る。最後に、ここに記載されるソフトウェア発明を一緒に実装する別個のプログラムの任意の組合せは、本発明の範囲内にある。いくつかの実施形態では、ソフトウェアプログラムは、1以上の電子システム上で動作するようにインストールされた場合、当該ソフトウェアプログラムの動作を実行し実行する1以上の特定のマシン実装を定義する。 As used herein, the term "software" is meant to include firmware resident in read-only memory or applications stored on magnetic storage that can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions may be implemented as subparts of a larger program while remaining separate software inventions. In some embodiments, multiple software inventions may also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described herein is within the scope of the invention. In some embodiments, a software program, when installed to operate on one or more electronic systems, defines one or more specific machine implementations that execute and perform the operations of the software program.
図12は、本発明のいくつかの実施形態が実装されるコンピュータシステム1200を概念的に示している。コンピュータシステム1200は、上述のホスト、コントローラ、及びマネージャのいずれかを実装するために使用することができる。このように、それは、上述のプロセスのいずれかを実行するために使用することができる。このコンピュータシステムは、様々なタイプの非一時的な機械可読媒体と、様々な他のタイプの機械可読媒体のためのインタフェースと、を含む。コンピュータシステム1200は、バス1205、処理部1210、システムメモリ1225、読み取り専用メモリ1230、恒久記憶装置1235、入力デバイス1240、及び出力デバイス1245を含む。
Figure 12 conceptually illustrates a
バス1205は、コンピュータシステム1200の多数の内部デバイスを通信可能に接続する、すべてのシステムバス、周辺バス、及びチップセットバスを集合的に表す。例えば、バス1205は、処理部1210を読み取り専用メモリ1230、システムメモリ1225、及び恒久記憶装置1235と通信可能に接続する。
これらの様々なメモリユニットから、本発明のプロセスを実行するために、処理部1210は実行すべき命令および処理すべきデータを取得する。処理部は、様々な実施形態において、単一プロセッサまたはマルチコアプロセッサであってもよい。読み取り専用メモリ(ROM)1230は、処理部1210及びコンピュータシステムの他のモジュールによって必要とされる、静的データ及び命令を格納する。一方、恒久記憶装置1235は、読み書き可能な記憶デバイスである。当該デバイスは、コンピュータシステム1200がオフのときでも、命令及びデータを格納する不揮発性メモリユニットである。本発明のいくつかの実施形態は、恒久記憶装置1235として大容量記憶装置(磁気または光ディスク、及びそれら対応するディスクドライブ等)を使用する。
From these various memory units, the
他の実施形態は、恒久記憶装置として、取り外し可能な記憶装置(フロッピーディスク、フラッシュドライブ等)を使用する。恒久記憶装置1235と同様に、システムメモリ1225は、読み書き可能な記憶デバイスである。しかしながら、記憶装置1235とは異なり、システムメモリは、ランダムアクセスメモリのような揮発性の読み取り/書き込みメモリである。システムメモリは、実行時にプロセッサが必要とする、命令及びデータの一部を格納する。いくつかの実施形態では、本発明のプロセスは、システムメモリ1225、恒久記憶装置1235、及び/または読み取り専用メモリ1230に格納される。これらの様々なメモリユニットから、いくつかの実施形態のプロセスを実行するために、処理部1210は実行すべき命令及び処理すべきデータを取得する。
Other embodiments use removable storage devices (e.g., floppy disks, flash drives, etc.) as persistent storage devices. Like
また、バス1205は、入力デバイス1240及び出力デバイス1245に接続する。入力デバイスは、ユーザがコンピュータシステムに情報を伝達したり、コマンドを選択したりすることを可能にする。入力デバイス1240は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス1245は、コンピュータシステムによって生成された画像を表示する。出力デバイスは、プリンタと、陰極線管(CRT)ディスプレイまたは液晶ディスプレイ(LCD)等の表示装置とを含む。一部の実施形態は、入力デバイス及び出力デバイスの両方として機能するタッチスクリーン等の装置を含む。
最後に、図12に示されるように、バス1205はまた、ネットワークアダプタ(不図示)を介してコンピュータシステム1200をネットワーク1265に結合する。このようにすることで、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、またはイントラネット等)、またはネットワークのネットワーク(インターネット等)の一部であってもよい。コンピュータシステム1200の任意のまたはすべての構成要素は、本発明と併せて使用されてよい。
12,
いくつかの実施形態は、(コンピュータ読み取り可能な記録媒体、機械可読媒体、または機械読み取り可能な記録媒体と代替的に呼ばれる)機械読み取りまたはコンピュータ読み取りが可能な媒体に、コンピュータプログラム命令を格納する、マイクロプロセッサ、ストレージ及びメモリ等の電子部品を含む。このようなコンピュータ可読媒体のいくつかの例としては、RAM、ROM、読み取り専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、読取り専用デジタル汎用ディスク(例えば、DVD-ROM、二層DVD-ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、miniSDカード、microSDカード等)、磁気及び/またはソリッドステートハードドライブ、読み取り専用及び記録可能なブルーレイ(登録商標)ディスク、超密度光ディスク、任意の他の光または磁気媒体、及びフロッピーディスクが含まれる。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、様々な動作を実行するための命令のセットを含むコンピュータプログラムを記憶してもよい。コンピュータプログラムまたはコンピュータコードの例には、コンパイラによって生成されるようなマシンコード、及びインタープリタを使用してコンピュータ、電子コンポーネント、またはマイクロプロセッサによって実行される高レベルコードを含むファイルが含まれる。 Some embodiments include electronic components, such as a microprocessor, storage, and memory, that store computer program instructions on a machine-readable or computer-readable medium (alternatively referred to as a computer-readable recording medium, a machine-readable medium, or a machine-readable recording medium). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROMs), recordable compact discs (CD-Rs), rewritable compact discs (CD-RWs), read-only digital versatile discs (e.g., DVD-ROMs, dual-layer DVD-ROMs), various recordable/rewritable DVDs (e.g., DVD-RAMs, DVD-RWs, DVD+RWs, etc.), flash memory (e.g., SD cards, miniSD cards, microSD cards, etc.), magnetic and/or solid-state hard drives, read-only and recordable Blu-ray discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable medium may store a computer program executable by at least one processing unit and including a set of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as produced by a compiler, and files containing high-level code that is executed by a computer, electronic component, or microprocessor using an interpreter.
上記の議論は主に、ソフトウェアを実行するマイクロプロセッサまたはマルチコアプロセッサに言及しているが、いくつかの実施形態は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)等の1以上の集積回路によって実行される。いくつかの実施形態では、このような集積回路が、回路自体に格納された命令を実行する。 Although the above discussion has primarily referred to microprocessors or multi-core processors executing software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuit itself.
本明細書で用いられる「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」との文言はすべて、電子デバイスまたは他の技術的デバイスを指す。これらの文言は、人間または人間のグループを除外する。本明細書の目的のために、「ディスプレイ」または「表示」との文言は、電子デバイス上に表示することを意味する。本明細書で使用されるように、「コンピュータ可読媒体」、「コンピュータ可読媒体」、及び「機械可読媒体」との文言は、コンピュータによって読み取り可能な形式で情報を格納する、有形の物理的オブジェクトに完全に限定される。これらの文言は、任意の無線信号、有線ダウンロード信号、及び任意の他の刹那的または一時的な信号を除外する。 As used herein, the terms "computer," "server," "processor," and "memory" all refer to electronic or other technological devices. These terms exclude humans or groups of humans. For purposes of this specification, the terms "display" or "displaying" mean displaying on an electronic device. As used herein, the terms "computer-readable medium," "computer-readable medium," and "machine-readable medium" are entirely limited to tangible, physical objects that store information in a form that can be read by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral or transitory signals.
本発明を多数の特定の詳細を参照して説明してきたが、本発明の精神から逸脱することなく、他の特定の形態で本発明を実施であることは、当業者に理解されよう。従って、当業者は、本発明が前述の例示的な詳細によって限定されるべきではなく、添付の特許請求の範囲によって定義されるべきであることを理解するであろう。 Although the present invention has been described with reference to numerous specific details, those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from the spirit of the invention. Accordingly, those skilled in the art will appreciate that the present invention should not be limited by the illustrative details set forth above, but should instead be defined by the scope of the appended claims.
Claims (23)
前記SDDC内に実装する前記アプリケーションの複数のセグメントを指定し、当該アプリケーションの前記セグメント間のデータメッセージの転送を制御する複数のルールを定義する階層型アプリケーションプログラミングインタフェース(API)コマンドであって、処理された場合に、前記SDDC内に前記アプリケーションをデプロイし、前記アプリケーションのセグメント間の前記データメッセージの転送を制御するための前記複数のルールをデプロイする複数の要求を有する階層型APIコマンドを作成し、
複数のマルチセグメントアプリケーションを定義するために用いられる複数のカスタマイズ可能なテンプレートに、特定のテンプレートとして前記階層型APIコマンドを格納し、
前記マルチセグメントアプリケーションのセグメントのセット及び前記マルチセグメントアプリケーションの前記セグメント間の通信を指定するためのルールのセットを定義するマニフェストを定義するために、前記特定のテンプレートが取得及びカスタマイズされることを許可するグラフィカルユーザインタフェースまたはAPIゲートウェイを提供する
ことを特徴とする方法。 1. A method for defining a multi-segment application in a software-defined data center (SDDC), comprising:
creating hierarchical application programming interface (API) commands that specify a plurality of segments of the application to be implemented within the SDDC and define a plurality of rules for controlling the transfer of data messages between the segments of the application, the hierarchical API commands having a plurality of requests that, when processed, deploy the application within the SDDC and deploy the plurality of rules for controlling the transfer of data messages between the segments of the application;
storing the hierarchical API commands as specific templates in a plurality of customizable templates used to define a plurality of multi-segment applications;
A method comprising: providing a graphical user interface or API gateway that allows the particular template to be obtained and customized to define a manifest that defines a set of segments of the multi-segment application and a set of rules for specifying communication between the segments of the multi-segment application.
前記SDDC内にデプロイするためのリソースの複数のセットを指定し、前記リソースに関連付けられたデータメッセージフローを制御するルールの複数のセットを定義する階層型APIコマンドを受信し、
前記階層型APIコマンドを、前記リソースの複数のセット及び前記ルールの複数のセットを指定する複数の要求へパースし、
前記複数の要求のためのソート順序を定義し、
前記ソート順序に基づいて、サーバのセットに前記複数の要求を提供し、
前記サーバのセットに提供される前記複数の要求に基づいて、前記リソースの複数のセットをSDDC内にデプロイし、前記リソースに関連付けられた前記データメッセージフローを制御するために前記SDDC内のネットワーク要素のセットに前記ルールの複数のセットを提供する
ことを特徴とする方法。 1. A method for deploying resources in a software-defined data center (SDDC), comprising:
receiving hierarchical API commands that specify a plurality of sets of resources for deployment within the SDDC and define a plurality of sets of rules that control data message flow associated with the resources ;
Parsing the hierarchical API command into a plurality of requests specifying a plurality of sets of the resources and a plurality of sets of the rules;
defining a sort order for the plurality of requests;
providing the plurality of requests to a set of servers based on the sort order ;
Deploy the sets of resources within an SDDC based on the requests provided to the set of servers, and provide the sets of rules to a set of network elements within the SDDC to control the data message flows associated with the resources.
A method comprising:
前記複数のリソースのデプロイは、前記パースされたAPIコマンドにおいて指定されたパラメータのセットに基づいて、前記先にデプロイされたマシンを更新することを含むことを特徴とする請求項12に記載の方法。 The API command includes a set of parameters to update a previously deployed machine;
13. The method of claim 12, wherein the deploying of the plurality of resources comprises updating the previously deployed machine based on a set of parameters specified in the parsed API command.
前記複数のリソースのデプロイは、前記パースされたAPIコマンドにおいて指定されたパラメータのセットに基づいて、前記先に提供されたルールのセットを更新することを含む
ことを特徴とする請求項12に記載の方法。 The API command includes a set of parameters that update a previously deployed set of rules;
13. The method of claim 12, wherein deploying the plurality of resources includes updating the set of previously provided rules based on a set of parameters specified in the parsed API command.
前記処理ユニットの少なくとも1つによって実装された場合に、請求項1乃至21のいずれか1項に記載の方法を実装するプログラムを格納した機械可読媒体と、
を有することを特徴とするコンピュータデバイス。 A set of processing units;
A machine-readable medium storing a program which, when implemented by at least one of said processing units, implements the method of any one of claims 1 to 21;
1. A computing device comprising:
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/112,408 | 2018-08-24 | ||
| US16/112,396 | 2018-08-24 | ||
| US16/112,408 US11086700B2 (en) | 2018-08-24 | 2018-08-24 | Template driven approach to deploy a multi-segmented application in an SDDC |
| US16/112,396 US10628144B2 (en) | 2018-08-24 | 2018-08-24 | Hierarchical API for defining a multi-segmented application in an SDDC |
| JP2021505355A JP7157238B2 (en) | 2018-08-24 | 2019-08-14 | Hierarchical API to define multi-segment applications in SDDC |
| PCT/US2019/046565 WO2020041073A1 (en) | 2018-08-24 | 2019-08-14 | Hierarchical api for defining a multi-segmented application in an sddc |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021505355A Division JP7157238B2 (en) | 2018-08-24 | 2019-08-14 | Hierarchical API to define multi-segment applications in SDDC |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022191348A JP2022191348A (en) | 2022-12-27 |
| JP7502386B2 true JP7502386B2 (en) | 2024-06-18 |
Family
ID=67811023
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021505355A Active JP7157238B2 (en) | 2018-08-24 | 2019-08-14 | Hierarchical API to define multi-segment applications in SDDC |
| JP2022161790A Active JP7502386B2 (en) | 2018-08-24 | 2022-10-06 | Hierarchical API for defining multi-segment applications in SDDC |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021505355A Active JP7157238B2 (en) | 2018-08-24 | 2019-08-14 | Hierarchical API to define multi-segment applications in SDDC |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP3814904A1 (en) |
| JP (2) | JP7157238B2 (en) |
| CN (1) | CN112639740B (en) |
| AU (2) | AU2019325228B2 (en) |
| CA (1) | CA3107455A1 (en) |
| WO (1) | WO2020041073A1 (en) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10812337B2 (en) | 2018-06-15 | 2020-10-20 | Vmware, Inc. | Hierarchical API for a SDDC |
| US10942788B2 (en) | 2018-06-15 | 2021-03-09 | Vmware, Inc. | Policy constraint framework for an sddc |
| US11086700B2 (en) | 2018-08-24 | 2021-08-10 | Vmware, Inc. | Template driven approach to deploy a multi-segmented application in an SDDC |
| CN115380514B (en) | 2020-04-01 | 2024-03-01 | 威睿有限责任公司 | Automatic deployment of network elements for heterogeneous computing elements |
| US11803408B2 (en) | 2020-07-29 | 2023-10-31 | Vmware, Inc. | Distributed network plugin agents for container networking |
| US11863352B2 (en) | 2020-07-30 | 2024-01-02 | Vmware, Inc. | Hierarchical networking for nested container clusters |
| US11606254B2 (en) | 2021-06-11 | 2023-03-14 | Vmware, Inc. | Automatic configuring of VLAN and overlay logical switches for container secondary interfaces |
| US12231398B2 (en) | 2022-01-14 | 2025-02-18 | VMware LLC | Per-namespace IP address management method for container networks |
| EP4494314A1 (en) | 2022-03-18 | 2025-01-22 | VMware LLC | Mapping vlan of container network to logical network in hypervisor to support flexible ipam and routing container traffic |
| US12177124B2 (en) | 2022-10-04 | 2024-12-24 | VMware LLC | Using CRDs to create externally routable addresses and route records for pods |
| US11848910B1 (en) | 2022-11-11 | 2023-12-19 | Vmware, Inc. | Assigning stateful pods fixed IP addresses depending on unique pod identity |
| US12199833B2 (en) | 2022-11-29 | 2025-01-14 | VMware LLC | Network controller as a service (NCaaS) to define network policies for third-party container clusters |
| US12267212B2 (en) | 2022-11-29 | 2025-04-01 | VMware LLC | Implementing defined service policies in a third-party container cluster |
| US12119980B2 (en) | 2022-12-22 | 2024-10-15 | Microsoft Technology Licensing, Llc | Deploying and configuring network functions based on a hierarchical configuration model |
| US11831511B1 (en) | 2023-01-17 | 2023-11-28 | Vmware, Inc. | Enforcing network policies in heterogeneous systems |
| WO2024254734A1 (en) | 2023-06-12 | 2024-12-19 | Vmware Information Technology (China) Co., Ltd. | Layer 7 network security for container workloads |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003288210A (en) | 2002-03-27 | 2003-10-10 | Nec System Technologies Ltd | System and method for executing install program |
| JP2012084129A (en) | 2010-08-27 | 2012-04-26 | Savvis Inc | Systems and methods for multi-tenant system providing virtual data centers in cloud configuration |
| JP2015534696A (en) | 2012-10-10 | 2015-12-03 | アルカテル−ルーセント | Method and apparatus for automatically deploying geographically distributed applications in the cloud |
| US20180018375A1 (en) | 2016-07-18 | 2018-01-18 | Sap Se | Hierarchical Window Database Query Execution |
| JP2018502508A (en) | 2014-12-31 | 2018-01-25 | シマンテック コーポレーションSymantec Corporation | System and method for automatically applying a firewall policy within a data center application |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10180809B2 (en) * | 2006-05-17 | 2019-01-15 | Richard Fetik | Secure application acceleration system, methods and apparatus |
| US20130019314A1 (en) * | 2011-07-14 | 2013-01-17 | International Business Machines Corporation | Interactive virtual patching using a web application server firewall |
| US9860279B2 (en) * | 2015-08-28 | 2018-01-02 | Nicira, Inc. | Defining network rules based on remote device management attributes |
| US10375121B2 (en) * | 2016-06-23 | 2019-08-06 | Vmware, Inc. | Micro-segmentation in virtualized computing environments |
| US10333983B2 (en) * | 2016-08-30 | 2019-06-25 | Nicira, Inc. | Policy definition and enforcement for a network virtualization platform |
| US10484243B2 (en) * | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
| US10320749B2 (en) * | 2016-11-07 | 2019-06-11 | Nicira, Inc. | Firewall rule creation in a virtualized computing environment |
| US10873565B2 (en) * | 2016-12-22 | 2020-12-22 | Nicira, Inc. | Micro-segmentation of virtual computing elements |
| US10503536B2 (en) | 2016-12-22 | 2019-12-10 | Nicira, Inc. | Collecting and storing threat level indicators for service rule processing |
-
2019
- 2019-08-14 CA CA3107455A patent/CA3107455A1/en active Pending
- 2019-08-14 EP EP19762270.7A patent/EP3814904A1/en active Pending
- 2019-08-14 JP JP2021505355A patent/JP7157238B2/en active Active
- 2019-08-14 WO PCT/US2019/046565 patent/WO2020041073A1/en not_active Ceased
- 2019-08-14 AU AU2019325228A patent/AU2019325228B2/en active Active
- 2019-08-14 CN CN201980055766.0A patent/CN112639740B/en active Active
-
2022
- 2022-03-09 AU AU2022201625A patent/AU2022201625B2/en active Active
- 2022-10-06 JP JP2022161790A patent/JP7502386B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003288210A (en) | 2002-03-27 | 2003-10-10 | Nec System Technologies Ltd | System and method for executing install program |
| JP2012084129A (en) | 2010-08-27 | 2012-04-26 | Savvis Inc | Systems and methods for multi-tenant system providing virtual data centers in cloud configuration |
| JP2015534696A (en) | 2012-10-10 | 2015-12-03 | アルカテル−ルーセント | Method and apparatus for automatically deploying geographically distributed applications in the cloud |
| JP2018502508A (en) | 2014-12-31 | 2018-01-25 | シマンテック コーポレーションSymantec Corporation | System and method for automatically applying a firewall policy within a data center application |
| US20180018375A1 (en) | 2016-07-18 | 2018-01-18 | Sap Se | Hierarchical Window Database Query Execution |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021535460A (en) | 2021-12-16 |
| CA3107455A1 (en) | 2020-02-27 |
| AU2022201625B2 (en) | 2023-11-09 |
| EP3814904A1 (en) | 2021-05-05 |
| AU2019325228B2 (en) | 2021-12-09 |
| AU2019325228A1 (en) | 2021-02-25 |
| JP2022191348A (en) | 2022-12-27 |
| CN112639740A (en) | 2021-04-09 |
| AU2022201625A1 (en) | 2022-03-31 |
| CN112639740B (en) | 2025-05-30 |
| WO2020041073A1 (en) | 2020-02-27 |
| JP7157238B2 (en) | 2022-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7502386B2 (en) | Hierarchical API for defining multi-segment applications in SDDC | |
| US12197971B2 (en) | Template driven approach to deploy a multi-segmented application in an SDDC | |
| US10628144B2 (en) | Hierarchical API for defining a multi-segmented application in an SDDC | |
| US20240031228A1 (en) | Hierarchical api for a sddc | |
| Tomarchio et al. | Cloud resource orchestration in the multi-cloud landscape: a systematic review of existing frameworks | |
| US20230333906A1 (en) | Discovering and publishing api information | |
| US9609023B2 (en) | System and method for software defined deployment of security appliances using policy templates | |
| US9621428B1 (en) | Multi-tiered cloud application topology modeling tool | |
| CN112470431B (en) | Synthesis of models for networks using automatic Boolean learning | |
| CN107534568B (en) | Synthetic Constraints for Network Policy | |
| WO2018044352A1 (en) | Policy definition and enforcement for a network virtualization platform | |
| WO2015065359A1 (en) | Modifying realized topologies | |
| JP2017534109A (en) | Topology-based management of second day operations | |
| EP3063655A1 (en) | Management of the lifecycle of a cloud service modeled as a topology | |
| WO2015065368A1 (en) | Realized topology system management database | |
| WO2015065355A1 (en) | Stitching an application model to an infrastructure template | |
| WO2015065350A1 (en) | Management of the lifecycle of a cloud service modeled as a topology | |
| US9641540B2 (en) | User interface driven translation, comparison, unification, and deployment of device neutral network security policies | |
| US11195216B2 (en) | Federated marketplace portal | |
| US12299154B1 (en) | Secure data handling discovery | |
| Atta | Infrastructure migration from datacenter to cloud Solution |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221027 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221027 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230929 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231006 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20231128 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20231205 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231225 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240119 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240507 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240606 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7502386 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |