CN110830357B - 使用高级拓扑描述的多云虚拟计算环境供应 - Google Patents

使用高级拓扑描述的多云虚拟计算环境供应 Download PDF

Info

Publication number
CN110830357B
CN110830357B CN201910739288.7A CN201910739288A CN110830357B CN 110830357 B CN110830357 B CN 110830357B CN 201910739288 A CN201910739288 A CN 201910739288A CN 110830357 B CN110830357 B CN 110830357B
Authority
CN
China
Prior art keywords
computing
virtual
infrastructures
template
infrastructure
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
Application number
CN201910739288.7A
Other languages
English (en)
Other versions
CN110830357A (zh
Inventor
圣胡·C·亚伯拉罕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN110830357A publication Critical patent/CN110830357A/zh
Application granted granted Critical
Publication of CN110830357B publication Critical patent/CN110830357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及使用高级拓扑描述的多云虚拟计算环境供应。在一个示例中,一种方法可以包括由计算装置获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述。每个计算基础设施可以使用不同的计算架构来实现,并且由不同的提供商来部署。该示例方法还可以包括:通过在计算装置上执行的规则引擎,将高级拓扑描述转换为计算基础设施的相应模板,每个模板以符合模式的格式描述虚拟计算环境的拓扑,该模式可以由相应的一个计算基础设施处理,以在相应的一个计算基础设施中实现虚拟计算环境,并且输出用于配置计算基础设施的模板。

Description

使用高级拓扑描述的多云虚拟计算环境供应
技术领域
本公开涉及计算基础设施虚拟化,并且更具体地,涉及在计算基础设施中供应虚拟计算环境。
背景技术
在典型的云数据中心环境中,大量互连的服务器提供计算和/或存储能力来运行各种应用程序。例如,数据中心可以包括为订户(即,数据中心的客户)托管应用程序和服务的设施。例如,数据中心可以托管所有基础设施设备,例如,网络和存储系统、冗余电源和环境控制。在典型的数据中心中,存储系统和应用服务器集群经由一层或多层物理网络交换机和路由器提供的高速交换结构互连。更复杂的数据中心为遍布全球的基础设施提供位于各种物理托管设施中的用户支持设备。
虚拟机是基于机器级虚拟化的虚拟化方案。虚拟机包括在主机计算装置的管理程序上运行的客户操作系统,以模拟计算机的硬件,从而为执行应用程序提供新的计算机环境。
集装箱化是一种基于操作系统级虚拟化的虚拟化方案。集装箱是轻型且便携式执行环境,用于相互隔离以及与主机隔离的应用程序。因为集装箱没有与主机硬件计算环境紧密耦接,所以应用程序可以绑定到集装箱图像,并作为单个轻型包在支持底层集装箱架构的任何主机或虚拟主机上执行。因此,集装箱解决了如何使软件在不同的计算环境中工作的问题。集装箱提供了从一个计算环境持续运行到另一虚拟或物理计算环境的承诺。
由于集装箱固有的轻型特性,单个主机可以支持比传统虚拟机(VM)更多的集装箱实例。集装箱通常是短暂的,可以比VM更有效地创建和移动,并且也可以作为逻辑相关元件的组来管理(对于某些编排平台,例如,Kubernetes,有时称为“舱”)。这些集装箱特征影响了对集装箱网络解决方案的需求:网络应该是敏捷的和可扩展的。VM、集装箱和裸机服务器可能需要在同一个计算环境中共存,能够在不同部署的应用程序之间通信。集装箱网络还应该不能确知如何使用用于部署集装箱化应用程序的多种编排平台。
管理应用程序执行的部署和基础设施的计算基础设施可能涉及两个主要角色:(1)编排——用于跨主机集群自动化应用程序的部署、扩展和操作,并提供计算基础设施,其可以包括以集装箱为中心的计算基础设施;以及(2)网络管理——用于在网络基础设施中创建虚拟网络,以实现在虚拟环境(例如,集装箱或虚拟机)上运行的应用程序之间以及在传统(例如,物理)环境上运行的应用程序之间的分组通信。软件定义的网络有助于网络管理。
发明内容
本公开描述了使用分布在多个不同计算基础设施上的多云虚拟计算环境的高级拓扑描述来实现多云虚拟计算环境的供应的技术。例如,拓扑文件使用对由网络实例和计算装置组成的项目进行编码的高级语义和语法来定义所需的多云虚拟计算环境,并定义实例之间的连通性和关系。多云虚拟计算环境可以跨越多个不同的计算基础设施,这些计算基础设施对应于均托管多云虚拟计算环境的一个或多个项目的不同计算基础设施。该一个或多个项目可以包括应用程序、租户、组织等的任意组合。计算基础设施可以是例如公共云或私有云形式的虚拟化计算基础设施或者裸机服务器系统基础设施。多云虚拟计算环境的每个项目本身是单个计算基础设施内的虚拟计算环境,并且构成要在多个不同计算基础设施中供应的整个多云虚拟计算环境的一部分。
转换器可以解析拓扑文件,以从包括网络、一个或多个存储装置和包括实例的计算资源的运营商获得虚拟计算基础设施细节,并且然后应用规则数据库,来为多云拓扑创建一组模板。该组模板中的每个模板可以定义要在一组多个计算基础设施中的不同一个计算基础设施内提供的期望虚拟计算环境。控制器可以将这组模板中的每个模板应用于相应的计算基础设施,以供应符合相应计算基础设施的计算基础设施拓扑模式的模板中定义的一个或多个项目。在控制器实现了期望的虚拟计算环境之后,控制器可以分发虚拟机或其他虚拟执行元件,用于使用多云虚拟计算环境执行应用程序。
在一些示例中,除了将期望的计算基础设施应用于数据中心之外,控制器可以被配置为观察数据中心的计算基础设施的当前状态。例如,控制器可以观察示例数据中心中的第一基础设施。此外,控制器可以将第一基础设施与表示示例数据中心的期望计算基础设施的第二基础设施进行比较。转换器可以创建指令(即,至少一个模板),当由控制器导出时,这些指令将把第一基础设施转换为第二基础设施。这样,控制器可以被配置为在多个计算基础设施上指示期望的基础设施。
这些技术可以提供一个或多个技术优势。一般来说,计算基础设施可以因平台而异。更具体地,构建和维护计算基础设施的指令可以因公共云和私有云而异。这些技术可以使应用开发者能够使用具有符合高级描述模式的定义的拓扑文件来为一个或多个应用程序定义完整的多云虚拟计算环境。具有如本文所述的转换器的控制器可以将拓扑文件转换为用于供应相应计算基础设施的相应模板,从而使得开发者能够表达预期的多云拓扑,而不必为不同计算基础设施内的每个项目单独创建模板。例如,控制器可以使用第一模板在由第一提供商运营的第一数据中心中构建和维护计算基础设施。此外,控制器可以使用第二模板在由第二提供商运营的第二数据中心中构建和维护计算基础设施。基于使用高级语言(例如,YAML非标记语言(YAML))表达的预期多云拓扑,自动创建每个计算基础设施所需的每个模板,可以减少供应拓扑的时间,并且至少在某些情况下允许零接触供应。
在一个示例中,一种方法包括:由计算装置获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述,其中,每个计算基础设施使用不同的计算架构来实现,并且由不同的提供商来部署;由在计算装置上执行的规则引擎,将高级拓扑描述转换为计算基础设施的相应模板,每个模板以符合模式的格式描述虚拟计算环境的拓扑,该模式可以由相应的一个计算基础设施处理,以在相应的一个计算基础设施中实现虚拟计算环境;并且输出用于配置计算基础设施的模板。
作为另一示例,一种计算系统包括:一个或多个处理器,其耦接到存储器,其中,该一个或多个处理器被配置为:获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述,其中,每个计算基础设施使用不同的计算架构来实现,并且由不同的提供商来部署;将高级拓扑描述转换为计算基础设施的相应模板,每个模板以符合模式的格式描述虚拟计算环境的拓扑,该模式可以由相应的一个计算基础设施处理,以在相应的一个计算基础设施中实现虚拟计算环境;并且输出用于配置计算基础设施的模板。
作为另一示例,一种非暂时性计算机介质包括指令,用于使一个或多个处理器:获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述,其中,每个计算基础设施使用不同的计算架构来实现,并且由不同的提供商来部署;将高级拓扑描述转换为计算基础设施的相应模板,每个模板以符合模式的格式描述虚拟计算环境的拓扑,该模式可以由相应的一个计算基础设施处理,以在相应的一个计算基础设施中实现虚拟计算环境;并且输出用于配置计算基础设施的模板。
本公开的一个或多个示例的细节在附图和以下描述中阐述。从说明书和附图以及权利要求书中,本公开的其他特征、目的和优点将变得显而易见。
附图说明
图1是示出根据本公开的一个或多个方面的示例网络的概念图,该示例网络包括示例数据中心,在该示例数据中心中,监控基于云的计算环境的基础设施元件的性能和使用度量,并且可选地包括与多个进程共享的资源相关的内部处理器度量。
图2是示出根据本公开中描述的技术的示例网络的框图,该示例网络包括用于在网络内引导信息的控制器。
图3是示出根据本公开中描述的技术的包括控制器、公共云、私有云和裸机服务器系统的另一示例网络的框图。
图4是示出根据本公开中描述的技术的使用控制器管理的另一示例多云计算基础设施的概念图。
图5是示出根据本公开中描述的技术的构建和监控多云计算基础设施的示例操作的流程图。
图6是示出根据本公开中描述的技术的被配置为将拓扑转换为用于在一个或多个虚拟私有云(VPC)中安装和修改对象的一个或多个模板的示例转换器的框图。
图7是示出根据本公开中描述的技术的示例计算装置的框图。
图8是示出根据本公开中描述的技术的用于在网络内引导集装箱的另一示例控制器的框图。
图9是示出根据本公开中描述的技术的包括至少一个区域和至少一个可用性区域的示例私有云的框图。
图10A至图10C是示出根据本公开中描述的技术的包括至少一个网关单元的示例系统的框图。
在所有附图和文本中,相同的附图标记表示相同的元件。
具体实施方式
图1是示出根据本公开的一个或多个方面的示例网络105的概念图,该示例网络105包括示例数据中心110A,在示例数据中心110A中监控基于云的计算环境的基础设施元件的性能和使用度量,并且可选地包括与多个进程共享的资源相关的内部处理器度量。图1示出了网络105和数据中心110A的一个示例实现,其托管一个或多个基于云的计算网络、计算域或项目,在本文通常被称为云计算集群。基于云的计算集群可以共同位于共同的整体计算环境中(例如,单个数据中心),或者分布在不同的环境中(例如,不同的数据中心)。基于云的计算集群可以是例如不同的云环境,例如,OpenStack云环境、Kubernetes云环境或其他计算集群、域、网络等的各种组合。网络105和数据中心110A的其他实现在其他情况下可以是合适的。这种实现可以包括图1的示例中包括的组件的子集和/或可以包括图1中未示出的额外组件。数据中心110A可以是数据中心110A-110X(统称为“数据中心110”)的示例数据中心。
每个数据中心110可以表示不同的计算基础设施,例如,公共、私有或混合云、或者裸机服务器系统基础设施。不同的计算基础设施可以使用不同的计算平台和技术来实现,使得一个数据中心110A的配置不适用于不同的数据中心110B。示例公共云基础设施包括微软Azure、谷歌计算平台和亚马逊网络服务。任何一个或多个数据中心110也可以表示企业或其他实体的内部计算基础设施。
数据中心110可以经由服务提供商网络106彼此互连,并且与和客户104相关联的客户网络互连。通常,每个数据中心110为通过服务提供商网络106耦接到数据中心的客户104的应用程序和服务提供操作环境。数据中心110可以例如是主机基础设施设备,例如,网络和存储系统、冗余电源和环境控制。服务提供商网络106可以耦接到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。
在一些示例中,每个数据中心110可以表示许多地理上分布的网络数据中心中的一个。如图1的示例所示,每个数据中心110可以表示为客户104提供网络服务的设施。客户104可以是集体类别,例如,企业和政府或个人。例如,网络数据中心可以为几个企业和最终用户提供网络服务。其他示例性服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些实施例中,每个数据中心110可以是单独的网络服务器、网络对等体等。
在这个示例中,每个数据中心110包括通过由一层或多层物理网络交换机和路由器提供的高速交换结构121互连的一组存储系统和应用服务器126A-126N(在本文中称为“服务器126”)。交换结构121由一组互连的架顶(TOR)交换机(未示出)提供,这些交换机耦接到机箱交换机的分布层(未示出)。虽然未示出,但是每个数据中心110还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全装置、入侵检测和/或入侵防御装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络装置。
在图1的示例中,数据中心110A为通过服务提供商网络106耦接到数据中心110A的客户104的应用程序和服务提供操作环境。尽管结合图1的网络105描述的功能和操作可以被示为分布在图1中的多个装置上,但是在其他示例中,归因于图1中的一个或多个装置的特征和技术可以由一个或多个这样的装置的本地组件在内部执行。类似地,一个或多个这样的装置可以包括某些组件并执行各种技术,这些技术可以在本文的描述中归因于一个或多个其他装置。此外,某些操作、技术、特征和/或功能可以结合图1来描述,或者由特定组件、装置和/或模块来执行。在其他示例中,这样的操作、技术、特征和/或功能可以由其他组件、装置或模块来执行。因此,归于一个或多个组件、装置或模块的一些操作、技术、特征和/或功能可以归于其他组件、装置和/或模块,即使本文没有以这种方式具体描述。
数据中心110A托管基础设施设备,例如,网络和存储系统、冗余电源和环境控制。服务提供商网络106可以耦接到由一个或多个提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。
在一些示例中,数据中心110A可以表示许多地理上分布的网络数据中心中的一个。如图1的示例所示,数据中心110A是为客户104提供网络服务的设施。客户104可以是集体实体,例如,企业和政府或个人。例如,一个网络数据中心可以为几个企业和最终用户提供网络服务。其他示例性服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心110A是单独的网络服务器、网络对等体等。
在图1的示例中,数据中心110A包括一组存储系统和应用服务器,包括通过由一层或多层物理网络交换机和路由器提供的高速交换结构121互连的服务器126。服务器126充当数据中心的物理计算节点。例如,每个服务器126可以为一个或多个特定于客户的虚拟机148(图1中的“VM”)或其他虚拟化实例(例如,集装箱)的执行提供操作环境。每个服务器126可替换地称为主机计算装置,或者更简单地称为主机。服务器126可以执行一个或多个虚拟化实例,例如,虚拟机、集装箱或用于运行一个或多个服务的其他虚拟执行环境/元件,例如,虚拟化网络功能(VNF)。服务器126可以另外或替代地使用集装箱来托管集装箱化应用程序。
尽管未示出,交换结构121可以包括耦接到机箱交换机的分布层的架顶(TOR)交换机,并且数据中心110A可以包括一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全装置、入侵检测和/或入侵防御装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络装置。交换结构121可以执行层3路由,以通过服务提供商网络106在数据中心110A和客户104之间路由网络流量。网关108用于在交换结构121和服务提供商网络106之间转发和接收分组。
根据本公开的一个或多个示例,软件定义的网络(“SDN”)控制器132提供逻辑上并且在某些情况下物理上集中的控制器,用于促进数据中心110A内的一个或多个虚拟网络的操作。术语SDN控制器和虚拟网络控制器(“VNC”)在整个本公开中可以互换使用。在一些示例中,SDN控制器132响应于经由北行API 131从编排器130接收到的配置输入而操作,而北行API 131又响应于从与用户界面装置129交互和/或操作用户界面装置129的管理员128接收到的配置输入而操作。在2013年6月5日提交的题为“PHYSICAL PATH DETERMINATION FORVIRTUAL NETWORK PACKET FLOWS”的国际申请号PCT/US 2013/044378中,找到了关于与数据中心110A或其他软件定义的网络的其他装置一起操作的SDN控制器132的额外信息,该申请通过引用结合于此,如同在本文完全阐述的一样。
用户界面装置129可以被实现为用于交互呈现输出和/或接受用户输入的任何合适的装置。例如,用户界面装置129可以包括显示器。用户界面装置129可以是计算系统,例如,由用户和/或管理员128操作的移动或非移动计算装置。根据本公开的一个或多个方面,用户界面装置129可以例如表示工作站、膝上型或笔记本计算机、台式计算机、平板计算机或可以由用户操作和/或呈现用户界面的任何其他计算装置。在一些示例中,用户界面装置129可以与策略控制器201物理分离和/或位于不同的位置。在这样的示例中,用户界面装置129可以通过网络或其他通信手段与策略控制器201通信。在其他示例中,用户界面装置129可以是策略控制器201的本地外围装置,或者可以集成到策略控制器201中。
在一些示例中,编排器130管理数据中心110A的功能,例如,计算、存储、联网和应用资源。例如,编排器130可以为数据中心110A内或数据中心上的租户创建虚拟网络。编排器130可以将虚拟机(VM)连接到租户的虚拟网络。编排器130可以将租户的虚拟网络连接到外部网络,例如,互联网或VPN。编排器130可以在一组VM上或向租户网络的边界实现安全策略。编排器130可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。
在一些示例中,SDN控制器132管理网络和联网服务,例如,负载均衡、安全性,并且经由南行API 133将资源从服务器126分配给各种应用程序。即,南行API 133表示由SDN控制器132使用的一组通信协议,以使网络的实际状态等于由编排器130指定的期望状态。例如,SDN控制器132通过配置以下内容来实现来自编排器130的高级请求:物理交换机,例如,TOR交换机、机箱交换机和交换结构121;物理路由器;物理服务节点,例如,防火墙和负载均衡器;以及虚拟服务,例如,VM中的虚拟防火墙。SDN控制器132在状态数据库中维护路由、联网和配置信息。
通常,任何两个网络装置之间(例如,交换结构121内的网络装置(未示出)之间或服务器126和客户104之间或服务器126之间)的流量可以使用许多不同的路径遍历物理网络。例如,两个网络装置之间可能有几种不同的等价路径。在某些情况下,属于从一个网络装置到另一网络装置的网络流量的分组可以在每个网络交换节点处使用称为多路径路由的路由策略在各种可能的路径中分布。例如,互联网工程任务组(IETF)RFC 2992“等价多路径算法的分析(Analysis of an Equal-Cost Multi-Path Algorithm)”描述了一种沿等价多路径路由分组的路由技术。RFC 2992的技术分析了一种特定的多路径路由策略,该策略涉及通过散列分组报头字段将流分配到箱,这些分组报头字段通过单个确定性路径发送来自特定网络流的所有分组。
例如,“流”可以由分组报头中使用的五个值或“五元组”来定义,即,用于通过物理网络路由分组的协议、源IP地址、目的地IP地址、源端口和目的地端口。例如,协议指定了通信协议,例如,TCP或UDP,并且源端口和目的地端口是指连接的源端口和目的地端口。匹配特定流条目的一组一个或多个分组数据单元(PDU)表示一个流。可以使用PDU的任何参数对流进行广义分类,例如,源和目的地数据链路(例如,MAC)和网络(例如,IP)地址、虚拟局域网(VLAN)标签、传输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签以及接收流的网络装置的入口端口。例如,流可以是在传输控制协议(TCP)连接中传输的所有PDU、由特定的MAC地址或IP地址提供的所有PDU、具有相同VLAN标签的所有PDU或在相同交换端口接收的所有PDU。
虚拟路由器142(虚拟路由器142A到虚拟路由器142N,在图1中统称为“虚拟路由器142”)为数据中心110A内的相应虚拟网络执行多个路由实例,并将分组路由到在服务器126提供的操作环境内执行的适当虚拟机。每个服务器126可以包括虚拟路由器。例如,由服务器126A的虚拟路由器142A从底层物理网络结构接收的分组可以包括外部报头,以允许物理网络结构将有效载荷或“内部分组”隧道传输到服务器126A的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包括虚拟网络标识符,例如,识别一个虚拟网络的VxLAN标签或多协议标签交换(MPLS)标签以及由虚拟路由器执行的相应路由实例。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合由虚拟网络标识符识别的虚拟网络的虚拟网络寻址空间。
在一些方面,虚拟路由器在将从底层物理网络结构接收的多个隧道分组传送到分组的适当路由实例之前缓冲并聚合这些分组。即,在服务器126中的一个服务器上执行的虚拟路由器可以从交换结构121内的一个或多个TOR交换机接收分组流的入站隧道分组,并且在将隧道分组路由到本地执行的虚拟机之前,处理隧道分组,以构建单个聚合隧道分组,用于转发到虚拟机。即,虚拟路由器可以缓冲多个入站隧道分组,并构建单个隧道分组,其中,多个隧道分组的有效载荷组合成单个有效载荷,并且移除隧道分组上的外部/覆盖报头,并用单个报头虚拟网络标识符替换。以这种方式,虚拟路由器可以将聚合隧道分组转发到虚拟机,就好像从虚拟网络接收到单个入站隧道分组一样。此外,为了执行聚合操作,虚拟路由器可以利用基于内核的卸载引擎,该卸载引擎无缝且自动地指导隧道分组的聚合。在题为“PACKET SEGMENTATION OFFLOAD FOR VIRTUAL NETWORKS”的美国专利申请14/228,844中描述了虚拟路由器将流量转发到在服务器126上执行的客户特定虚拟机的进一步示例技术,该申请通过引用结合于此。
在一些示例实现中,在服务器126上执行的虚拟路由器142在多个处理器核心之间操纵接收到的入站隧道分组,以便在处理分组以路由到一个或多个虚拟机和/或物理机时,促进核心之间的分组处理负载均衡。作为一个示例,服务器126A包括多个网络接口卡和多个处理器核心,以执行虚拟路由器142A,并在多个处理器核心之间引导接收的分组,以促进核心之间的分组处理负载均衡。例如,服务器126A的特定网络接口卡可以与指定的处理器核心相关联,网络接口卡将所有接收到的分组引导到该处理器核心。不同的处理器核心不是处理每个接收到的分组,而是根据应用于内部和外部分组报头中的至少一个的散列函数,将流卸载到一个或多个其他处理器核心,以便利用其他处理器核心的可用工作周期进行处理。
拓扑152表示用于虚拟计算环境的拓扑(例如,节点、虚拟网络等的设置)的高级基于意图的描述。在一些示例中,用人类可读的数据串行化语言编写拓扑152,例如,YAML非标记语言(YAML)或JavaScript对象符号(JSON)。拓扑152可以包括多个项目,每个项目具有一个或多个装置实例,并且当应用于数据中心110时,可以用该项目配置数据中心110的计算基础设施,以供应可以跨越数据中心110中包括的多个不同计算基础设施的多云虚拟计算环境。如本文所述,计算基础设施包括网络基础设施。
转换器150可以将拓扑152转换为一组指令,一旦由控制器102执行,这些指令将在数据中心110中构建和修改多个虚拟化基础设施。在一些示例中,拓扑152可以基于来自GUI(未示出)的输入来创建。在其他示例中,拓扑152可以由在数据中心110A中执行或在任何数据中心110外部执行的控制器102自动生成。拓扑152可以包括基于定义的提供商而不同的列表。根据定义的提供商,可以包括不同的数据结构和参数。拓扑152可以包括识别期望的虚拟计算环境中的节点的IP地址。这样,拓扑152可以通过指定对应于网络内节点的IP地址来确定虚拟计算环境。转换器150可以包括一个或多个应用编程接口(API)。API可以定义一个接口,转换器150通过该接口与拓扑152交互。转换器150可以被配置为使用API从拓扑152“拉取”数据。
此外,转换器150可以解析拓扑152的人类可读语言,并确定由拓扑152指示的基础设施元件的组织层级。在解析拓扑152中,转换器150可以采用语言解析技术。转换器150可以使用多个规则来管理拓扑152到指令的转换,用于指导控制器102构建和监控数据中心110的基础设施。在一些示例中,转换器150可以使用多个规则来确定数据中心110的身份,使得转换器150可以创建包括对应于每个数据中心110的对象的模板。通过识别与每个对象相关联的数据中心110,转换器150可以将拓扑152的每个对象应用于数据中心110的正确数据中心。
网络105可以使控制器102能够创建可扩展的多云架构,该架构提供了一个框架,该框架允许在计算资源位于任何地方时消耗计算资源——编排网络和端到端安全。此外,网络105可以在全球范围内实现一致的策略实施。例如,对于物理、虚拟、集装箱和云基础设施,策略实施可以是一致的,并且是集中管理的。网络105执行的过程可以是可用的和自动化的。在某些情况下,可用性和冗余性可以经由自动化来保持或增强,以减少创建和维护计算基础设施时的人为错误。此外,使用网络105的转换器150构建和维护计算基础设施可以允许创建具有宏和微段的多租户环境。例如,网络105可以创建或摄取区域/标签/名称空间来限制环境之间的移动。这些技术可以提高粒度和可见性。例如,网络105可能够提供粒度和完全可见性以及物理和虚拟(底层和上层)之间的交互。
多云联网和结构技术(例如,在本文描述的技术)可以跨混合云环境提供一组联网和安全特征。例如,网络105的拓扑152和转换器150可以使用自动供应、管理、监控和分析来实现计算、联网和策略服务在私有、公共和裸机系统上的无缝扩展。可以使用多云网关来提供和编排公共云的安全网络扩展。
在图1的示例中,数据中心110A还包括为数据中心110A提供监控、调度和性能管理的策略控制器201。策略控制器201与部署在至少一些相应物理服务器216内的监控代理205交互,用于监控物理计算节点以及在物理主机上执行的任何虚拟化主机(例如,VM 148)的资源使用。以这种方式,监控代理205提供分布式机制,用于收集各种各样的使用度量以及用于策略控制器201安装的策略的本地实施。在示例实现中,监控代理205运行在数据中心110A的基础设施的最低级别“计算节点”上,这些计算节点提供计算资源来执行应用工作负载。计算节点例如可以是服务器126、虚拟机148、集装箱等的裸机主机。
在一些示例中,策略控制器201可以被配置为确定和/或识别在每个服务器126上执行的虚拟机、集装箱、服务和/或应用程序的形式的元件。如本文所使用的,资源通常指虚拟化基础设施的可消耗组件,即,基础设施所使用的组件,例如,CPU、存储器、磁盘、磁盘I/O、网络I/O、虚拟CPU和轨迹虚拟路由器。资源可以具有一个或多个特征,每个特征与由策略代理205(和/或策略控制器201)分析并可选地报告的度量相关联。下面参考图2描述资源的示例原始度量的列表。
通常,基础设施元件(在本文也称为元件)是基础设施的组件,其包括或消耗消耗性资源,以便操作。示例元件包括主机、物理或虚拟网络装置、实例(例如,虚拟机、集装箱或其他虚拟操作环境实例)、聚合、项目和服务。在某些情况下,一个元件可以是另一元件的资源。虚拟网络装置可以包括例如虚拟路由器和交换机、vRouter、vSwitch、开放式虚拟交换机和虚拟隧道转发器(VTF)。度量是一个值,其衡量一个元件消耗的资源量,作为资源的特征。
策略控制器201可以被实现为任何合适的计算装置或在任何合适的计算装置内或者在多个计算装置上实现。策略控制器201或策略控制器201的组件可以实现为计算装置的一个或多个模块。在一些示例中,策略控制器201可以包括在数据中心110A内包括的一类计算节点(例如,“基础设施节点”)上执行的多个模块。这样的节点可以是OpenStack基础设施服务节点或Kubernetes主节点,和/或可以实现为虚拟机。在一些示例中,策略控制器201可以与数据中心110A内的一些或所有其他计算节点具有网络连接,并且还可以与管理数据中心110A的其他基础设施服务具有网络连接。
一个或多个策略202可以包括使一个或多个策略代理205监控与服务器126相关联的一个或多个度量的指令。一个或多个策略202可以包括使一个或多个策略代理205分析与服务器126相关联的一个或多个度量以确定是否满足规则的条件的指令。一个或多个策略202可以替代地或另外包括使策略代理205向策略控制器201报告一个或多个度量的指令,包括这些度量是否满足与一个或多个策略202相关联的规则的条件。所报告的信息可以包括一个或多个策略202指定或要求的原始数据、汇总数据和采样数据。
图1中示出的和/或本公开其他地方示出或描述的各种组件、功能单元和/或模块(例如,用户界面装置129、编排器130、SDN控制器132和策略控制器201、策略代理205)可以使用驻留在一个或多个计算装置中和/或在一个或多个计算装置上执行的软件、硬件、固件或硬件、软件和固件的混合来执行所描述的操作。例如,计算装置可以用多个处理器或多个装置来执行一个或多个这样的模块。计算装置可以作为在底层硬件上执行的虚拟机执行一个或多个这样的模块。一个或多个这样的模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以作为一个或多个可执行程序在计算平台的应用层执行。在其他示例中,模块提供的功能可以由专用硬件装置实现。尽管一个或多个存储装置中包括的某些模块、数据存储、组件、程序、可执行文件、数据项、功能单元和/或其他项可以单独示出,但是一个或多个这样的项可以组合并作为单个模块、组件、程序、可执行文件、数据项或功能单元来操作。例如,一个或多个模块或数据存储可以组合或部分组合,使得作为单个模块操作或提供功能。此外,一个或多个模块可以彼此结合操作,使得例如一个模块充当另一模块的服务或扩展。此外,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以包括多个组件、子组件、模块、子模块、数据存储和/或未示出的其他组件或模块或数据存储。此外,存储装置中示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以以各种方式实现。例如,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为在计算装置上执行的操作系统的一部分。
图2是示出根据本公开中描述的技术的示例网络200的框图,该示例网络200包括用于在网络200内引导信息的控制器214。服务提供商网络206可以是图1的服务提供商网络106的示例。云210可以是图1的数据中心110A的示例。编排器212可以是图1的编排器130的示例。控制器214可以是图1的控制器132的示例。控制器132和编排器212可以实现整体控制器,例如,图1的控制器102。云220可以是图1的数据中心110B-110X中任何一个的示例。
根据本公开的一个或多个实施例,控制器212提供逻辑上并且在一些情况下物理上集中的控制器,用于促进云210和云220中的每一个内的一个或多个虚拟网络的操作,例如,云220的VPC 1。在一些示例中,控制器212可以响应于从转换器(例如,图1的转换器150)接收的配置输入而操作。
在一些示例中,编排器212管理云210的功能,例如,计算、存储、联网和应用资源。例如,编排器212可以为云210内或跨数据中心的租户创建虚拟网络。编排器212可以将虚拟机(VM)连接到租户的虚拟网络。编排器212可以将租户的虚拟网络连接到外部网络,例如,服务提供商网络206或云220。编排器212可以在一组VM上或向租户网络的边界实现安全策略。编排器212可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。在一些示例中,控制器214在状态数据库中维护路由、联网和配置信息。在一些示例中,编排器212使用Kubernetes来自动化集装箱化应用程序的部署、扩展和管理。例如,编排器212可以使用Kubernetes来经由控制器214将集装箱部署到服务器226A-226E(统称为“服务器226”)中的任何一个。在一些示例中,集装箱可以包括Docker集装箱。编排器212可以向控制器214输出指令,以经由网关230将集装箱部署到服务器226。
服务器组226(例如,服务器226B和226C)可以通过由一层或多层物理网络交换机和路由器提供的高速交换结构(未示出)互连。交换机结构由一组互连的架顶(TOR)交换机(未示出)提供,这些交换机耦接到机箱交换机的分布层(未示出)。尽管未示出,云210和云220中的每一个还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全装置、入侵检测和/或入侵防御装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动装置、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络装置。服务器226的每个服务器可以包括至少一个虚拟路由器和至少一个集装箱或虚拟机。
网关230A-230C(统称为“网关230”)可以提供虚拟专用网络(VPN)服务,用于通过广域网(WAN)提供连接。可以使用基于标准的VPN对租户应用程序工作量执行租户隔离。网关230可以使用安全策略框架为每个数据中心110A提供相同的安全姿态。此外,网关230可以在公共云和私有云环境中跨可用性区域提供弹性。网关230可以被配置用于基于角色的访问控制(RBAC)和与活动目录/轻量级目录访问协议(AD/LDAP)的集成。在一些示例中,网关230可以使控制器202能够在一个或多个数据中心之间传输分组,包括集装箱。网关230可以使用加密连接(例如,具有Nat-t或SSL的IPSec)来在网关门户230A、230B和230C之间交换信息。
图3是示出根据本公开中描述的技术的示例性多云计算基础设施300的框图,包括控制器302、公共云304、私有云306和裸机服务器系统308。在一些示例中,控制器302可以通过将软件映射到相应节点来提供公共云304、私有云306和裸机服务器系统308。供应包括准备和装备网络的过程,从而允许网络提供新的服务。例如,供应可以包括使用控制器302将集装箱部署到公共云304、私有云306和裸机服务器系统308中的任一个的节点。此外,供应可以包括使用控制器302来启用公共云304、私有云306和裸机服务器系统308中的任一个上的安全性(例如,激活或编程防火墙)。另外,控制器302可以监控和管理公共云304、私有云306和裸机服务器系统308中的每一个。例如,如果网络300接收到执行新任务的指令,则控制器302可以通过在公共云304、私有云306和裸机服务器系统308中的至少一个中部署新软件和创建新的基础设施配置来供应网络300,以执行新任务。控制器302可以表示图1的控制器102的示例实例。
图4是示出根据本公开中描述的技术的使用控制器管理的另一示例多云计算基础设施400的概念图。网络400的控制器402可以将软件部署到数据中心,包括服务器410、VPC420、VPC 430和裸机服务器系统440。服务器410可以包括一个或多个虚拟机和一个或多个集装箱。此外,VPC 420、VPC 430和裸机服务器系统440可以包括一个或多个虚拟机和一个或多个集装箱。在一些示例中,控制器402可以部署集装箱来构建数据中心中的计算基础设施。控制器402可以从转换器(未示出)接收指令。指令可以指示要部署到每个相应数据中心以实现期望的虚拟计算环境的数据(例如,集装箱、对象、应用程序等)。另外,数据中心可以向控制器402输出指示网络结构的当前状态的信息。转换器可以被配置为使用由数据中心输出的虚拟计算环境的当前状态和虚拟计算环境的期望状态来产生模板。控制器400可以应用模板来构建数据中心的多个计算基础设施。控制器402可以表示图1的控制器102的示例实例。
图5是示出根据本公开中描述的技术的构建和监控多云计算基础设施的示例操作500的流程图。参考图1的网络105描述示例操作500。
根据示例操作500,拓扑文件包括用于定义一个或多个服务器的基础设施的意图的声明性模型(510)。声明性模型可以是多云对象的通用YAML模式,其允许支持多个提供商(例如,公共云、私有云、裸机服务器系统等)。在一些示例中,拓扑152可以包括声明性模型。声明性模型可以是一个或多个服务器的期望拓扑(例如,一个或多个服务器的元件之间的期望交互,例如,节点、链接等)。YAML或其他人类可读语言对于编码声明性模型可能是有益的,使得声明性模型可以有效地解析并应用于具有许多不同提供商(例如,云服务提供商)的许多数据中心。在一些示例中,图形用户界面(GUI)可以显示声明性模型,使得用户可以用YAML语言编写和编辑声明性模型。在其他示例中,GUI可以显示声明性模型的视觉表示,使得用户能够向GUI提供指示节点、链接等的输入。
控制器102可以映射由声明性模型指示的网络拓扑,并提供网络拓扑的图形(例如,视觉表示)(520)。例如,转换器150的解析器可以解析声明性模型的人类可读语言,并确定声明性模型所指示的网络元件的组织层级。解析器可以使用语言解析技术。换言之,解析器可以获取输入数据(例如,声明性模型的文本),并构建给出网络拓扑图的数据结构。在一些示例中,解析器可以由用户编程。在其他示例中,可以使用编译器生成器来创建解析器。该图可以包括解析树、抽象语法树、流程图、示出网络连接的图或另一视觉表示中的至少一个。
此外,根据示例操作500,控制器102被配置为给不同提供商构建基础设施并配置所需对象(530)。示例对象可以包括变量、数据结构、功能、方法和被配置为管理计算机程序的其他值。例如,在计算机网络中,对象可以定义一个或多个转发路径元件之间的连接,确定如何通过转发路径路由分组。转发路径元件可以是执行简单活动(例如,计数器或丢弃)、条件或复杂构造(例如,表、树或查找)的类型。例如,路由器的分组处理器可以将转发路径元件设置为下一跳数据,该下一跳数据可以作为沿着分组处理器的内部分组转发路径的一系列“下一跳”链接在一起。分组处理的结果决定了分组处理器将分组从入口转发单元上的分组输入接口转发或处理到出口转发单元上的输出接口的方式。因此,对象可以定义如何通过转发路径路由分组。
对象可以很像转发路径之间的连接,继续网络的一个或多个元件之间的连接,以创建由高级拓扑描述(例如,拓扑152)定义的虚拟计算环境。在一些示例中,高级拓扑描述包括指示虚拟计算环境提供的虚拟网络、存储和服务中的至少一个的数据。例如,控制器102可以使用对象来连接云、一组安全组规则、虚拟机(VM)、负载均衡器、域名系统(DNS)、内容传送网络(CDN)等中的至少一个。在控制器102使用对象来确定计算基础设施内的一组安全组规则的示例中,控制器102可以有效地定制计算基础设施内的防火墙。换言之,数据中心110A可以使用对象来监控输入和输出的网络流量。控制器102可以使用声明性模型指定对应于网络中多个服务器中的每个服务器的不同组的安全组规则。例如,声明性模型可以包括服务器和相应的一组安全组规则之间的连接。因此,配置对象可以是构建和维护计算基础设施的一个组成部分。
控制器102可以将构建的基础设施映射到控制器的角色,以将控制器软件供应到网络内的节点上(540)。例如,OpenShift和K8s处理器可以部署在网络节点上,并且可以启用网络安全。控制器软件的供应可以在GUI上可视化。此外,数据中心110A可以根据声明性模型来管理和监控计算基础设施(550)。例如,如果更新声明性模型,则控制器102进而可以根据声明性模型中反映的变化来更新计算基础设施。控制器102可以被配置为确定计算基础设施的当前状态,并在GUI上显示当前状态的视觉表示。GUI可以接受指示对计算基础设施的期望改变的输入,并且声明性模型可以相应地更新。
图6是示出被配置为将拓扑602转换为用于在一个或多个公共云606A-606C(统称为(云606))中安装和修改对象的一个或多个模板618的示例转换器604的框图。转换器604可以包括API 610、解析器612、规则数据库614、模板生成器616、模板618和模板应用单元619。转换器604可以是图1的转换器150的示例。另外,拓扑602可以是图1的拓扑152的示例。
通常,转换器604可以将拓扑602转换为多个模板,一旦由控制器132执行,这些模板将在一个或多个数据中心上构建和修改虚拟计算环境。拓扑602可以表示要在多个计算基础设施中的一个中供应的虚拟计算环境的高级拓扑描述。在一些示例中,拓扑602可以基于来自GUI(未示出)的输入来创建。在其他示例中,拓扑602可以由数据中心110A的控制器102自动生成。拓扑602可以包括基于定义的提供商而不同的列表。拓扑602可以包括将被实例化为相应云606内的虚拟计算环境的一个或多个项目,以供应整体多云虚拟计算环境。根据项目的指定提供商,可以包括不同的数据结构和参数。拓扑602可以包括识别期望的虚拟计算环境中的节点的IP地址。这样,拓扑602可以通过指定对应于网络内节点的IP地址来确定虚拟计算环境。拓扑602可以如下创建:
创建拓扑
本节提供创建拓扑所需的所有信息。拓扑是包含已定义的提供商的列表。根据提供商,需要不同的数据结构和参数。
1.OnPrem
OnPrem是提供商。可能有已经在运行的实例或需要创建的新实例。需要设置经由ssh到主机的连接,并且这是先决条件。
注意:轨迹多云部署的所有实例都假设操作系统为centos7.4
1.1字段规范OnPrem提供商:
提供商(provider):[字符串](必需)
组织(organization):[字符串](可选)
项目(project):[字符串](可选)
实例(instances):[列表][实例](必需)
OnPrem实例:
名称(name):[字符串][唯一](必需)
public_IP:[字符串][ip](必需)
private_IP:[字符串][ip](必需)
private_subnet:[字符串][cidr](必需)
vip:[字符串][ip](必需)
角色(roles):[列表][角色](必需)
供应(provision):[bool](必需)
用户名(username):[字符串](必需)
接口(interface):[字符串][接口]
协议(protocols):[列表][协议](可选)
角色:
·网关(gateway):多云网关
·compute_node:轨迹计算节点和k8s节点
·控制器(controller):轨迹控制器和k8s-主
协议:
·ipsec_client:允许实例充当ipsec客户端
·ipsec_server:允许实例充当ipsec服务器
·ssl_client:允许实例充当ssl客户端
·ssl_server:允许实例充当ssl服务器
1.2定义OnPrem提供商字段provider应该具有值OnPrem。
提供商:OnPrem
字段organization和project是可选的,该字段可以指定项目和组织。
组织:Juniper
项目:多云
1.3定义OnPrem实例字段instances应该具有带有实例对象的列表。
实例:
·名称:实例名称
·public_ip:外部ip,将由ansible使用
·private_ip:内部ip
·private_subnet:BIRD将通告的子网
·vip:虚拟ip,将由vrrp使用
·角色:该主机的列表角色
·供应:轨迹供应
·用户名:ansible将使用的主机用户名
·接口:vrouter将使用的接口
·协议:允许该主机使用的列表协议,如果该主机是网关o
ο默认为OnPrem[ssl_clinet],该设置不要求可通过互联网访问的public_ip
示例:
名称:OnPrem1
角色:
-网关
供应:真
用户名:root
public_ip:10.10.10.10
private_ip:192.168.100.17
private_subnet:192.168.100.0/24
接口:eth1
vip:192.168.100.254
协议:
-ipsec_client
1.4示例
具有两个主机、一个网关和混合(控制器和计算机主机)的OnPrem
-提供商:onprem
组织:juniper
项目:多云
实例:
-名称:GW_1_OnPrem
角色:
-网关
供应:真用户名:root
public_ip:10.10.10.10
private_ip:192.168.100.17
private_subnet:192.168.100.0/24
接口:eth1
vip:192.168.100.254
协议:
-ssl_client
-ssl_server
-名称:控制器
角色:
-控制器
-compute_node
供应:真
用户名:root
public_ip:11.11.11.11
private_ip:192.168.100.77
private_subnet:192.168.100.0/24
接口:eth1
vip:192.168.100.254
具有四个主机、两个网关、控制器和计算主机的OnPrem
-提供商:onprem
组织:juniper
项目:多云
实例:
-名称:GW_1_OnPrem
角色:
-网关
供应:真
用户名:root
public_ip:10.10.10.10
private_ip:192.168.100.17
private_subnet:192.168.100.0/24
接口:eth1
vip:192.168.100.254
协议:
-ssl_client
-ssl_server
-名称:GW_2_OnPrem
角色:
-网关
供应:真
用户名:root
public_ip:77.77.77.77
private_ip:192.168.100.57
private_subnet:192.168.100.0/24
接口:eth1
vip:192.168.100.254
协议:
-ssl_client
-ssl_server
-名称:控制器
角色:
-控制器
供应:真
用户名:root
public_ip:11.11.11.11
private_ip:192.168.100.187
private_subnet:192.168.100.0/24
接口:eth1
-名称:计算节点(Compute_node)
角色:
-计算节点(compute_node)
供应:真
用户名:root
public_ip:13.13.13.13
private_ip:192.168.100.67
private_subnet:192.168.100.0/24
接口:eth1
2AWS
AWS是亚马逊网络服务的提供商。这意味着任何定义的实例和资源都将由terraform创建。
1.1字段规范AWS提供商:
提供商:[字符串](必需)
组织:[字符串](可选)
项目:[字符串](可选)
地区:[列表][地区](必需)
AWS地区:
名称:[字符串][唯一](必需)
云:[列表][云](必需)
AWS云:
名称:[字符串][唯一](必需)
cidr_block:[字符串][cidr](必需)
子网:[列表][子网](必需)
安全组(security_groups):[列表][security_group](必需)
实例:[列表][实例](必需)
AWS子网:
名称:[字符串][唯一](必需)
cidr_block:[字符串][cidr](必需)
availability_zone:[字符串][availability_zone](必需)
AWS security_group:
名称:[字符串][唯一](必需)
入口:[字符串][规则](可选)
出口:[字符串][规则](可选)
AWS实例:
名称:[字符串][唯一](必需)
角色:[列表][角色](必需)
供应:[bool](必需)
用户名:[字符串](必需)
接口:[字符串][接口](必需)
协议:[列表][协议](可选)
availability_zone:[字符串][availability_zone](必需)
machine_id:[字符串][ami](必需)
instance_type:[字符串][instance_type](必需)
security_groups:[列表][security_group.name](必需)
子网:[子网.名称](必需)
volume_size:[字符串](可选)
接口:
·vrouter(用于aws)
*或物理接口
machine_id:*instance_type取决于区域
注:如需了解每个地区的centos AWS AMI的列表,请点击此处-centos-ami
实例类型:*ami取决于推荐的ami:优化计算
体积大小:最小值:-网关:#TODO填充-控制器:#TODO填充-compute_node:#TODO填充
推荐:-网关:#TODO填充-控制器:#TODO填充-compute_node:#TODO填充
可用性区域:
·a
·b
·c*取决于地区是否支持
1.3定义区域中的AWS区域是对象区域列表。
区域:
·名称:aws区域的名称
·云:列出将在此区域通过terraform创建的云对象
示例:
名称:eu-west-1
云:
-名称:vpc_1
云(vpc):
·名称:虚拟私有云的名称
·cidr_block:虚拟私有云的cidr_block
·子网:将在此vpc中由terraform创建的子网对象列表
·security_group:将在此vpc中由terraform创建的security_group
对象列表
·实例:将在此vpc中由terraform创建的实例对象列表
示例:
名称:vpc_1
cidr_block:172.16.0.0/23
子网:
-名称:subnet_1
security_groups:
-名称:all_in
实例:
-名称:GW_1
子网:
·名称:子网名称
·cidr_block:此子网的cidr必须是唯一的,并且属于vpc cidr_block
·availability_zone:该子网的availability_zone
示例:
名称:subnet_1
cidr_block:172.16.0.0/24
availability_zone:a
安全组:
·名称:安全组的名称
·入口:入口规则(terraform from)
·出口:出口规则(Terraform from)
示例:
名称:名称:all_in_all_out
入口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
出口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
实例:
·名称:实例的名称
·角色:此主机的列表角色
·供应:轨迹供应
·用户名:ansible将使用的主机用户名取决于ami
·接口:vrouter将使用的接口必须是vrouter
·协议:允许该主机使用的列表协议,如果该主机是网关
ο默认aws[ssl_clinet、ssl_server、ipsec_client、ipsec_server]
·availability_zone:该子网的availability_zone
·machine_id:ami id
·instance_type:实例类型取决于ami
·security_groups:将连接到此实例的安全组名称的列表
·子网:将作为专用子网连接到此实例的子网名称
·volume_size:此实例的可选额外存储
示例:
名称:GW_1_grazyna
availability_zone:a
角色:
-网关
供应:真
用户名:centos
machine_id:ami-ee6a718a
instance_type:c4.大
volume_size:10
security_groups:
-all_in_all_out
子网:subnet_1
接口:eth1
3GCP
谷歌是谷歌云平台的提供商。这意味着定义的任何实例和资源都将由terraform创建。
1.1字段规范谷歌提供商:
提供商:[字符串](必需)
组织:[字符串](可选)
项目:[字符串](必需)
地区:[列表][地区](必需)
谷歌区域:
名称:[字符串][唯一](必需)
云:[列表][云](必需)
谷歌云:
名称:[字符串][唯一](必需)
子网:[列表][子网](必需)
firewalls_external:[列表][firewall_rule](必需)
firewalls_internal:[列表][firewall_rule](必需)
实例:[列表][实例](必需)
谷歌子网:
名称:[字符串][唯一](必需)
cidr_block:[字符串][cidr](必需)
谷歌firewalls_external:
名称:[字符串][唯一](必需)
允许:[字符串][规则](可选)
拒绝:[字符串][规则](可选)
谷歌firewalls_internal:
[列表][规则]
谷歌规则:
名称:[字符串][唯一](必需)
允许:[字符串][规则](可选)
拒绝:[字符串][规则](可选)
谷歌允许/拒绝:
协议:tcp、udp、icmp、esp、ah、sctp
端口:端口和/或端口范围列表
谷歌实例:
名称:[字符串][唯一](必需)
角色:[列表][角色](必需)
供应:[bool](必需)
用户名:[字符串](必需)
接口:[字符串][接口](必需)
协议:[列表][协议](可选)
availability_zone:[字符串][availability_zone](必需)
machine_id:[字符串][ami](必需)
instance_type:[字符串][instance_type](必需)
子网:[子网名称](必需)
volume_size:[字符串](可选)
Machine Id:*instance_type取决于区域
体积大小:最小值:-网关:#TODO填充-控制器:#TODO填充-compute_node:#TODO填充
推荐:-网关:#TODO填充-控制器:#TODO填充-compute_node:#TODO填充
可用性区域:
·a
·b
·c*取决于地区是否支持
示例:
名称:europe-west3
云:
-名称:vpc_1
云(vpc):
·名称:虚拟私有云的名称
·cidr_block:虚拟私有云的cidr_block
·子网:将在此vpc中由terraform创建的子网对象列表
·firewalls_external:将在此vpc中由terraform创建的防火墙对象列表
·firewalls_internal:将在此vpc中由terraform创建的防火墙对象列表
·实例:将在此vpc中由terraform创建的实例对象列表
示例:
名称:vpc_1
cidr_block:172.16.0.0/23
子网:
-名称:subnet_1
firewalls_internal:
-名称:全部
firewalls_external:
-名称:全部
实例:
-名称:GW_1
子网:
·名称:子网名称
·cidr_block:此子网的cidr必须是唯一的,并且属于vpc cidr_block
示例:
名称:subnet_1
cidr_block:172.16.0.0/24
firewalls external:[列表规则]
firewalls internal:[列表规则]
示例:
firewalls_external:
-名称:all-icmp
允许:
协议:icmp
firewalls_internal:
-名称:all-tcp
允许:
协议:tcp
实例:
·名称:实例的名称
·角色:此主机的列表角色
·供应:轨迹供应
·用户名:ansible将使用的主机用户名取决于ami
·接口:vrouter将使用的接口
·协议:允许该主机使用的列表协议,如果该主机是网关o
ο默认aws[ssl_clinet、ssl_server、ipsec_client、ipsec_server]
·availability_zone:该子网的availability_zone
·machine_id:图像id
·instance_type:machine_type
·firewalls_external:防火墙规则列表
·firewalls_internal:防火墙规则列表
·子网:将作为专用子网连接到此实例的子网名称
·volume_size:此实例的可选额外存储
示例:
名称:GW_1_grazyna
availability_zone:a
角色:
-网关
供应:真
用户名:ubuntu
machine_id:ubuntu-1604-xenial-v20170307
instance_type:n1-standard-1
volume_size:10
子网:subnet_1
接口:eth1
修改
本章将为VPC添加新的计算机主机,同时也将添加新的VPC。当前部署能力太低时,这很有用。
修改拓扑
改变topology.yml,这样会显示以下内容。注意,文件的标题没有改变,只是附加了一些数据。
-提供商:aws
组织:juniper
项目:轨迹-多云
地区:
-名称:eu-central-1
云:
-名称:scaling-vpc-1
cidr_block:172.16.0.0/23
子网:
-名称:subnet_1_scaling-vpc-1
cidr_block:172.16.0.0/24
availability_zone:a
安全组:
-名称:all_in_scaling-vpc-1
入口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
-名称:all_out_scaling-vpc-1
出口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
实例:
-名称:Contril_GW_scaling-VPC-1
availability_zone:a
角色:
-网关
供应:真
用户名:centos
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:10
security_groups:
-all_out_scaling-vpc-1
-all_in_scaling-vpc-1
子网:subnet_1_scaling-vpc-1
接口:vrouter
-名称:Contril_controller_scaling-VPC-1
availability_zone:a
供应:真
用户名:centos
角色:
-控制器
-k8s_master
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:24
security_groups:
-all_out_scaling-vpc-1
-all_in_scaling-vpc-1
子网:subnet_1_scaling-vpc-1
接口:eth0
-名称:Compute_scaling-vpc-1
availability_zone:a
供应:真
用户名:centos
角色:
-compute_node
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:24
security_groups:
-all_out_scaling-vpc-1
-all_in_scaling-vpc-1
子网:subnet_1_scaling-vpc-1
接口:eth0
-名称:Another_compute_scaling-vpc-1
availability_zone:a
供应:真
用户名:centos
角色:
-compute_node
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:24
security_groups:
-all_out_scaling-vpc-1
-all_in_scaling-vpc-1
子网:subnet_1_scaling-vpc-1
接口:eth0
-名称:scaling-vpc-2
cidr_block:172.18.0.0/23
子网:
-名称:subnet_1_scaling-vpc-2
cidr_block:172.18.0.0/24
availability_zone:a
security_groups:
-名称:all_in_scaling-vpc-2
入口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
-名称:all_out_scaling-vpc-2
出口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
实例:
-名称:Contril_GW_scaling-VPC-2
availability_zone:a
角色:
-网关
供应:真
用户名:centos
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:10
security_groups:
-all_out_scaling-vpc-2
-all_in_scaling-vpc-2
子网:subnet_1_scaling-vpc-2
接口:vrouter
-名称:Compute_scaling-vpc-2
availability_zone:a
供应:真
-用户名:centos
角色:
-compute_node
machine_id:ami-337be65c
instance_type:t2.xlarge
volume_size:24
security_groups:
-all_out_scaling-vpc-2
-all_in_scaling-vpc-2
子网:subnet_1_scaling-vpc-2
接口:eth0
另一VPC可以使用不同的IP地址池。
将修改应用于拓扑文件
使用以下命令更新关于变化的terraform
./transform/generate_topology.py-t topology.yml-s secret.yml
创造必要的资源
使用此命令在AWS上创建资源
terraform应用-自动-批准
重新生成库存
键入以下内容,以创建库存和轨迹配置:
transform/generate_inventories.py-t topology.yml-s secret.yml-tsterraform.tfstate
这将创建库存、轨迹配置以及state.yml。
更新网关
使用Ansible更新网关并提供新网关
ansible-playbook-i inventories/inventory.yml
ansible/gateway/playbooks/deploy_and_run_all.yml
配置新的集装箱主机
使用该命令为轨迹部署准备新主机:
ansible-playbook-i inventories/inventory.yml ansible/contrail/playbooks/configure.yml
拓扑602可以是网络的计算节点、网络节点和虚拟网络等的设置。这些被称为实例。此外或替代地,拓扑602可以包括多个项目,多个项目中的每个项目与云606相关联。换言之,拓扑602可以表示网络的优选基础设施,包括与至少一个VPC 606相关联的对象网络。在一些示例中,拓扑602以人类可读的数据串行化语言编写,例如,YAML。YAML可以被配置为编码标量、列表、关联数组等。作为示例,拓扑602可以包括以下语言,来定义用于内部虚拟计算环境的项目和用于基于公共云的虚拟计算环境的三个其他项目,以供应整体多云虚拟计算环境(或“多云拓扑”):
-提供商:onprem
组织:juniper-contrail
项目:juniper-contrail
实例:
-名称:OnPremGW-1
角色:
-网关
供应:真
用户名:root
密码:c0ntrail123
public_ip:10.87.65.157
private_ip:172.16.75.157
private_subnet:172.16.64.0/23
接口:p514p1
vip:172.16.75.253
协议:
-ssl_client
-提供商:谷歌
组织:juniper-contrail
项目:轨迹-codilime-多云
地区:
-名称:us-west1
云:
-名称:gcn-contrail-PVT
子网:
-名称:子网-1
cidr_block:192.168.2.0/24
firewalls_external:
-名称:all-wan
允许:
协议:全部
firewalls_internal:
-名称:all-lan
允许:
协议:全部
实例:
-名称:gcloud-contrail-gw
角色:
-网关
供应:真
用户名:ubuntu
os:ubuntu16
instance_type:n1-standard-1
子网:子网-1
接口:ens5
-名称:gcloud-contrail-k8s-node-1
供应:真
用户名:ubuntu
角色:
-compute_node
os:ubuntu16
instance_type:n1-standard-1
子网:子网-1
接口:ens4
-名称:gcloud-contrail-k8s-node-2
供应:真
用户名:ubuntu
角色:
-compute_node
os:ubuntu16
instance_type:n1-standard-1
子网:子网-1
接口:ens4
-提供商:aws
组织:juniper-contrail
项目:轨迹-多云
地区:
-名称:us-east-1
云:
-名称:AWS-contrail
cidr_block:192.168.0.0/23
子网:
-名称:subnet_1_AWS-contrail
cidr_block:192.168.0.0/24
availability_zone:a
security_groups:
-名称:all_in_AWS-contrail
入口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
-名称:all_out_AWS-contrail
出口:
from_port:0
to_port:0
协议:“-1”
cidr_blocks:
-"0.0.0.0/0"
实例:
-名称:aws-contrail-gw
availability_zone:a
角色:
-网关
供应:真
用户名:ubuntu
machine_id:ami-5c66ea23
instance_type:c4.large
volume_size:24
security_groups:
-all_out_aws-contrail
-all_in_aws-contrail
子网:subnet_1_AWS-contrail
接口:eth1
protocols_mode:
-ssl_server
-名称:aws-contrail-k8s-node
availability_zone:a
供应:真
用户名:ubuntu
角色:
-compute_node
machine_id:ami-5c66ea23
instance_type:c4.large
volume_size:24
security_groups:
-all_out_aws-contrail
-all_in_aws-contrail
子网:subnet_1_AWS-contrail
接口:eth0
-提供商:azure
组织:Juniper
项目:contrail-codilime-multicloud
地区:
-名称:WestUS2
resource_group:轨迹-多云
云:
-名称:contrail-az-1
cidr_block:192.168.0.0/16
子网:
-名称:subnet_contrail_az_1
cidr_block:192.168.1.0/24
security_group:allow_all_protocols
security_groups:
-名称:allow_all_protocol-contrail-az-1
规则:
-名称:all_in-contrail-az-1
方向:进站
-名称:all_out-contrail-az-1
方向:出站
实例:
-名称:az-contril-gw-1
角色:
-网关
供应:真
用户名:ubuntu
os:ubuntu16
instance_type:Standard_F16s_v2
子网:subnet_contrail_az_1
接口:eth1
名称:controller-contrail-az-1
供应:真
用户名:ubuntu
角色:
-控制器
-k8s_master
os:ubuntu16
instance_type:Standard_F32s_v2
子网:subnet_contrail_az_1
接口:eth0
名称:compute-contrail-az-1
供应:真
用户名:ubuntu
角色:
-compute_node
os:ubuntu16
instance_type:Standard_F16s_v2
子网:subnet_contrail_az_1
接口:eth0
-名称:contrail-az-2
cidr_block:10.0.0.0/16
子网:
-名称:subnet_contrail_az_2
cidr_block:10.0.1.0/24
security_group:allow_all_protocols-contrail-az-2
security_groups:
-名称:allow_all_protocol-contrail-az-2
规则:
-名称:all_in-contrail-az-2
方向:进站
-名称:all_out-contrail-az-2
方向:出站
实例:
-名称:az-contril-gw-2
角色:
-网关
供应:真
用户名:ubuntu
os:ubuntu16
instance_type:Standard_F16s_v2
子网:subnet_contrail_az_2
接口:eth1
-名称:compute-contrail-az-2
供应:真
用户名:ubuntu
角色:
-compute_node
os:ubuntu16
instance_type:Standard_F16s_v2
子网:subnet_contrail_az_2
接口:eth0
应用程序接口(API)可以促进应用程序的创建和应用程序之间的通信。例如,(API)610包括定义的接口,转换器604通过该接口与其他计算装置交互,以接收拓扑602。API 602可以被配置为从拓扑602“拉取”数据。尽管在图2中示出为包括单个API 610,但是在其他示例中,转换器604可以包括多个API,以从多个后端系统中拉取上下文数据。
解析器612可以解析拓扑602的人类可读语言,并确定由拓扑602指示的网络元件的组织层级。解析器可以使用语言解析技术。换言之,解析器612可以获取输入数据(例如,拓扑602的文本),并构建给出拓扑602的图形的数据结构。更具体地,解析器612可以绘制拓扑602内的对象网络,使得对象网络的连接变得明显。在一些示例中,解析器612可以由用户编程。在其他示例中,解析器612可以使用编译器生成器来创建。该图可以包括解析树、抽象语法树、流程图、示出网络连接的图或另一视觉表示中的至少一个。
规则数据库614可以包括使用模板生成器616管理拓扑602到模板618的转换的多个规则。规则数据库614的每个规则可以包括确定规则是成功还是失败的至少一个条件。每个条件可以包括至少一个事实、至少一个运算符和至少一个值。此外,每个规则可以包括一个事件。如果规则被认为是成功的,则触发事件。当评估规则数据库614的规则时,转换器604使用至少一个运算符来比较至少一个事实和至少一个值。规则可以实现全运算符或任意运算符中的至少一个。所有运算符都要求规则的多个条件中的每个条件必须是真实的,以便规则被认为是成功的。任何运算符都要求规则的多个条件中的至少一个条件必须是真实的,以便规则被认为是成功的。在一些示例中,可以嵌套所有运算符和任何运算符来创建复杂的布尔表达式。
基于多个规则将拓扑602转换为模板618可以包括对于这组规则的规则,将一组条件应用于拓扑602。对于这组条件中的每个应用条件,转换器604可以确定相应的条件是否表示成功。响应于确定这组条件中的至少一个条件表示成功,转换器604可以执行对应于这组规则中的规则的事件。为了执行该事件,转换器604可以在拓扑602中识别对应于提供商的对象,并且根据对应于该对象的提供商将该对象放置在相应模板618的模板中。
在一些示例中,模板生成器616可以使用规则数据库614的至少一个规则来确定云的身份,使得转换器604可以创建包括对应于每个云的对象的模板。通过识别与每个对象相关联的云,模板生成器616使得转换器604能够将拓扑602的每个对象应用到云606的正确云。规则数据库614中可以包括以下示例规则:
Figure BDA0002163362870000501
Figure BDA0002163362870000511
示例规则包含四个条件,包括:[{事实:‘帐户信息’、运算符:‘相等’、值:‘GCP’,路径:‘.tenant’//访问“帐户信息”的租户属性}、{事实:‘VPC’、运算符:“in”、值:[‘活动’]、路径:'.status'}、{事实:'子网'、运算符:'包含'、值:”、路径:'.prefix'}、{fact:'安全组'、运算符:'包含'、值:”、路径:'.sgid'}]。示例规则包括单个事件,如下所示:事件:{键入:“谷歌-云-事件”,参数:{消息:‘当前谷歌云对象’}}。示例规则采用全运算符,这意味着四个条件中的每一个都必须成功,转换器604才能认为示例规则成功并触发事件。这样,为了触发将拓扑602的对象识别为谷歌云对象的事件,‘账户信息’必须等于‘GCP’,‘VPC’必须是‘活动的’,‘子网’必须包含值”,并且‘安全组’必须包含值”。响应于确定拓扑602的对象是谷歌云对象,转换器604可以将该对象应用于VPC 606B。除了上述示例规则之外,规则数据库614还可以包括以下示例规则:
Figure BDA0002163362870000521
Figure BDA0002163362870000531
Figure BDA0002163362870000541
模板生成器616可以使用Ansible来操作,Ansible是自动供应、配置管理和应用部署的软件。这样,模板生成器616可以使用ansible来执行规则数据库614的规则,以将解析器612解析的拓扑602转换为一个或多个模板618。模板618可以包括对应于每个云606的至少一个模板。在一些示例中,模板应用单元619可以使用控制器,例如,图1的控制器104,将模板618应用到云606。更具体地,模板应用单元619可以在云606内安装和修改对象,以定制云606的多个计算基础设施。尽管图6的转换器604是针对公共云描述的,但是模板应用单元619也可以应用对应于公共云、内部云、裸机服务器系统或其他类型的数据中心的模板618。此外,对云606的修改或供应可以仅涉及在其中创建/修改/供应VPC。模板应用单元619可以使用terraform(基础设施即代码(IaC)的软件)将模板618应用到云606。
Terraform是一种软件,能够使用机器可读的定义文件而不是使用物理硬件配置或交互式配置工具来管理和配置数据中心。首先,terraform可以基于期望的基础设施配置来供应计算基础设施。其次,在创建计算基础设施之后,terraform被配置为根据期望的基础设施修改来修改计算基础设施。在一些示例中,terraform可以使用三个基本操作:刷新、计划和应用。Terraform刷新使得模板应用单元619能够观察计算基础设施的当前状态。Terraform计划允许模板应用单元619将期望的虚拟计算基础设施与计算基础设施的当前状态进行比较。另外,terraform应用使得模板应用单元619能够将对象应用到网络,使得网络实现期望的计算基础设施。模板618表示云606的多个期望的计算基础设施。模板应用单元619可以观察每个云606中计算基础设施的当前状态,并且使用模板618,模板应用单元619可以计划对云606的多个计算基础设施的改变。随后,模板应用单元619可以将模板618应用于云606,从而在云606内实现多个期望的虚拟化基础设施。
图7是根据本公开中描述的技术的示例计算装置700的框图。计算装置700可以是云计算基础设施的图1的控制器102的示例实例。图7的计算装置700可以表示被配置为对SDN控制器132和编排器130中的至少一个执行操作的一个或多个真实或虚拟服务器。这样,计算装置700在某些情况下可以为迷你节点的相应集群实现一个或多个主节点。
尽管API 720、解析器722、规则724、自动生成器726、模板728和terraform 729被示出和描述为由单个计算装置700执行,但是可以分布在多个计算装置700中。换言之,多个计算装置700中的每一个可以为任何一个或多个应用编程接口720、解析器722、规则724、自动生成器726、模板728和terraform 729的一个或多个实例提供硬件操作环境。
在该示例中,计算装置700包括耦接计算装置700硬件环境的硬件组件的总线742。总线742耦接网络接口卡(NIC)730、存储盘746和一个或多个微处理器710(以下称为“微处理器310”)。在某些情况下,前端总线可以耦接微处理器710和存储装置744。在一些示例中,总线742可以耦接存储器装置744、微处理器710和NIC 730。总线742可以表示外围组件接口(PCI)快速(PCIe)总线。在一些示例中,直接存储器访问(DMA)控制器可以控制耦接到总线742的组件之间的DMA传输。在一些示例中,耦接到总线742的组件控制耦接到总线742的组件之间的DMA传输。
微处理器710可以包括一个或多个处理器,每个处理器包括独立的执行单元,以执行符合指令集架构的指令,这些指令存储到存储介质。执行单元可以被实现为单独的集成电路(IC),或者可以组合在一个或多个多核处理器(或“多个核”处理器)内,每个多核处理器使用单个IC(即,芯片多处理器)来实现。
磁盘746表示计算机可读存储介质,其包括以用于存储诸如处理器可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和/或非易失性、可移动和/或不可移动介质。计算机可读存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储装置或可用于存储所需信息并可由微处理器710访问的任何其他介质。
主存储器744包括一个或多个计算机可读存储介质,其可以包括随机存取存储器(RAM),例如,各种形式的动态RAM(DRAM)(例如,DDR2/DDR3SDRAM)或静态RAM(SRAM)、闪存、或任何其他形式的固定或可移动存储介质,其可以用于以指令或数据结构的形式携带或存储期望的程序代码和程序数据,并且可以被计算机访问。主存储器744提供由可寻址存储位置组成的物理地址空间。
网络接口卡(NIC)730包括一个或多个接口732,其被配置为使用底层物理网络的链路交换分组。接口732可以包括具有一个或多个网络端口的端口接口卡。NIC 730还可以包括卡上存储器,以例如存储分组数据。NIC 730和耦接到总线742的其他装置之间的直接存储器访问传输可以从NIC存储器读取/写入NIC存储器。
存储器744、NIC 730、存储盘746和微处理器710可以为软件堆栈提供操作环境,该软件堆栈包括在内核空间中执行的操作系统内核714。内核714可以表示例如微软公司提供的Linux、伯克利软件分发(BSD)、另一Unix变体内核或视窗服务器操作系统内核。在一些情况下,操作系统可以执行管理程序和由管理程序管理的一个或多个虚拟机。示例虚拟机管理程序包括用于Linux内核的基于内核的虚拟机(KVM)、Xen、VMware提供的ESXi、微软提供的视窗Hyper-V以及其他开源和专有虚拟机管理程序。术语管理程序可以包括虚拟机管理器(VMM)。包括内核714的操作系统为用户空间745中的一个或多个进程提供执行环境。
计算装置700可以耦接到物理网络交换结构,该物理网络交换结构包括覆盖网络,该覆盖网络将交换结构从物理交换机扩展到耦接到交换结构的物理服务器的软件或“虚拟”路由器,例如,图2的虚拟路由器220。计算装置700可以使用一个或多个专用虚拟网络来配置集群的迷你节点。
包括API 720、规则724、自动生成器726、模板728和terraform 729的转换器750可以将拓扑152转换为一个或多个模板,这些模板定义了用于在一个或多个数据中心中配置多个计算基础设施的指令。这些组件可以表示转换器604的相应组件的示例。
图8是示出根据本公开中描述的技术的用于在多云基础设施800内引导集装箱的另一示例控制器的框图。图8的基础设施800包括内部云810和私有云820。控制器812可以经由网关门户830A-830C(统称为网关830)分发数据(例如,分组、对象、集装箱、应用程序等)。网关830可以是图2的网关230的示例。在一些示例中,网关830的各种网关门户可以使用一组路径连接。例如,网关门户830A和网关门户830B可以通过边界网关协议(BGP)840A和互联网协议安全(IPSec)加密覆盖信道850A连接。BGP是一种标准化的外部网关协议,用于在服务器之间交换路由和可达性信息。例如,BGP可以发送通过一个或多个路由器(例如,基础设施800的vRouter)路由分组所需的信息。BGP会话可以加密,也可以不加密。因此,网关830包括用于在网关门户之间传输路由信息的安全信道可能是有益的。IPSec加密覆盖信道850可以连接网关门户,使得路由信息可以以安全的方式传输。
图9是示出根据本公开中描述的技术的包括至少一个区域和至少一个可用性区域的示例私有云900的框图。该至少一个区域的每个区域包括具有映射到相应区域中的物理数据中心的可用性区域集合的地理区域。至少一个区域的每个区域在位置、电力、供水等方面与至少一个区域的每个其他区域物理隔离并且独立。可用性区域是私有云900的客户可用的区域中的逻辑数据中心。一个区域中的每个可用性区域都有冗余和独立的电源、网络和连接,以降低两个可用性区域同时出现故障的可能性。
图10A至图10C是示出根据本公开中描述的技术的包括至少一个网关门户的示例网络1000的框图。网关门户可以位于网络1000的每个可用性区域内。此外,控制器被配置为在可用性区域(包括网关门户)内构建和监控计算基础设施。如图10A所示,可用性区域的网关门户可以被配置为经由加密信道(IPSec、安全套接字层(SSL)或网络地址转换器遍历(Nat-t))与控制器的网关门户通信。如图10B所示,当每个可用性区域(例如,AZ-1和AZ-2)正常运行时,可用性区域(例如,AZ-1)内的租户装置被配置为与另一可用性区域(例如,AZ-2)内的控制器和租户装置一起发送和接收信息(例如,分组、集装箱等)。如果可用性区域(例如,AZ-1)离线(图10C),则另一可用性区域(例如,AZ-2)可以保持在线,并且网关门户可以使AZ-2内的租户装置能够与DC-1和DC-2的控制器交换信息。
在一些示例中,可用性区域的故障可以由网关处理。例如,在实例故障期间,网关门户部署在每个可用性区域以及DC-1和DC-2内的活动-备用对中。网关实例故障将会通告隧道路由和下一跳,以指向当前活动的网关门户。如果两个网关实例都在可用性区域(例如,AZ-1)中发生故障,则将经由VPC内的AZ-2引导通往网关实例的路由。
对于包括在任何流程图或流程图中的在本文描述的过程、设备和其他示例或图示,在本文描述的任何技术中包括的某些操作、动作、步骤或事件可以以不同的顺序执行,可以添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,操作、动作、步骤或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而不是依次执行。此外,某些操作、动作、步骤或事件可以自动执行,即使没有被特别标识为自动执行。此外,被描述为自动执行的某些操作、动作、步骤或事件也可以不自动执行,但是在一些示例中,这些操作、动作、步骤或事件可以响应于输入或另一事件来执行。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。如果以软件实现,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(例如,数据存储介质)或者包括有助于计算机程序从一个地方传输到另一地方的任何介质的通信介质(例如,根据通信协议)。以这种方式,计算机可读介质通常可以对应于(1)有形计算机可读存储介质(其是非暂时性的)或者(2)通信介质,例如,信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索指令、代码和/或数据结构来实现本公开中描述的技术。计算机程序产品可以包括计算机可读介质。
通过示例而非限制的方式,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储装置、闪存或任何其他介质,其可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问。此外,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或诸如红外、无线电和微波的无线技术从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是指向非瞬态有形存储介质。使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”或“处理电路”可以均指任何前述结构或任何其他适于实现所描述的技术的结构。此外,在一些示例中,所描述的功能可以在专用硬件和/或软件模块内提供。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在多种装置或设备中实现,包括无线手机、移动或非移动计算装置、穿戴式或非穿戴式计算装置、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的装置的功能方面,但是不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以组合在硬件单元中,或者由互操作硬件单元的集合提供,包括如上所述的一个或多个处理器,结合合适的软件和/或固件。

Claims (20)

1.一种供应虚拟计算环境的方法,所述方法包括:
由计算装置获得要在多个计算基础设施中供应的所述虚拟计算环境的高级拓扑描述,其中,所述高级拓扑描述包括多个对象,其中,所述多个计算基础设施中的每个计算基础设施使用多个计算架构中不同的计算架构来实现,并且其中,所述多个计算基础设施中的每个计算基础设施由不同的提供商来部署;
通过在所述计算装置上执行的规则引擎,将所述高级拓扑描述转换为针对所述多个计算基础设施的相应模板,其中,所述多个模板中的每个模板以符合模式的格式描述所述虚拟计算环境的拓扑,所述模式能够由所述多个计算基础设施中的相应的一个计算基础设施处理,以在所述多个计算基础设施中的所述相应的一个计算基础设施中实现所述虚拟计算环境;并且
其中,转换所述高级拓扑描述包括确定所述多个对象中的对象是用于所述多个计算基础设施中的计算基础设施的对象,并且响应于所述确定,生成所述多个模板中的用于所述多个计算基础设施中的所述计算基础设施的模板以包括所述对象以用于在所述计算基础设施中供应;并且
使用所述多个模板的相应模板供应所述多个计算基础设施中的每个计算基础设施,以实现所述虚拟计算环境。
2.根据权利要求1所述的方法,
其中,所述虚拟计算环境的所述高级拓扑描述包括用人类可读数据串行化语言编码的文本文件,并且
其中,所述虚拟计算环境的所述高级拓扑描述包括虚拟网络、存储器和由虚拟计算环境提供的服务中的至少一个。
3.根据权利要求2所述的方法,其中,所述人类可读数据串行化语言包括YAML非标记语言(YAML)。
4.根据权利要求1所述的方法,其中,所述方法还包括将一个或多个虚拟执行元件部署到所述虚拟计算环境。
5.根据权利要求1所述的方法,
其中,所述拓扑为每个所述计算基础设施定义一个或多个项目,并且
其中,针对计算基础设施的所述一个或多个项目中的每个项目定义了要在所述计算基础设施中供应的相应虚拟私有云。
6.根据权利要求1所述的方法,其中,获得所述高级拓扑描述包括获得包括多个字段的所述高级拓扑描述,所述多个字段包括提供商、组织、项目和至少一个实例中的至少一个。
7.根据权利要求6所述的方法,其中,所述至少一个实例包括名称、角色、供应、用户名、接口、协议、可用性区域、机器ID、实例类型、子网、安全组和体积大小中的至少一个。
8.根据权利要求1所述的方法,其中,将所述高级拓扑描述转换为所述模板,包括基于所述高级拓扑描述创建相应模板,其中,基础设施即代码(IaC)软件被配置为使用所述模板在所选择的一个计算基础设施中实现所述虚拟计算环境。
9.根据权利要求8所述的方法,其中,IaC软件包括Terraform。
10.根据权利要求1所述的方法,其中,所述提供商包括亚马逊网络服务(AWS)、谷歌云平台(GCP)和微软Azure中的至少一个。
11.根据权利要求1至10中任一项所述的方法,其中,将所述高级拓扑描述转换为所述模板包括基于所述规则引擎的一组规则将所述高级拓扑描述转换为所述模板。
12.根据权利要求11所述的方法,其中,基于所述一组规则将所述高级拓扑描述转换为所述模板包括:
对于所述一组规则中的规则,将一组条件应用于所述高级拓扑描述,
对于所述一组条件中的每个应用条件,确定相应条件是否表示成功;并且
响应于确定所述一组条件中的至少一个条件表示成功,使用所述计算装置执行对应于所述一组规则中的规则的事件。
13.根据权利要求12所述的方法,其中,所述对象是第一对象,并且其中,执行所述事件包括:
在所述高级拓扑描述中识别所述多个对象中对应于提供商的第二对象;并且
根据对应于所述第二对象的所述提供商,将所述第二对象放置在所述相应模板的模板中。
14.一种计算系统,包括:
一个或多个处理器,耦接到存储器,其中,所述一个或多个处理器被配置为:
获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述,其中,所述高级拓扑描述包括多个对象,其中,所述多个计算基础设施中的每个计算基础设施使用多个计算架构中不同的计算架构来实现,并且其中,所述多个计算基础设施中的每个计算基础设施由多个提供商中不同的提供商来部署;
将所述高级拓扑描述转换为所述多个计算基础设施的相应模板,其中,所述多个模板中的每个模板以符合模式的格式描述虚拟计算环境的拓扑,所述模式能够由所述多个计算基础设施中的相应的一个计算基础设施处理,以在所述多个计算基础设施中的所述相应的一个计算基础设施中实现所述虚拟计算环境;并且
其中,转换所述高级拓扑描述,所述一个或多个处理器被配置为确定所述多个对象中的对象是用于所述多个计算基础设施中的计算基础设施的对象,并且响应于所述确定,生成所述多个模板中的用于所述多个计算基础设施中的所述计算基础设施的模板以包括所述对象以用于在第一计算基础设施中供应;并且
使用所述多个模板的相应模板供应所述多个计算基础设施中的每个计算基础设施,以实现所述虚拟计算环境。
15.根据权利要求14所述的计算系统,
其中,所述虚拟计算环境的所述高级拓扑描述包括用人类可读数据串行化语言编码的文本文件,并且
其中,所述虚拟计算环境的所述高级拓扑描述包括虚拟网络、存储器和由所述虚拟计算环境提供的服务中的至少一个。
16.根据权利要求14所述的计算系统,其中,所述一个或多个处理器还被配置为将一个或多个虚拟执行元件部署到所述虚拟计算环境。
17.根据权利要求14至16中任一项所述的计算系统,其中,为了将所述高级拓扑描述转换为所述相应模板,所述一个或多个处理器被配置为基于规则引擎的一组规则将所述高级拓扑描述转换为所述模板。
18.根据权利要求17所述的计算系统,其中,为了基于所述一组规则将所述高级拓扑描述转换为所述相应模板,所述一个或多个处理器被配置为:
对于所述一组规则的规则,将一组条件应用于所述高级拓扑描述,
对于所述一组条件中的每个应用条件,确定相应条件是否表示成功;并且
响应于确定所述一组条件中的至少一个条件表示成功,执行对应于所述一组规则中的规则的事件。
19.根据权利要求18所述的计算系统,其中,所述对象是第一对象,并且其中,为了执行所述事件,所述一个或多个处理器被配置为
在所述高级拓扑描述中识别所述多个对象中对应于提供商的第二对象;并且
根据对应于所述第二对象的所述提供商,将所述第二对象放置在所述相应模板的模板中。
20.一种非暂时性计算机介质,包括用于使一个或多个处理器执行以下操作的指令:
获得要在多个计算基础设施中供应的虚拟计算环境的高级拓扑描述,其中,所述高级拓扑描述包括多个对象,其中,所述多个计算基础设施中的每个计算基础设施使用多个计算架构中不同的计算架构来实现,并且其中,所述多个计算基础设施中的每个计算基础设施由多个提供商中不同的提供商来部署;
将所述高级拓扑描述转换为所述多个计算基础设施的相应模板,其中,所述多个模板中的每个模板以符合模式的格式描述虚拟计算环境的拓扑,所述模式能够由所述多个计算基础设施中的相应的一个计算基础设施处理,以在所述多个计算基础设施中的所述相应的一个计算基础设施中实现所述虚拟计算环境;并且
其中,转换所述高级拓扑描述,所述指令使得所述一个或多个处理器确定所述多个对象中的对象是用于所述多个计算基础设施中的计算基础设施的对象,并且响应于所述确定,生成所述多个模板中的用于所述多个计算基础设施中的所述计算基础设施的模板以包括所述对象以用于在第一计算基础设施中供应;并且
使用所述多个模板的相应模板供应所述多个计算基础设施中的每个计算基础设施,以实现所述虚拟计算环境。
CN201910739288.7A 2018-08-14 2019-08-12 使用高级拓扑描述的多云虚拟计算环境供应 Active CN110830357B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862718869P 2018-08-14 2018-08-14
US62/718,869 2018-08-14
US16/132,209 2018-09-14
US16/132,209 US10999163B2 (en) 2018-08-14 2018-09-14 Multi-cloud virtual computing environment provisioning using a high-level topology description

Publications (2)

Publication Number Publication Date
CN110830357A CN110830357A (zh) 2020-02-21
CN110830357B true CN110830357B (zh) 2022-01-21

Family

ID=67137590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910739288.7A Active CN110830357B (zh) 2018-08-14 2019-08-12 使用高级拓扑描述的多云虚拟计算环境供应

Country Status (3)

Country Link
US (1) US10999163B2 (zh)
EP (1) EP3611619A1 (zh)
CN (1) CN110830357B (zh)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10778466B2 (en) 2017-10-02 2020-09-15 Vmware, Inc. Processing data messages of a virtual network that are sent to and received from external service machines
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US10671286B2 (en) * 2018-09-04 2020-06-02 Toshiba Memory Corporation System and method for managing GUI of virtual NVMe entities in NVMe over fabric appliance
US11271846B2 (en) * 2018-10-22 2022-03-08 Oracle International Corporation Methods, systems, and computer readable media for locality-based selection and routing of traffic to producer network functions (NFs)
US11032213B1 (en) * 2018-12-14 2021-06-08 Amazon Technologies, Inc. Centralized management of computing resources across service provider networks
EP3864514B1 (en) * 2018-12-21 2023-09-06 Huawei Cloud Computing Technologies Co., Ltd. Mechanism to reduce serverless function startup latency
WO2020133098A1 (zh) * 2018-12-27 2020-07-02 驭势科技(北京)有限公司 一种分布式计算网络系统与方法
US11245597B2 (en) * 2019-01-25 2022-02-08 Vmware, Inc. Multi-site wide area network in a cloud computing system
US10848379B2 (en) * 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments
US11895092B2 (en) * 2019-03-04 2024-02-06 Appgate Cybersecurity, Inc. Network access controller operation
US10970135B2 (en) * 2019-04-04 2021-04-06 Salesforce.com. inc. Infrastructure base model API
US11418399B2 (en) 2019-04-30 2022-08-16 Cisco Technology, Inc. Multi-fabric deployment and management platform
US11431654B2 (en) * 2019-06-17 2022-08-30 Cyxtera Data Centers, Inc. Network service integration into a network fabric of a data center
US11252093B2 (en) 2019-06-26 2022-02-15 Oracle International Corporation Methods, systems, and computer readable media for policing access point name-aggregate maximum bit rate (APN-AMBR) across packet data network gateway data plane (P-GW DP) worker instances
US11159359B2 (en) 2019-06-26 2021-10-26 Oracle International Corporation Methods, systems, and computer readable media for diameter-peer-wide egress rate limiting at diameter relay agent (DRA)
US10819636B1 (en) 2019-06-26 2020-10-27 Oracle International Corporation Methods, systems, and computer readable media for producer network function (NF) service instance wide egress rate limiting at service communication proxy (SCP)
US10909048B1 (en) * 2019-07-30 2021-02-02 Microsoft Technology Licensing, Llc Declarative transactional communications with a peripheral device via a low-power bus
US11121985B2 (en) * 2019-08-27 2021-09-14 Vmware, Inc. Defining different public cloud virtual networks for different entities based on different sets of measurements
US11082393B2 (en) 2019-08-29 2021-08-03 Oracle International Corporation Methods, systems, and computer readable media for actively discovering and tracking addresses associated with 5G and non-5G service endpoints
US11323413B2 (en) 2019-08-29 2022-05-03 Oracle International Corporation Methods, systems, and computer readable media for actively discovering and tracking addresses associated with 4G service endpoints
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11316754B2 (en) 2019-11-07 2022-04-26 Verizon Patent And Licensing Inc. Systems and methods for network analytics service automation
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11224009B2 (en) 2019-12-30 2022-01-11 Oracle International Corporation Methods, systems, and computer readable media for enabling transport quality of service (QoS) in 5G networks
US11991041B2 (en) * 2019-12-30 2024-05-21 Oracle International Corporation Autonomous terraforming on cloud infrastructures
US11438789B2 (en) 2020-01-24 2022-09-06 Vmware, Inc. Computing and using different path quality metrics for different service classes
CN111464511A (zh) * 2020-03-18 2020-07-28 紫光云技术有限公司 一种用于实现云计算网络中支持多vpc隔离的方法
US11595393B2 (en) 2020-03-31 2023-02-28 Juniper Networks, Inc. Role-based access control policy auto generation
US11991216B1 (en) * 2020-04-20 2024-05-21 Ariksa, Inc. Policy-based cloud asset and security management system
CN111610985B (zh) * 2020-05-13 2023-05-05 麒麟软件有限公司 一种国产平台上的kubernetes集群快速部署方法
US11669371B2 (en) 2020-05-15 2023-06-06 Nbc Universal Media, Llc Automated instantiation of virtual production control room
US11262990B2 (en) 2020-05-26 2022-03-01 International Business Machines Corporation Application topology discovery
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11528334B2 (en) 2020-07-31 2022-12-13 Oracle International Corporation Methods, systems, and computer readable media for preferred network function (NF) location routing using service communications proxy (SCP)
US11588711B2 (en) * 2020-08-14 2023-02-21 Cisco Technology, Inc. Intent-driven cloud branches
US11290549B2 (en) 2020-08-24 2022-03-29 Oracle International Corporation Methods, systems, and computer readable media for optimized network function (NF) discovery and routing using service communications proxy (SCP) and NF repository function (NRF)
US11483694B2 (en) 2020-09-01 2022-10-25 Oracle International Corporation Methods, systems, and computer readable media for service communications proxy (SCP)-specific prioritized network function (NF) discovery and routing
US11381473B1 (en) * 2020-09-15 2022-07-05 Amazon Technologies, Inc. Generating resources in a secured network
US20220086189A1 (en) * 2020-09-16 2022-03-17 Salesforce.Com, Inc. Network security orchestration and management across different clouds
CN112187541B (zh) * 2020-09-28 2022-09-27 杭州安恒信息技术股份有限公司 一种虚拟拓扑构建方法、装置及介质
US11570262B2 (en) 2020-10-28 2023-01-31 Oracle International Corporation Methods, systems, and computer readable media for rank processing for network function selection
US11848829B2 (en) * 2020-11-06 2023-12-19 Salesforce, Inc. Modifying a data center based on cloud computing platform using declarative language and compiler
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US20220171649A1 (en) * 2020-11-30 2022-06-02 Juniper Networks, Inc. Extending a software defined network between public cloud computing architecture and a data center
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
CN112650537B (zh) * 2020-12-30 2024-02-02 平安证券股份有限公司 服务器配置方法、装置、设备以及计算机可读存储介质
CN116783874A (zh) 2021-01-18 2023-09-19 Vm维尔股份有限公司 网络感知的负载平衡
US11470544B2 (en) 2021-01-22 2022-10-11 Oracle International Corporation Methods, systems, and computer readable media for optimized routing of messages relating to existing network function (NF) subscriptions using an intermediate forwarding NF repository function (NRF)
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11856052B2 (en) * 2021-02-18 2023-12-26 Jpmorgan Chase Bank, N.A. System and method for implementing a smart cloud deployment module
US11496954B2 (en) 2021-03-13 2022-11-08 Oracle International Corporation Methods, systems, and computer readable media for supporting multiple preferred localities for network function (NF) discovery and selection procedures
US11776090B2 (en) 2021-04-12 2023-10-03 Sas Institute Inc. Dynamic per-node pre-pulling in distributed computing
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an SD-WAN
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11888946B2 (en) 2021-06-02 2024-01-30 Oracle International Corporation Methods, systems, and computer readable media for applying or overriding preferred locality criteria in processing network function (NF) discovery requests
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11895080B2 (en) 2021-06-23 2024-02-06 Oracle International Corporation Methods, systems, and computer readable media for resolution of inter-network domain names
US12047282B2 (en) 2021-07-22 2024-07-23 VMware LLC Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN
US20230025015A1 (en) * 2021-07-23 2023-01-26 Vmware, Inc. Methods and apparatus to facilitate content generation for cloud computing platforms
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11431563B1 (en) * 2021-07-27 2022-08-30 Vmware, Inc. Intelligent management of cloud infrastructures using a cloud management platform
US11950178B2 (en) 2021-08-03 2024-04-02 Oracle International Corporation Methods, systems, and computer readable media for optimized routing of service based interface (SBI) request messages to remote network function (NF) repository functions using indirect communications via service communication proxy (SCP)
US11930083B2 (en) 2021-08-09 2024-03-12 Oracle International Corporation Methods, systems, and computer readable media for processing network function (NF) discovery requests at NF repository function (NRF) using prioritized lists of preferred locations
US11871309B2 (en) 2021-09-28 2024-01-09 Oracle International Corporation Methods, systems, and computer readable media for network function discovery using preferred-locality information
US20230094937A1 (en) * 2021-09-30 2023-03-30 Hewlett Packard Enterprise Development Lp Control plane configuration
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US12074884B2 (en) 2021-10-04 2024-08-27 Juniper Networks, Inc. Role-based access control autogeneration in a cloud native software-defined network architecture
US11733899B2 (en) 2021-10-08 2023-08-22 Dell Products L.P. Information handling system storage application volume placement tool
US11849506B2 (en) 2021-10-08 2023-12-19 Oracle International Corporation Methods, systems, and computer readable media for routing inter-public land mobile network (inter-PLMN) messages related to existing subscriptions with network function (NF) repository function (NRF) using security edge protection proxy (SEPP)
US12045584B2 (en) * 2021-10-14 2024-07-23 Red Hat, Inc. Undeployed topology visualization for improving software application development
CN113839821B (zh) * 2021-10-14 2024-05-24 京东科技信息技术有限公司 部署集群和构建基础设施的方法、装置、系统、设备及介质
US20230153166A1 (en) * 2021-11-18 2023-05-18 Aaron Bawcom Systems and methods for pattern-based software applications
US11888957B2 (en) 2021-12-07 2024-01-30 Oracle International Corporation Methods, systems, and computer readable media for locality and serving scope set based network function (NF) profile prioritization and message routing
CN114024782B (zh) * 2022-01-10 2022-04-12 江苏博云科技股份有限公司 基于三层安全隧道技术的云与边缘、边缘与边缘组网系统
US11652895B1 (en) 2022-02-15 2023-05-16 Oracle International Corporation Methods, systems, and computer readable media for dynamic optimized network function discovery for consumer network functions
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
US11954504B2 (en) 2022-07-14 2024-04-09 Capital One Services, Llc Systems and methods to convert information technology infrastructure to a software-defined system
US20240080264A1 (en) * 2022-09-02 2024-03-07 Royal Bank Of Canada Multicloud hosting for containerized applications
US20240143459A1 (en) * 2022-10-26 2024-05-02 Oracle International Corporation Replicating resources between regional data centers
US12040955B2 (en) * 2022-11-08 2024-07-16 Be Broadband Technologies (Bbt.Live) Ltd. System and method for the management and optimization of software defined networks
WO2024123328A1 (en) * 2022-12-07 2024-06-13 Robin Systems, Inc Zero touch provisioning of bare metal servers with radio access network software
US20240241717A1 (en) * 2023-01-18 2024-07-18 Cdw Llc Cloud infrastructure-as-code methods and systems for improving access and visibility of users across different functional groups
US12057993B1 (en) 2023-03-27 2024-08-06 VMware LLC Identifying and remediating anomalies in a self-healing network
US12034587B1 (en) 2023-03-27 2024-07-09 VMware LLC Identifying and remediating anomalies in a self-healing network

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US10630559B2 (en) * 2011-09-27 2020-04-21 UST Global (Singapore) Pte. Ltd. Virtual machine (VM) realm integration and management
US8434080B2 (en) * 2011-12-22 2013-04-30 Software Ag Usa, Inc. Distributed cloud application deployment systems and/or associated methods
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9047158B2 (en) * 2012-08-23 2015-06-02 International Business Machines Corporation Using preprovisioned mutated templates
CN104508627B (zh) 2012-10-08 2017-12-15 慧与发展有限责任合伙企业 混合云环境
US9813318B2 (en) * 2013-03-15 2017-11-07 International Business Machines Corporation Assessment of best fit cloud deployment infrastructures
US9641435B1 (en) 2014-03-28 2017-05-02 Juniper Neworks, Inc. Packet segmentation offload for virtual networks
US9621428B1 (en) * 2014-04-09 2017-04-11 Cisco Technology, Inc. Multi-tiered cloud application topology modeling tool
US9723065B2 (en) * 2014-10-13 2017-08-01 Vmware, Inc. Cross-cloud object mapping for hybrid clouds
IN2015CH04027A (zh) * 2015-08-03 2015-08-14 Wipro Ltd
SG11201804089PA (en) * 2016-02-25 2018-06-28 Huawei Tech Co Ltd Method for automatically deploying application, and cloud management node
US11223536B2 (en) * 2016-04-04 2022-01-11 At&T Intellectual Property I, L.P. Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
US20180115551A1 (en) * 2016-10-20 2018-04-26 Brian Cole Proxy system for securely provisioning computing resources in cloud computing environment
US10521286B2 (en) * 2017-03-23 2019-12-31 Rathinasabapathy Arumugam System and method for interoperable cloud DSL to orchestrate multiple cloud platforms and services
US10474438B2 (en) * 2017-07-21 2019-11-12 Accenture Global Solutions Limited Intelligent cloud engineering platform
US10360025B2 (en) * 2017-09-08 2019-07-23 Accenture Global Solutions Limited Infrastructure instantiation, collaboration, and validation architecture for serverless execution frameworks
US10795709B2 (en) * 2017-09-26 2020-10-06 The Mitre Corporation Systems and method for deploying, securing, and maintaining computer-based analytic environments
US20190122156A1 (en) * 2017-10-20 2019-04-25 International Business Machines Corporation Orchestration Engine Blueprint Milestones
US10671368B2 (en) * 2017-11-03 2020-06-02 International Business Machines Corporation Automatic creation of delivery pipelines
TW201937379A (zh) * 2017-12-05 2019-09-16 美商敏捷棧公司 用於管理資料中心與雲端應用程式基礎架構之系統、方法及非暫態計算機可讀介質
US10838747B2 (en) * 2017-12-14 2020-11-17 Hewlett Packard Enterprise Development Lp Virtual appliances
US10754691B2 (en) * 2018-06-27 2020-08-25 International Business Machines Corporation Policy based requesting/approval system across multiple hybrid clouds

Also Published As

Publication number Publication date
US20200059420A1 (en) 2020-02-20
CN110830357A (zh) 2020-02-21
EP3611619A1 (en) 2020-02-19
US10999163B2 (en) 2021-05-04

Similar Documents

Publication Publication Date Title
CN110830357B (zh) 使用高级拓扑描述的多云虚拟计算环境供应
US11700237B2 (en) Intent-based policy generation for virtual networks
CN110830389B (zh) 用于计算机网络的系统和方法
US11329918B2 (en) Facilitating flow symmetry for service chains in a computer network
US11329914B2 (en) User customization and automation of operations on a software-defined network
US10728288B2 (en) Policy-driven workload launching based on software defined networking encryption policies
US10742690B2 (en) Scalable policy management for virtual networks
US10931793B2 (en) System and method for automated rendering of service chaining
US11418546B1 (en) Scalable port range management for security policies
US11316738B2 (en) Vendor agnostic profile-based modeling of service access endpoints in a multitenant environment
US11997011B2 (en) Virtual port group
US11444836B1 (en) Multiple clusters managed by software-defined network (SDN) controller

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant