CN105743692B - 用于应用管理的基于策略的框架 - Google Patents
用于应用管理的基于策略的框架 Download PDFInfo
- Publication number
- CN105743692B CN105743692B CN201511029450.4A CN201511029450A CN105743692B CN 105743692 B CN105743692 B CN 105743692B CN 201511029450 A CN201511029450 A CN 201511029450A CN 105743692 B CN105743692 B CN 105743692B
- Authority
- CN
- China
- Prior art keywords
- application
- node
- state
- distributed computing
- rule
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
Abstract
本发明的各实施方式总体上涉及用于应用管理的基于策略的框架。具体地,涉及在分布式路由系统的第一节点上操作的第一系统管理器接收指示分布式路由系统的当前状态的数据。第一系统管理器可以至少部分基于分布式路由系统的当前状态和针对应用的规则集来确定分布式路由系统的更新状态。此外,第一节点可以向分布式路由系统的第二节点发送分布式路由系统的更新状态。响应于接收分布式路由系统的更新状态,第二节点上的第二系统管理器可以修改第二节点的状态。修改第二节点的状态可以包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
Description
相关申请的交叉引用
本申请是2014年12月31日提交的美国专利申请14/587,612的部分继续申请,并且要求2015年5月1日提交的美国临时专利申请62/155,782的权益,其各自的全部内容通过引用并入于此。
技术领域
本发明的各实施方式总体上涉及计算机网络,具体地涉及用于在具有多个分组处理节点的网络设备中进行应用管理的基于策略的框架。
背景技术
计算机网络是可以交换数据和共享资源的互连的计算设备的汇集。在基于分组的网络中,计算设备通过将数据划分成被称为分组的小块来通信数据,这些分组跨网络从源设备被单独地路由到目的地设备。目的地设备从分组提取数据并且将数据组装成其原有形式。将数据划分成分组使得源设备能够仅重发可能在传输期间丢失的那些个别分组。
被称为路由器的某些设备维护描述经过网络的路由的路由信息表。“路由”通常可以被定义为在网络上的两个位置之间的路径。在接收传入数据分组之后,路由器检查分组中的目的地信息以标识该分组的目的地。基于该目的地,路由器根据路由表转发分组。
诸如因特网服务提供商的服务提供商必须满足日益增加的带宽需求。这要求服务提供商连续地添加、替换并升级其网络中的路由设备。设备替换和升级对于服务提供商而言可能是一种挑战。随着网络扩展,管理路由设备所需的管理时间和成本也随之增长。因此,服务提供商继续寻求减少与升级和管理网络路由系统相关联的时间和费用。
一种用于满足带宽需求的方法是使用分布式路由系统(诸如,多机架路由器),其中多个路由设备物理上耦合并被配置为作为单个路由节点进行操作。因为分布式路由系统将多个路由设备的资源组合,因此分布式路由系统具有比独立式路由器高得多的带宽容量。例如,分布式路由系统的使用可以通过将路由功能合并到较少路由器上来简化并改进服务提供商网络上的路由。然而,分布式路由系统的每个设备的单独配置和管理可能是巨大的挑战。
发明内容
本公开描述了具有通过通信链路耦合至多个机架的多个机架的网络设备,诸如多机架路由器。每个机架(还被称为“节点”)提供由网络设备执行与分组的处理相关联的应用的操作环境。例如,每个机架可以包括具有一个或多个处理器和数据平面的控制平面,该数据平面可以包括线卡、高速分组转发电路和互连交换机光纤。通过此方式,网络设备可以在内部操作为具有用于处理分组的复杂、异构计算组件的分布式计算环境,也可以在外部出现作为网络中的单个网络设备进行操作。
这里所述的技术允许基于策略的框架实现以控制跨网络设备的分组处理节点的异构计算环境的应用的功能操作。如这里所述,技术促进对跨路由器的机架(即,节点间)或者相同机架中计算环境之间(诸如,路由机架的控制平面与转发平面之间)应用的移动性和故障转移的控制。这里描述了策略描述语言(DSL),该DSL允许管理员使用命令行或程序化接口描述并指定每个分组处理应用,包括其属性和资源要求。响应于DSL,在网络设备的各内部节点上执行的管理框架根据由DSL指定的策略来控制分组处理应用的调用和执行。通过此方式,控制多机架网络设备的每个机架内的处理以及每个机架内的组件的分组应用的功能配置可以使用可扩展通用策略驱动框架进行控制和配置。
根据本公开的一个或多个技术,在网络设备的第一节点上操作的第一系统管理器接收指示网络设备的当前状态的数据。第一系统管理器可以至少部分基于网络设备的当前状态和针对应用的规则集来确定网络设备的更新状态。此外,第一节点可以向网络设备的第二节点发送网络设备的更新状态。响应于接收网络设备的更新状态,第二节点上的第二系统管理器可以修改第二节点的状态。修改第二节点的状态可以包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在一个示例中,本公开描述了一种方法,包括:由在包括多个节点的网络设备的第一节点上操作的第一系统管理器,接收指示网络设备的当前状态的数据;由第一系统管理器至少部分基于网络设备的当前状态和针对应用的规则集,确定网络设备的更新状态;由第一节点向网络设备的第二节点发送更新状态数据,更新状态数据指示网络设备的更新状态的至少一部分,第一节点和第二节点是网络设备中包括的多个节点中的不同节点;以及响应于接收更新状态数据,由第二节点上的第二系统管理器修改第二节点的状态以符合网络设备的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在另一示例中,本公开描述了一种网络设备,包括:第一节点和第二节点,第一节点包括第一系统管理器并且第二节点包括第二系统控制器,其中第一系统管理器被配置为:接收指示网络设备的当前状态的数据;至少部分基于网络设备的当前状态和针对应用的规则集,确定网络设备的更新状态;以及向网络设备的第二节点发送更新状态数据,更新状态数据指示网络设备的更新状态的至少一部分,第一节点和第二节点是网络设备中包括的多个节点中的不同节点;以及其中第二系统管理器被配置为:响应于接收更新状态数据,修改第二节点的状态以符合网络设备的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在另一示例中,本公开描述了一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,其中指令在执行时配置网络设备的第一节点用于:由在第一节点上操作的第一系统管理器接收指示网络设备的当前状态的数据;由第一系统管理器至少部分基于网络设备的当前状态和针对应用的规则集,确定网络设备的更新状态;以及向网络设备的第二节点发送更新状态数据,更新状态数据指示网络设备的更新状态的至少一部分,第一节点和第二节点是网络设备中包括的多个节点中的不同节点;以及其中指令在执行时配置网络设备的第二节点用于:响应于接收更新状态数据,修改第二节点的状态以符合网络设备的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在一个示例中,本公开描述了一种方法,包括:由在包括多个节点的分布式路由系统的第一节点上操作的第一系统管理器,接收指示分布式路由系统的当前状态的数据;由第一系统管理器至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;由第一节点向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及响应于接收更新状态数据,由第二节点上的第二系统管理器修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在另一示例中,本公开描述了一种分布式路由系统,包括:第一节点和第二节点,第一节点包括第一系统管理器并且第二节点包括第二系统控制器,其中第一系统管理器被配置为:接收指示分布式路由系统的当前状态的数据;至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及其中第二系统管理器被配置为:响应于接收更新状态数据,修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
在另一示例中,本公开描述了一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,其中指令在执行时配置分布式路由系统的第一节点用于:由在第一节点上操作的第一系统管理器接收指示分布式路由系统的当前状态的数据;由第一系统管理器至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;以及向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及其中指令在执行时配置分布式路由系统的第二节点用于:响应于接收更新状态数据,修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
一个或多个示例在以下附图说明和具体实施方式中进行了阐述。其他特征、对象和优势通过具体实施方式、附图说明和权利要求书将变得容易理解。
附图说明
图1是根据本公开的一个或多个技术图示了示例网络系统的框图。
图2是根据本公开的一个或多个技术图示了发布系统状态的示例的示意图。
图3是根据本公开的一个或多个技术图示了分布式计算系统的节点的示例软件栈的框图。
图4是根据本公开的一个或多个技术图示了针对主系统管理器、有序通信模块和多个卫星系统管理器的示例数据流的框图。
图5是根据本公开的一个或多个技术图示了示例规则引擎的框图。
图6是根据本公开的一个或多个技术针对分布式计算系统中操作的应用的状态转换图。
图7是根据本公开的一个或多个技术图示了分布式计算系统用于更新节点状态的示例操作的流程图。
图8是图示了其中服务提供商网络包括多机架路由器的示例计算环境的框图。
图9是图示了符合本公开的一个或多个技术进行操作的示例性多机架路由器的框图。
图10是根据本公开的一个或多个技术图示了分布式路由系统的示例操作的流程图。
具体实施方式
诸如分布式路由系统的分布式计算系统包括多个节点。每个节点可以是单独的物理或虚拟网络元件。应用可以在每个节点上运行。本公开描述了用于控制在分布式计算系统的节点上应用的部署的技术。本公开的技术可以改进控制系统的功能,该控制系统通过使用针对各自特定应用的各自规则集来控制应用的部署。此外,本公开的特定技术可以改进控制系统的软件架构以便改进升级控制系统的组件的能力。本公开的附加技术可以改进分布式计算系统的稳定性和/或扩展性,并且可以使得分布式计算系统能够自组织。
例如,根据本公开的一个示例技术,第一系统管理器在包括多个节点的分布式计算系统的第一节点上操作。在此示例中,第一系统管理器可以接收指示分布式计算系统的当前状态的数据。另外,第一系统管理器可以至少部分基于分布式计算系统的当前状态和针对应用的规则集来确定该分布式计算系统的更新状态(即,该分布式计算系统的期望状态)。此外,第一节点可以向该分布式计算系统的第二节点发送更新状态数据。该更新状态数据可以指示该分布式计算系统的更新状态的至少一部分。第二系统管理器可以在分布式计算系统的第二节点上操作。响应于接收更新状态数据,第二系统管理器可以修改第二节点的状态以符合分布式计算系统的更新状态。例如,第二系统管理器可以开始第二节点上的应用、停止第二节点上的应用、和/或修改第二节点上应用的状态。
附图图示了各示例。附图中由参考标号指示的元件对应于以下描述中相似参考标号指示的元件。在附图中,省略号指示与该省略号分离的元件类似的一个或多个元件的存在。针对相似元件的参考标号上的字母后缀不必旨在指示特定编号元件的存在。在此公开中,具有从序数词(例如,“第一”、“第二”、“第三”等)开始的名称的元件不必暗示元件具有特定顺序。更确切地说,这种序数词可以仅用于指代相同或相似类型的不同元件。
图1是图示了示例网络系统10的框图。在此示例中,网络系统10包括耦合至网络设备14A-14N(统称为“网络设备14”)的分布式计算系统12。其他示例网络系统可以包括附加网络、网络设备和系统。每个网络设备14可以被实现为能够与网络的其他计算设备通信的一个或多个计算设备。网络设备14可以包括各种类型的计算设备。例如,网络设备14可以包括个人计算机、平板计算机、智能电话、游戏机、车载计算机、游戏设备、销售点设备、路由器、交换机、集线器、防火墙、服务器计算机、超级计算机、大型计算机和其他类型的设备。在分布式计算系统12包括分布式路由系统的某些示例中,分布式路由系统可以包括路由器、交换机、集线器、防火墙和其他类型的联网设备。
连接18A-18N(统称为“连接18”)是将网络设备14通信耦合至分布式计算系统12的链路。换言之,网络设备14可以经由连接18与分布式计算系统12通信。连接18可以通过各种方式实现。例如,一个或多个连接18可以被实现为光纤、同轴电缆、RJ45连接器或者另一类型的光或电通信介质。在其他示例中,一个或多个连接18可以包括通信网络,诸如因特网、广域网、局域网等。在某些示例中,一个或多个连接18可以包括无线通信信道。
在某些示例中,分布式计算系统12包括分布式路由系统。在某些示例中,分布式路由系统被实现为多机架路由器。此外,在某些示例中,分布式路由系统实现其他技术,诸如软件定义联网(SDN)。本公开的以下部分假设分布式计算系统12实现分布式路由系统。分布式路由系统是包括节点集的系统,该节点被配置为作为单个路由器以路由网络上的通信单元。然而,应当理解,本公开的技术不必限制于包括分布式路由系统的分布式计算系统。例如,分布式计算系统12可以包括计算设备的集群,用于执行出于科学或商业目的的计算。
在分布式计算系统12实现分布式路由系统的示例中,分布式计算系统12可以从网络设备14接收网络流量的流。这种网络流量的流可以包括分组、帧、信元或其他通信单元。每个网络流量的流可以源自网络设备14中的一个网络设备,并且可以去往网络设备14中的一个不同网络设备。在接收网络流量的流中的数据之后,分布式计算系统12可以向网络流量的流应用一个或多个服务。例如,分布式计算系统12可以确定如何转发网络流量的流中的数据。换言之,在此示例中,分布式计算系统12路由网络流量的流。例如,在图1的示例中,分布式计算系统12接收源自网络设备14A的网络流量的流20。在此示例中,分布式计算系统12可以在接收流20中的数据之后确定向网络设备14N转发数据。在另一示例中,在接收网络流量的流中的数据之后,分布式计算系统12可以扫描针对恶意软件的数据,诸如计算机病毒。
在此示例中,分布式计算系统12包括多个节点22A-22N(统称为“节点22”)。每个节点22可以是物理或虚拟机器。本公开还可以将节点指代为“容器”。节点22可以经由一个或多个通信信道24彼此通信。通信信道24可以实现链接节点22的控制平面。通信信道24可以是多点或点到点。一个或多个节点22可以接收网络流量的流。网络流量的流继而可以在由一个或多个节点22最终输出之前在节点22之间转发。节点22可以包括各种类型的计算设备或专用硬件。
在图1的示例中,节点22可以执行分布式计算系统12的各种功能。例如,一个或多个节点22可以执行恶意软件检测服务、入侵检测服务、拒绝服务攻击检测服务、网络防火墙服务、流量优先化功能、媒体分布服务等。在附加示例中,节点22可以向传入分组提供以下服务,诸如隧道传输、虚拟专用网络、高速缓存、应用代理和内容分发网络(CDN)网络。服务提供商可以利用节点22来提供设计用于提升用户体验品质的特定内容服务,例如,视频流传输。
应用26A-26N(统称为“应用26”)在节点22上操作(例如,执行、运行)。换言之,节点22托管应用26。应用26可以配置或使得节点22执行分布式计算系统12的各种功能。例如,在节点22之一上操作的应用可以配置节点以执行恶意软件检测功能。在另一示例中,在节点22之一上操作的应用可以包括UNIX守护进程。在另一示例中,在节点22之一上操作的应用可以提供转发组件(例如,分组转发引擎(PFE))和/或路由组件(例如,路由引擎(RE))。在某些示例中,节点22上操作的应用可以形成分布式应用的多个部分。例如,在分布式计算系统12实现分布式路由系统的示例中,路由协议守护进程和PFE路由处理程序集的组合可以被认为是分布式应用。
每个应用26可以被实现为包括计算机可执行指令集的一个或多个软件程序。例如,应用可以是或可以包括进程(例如,Linux进程)。在某些示例中,应用26可以由第三方开发,诸如独立软件开发实体。因为应用26可以由第三方开发,因此分布式计算系统12的功能通过对开发分布式计算系统12的特定方有用的方式进行扩展和修改。在某些示例中,应用26使用软件开发包(SDK)开发。图1的示例仅示出了在每个节点22上操作的单个应用。然而,在其他示例中,一个或多个节点22可以操作多个应用或零个应用。在某些示例中,应用26在节点22上的虚拟机中进行操作。
通过此方式,节点22可以为应用26的执行提供操作环境。节点22可以被称为服务代理,并且可以包括服务卡、外部刀片服务器或者由现成组件(例如,通用硬件)构建的一个或多个外部服务器。节点22可以是为应用软件提供操作环境的计算节点的本地集群。作为另一示例,节点22可以是中间网络设备、个人计算机、服务器计算机、大型计算机或其他类型的计算设备。
另外,节点22A-22N中的每个节点提供相应软件基础设施28A-28N(统称为“软件基础设施28”)。软件基础设施为应用26提供通信基底并且提供用于协调分布式计算系统12的动作的系统。在至少某些示例中,节点的软件基础设施不包括应用专用代码。因为软件基础设施不包括任何应用专用代码,因此软件基础设施可以通过二进制(例如,经编译的)形式分布。
在某些示例中,每个节点22的软件基础设施是相同的。因此,每个节点22的软件基础设施可以为应用26提供统一编程环境。因此,除了硬件限制,设计用于在分布式计算系统12中运行的任何应用都可以在分布式计算系统12的任何节点上运行。因此,应用在其操作的位置(即,节点)可以是不重要的。
节点22的每个相应节点的软件基础设施包括相应系统管理器30A-30N(统称为“系统管理器30”)。系统管理器30可以彼此通信以选择系统管理器30中的一个作为“主”系统管理器。系统管理器30可以选择主系统管理器而不需要人的干预。主系统管理器的自动选择是分布式计算系统12如何能够自组织的一个方面。
一个或多个未选择的系统管理器作为“卫星”系统管理器。通常,分布式计算系统12中仅有一个主系统管理器,但是可以有多个卫星系统管理器。当卫星系统管理器开始时,该卫星系统管理器向主系统管理器通知其存在于分布式计算系统12中。
应用26可以发布状态数据。由应用发布的状态数据表示应用状态的一方面。例如,由应用发布的状态数据可以指示该应用正在分布式计算系统12的特定节点上运行。在另一示例中,由应用发布的状态数据可以指示该应用正在作为主实例还是备份实例运行。在另一示例中,应用实现PFE。在此示例中,由应用发布的状态数据可以包括PFE用于转发分组的转发表的当前状态。
另外,节点22的软件基础设施的各组件可以发布状态数据。例如,系统管理器30可以发布指示在节点22上操作的应用的状态的状态数据。另外,系统管理器30可以发布指示节点22的资源的状态数据。例如,系统管理器30可以发布针对节点22的节点资源数据。针对节点的节点资源数据可以包括关于节点的计算资源的信息。例如,针对节点的节点资源数据可以指示针对节点的当前中央处理单元(CPU)利用、针对节点的存储器使用、针对节点的可用存储器等中的一个或多个。
主系统管理器接收发布的状态数据,诸如由应用26、系统管理器30等发布的状态数据。因为发布的状态数据指示分布式计算系统12的当前(因此变化)状态,因此本公开可以将发布的状态数据称为动态状态数据。除了接收动态状态数据,主系统管理器还接收针对应用26的配置规则集(即,规则集)。规则可以符合策略描述语言。主系统管理器至少部分基于状态数据和配置规则集来确定分布式计算系统12的更新状态。例如,主系统管理器可以生成指示分布式计算系统12的更新状态的更新状态数据。分布式计算系统12的更新状态可以包括分布式计算系统12的每个节点22的更新状态。如果运行主系统管理器的节点(即,“主节点”)的当前状态不同于该主节点的更新状态,则主系统管理器修改主节点的状态使得主节点具有该主节点的更新状态。
另外,主系统管理器发布更新状态数据。该更新状态数据指示分布式计算系统12的更新状态。卫星系统管理器接收由主系统管理器发布的更新状态数据。针对每个相应的卫星系统管理器,该相应的卫星系统管理器将对应于该相应的卫星系统管理器的节点(即,“卫星节点”)的实际状态适配到更新状态。换言之,卫星系统管理器可以通过移动其本地主机的状态以匹配更新状态来响应更新的系统状态。
例如,特定应用可以不在特定节点(例如,主节点或卫星节点)上操作。在此示例中,当分布式计算系统12的更新状态指示特定应用将在特定节点上操作时,针对该特定节点的系统管理器使得该特定应用开始在该特定节点上操作。在类似示例中,特定应用可以在特定节点上操作。在此示例中,特定节点的更新状态可以指示该特定应用没有在该特定节点上操作。因此,在此示例中,针对特定节点的系统管理器使得特定应用停止在特定节点上操作。通过此方式,通过确定更新的状态、更新主节点的状态、以及发布更新状态数据,主节点可以出于故障恢复、负载平衡、服务中软件升级(ISSU)或其他原因的需求更有效地将应用从一个节点移动到另一节点。
图2是根据本公开的一个或多个技术图示了发布系统状态的示例的示意图。如先前,应用26可以发布其当前状态。概念上,应用26向系统状态云50发布其当前状态。系统状态云50持久维持应用26的状态即使应用26出现故障。例如,如果特定应用向系统状态云50发布其状态然后出现故障,则系统状态云50继续存储该特定应用的状态。如果特定应用的新实例在该特定应用的先前实例出现故障之后开始,该特定应用的新实例可以从系统状态云50获取该特定应用的状态,并且可以从该特定应用的先前实例的状态继续。本公开的其他示例没有使用系统状态云50并且没有使用用于应用状态的通信的发布/订阅系统。
图3是根据本公开的一个或多个技术图示了分布式计算系统12的节点12A的示例软件栈的框图。虽然图3的示例图示了节点12A的示例软件栈,但是每个其他节点22也可以运行相同软件栈。然而,不同节点22可以运行相同或不同的应用。在图3的示例中,节点12A的软件基础设施28A包括内核100、有序通信模块106、系统管理器30A和应用基础设施110。在其他示例中,软件基础设施28A可以包括更多、更少或者不同的组件。
内核100可以管理来自软件的输入/输出请求,并且可以将输入/输出请求转译成针对计算机的中央处理单元和其他电子组件的数据处理指令。在某些示例中,内核100可以包括stock Unix内核。
有序通信模块106提供进程间通信总线。在某些示例中,有序通信模块106包括由Apache软件基金会提供的ZOOKEEPERTM软件。有序通信模块106可以是异步的(即,仅保证最终消息递送而不进行排序)。
如先前,系统管理器30A负责发起、协调和监视应用。如图3的示例中所示,系统管理器30A与内核100分离。如果系统管理器30A是主系统管理器,则系统管理器30A可以确定应用在特定节点22上的布置。此外,如果系统管理器30A是主系统管理器,则系统管理器30A可以与卫星系统管理器通信以实现关于应用在特定节点22上的布置的决策。无论系统管理器30A是主系统管理器还是卫星系统管理器,系统管理器30A都可以检测在节点22A上运行的应用的故障。应用基础设施110帮助使得应用尽可能简单。应用基础设施110可以是提供的库存例程。
图4是根据本公开的一个或多个技术图示了针对主系统管理器200、有序通信模块202和多个卫星系统管理器204A-204N(统称为“卫星系统管理器204”)的示例数据流的框图。例如,主系统管理器200和每个卫星系统管理器204可以是图1中系统管理器30的不同系统管理器。有序通信模块202可以通过与有序通信模块106(图3)相似的方式进行操作。
在图4的示例中,主系统管理器200接收规则206和动态状态208。虽然图4的示例中未示出,但是主系统管理器200可以从节点22托管的卫星系统管理器204和/或应用接收动态状态208。主系统管理器200基于规则206和动态状态208确定分布式计算系统12的更新系统状态210。主系统管理器200向有序通信模块202输出更新系统状态210。有序通信模块202向卫星系统管理器204通信更新系统状态210。响应于接收更新系统状态210,卫星系统管理器204执行各种动作以使得卫星系统管理器204在其上操作的节点状态符合更新系统状态210。另外,主系统管理器200可以执行各种动作以使得主系统管理器200在其上操作的节点状态符合更新系统状态210。
如上文,主系统管理器200接收动态状态208。主系统管理器200可以以分布式计算系统12的其他组件(例如,应用、系统管理器等)发布的消息的形式接收动态状态208。动态状态208可以包括关于分布式计算系统12的当前状态的各方面的信息。例如,动态状态208可以包括关于分布式计算系统12的节点22的CPU和存储器利用率的信息。此外,动态状态208可以包括指示分布式计算系统12的节点22上操作的应用26的状态的信息。在某些示例中,应用可以处于初始化状态、就绪状态、升级准备状态、管理员停止状态、退出状态或故障状态中的一个。退出状态可以在由于某些原因应用退出时出现。当应用退出时(即,处于或进入退出状态),应用不运行和/或不响应。故障状态可以在由于应用的重复故障而应用被停止时出现。在另一示例中,应用可以处于活动状态、待命状态、停滞状态或准备活动状态。在此示例中,停滞状态可以对应于故障状态。
除了接收指示分布式计算系统12的更新状态的数据并对应地适配节点的实际状态,针对节点的卫星系统管理器可以收集关于节点上托管的应用的信息以及关于该节点的资源的信息。例如,针对节点的卫星系统管理器可以收集关于节点的主机存储器、节点的CPU使用、节点的输入/输出、中断等的信息。卫星系统管理器可以包括在分布式计算系统12的动态状态中收集的信息。主系统管理器可以至少部分基于收集的信息确定分布式计算系统12的更新状态。
此外,如上,主系统管理器200接收规则206。在某些示例中,规则包括针对被配置为在分布式计算系统12的节点上运行的相应应用(例如,应用26)的相应规则集。在某些示例中,主系统管理器200在规则引擎中使用规则集之前编译规则集。下面针对图5描述了示例规则引擎。在其他示例中,主系统管理器200接收经编译的规则集。通常,编译规则集将以源语言编写的规则集转变成另一语言(即,目标语言)。在某些示例中,规则集被表示为以Lua脚本语言或其他策略描述语言的配置文件。在其他示例中,规则集没有被编译。在某些示例中,主系统管理器200在运行时(即,在主系统管理器200初始化之后并且正在运行)接收规则206。在某些示例中,主系统管理器200静态地接收规则206(即,在主系统管理器200初始化时)。
虽然图4的示例仅示出了主系统管理器200接收规则206,分布式计算系统12的每个系统管理器都可以接收规则206,包括卫星系统管理器204。卫星系统管理器204通常不使用规则206,但是存储规则206可以使得一个或多个卫星系统管理器204能够作为待命主系统管理器,其在主系统管理器200故障时能够充当主系统管理器的角色。如果原始主系统管理器和待命主系统管理器都出现故障,则分布式计算系统12可以选择新的主系统管理器。
针对应用的规则集可以指定该应用所属的应用组。另外,针对该应用的规则集可以指定应用组中的领导应用。如果规则集指定了应用组中的领导应用,则分布式计算系统12在相同节点上运行该应用组中的所有应用。针对应用的规则集还可以指定应用的二进制的路径。应用的二进制包括应用的可执行代码。此外,针对应用的规则集可以指示应用的版本。针对应用的规则集还可以指定针对应用的日志文件的路径。另外,针对应用的规则集可以指定包括待传向应用的参数的参数串。针对应用的规则集可以指定针对应用的工作目录。针对应用的工作目录可以是应用存储工作数据的目录。此外,针对应用的规则集可以指定应用的描述。
另外,针对应用的规则集可以包括用于响应于接收指示应用故障的动态状态数据来确定更新系统状态210的一个或多个规则。另外,针对应用的规则集可以包括以下一个或多个:
·指示响应于应用退出是否重启应用的规则。
·指示响应于应用退出是否重启节点的规则。
·指示用于响应于应用退出重启的一个或多个应用的列表的规则。
·指示用于响应于应用退出执行的另一应用的规则。
·指示用于响应于应用退出重启该应用的次数的规则。
·期间在确定应用已经进入故障阶段之前该应用需要重启的特定次数的时间间隔。
此外,主系统管理器200可以基于动态状态208确定应用已经进入故障阶段或者动态状态208可以指示应用已经进入故障阶段。针对应用的规则集可以包括用于响应于应用已经进入故障阶段(即,在应用出现故障之后)执行的一个或多个规则。例如,针对应用的规则集可以包括以下一个或多个:
·指示响应于应用出现故障是否重启应用的规则。
·指示响应于应用出现故障是否重启节点的规则。
·指示用于响应于应用出现故障执行的另一应用的规则。
·指示用于响应于应用出现故障发起的警告的规则。
以下指示了应用的规则集的示例语法。在某些示例中,针对分布式计算系统12中操作的每个相应应用的规则集符合以下语法。
在上文所示示例语法中,规则集包括元数据(即,元)规则集、应用故障(即,应用故障)规则集、资源规则集和升级规则集。规则集还可以包括这些集中没有包括的一个或多个规则。
元数据规则集包括“二进制路径”规则、“版本”规则、“日志文件”规则、“参数”规则、“工作目录”规则和“描述”规则。“二进制路径”规则指定针对应用的二进制文件的路径。针对应用的二进制文件可以包括针对应用的可执行代码。针对二进制文件的路径可以指定针对应用的二进制文件的存储位置。“版本”规则指定应用的版本。“日志文件”规则指定针对应用的日志文件的路径。针对应用的日志文件可以包括应用生成的事件的记录。“参数”规则可以指定向应用提供的参数。“工作目录”规则指定去往针对应用的工作目录的路径。应用可以将应用数据存储在针对应用的工作目录中。“描述”规则可以指定应用的描述,诸如应用的名称。描述可以包括人可读的数据。
应用故障规则集包括“应用重启”规则、“应用重启间隔”规则、关于故障规则集和关于退出规则集。“应用重启”规则指定在应用被认为已经进入故障状态之前该应用在节点上重启的次数。“应用重启间隔”规则指定期间被认为已经进入故障状态的应用必须重启由“应用重启”规则针对该应用指定的次数的时间间隔。例如,“应用重启”规则可以指定5,并且“应用重启间隔”规则可以指定10。在此示例中,如果应用在10秒内已经重启5次,则该应用可以被认为已经进入故障状态。
关于故障规则集包括在应用过渡到故障状态的情况下管控主系统管理器200如何确定分布式计算系统12的更新状态的规则。因此,应用的规则集可以包括用于响应于应用的故障确定分布式计算系统的更新状态的一个或多个规则,其中应用的故障在应用由于该应用在给定时间间隔内退出特定次数而停止时出现。如果应用由于该应用的重复故障而停止,则该应用可以进入故障状态。例如,关于故障规则集包括指示如果应用进入故障状态则主系统管理器200将要做什么的警告规则集。警告规则集可以包括“颜色”规则和“id”规则。“颜色”规则可以指示表示应用故障的严重性的颜色(例如,红、黄、绿等)。“id”规则可以指定警告的标识符。用户能够基于警告的标识符确定应用已经故障。
因此,当主系统管理器200确定分布式计算系统12的更新状态时,主系统管理器200可以基于针对应用的规则集中的第一规则和基于指示应用故障的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中该应用是否重启。此外,主系统管理器200可以基于针对应用的规则集中的第二规则和基于指示应用故障的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中该应用在其上操作的节点是否重启。另外,主系统管理器200可以基于针对应用的规则集中的第三规则和基于指示应用故障的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中另一应用是否执行。主系统管理器200还可以基于针对应用的规则集中的第四规则和基于指示应用故障的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中警告是否发起。
此外,关于故障规则集可以包括重启节点规则、重启应用组规则和应用执行规则。重启节点规则指定响应于应用进入故障状态是否重启该应用在其上操作的节点。重启应用组规则指定用于响应于应用进入故障状态而重启的应用组。应用执行规则指定用于响应于应用进入故障状态而执行的特定应用。特定应用可以是对应于规则集的应用或者不同应用。
如上,应用故障规则集可以包括关于退出规则集。换言之,针对应用的规则集可以包括用于响应于应用退出确定分布式计算系统12的更新状态的一个或多个规则。关于退出规则集可以包括重启禁用规则、重启节点规则、重启应用组规则和应用执行规则。重启禁用规则指定响应于应用进入退出状态是否重启应用。重启节点规则指定响应于应用进入退出状态是否重启该应用在其上操作的节点。重启应用组规则指定用于响应于应用进入退出状态而重启的应用组。应用执行规则指定用于响应于应用进入退出状态而执行的特定应用。该特定应用可以是对应于规则集的应用或不同应用。
因此,当主系统管理器200确定分布式计算系统12的更新状态时,主系统管理器200可以基于针对应用的规则集中的第一规则和基于指示应用退出的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中该应用是否重启。另外,主系统管理器200可以基于针对应用的规则集中的第二规则和基于指示应用退出的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中该应用在其上操作的节点是否重启。此外,主系统管理器200可以基于针对应用的规则集中的第三规则和基于指示应用退出的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中重启的一个或多个应用的列表。主系统管理器200可以基于针对应用的规则集中的第四规则和基于指示应用退出的分布式计算系统12的当前状态来确定在分布式计算系统12的更新状态中第二应用是否执行。此外,主系统管理器200可以基于针对应用的规则集中的第五规则来确定指示响应于应用退出重启该应用的次数的规则。主系统管理器200可以基于针对应用的规则集中的第六规则来确定期间在确定应用已经进入故障阶段之前该应用需要重启的特定次数的时间间隔。
此外,如上,针对应用的规则集可以包括资源规则集。主系统管理器可以使用资源规则集来确定是否在分布式计算系统12的特定节点上开始应用。在上文所示的示例语法中,资源规则集可以包括节点属性规则集、实例规则集和启动禁用规则。节点属性规则集可以指定应用可以在其上运行的节点的属性。例如,属性可以包括最小存储器(例如,随机访问存储器(RAM))、最小硬盘空间、最小CPU资源、I/O能力、存储器类型(例如,NAND闪存等)等。实例规则集可以包括实例的最大数目规则和每节点实例的最大数目规则。实例的最大数目规则可以指定用于在整个分布式计算系统12中运行的应用的实例的最大数目。每节点实例的最大数目规则指定可以在分布式计算系统12的单个节点上操作的应用的实例的最大数目。启动禁用规则指定在分布式计算系统12引导时应用是否开始。
因此,当主系统管理器200确定分布式计算系统12的更新系统状态时,主系统管理器200可以基于针对应用的规则集中指定能够运行应用的节点的属性的一个或多个规则来确定在分布式计算系统12的更新状态中第二节点是否能够运行该应用。另外,主系统管理器200可以基于针对应用的规则集中的第一规则来确定在分布式计算系统12的更新状态中应用是否在分布式计算系统12的所有节点22上运行。此外,主系统管理器200可以基于针对应用的规则集中的第二规则来确定在分布式计算系统12的更新状态中允许开始的应用的实例的最大数目。主系统管理器200还可以基于针对应用的规则集中的第三规则来确定在分布式计算系统12的更新状态中允许在单个节点上开始的应用的实例的最大数目。另外,主系统管理器200可以基于针对应用的规则集中的第四规则来确定是否开始应用作为分布式计算系统12的引导过程的一部分。
针对应用的规则集还可以包括升级规则集。换言之,针对应用的规则集可以包括控制应用的升级的一个或多个规则。升级规则集管控应用如何升级。在上文提供的示例语法中,升级规则集可以包括方法规则、开始后规则、开始后组规则、停止后规则、停止后组规则、通知规则、预升级通知规则和加权规则。方法规则指定针对应用的更新方法。更新方法可以是顺序或并行。如果升级方法是顺序的,则应用的实例顺序升级(即,一个接一个)。如果升级方法是并行,则应用的所有实例可以并行升级。开始后规则指示在应用正在升级时该应用在开始由该开始后规则指定的应用之后开始。开始后组规则指示在应用正在升级时该应用在开始由该开始后组规则指定的应用组之后开始。停止后规则指定在应用正在升级时该应用在由该停止后规则指定的应用之后停止。停止后组规则指定在应用正在升级时该应用在由该停止后组规则指定的应用组之后停止。通知规则指定何时以及是否生成与应用的升级相关联的通知。例如,通知规则可以指定在准备升级应用时、在应用的升级在分布式计算系统12的节点上完成时、或者在应用的所有实例的升级在分布式计算系统12的所有节点上完成时生成通知。预升级通知规则(例如,notify-pre-app-upgrade)可以指示在升级应用之前通知的一个或多个其他应用。直到一个或多个其他应用确认该通知,应用才开始升级。加权规则可以用于确定该应用相对于其他应用升级的优先权。
因此,当主系统管理器200确定分布式计算系统12的更新系统状态时,主系统管理器200可以基于针对应用的规则集中的第一规则确定针对应用的更新方法是顺序还是并行。此外,主系统管理器200可以基于针对应用的规则集中的第二规则确定在分布式计算系统12的更新系统状态中一个或多个应用是否在开始应用的升级之后的应用之前开始。另外,主系统管理器200可以基于针对应用的规则集中的第三规则确定在分布式计算系统12的更新系统状态中一个或多个应用是否在升级应用之前停止。此外,主系统管理器200可以基于针对应用的规则集中的第四规则确定通知是否将响应于应用的升级而输出。主系统管理器200还可以基于针对应用的规则集中的第五规则确定应用的升级相对于分布式计算系统的其他应用的升级的优先权。
如上文,针对第一应用的规则集中的停止后规则指示第二应用。当升级第一应用时,该第一应用在第二应用停止之后停止。为了实现停止后规则,主系统管理器200可以接收指示该第一应用将要升级的输入(例如,用户输入的指示)。作为响应,主系统管理器200可以输出指示第二应用处于退出状态的更新系统状态。因此,针对第二应用在其操作的节点的系统管理器使得第二应用进入退出状态。当第二应用进入退出状态时,针对第二应用在其操作的节点的系统管理器发布第二应用处于退出状态作为动态状态208的一部分。主系统管理器200继而可以输出指示第一应用处于退出状态的更新系统状态。基于更新系统状态,针对第一应用在其操作的节点的系统管理器继而使得第一应用进入退出状态,此时第一应用可以被升级。主系统管理器200可以执行类似的一系列动作以实现停止后组规则,除了多个应用可以被涉及而不是仅第二应用。
针对第一应用的规则集中的开始后规则指示第二应用。当第一应用的升级完成时,主系统管理器200可以输出指示该第二应用处于初始化或就绪状态的更新系统状态。因此,针对第二应用将在其上操作的节点的系统管理器使得该第二应用进入初始化或就绪状态。当第二应用进入初始化或就绪状态时,系统管理器发布第二应用处于初始化或就绪状态作为动态状态208的一部分。主系统管理器200继而可以输出指示第一应用处于初始化或就绪状态的更新系统状态。基于该更新系统状态,针对第一应用将在其上操作的节点的系统管理器使得现在升级的第一应用进入初始化或就绪状态。主系统管理器200可以执行类似的一系列动作以实现开始后组规则,除了多个应用可以被涉及而不是仅第二应用。
如上文,针对应用的规则集可以包括除了元数据规则集、应用故障规则集、资源规则集和升级规则集的规则。例如,针对应用的规则集可以包括使用指示符、领导规则和应用组规则。使用指示符(即,use<include.app>)是一种用于将其他应用或组定义包括到DSL说明中的方式。领导规则指示应用组的领导。如果应用组具有领导,则该组中的所有应用在分布式计算系统12中与该应用组的领导应用相同的节点上操作。应用组规则指定该应用所属的一个或多个应用组。
除了主系统管理器200确定更新系统状态,主系统管理器200还可以执行特定垃圾收集功能。例如,应用可以创建状态信息(例如,在图2的系统状态云50中)然后故障。在此示例中,主系统管理器200可以清除针对故障应用的状态信息。例如,当应用进入故障状态时,主系统管理器200(或另一系统管理器)可以发起扫描针对由应用产生的消息的分布式数据存储(DDS)的垃圾收集过程,并且可以发出指令以删除由应用产生的消息。DDS可以存储针对分布式计算系统12的状态信息。
在某些示例中,节点22可以加入或离开分布式计算系统12。例如,当节点开始并准备好托管分布式计算系统12中的应用时,该节点可以加入分布式计算系统12。当节点故障或离线时,该节点可以离开分布式计算系统12。主系统管理器200可以基于由节点的软件基础设施中的组件(例如,内核100、有序通信模块106、系统管理器30A、应用基础设施110)发布的动态状态数据来确定该节点已经加入分布式计算系统12。此外,主系统管理器200可以接收指示节点已经进入停止状态(即,指示该节点已经离开分布式计算系统12的状态)的动态状态数据。此外,在某些示例中,主系统管理器200可以使用心跳请求或另一机制来确定节点是否仍然可到达。如果节点不再可到达,则主系统管理器200可以确定该节点已经进入故障阶段。当主系统管理器200确定节点已经加入分布式计算系统12时,主系统管理器200可以确定指示该节点托管特定应用的分布式计算系统12的更新状态。当主系统管理器200确定节点已经离开分布式计算系统12时,主系统管理器200可以确定分布式计算系统12的更新状态,其中分布式计算系统12中保留的一个或多个其他节点托管先前由离开分布式计算系统12的节点托管的应用。通过此方式,主系统管理器200可以随着节点加入和离开分布式计算系统12来适配应用的位置。
通过基于规则206和动态状态208确定分布式计算系统12的更新状态,主系统管理器200可以执行分布式计算系统12内的负载平衡。换言之,与在分布式计算系统12的当前状态中相比,在分布式计算系统12的更新状态中处理负载更均匀地平衡在分布式计算系统12中的节点22之间。例如,应用的第一实例可以在分布式计算系统12的第一节点上操作。在此示例中,动态状态208可以指示第一节点的CPU利用率和/或存储器利用率在特定阈值之上。此外,在此示例中,主系统管理器200可以确定分布式计算系统12中存在第二节点,该第二节点具有针对应用的属性规则指定的属性并且具有CPU利用率和/或存储器利用率在附加阈值之下。因此,在此示例中,由主系统管理器200确定的更新状态可以指示应用的第二实例在第二节点上操作。应用的第二实例可以缓解应用的第一实例上的某些负担。这是主系统管理器至少部分基于节点资源数据确定分布式计算系统12的更新状态的一个示例。
在另一示例中,应用的第一实例和应用的第二实例可以相应地在第一节点和第二节点上同时操作。在此示例中,主系统管理器200可以确定第一节点和第二节点的CPU利用率和/或存储器利用率在特定阈值之下。因此,在此示例中,分布式计算系统12的更新状态可以指示应用的第一实例或第二实例处于退出状态。通过此方式,主系统管理器200可以减少应用的过剩并为其他应用释放资源。
在某些示例中,主系统管理器200具有命令行接口(CLI)和/或程序化接口。这些接口可以用于控制分布式计算系统12中的应用。例如,用户或程序可以使用这些接口来执行针对应用26的各种动作。例如,用户或程序可以使用这些接口来开始应用、停止应用或者将应用放在特定模式中以促进诸如应用的升级之类的操作。
此外,在某些示例中,卫星系统管理器204可以输出警告以指示错误条件。例如,卫星系统管理器可以输出警告以指示非关键过程的固有故障、在被更新时没能力创建待命应用或待命主系统管理器、在决定哪个系统管理器是主系统管理器方面的故障、由于策略冲突没能力坚持策略和/或由于配置警告的出现产生的应用死亡。警告可以被存储在日志文件中和/或输出显示给用户。
图5是根据本公开的一个或多个技术图示了示例规则引擎220的框图。主系统管理器200可以包括规则引擎220。规则引擎220可以确定分布式计算系统12的更新状态。主系统管理器200可以向规则引擎220提供静态和动态策略信息。另外,主系统管理器200还可以向规则引擎220提供分布式计算系统12的动态状态。分布式计算系统12的动态状态可以包括指示节点及其在系统中的属性以及分布式计算系统12中应用的当前状态的数据。规则引擎220在节点集、应用和分布式计算系统12中可用的应用的状态的限制下评估规则,并且可以发布更新的系统状态。主系统管理器200可以向卫星系统管理器提供更新的系统状态。
如上文所述,主系统管理器200可以向规则引擎220提供静态和动态策略信息。静态策略信息可以使用DSL指定。静态策略信息和动态策略说明产生向规则引擎220提供的规则集。例如,规则可以是“App<app_name>wants nodes with<attributes>”的形式或者另一规则可以是“App<app_name>should have n instances in the system”的形式。基于规则确定哪个应用应当在分布式系统中的节点上运行。
由于规则可以被添加或删除,因此规则集可以是动态的。例如,当新的应用被添加至分布式计算系统12时,新的规则可以被添加。类似地,如果应用从分布式计算系统12中移除,则规则可以从规则集中删除。
此外,如上文所述,主系统管理器200接收动态状态信息。动态状态信息可以包括节点事件。节点事件可以在节点添加到分布式计算系统12或从分布式计算系统12移除时或者在现有节点的属性(CPU、存储器等)变化时生成。因此,动态状态信息可以包括主机组成信息和硬件清单。节点事件的出现可以触发规则引擎220以评估规则并且对分布式计算系统12的更新状态进行任意调整。
另外,动态状态信息可以包括应用事件。应用事件可以由在分布式计算系统12的节点上运行的应用生成。应用事件可以包括应用离线/在线事件、应用故障事件或应用管理员停止事件。因此,应用事件可以包括与应用运行状态有关的事件。应用事件的出现可以触发规则引擎220以针对当前状态的当前状态评估规则并且对分布式计算系统12的更新系统状态进行任意调整。更新状态指示哪个应用应当运行在任何节点上并且与该节点上的系统管理器通信。
图6是根据本公开的一个或多个技术针对分布式计算系统12中操作的应用的状态转换图。在图6的示例中,应用(诸如任意应用26)可以在“初始化”状态180、“就绪”状态182、“升级准备”状态184、“管理员停止”状态186、“退出”状态188和“故障”状态190之间转换。当应用处于“初始化”状态180时,应用已经开始并且在线。当应用处于“就绪”状态182时,应用已经从DDS重新同步状态并且准备好激活。当应用处于“升级准备”状态184时,应用已经接收到升级准备通知。当应用处于“管理员停止”状态186时,应用已经由用户停止。当应用处于“退出”状态188时,应用已经退出。当应用处于“故障”状态190时,应用已经故障。
状态180、182、184、186、188和190之间的箭头指示状态180、182、184、186、188和190之间的可能转换。例如,当应用开始时,应用可以从“管理员停止”状态186转换到“初始化”状态180。类似地,当应用重启时,应用可以从“升级准备”状态184转换到“管理员停止”状态186。
如上文所述,节点的系统管理器(例如,任意系统管理器30)监视在该节点上操作的应用的状态。例如,系统管理器可以确定应用已经转换到“故障”状态190。在某些示例中,系统管理器周期性地向应用发送“心跳”请求。如果应用未响应“心跳”请求的特定数目,则系统管理器确定该应用已经进入“退出”状态188或“故障”状态190。在此示例中,“心跳”请求的特定数目可以是用户可配置的。此外,在某些示例中,系统管理器可以基于针对应用的应用特定策略(例如,针对应用的规则集中的一个或多个应用)确定应用是否已经从“退出”状态188转换到“故障”状态190。
当节点上操作的应用从第一状态转换到第二状态时,应用或系统管理器可以发布应用现在处于第二状态的事实。在某些示例中,应用或系统管理器可以在每次应用在状态之间变换时重新发布应用的状态。例如,如果应用从“初始化”状态180转换到“就绪”状态182,则应用或系统管理器发布应用处于“就绪”状态182。通过此方式,应用的状态变成分布式计算系统12的动态状态的一部分。如上文所述,主系统管理器(例如,主系统管理器200)接收分布式计算系统12的动态状态,并且基于针对应用的规则集和分布式计算系统12的动态状态来确定分布式计算系统12的更新状态。
图7是根据本公开的一个或多个技术图示了分布式计算系统12用于更新节点状态的示例操作的流程图。为了便于解释,本公开针对本公开的其他附图来描述图7的示例。然而,图7的操作不必受限于附图中的示例。
在图7的示例中,主系统管理器200接收针对应用的规则集(300)。虽然图7的示例中未示出,但是主系统管理器200可以接收针对多个应用的相应规则集。例如,主系统管理器200可以接收针对被配置为在分布式计算系统12中操作的每个相应应用的相应规则集。
此外,在图7的示例中,主系统管理器200接收动态状态数据(302)。动态状态数据可以指示在分布式计算系统12的节点22上操作的应用的状态。例如,动态状态数据可以指示应用处于状态180、182、184、186、188或190(图6)中的一种状态。
主系统管理器200可以至少部分基于动态状态数据和应用的规则集来确定分布式计算系统12的更新状态(304)。主系统管理器200继而可以发布分布式计算系统12的更新状态(306)。当主系统管理器200发布分布式计算系统12的更新状态时,有序通信模块202可以向卫星系统管理器发送指示分布式计算系统12的更新状态的数据(308)。
随后,卫星系统管理器可以接收指示分布式计算系统12的更新状态的数据(310)。卫星系统管理器可以在分布式计算系统12的卫星节点上操作。响应于接收指示分布式计算系统12的更新状态的数据,卫星系统管理器可以修改卫星节点的状态以使得卫星节点的实际状态符合分布式计算系统12的更新状态中卫星节点的状态(312)。例如,当卫星系统管理器修改卫星节点的状态时,卫星系统管理器可以开始卫星节点上的应用、停止卫星节点上的应用和/或修改卫星节点上的应用的状态。系统管理器可以通过各种方式修改应用的状态。例如,系统管理器可以向应用提供输入、改变应用使用的数据、使得应用在状态180、182、184和186之间变换、或者其他方式改变应用的某些方面。
虽然图7的示例示出了主系统管理器200接收规则集一次以及动态状态数据一次,但是主系统管理器200可以接收动态状态数据多次。主系统管理器200、有序通信模块202和卫星系统管理器可以在每次主系统管理器接收动态状态数据时执行动作304-312。
图8是图示了其中服务提供商网络406包括多机架路由器404的示例计算环境400的框图。多机架路由器是其中至少两个节点实现在单独机架上的一类分布式路由系统。出于示例的目的,本公开的特定技术针对图8的计算环境400进行描述,其中多机架路由器404与边界路由器405A和405B(“边界路由器405”)通信以提供具有对服务提供商网络406访问的客户网络408A-408C(“客户网络408”)。多机架路由器404可以向边界路由器405发送周期数据(诸如分组)以便维护服务提供商网络406的拓扑的准确表示。多机架路由器404可以包括操作为服务提供商网络406内单个节点的多个层级布置的协作路由组件。在一个示例中,多机架路由器404包括操作为控制节点的交换机卡机架(SCC)和操作为分组路由设备的一个或多个线卡机架(LCC)。LCC可以包含用于耦合至网络406内的其他设备的所有物理接口,而SCC控制并路由LCC之间的流量。在某些示例中,LCC可以被称为转发单元。
虽然图8的示例中未示出,但是服务提供商网络406可以耦合至由其他提供商管理的一个或多个网络,并且可以因此形成大规模公共网络基础设施(例如,因特网)的一部分。因此,客户网络408可以被视为因特网的边界网络。服务提供商网络406可以包括客户网络408内具有对因特网访问的计算设备,并且可以允许客户网络408内的计算设备彼此通信。服务提供商网络406可以包括除了多机架路由器404和边界路由器405的各种网络设备,诸如附加路由器、交换机、服务器或其他设备。
在图8的示例中,边界路由器405A经由访问链路409A耦合至客户网络408A,并且边界路由器405B分别经由访问链路409B和409C耦合至客户网络408B和408C。在某些示例中,客户网络408包括针对企业地理上分离的站点的网络。客户网络408可以包括一个或多个计算设备(未示出),诸如个人计算机、膝上型计算机、移动计算机、平板计算机、智能电话、工作站、服务器、交换机、打印机、可穿戴计算机、网络连接设备或机器、机器人设备或交通工具或者其他设备。图8中图示的计算环境400的配置仅是示例。例如,服务提供商网络406可以耦合至任意数目的客户网络408。但是,为了便于说明,图8仅示出了客户网络408A-408C。
与本公开的一个或多个技术一致,多机架路由器404向边界路由器405发送周期数据分组以便维护服务提供商网络406的拓扑的准确表示。例如,多机架路由器404可以使用一个或多个路由协议交换周期通信,诸如双向流检测(BFD)、开放式最短路径优先(OSPF)或者中间系统到中间系统(ISIS)。在使用媒体访问控制(MAC)层协议(诸如帧中继LMI、点到点协议(PPP)等)时,多机架路由器404可以进一步使用周期通信。
在某些示例中,多机架路由器404使用在多机架路由器404内执行的周期分组管理(PPM)守护进程来管理时间先决周期消息。根据本公开的一个或多个技术,PPM守护进程的每个实例可以是在多机架路由器404的节点上运行的应用的实例。同样在多机架路由器404内执行的路由器协议守护进程执行路由操作。根据本公开的一个或多个技术,路由器协议守护进程的每个实例可以是在多机架路由器404的节点上运行的应用的实例。在多机架路由器404内执行的客户端路由协议(未示出)配置PPM守护进程的参数。根据本公开的一个或多个技术,客户端路由协议的每个实例可以是在多机架路由器404的节点上运行的应用的实例。通常,周期管理守护进程代表客户端管理入站和出站周期通信会话,而客户端路由协议与实现复杂路由协议和其他功能的路由协议守护进程交互。此外,PPM守护进程的实例可以在多机架路由器404的每个LCC和SCC上执行,由此分发初始化并响应于周期消息的任务,该周期消息用于指示多机架路由器404与对等设备(例如,边界路由器405)之间的操作状态。在某些实施方式中,多机架路由器404可以向一个或多个LCC的接口卡(IFC)提供的操作环境向下推送周期分组管理功能。
多机架路由器404可以包括多个节点。在某些示例中,每个节点可以包括SCC和LCC。在某些示例中,单独LC或硬件PFE可以作为多机架路由器404的节点。因此,多机架路由器404可以以分布式计算系统的形式出现。根据本公开的一个或多个技术,系统管理器可以在多机架路由器404的每个节点上操作。在多机架路由器404的节点上操作的每个系统管理器可以是本公开其他位置所述类型的系统管理器。
因此,在一个示例中,第一系统管理器可以在多机架路由器404的第一节点上操作并且第二系统管理器可以在多机架路由器404的第二节点上操作。在此示例中,第一系统管理器可以接收指示多机架路由器404的当前状态的数据。第一系统管理器可以至少部分基于多机架路由器404的当前状态和针对应用的规则集,确定多机架路由器404的更新状态。此外,第一节点可以向多机架路由器404的第二节点发送更新状态数据。该更新状态数据可以指示多机架路由器404的更新状态的至少一部分。响应于接收到更新状态数据,第二系统管理器(即,在多机架路由器404的第二节点上操作的系统管理器)可以修改第二节点的状态以符合多机架路由器404的更新状态。作为修改第二节点的状态的一部分,第二节点可以开始第二节点上的应用、停止第二节点上的应用、修改第二节点上的应用的状态或者执行另一动作。
图9是图示了符合本公开的一个或多个技术进行操作的示例性多机架路由器420的框图。多机架路由器420跨网络在网络设备之间路由数据分组。如图9中所示,多机架路由器包括操作为网络内单个节点的多个层级布置的协作路由组件。在此示例中,多机架路由器420包括四个实质上相同的LCC 428A-428D(“LCC 428”)和操作为中央控制节点的SCC422。在其他示例中,多机架路由器可以包括更多或更少LCC,并且可以包括中央路由节点SCC 422或者不包括中央路由节点SCC 422。SCC 422为多机架路由器420提供集中交换和控制。LCC 428使用IFC集434A-434D(“IFC 434”)向网络提供接口。
SCC 422包括交换机光纤424和主路由引擎426。交换机光纤424提供LCC 428的交换机光纤425A-425D(“交换机光纤425”)之间的背面连接(即,与网络分离的连接)。主路由引擎426维护路由信息以描述网络的拓扑。例如,路由信息可以包括描述通过网络的各种路由的路由数据,以及指示针对每个路由器网络内适当邻近设备的下一跳数据。主路由引擎426周期地更新路由信息以准确反映当前网络拓扑。主路由引擎426还使用路由信息来导出转发信息基础(FIB)。
主路由引擎426通过在LCC 428中安装FIB(未示出)经由电缆437上与本地路由引擎430和/或431的通信来控制分组转发通过多机架路由器420。针对LCC 428之一的FIB可以与针对其他LCC 428和SCC 422的FIB相同或不同。在某些示例中,由于电缆437提供SCC 422与LCC 428之间的专用连接,即,与电缆136提供的数据分组转发连接分离,LCC路由引擎430中的FIB可以被更新而不需要中断多机架路由器420的分组转发执行。LCC 428各自包含本地路由引擎430A-430D(“路由引擎430”)中的一个本地路由引擎、交换机光纤425中的一个相应交换机光纤、至少一个分组转发引擎(PFE)(示为PFE 432A-432D(“PFE 432”))和一个或多个IFC434集。
在某些示例中,多机架路由器420通过以下方式执行路由功能。传输数据分组由LC434的IFC之一从网络首先接收,该IFC将传入数据分组导向LC的PFE。PFE继而使用本地路由引擎(例如,路由引擎430B)提供的FIB确定针对数据分组的下一跳。如果数据分组去往与最初接收该分组的IFC相关联的出站链路,则PFE将该分组转发至该出站链路。通过此方式,分组可以由其上该分组从网络旁路交换机光纤424和交换机光纤425接收的相同PFE发出。
另外,如果数据分组去往与最初接收该分组的LC 434中的一个LC相关联的出站链路,则PFE将该分组发送至包含该LC的LCC的交换机光纤425,其中数据分组被导向交换机光纤424并且最终被通信至PFE中的一个PFE。接收PFE经由LC 434中的一个LC上的IFC中的一个IFC向适当下一跳输出数据分组。因此,由LCC 428中的一个LCC接收的传入数据分组可以由LCC 428的另一LCC沿去往分组最终目的地的路由向下一跳发送。通过符合本公开的技术的方式操作的其他多机架路由器可以使用不同交换和路由机制。
多机架路由器420并且具体地SCC 422和LCC 428包括硬件、固件和/或软件,并且可以包括处理器、控制单元、分立硬件电路或者用于执行从计算机可读介质提取的指令的其他逻辑。这种介质的示例包括硬盘、闪存、随机访问存储器(RAM)、只读存储器(ROM)、非易失性随机访问存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等。
根据本公开的一个或多个技术,SCC 422和每个LCC 428作为多机架路由器420的“节点”。因此,系统管理器在SCC 422和每个LCC 428上操作。在SCC 422和LCC 428上操作的系统管理器可以通过类似方式作为本公开其他位置描述的系统管理器。此外,应用可以在SCC 422和LCC 428上运行。例如,多机架路由器420的路由功能可以从在SCC 422和LCC 428上运行的路由应用发起。在某些示例中,除了路由应用的应用可以在SCC 422和LCC 428上运行。例如,入侵检测应用、病毒保护应用、合法拦截应用和其他类型的应用可以在SCC 422和LCC 428上运行。
因此,在一个示例中,在多机架路由器420的第一LCC(例如,LCC 428中的一个LCC)上操作的系统管理器接收指示多机架路由器420的当前状态的数据。在此示例中,在第一LCC上操作的系统管理器至少部分基于多机架路由器420的当前状态和针对应用的规则集,确定多机架路由器420的更新状态。此外,在此示例中,第一LCC的系统管理器向多机架路由器420的第二LCC发送更新状态数据。该更新状态数据可以指示多机架路由器420的更新状态的至少一部分。响应于接收到更新状态数据,由第二LCC的系统管理器修改第二节点的状态以符合多机架路由器的更新状态。修改第二LCC的状态包括以下至少一项:开始第二LCC上的应用、停止第二LCC上的应用或者修改第二LCC上的应用的状态。类似的示例可以用SCC422代替第一LCC或第二LCC提供。
图10是根据本公开的一个或多个技术图示了分布式路由系统的示例操作的流程图。相对于图7的示例,图10的示例操作包括减少的动作集。在图10的示例中,在包括多个节点的分布式路由系统的第一节点上操作的第一系统管理器接收指示该分布式路由系统的当前状态的数据(500)。该第一系统管理器至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态(502)。在图10的示例中,第一节点向分布式路由系统的第二节点发送更新状态数据,该更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点。此外,在图10的示例中,响应于接收到更新状态数据,由第二节点上的第二系统管理器修改第二节点的状态以符合分布式路由系统的更新状态(504)。修改第二节点的状态包括以下至少一项:开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态。
以下段落描述了本公开的特定示例。
示例1.一种方法,包括:由在包括多个节点的分布式计算系统的第一节点上操作的第一系统管理器,接收指示分布式计算系统的当前状态的数据;由第一系统管理器至少部分基于分布式计算系统的当前状态和针对应用的规则集,确定分布式计算系统的更新状态;由第一节点向分布式计算系统的第二节点发送更新状态数据,更新状态数据指示分布式计算系统的更新状态的至少一部分,第一节点和第二节点是分布式计算系统中包括的多个节点中的不同节点;以及响应于接收更新状态数据,由第二节点上的第二系统管理器修改第二节点的状态以符合分布式计算系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例2.根据示例1的方法,其中第一节点和第二节点是单独的物理机或虚拟机。
示例3.根据示例1或2的方法,其中:接收指示分布式计算系统的当前状态的数据包括由第一系统管理器接收节点资源数据,节点资源数据指示针对第二节点的当前中央处理单元(CPU)利用率、第二节点的存储器使用或者针对第二节点的可用存储器中的至少一个;以及确定分布式计算系统的更新状态包括由第一系统管理器至少部分基于节点资源数据来确定分布式计算系统的更新状态。
示例4.根据示例1至3中任一项的方法,其中与在分布式计算系统的当前状态中相比,在分布式计算系统的更新状态中处理负载更均匀地平衡在分布式计算系统中包括的多个节点之间。
示例5.根据示例1至4中任一项的方法,其中针对应用的规则集包括用于响应于应用的故障确定分布式计算系统的更新状态的一个或多个规则,其中应用的故障在应用由于应用在给定时间间隔内进入退出状态特定次数而已经停止时出现,其中当应用处于退出状态时,应用不运行或者不响应。
示例6.根据示例5的方法,其中确定分布式计算系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用是否重启,基于针对应用的规则集中的第二规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用在其上操作的节点是否重启,基于针对应用的规则集中的第三规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中另一应用是否执行;以及基于针对应用的规则集中的第四规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中警告是否发起。
示例7.根据示例1至6中任一项的方法,其中针对应用的规则集包括用于响应于应用进入退出状态确定分布式计算系统的更新状态的一个或多个规则,其中当应用处于退出状态时,应用不运行或者不响应。
示例8.根据示例7的方法,其中确定分布式计算系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用是否重启,基于针对应用的规则集中的第二规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用在其上操作的节点是否重启,基于针对应用的规则集中的第三规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中重启的一个或多个应用的列表,基于针对应用的规则集中的第四规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中第二应用是否执行,基于针对应用的规则集中的第五规则,确定指示响应于应用进入退出状态重启应用的次数的规则,或者基于针对应用的规则集中的第六规则,确定期间在确定应用已经进入故障阶段之前应用需要重启的特定次数的时间间隔。
示例9.根据示例1至8中任一项的方法,其中确定分布式计算系统的更新状态包括以下中的至少一个:基于针对应用的规则集中指定能够运行应用的节点的属性的一个或多个规则,确定在分布式计算系统的更新状态中第二节点是否能够运行应用;基于针对应用的规则集中的第一规则,确定在分布式计算系统的更新状态中应用是否在分布式计算系统中包括的多个节点的所有节点上运行,基于针对应用的规则集中的第二规则,确定在分布式计算系统的更新状态中允许开始的应用的实例的最大数目,基于针对应用的规则集中的第三规则,确定在分布式计算系统的更新状态中允许在单个节点上开始的应用的实例的最大数目,或者基于针对应用的规则集中的第四规则,确定是否开始应用作为分布式计算系统的引导过程的一部分。
示例10.根据示例1至9中任一项的方法,针对应用的规则集包括控制应用的升级的一个或多个规则。
示例11.根据示例10的方法,其中确定分布式计算系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则,确定针对应用的更新方法是顺序还是并行,基于针对应用的规则集中的第二规则,确定在分布式计算系统的更新系统状态中一个或多个应用是否在开始应用的升级之后的应用之前开始,基于针对应用的规则集中的第三规则,确定在分布式计算系统的更新系统状态中一个或多个应用是否在升级应用之前停止,基于针对应用的规则集中的第四规则,确定通知是否将响应于应用的升级而输出,或者基于针对应用的规则集中的第五规则,确定应用的升级相对于分布式计算系统的其他应用的升级的优先权。
示例12.根据示例1至11中任一项的方法,其中分布式计算系统包括分布式路由系统。
示例13.一种分布式计算系统,包括:第一节点和第二节点,第一节点包括第一系统管理器并且第二节点包括第二系统控制器,其中第一系统管理器被配置为:接收指示分布式计算系统的当前状态的数据;至少部分基于分布式计算系统的当前状态和针对应用的规则集,确定分布式计算系统的更新状态;向分布式计算系统的第二节点发送更新状态数据,更新状态数据指示分布式计算系统的更新状态的至少一部分,第一节点和第二节点是分布式计算系统中包括的多个节点中的不同节点;以及其中第二系统管理器被配置为:响应于接收更新状态数据,修改第二节点的状态以符合分布式计算系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例14.根据示例13的分布式计算系统,其中第一系统管理器被配置为执行示例2至12中任一项的方法。
示例15.一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,其中指令在执行时配置分布式计算系统的第一节点用于:由在第一节点上操作的第一系统管理器接收指示分布式计算系统的当前状态的数据;由第一系统管理器至少部分基于分布式计算系统的当前状态和针对应用的规则集,确定分布式计算系统的更新状态;以及向分布式计算系统的第二节点发送更新状态数据,更新状态数据指示分布式计算系统的更新状态的至少一部分,第一节点和第二节点是分布式计算系统中包括的多个节点中的不同节点;以及其中指令在执行时配置分布式计算系统的第二节点用于:响应于接收更新状态数据,修改第二节点的状态以符合分布式计算系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例16.一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,指令在执行时配置分布式计算系统的第一节点用于执行示例2至12中任一项的方法。
以下段落描述了本公开的特定示例。
示例1.一种方法,包括:由在包括多个节点的分布式路由系统的第一节点上操作的第一系统管理器,接收指示分布式路由系统的当前状态的数据;由第一系统管理器至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;由第一节点向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及响应于接收更新状态数据,由第二节点上的第二系统管理器修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例2.根据示例1的方法,其中分布式路由系统是多机架路由器。
示例3.根据示例1或2的方法,其中多个节点的每个相应节点包括相应线卡机架或交换机卡机架。
示例4.根据示例1至3中任一项的方法,其中:接收指示分布式路由系统的当前状态的数据包括由第一系统管理器接收节点资源数据,节点资源数据指示针对第二节点的当前中央处理单元(CPU)利用率、第二节点的存储器使用或者针对第二节点的可用存储器中的至少一个;以及确定分布式路由系统的更新状态包括由第一系统管理器至少部分基于节点资源数据来确定分布式路由系统的更新状态。
示例5.根据示例1至4中任一项的方法,其中与在分布式路由系统的当前状态中相比,在分布式路由系统的更新状态中处理负载更均匀地平衡在分布式路由系统中包括的多个节点之间。
示例6.根据示例1至5中任一项的方法,其中针对应用的规则集包括用于响应于应用的故障确定分布式路由系统的更新状态的一个或多个规则,其中应用的故障在应用由于应用在给定时间间隔内进入退出状态特定次数而已经停止时出现,其中当应用处于退出状态时,应用不运行或者不响应。
示例7.根据示例6的方法,其中确定分布式路由系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用是否重启,基于针对应用的规则集中的第二规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用在其上操作的节点是否重启,基于针对应用的规则集中的第三规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中另一应用是否执行;以及基于针对应用的规则集中的第四规则并且基于指示应用的故障的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中警告是否发起。
示例8.根据示例1至7中任一项的方法,其中针对应用的规则集包括用于响应于应用进入退出状态确定分布式路由系统的更新状态的一个或多个规则,其中当应用处于退出状态时,应用不运行或者不响应。
示例9.根据示例8的方法,其中确定分布式路由系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用是否重启,基于针对应用的规则集中的第二规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中应用在其上操作的节点是否重启,基于针对应用的规则集中的第三规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中重启的一个或多个应用的列表,基于针对应用的规则集中的第四规则并且基于指示应用已经进入退出状态的分布式计算系统的当前状态,确定在分布式计算系统的更新状态中第二应用是否执行,基于针对应用的规则集中的第五规则,确定指示响应于应用进入退出状态重启应用的次数的规则,或者基于针对应用的规则集中的第六规则,确定期间在确定应用已经进入故障阶段之前应用需要重启的特定次数的时间间隔。
示例10.根据示例1至9中任一项的方法,其中确定分布式路由系统的更新状态包括以下中的至少一个:基于针对应用的规则集中指定能够运行应用的节点的属性的一个或多个规则,确定在分布式计算系统的更新状态中第二节点是否能够运行应用;基于针对应用的规则集中的第一规则,确定在分布式计算系统的更新状态中应用是否在分布式计算系统中包括的多个节点的所有节点上运行,基于针对应用的规则集中的第二规则,确定在分布式计算系统的更新状态中允许开始的应用的实例的最大数目,基于针对应用的规则集中的第三规则,确定在分布式计算系统的更新状态中允许在单个节点上开始的应用的实例的最大数目,或者基于针对应用的规则集中的第四规则,确定是否开始应用作为分布式计算系统的引导过程的一部分。
示例11.根据示例1至10中任一项的方法,针对应用的规则集包括控制应用的升级的一个或多个规则。
示例11A.根据示例11的方法,其中确定分布式路由系统的更新状态包括以下中的至少一个:基于针对应用的规则集中的第一规则,确定针对应用的更新方法是顺序还是并行,基于针对应用的规则集中的第二规则,确定在分布式路由系统的更新系统状态中一个或多个应用是否在开始应用的升级之后的应用之前开始,基于针对应用的规则集中的第三规则,确定在分布式路由系统的更新系统状态中一个或多个应用是否在升级应用之前停止,基于针对应用的规则集中的第四规则,确定通知是否将响应于应用的升级而输出,或者基于针对应用的规则集中的第五规则,确定应用的升级相对于分布式路由系统的其他应用的升级的优先权。
示例12.一种分布式路由系统,包括:第一节点和第二节点,第一节点包括第一系统管理器并且第二节点包括第二系统控制器,其中第一系统管理器被配置为:接收指示分布式路由系统的当前状态的数据;至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及其中第二系统管理器被配置为:响应于接收更新状态数据,修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例13.根据示例12的分布式路由系统,其中第一系统管理器被配置为执行示例2至11中任一项的方法。
示例14.一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,其中指令在执行时配置分布式路由系统的第一节点用于:由在第一节点上操作的第一系统管理器接收指示分布式路由系统的当前状态的数据;由第一系统管理器至少部分基于分布式路由系统的当前状态和针对应用的规则集,确定分布式路由系统的更新状态;以及向分布式路由系统的第二节点发送更新状态数据,更新状态数据指示分布式路由系统的更新状态的至少一部分,第一节点和第二节点是分布式路由系统中包括的多个节点中的不同节点;以及其中指令在执行时配置分布式路由系统的第二节点用于:响应于接收更新状态数据,修改第二节点的状态以符合分布式路由系统的更新状态,其中修改第二节点的状态包括开始第二节点上的应用、停止第二节点上的应用或者修改第二节点上的应用的状态中的至少一个。
示例15.一种包括其上存储有指令的一个或多个非瞬态计算机可读数据存储介质的计算机程序产品,指令在执行时配置分布式路由系统的第一节点用于执行示例2至11A中任一项的方法。
将认识到,根据实施方式,可以在不同序列中执行、可以添加、合并或者完全省略(例如,不是所有描述的动作或者事件是实现本发明所必需的)这里描述的方法中的任何方法的某些动作或者事件。另外,在某些实施方式中,可以并行地、例如通过多线程处理、中断处理或者多个处理器而不是依次地执行动作或者事件。
本领域技术人员应该进一步知晓的是,结合在此公开实施方式描述的各个示例性逻辑组块、模块、电路和算法步骤可以实施作为电子硬件、由处理器执行的计算机软件、或者两者的组合。为了明确地示出硬件和软件的该可互换性,通常根据它们的功能如上描述了各个示例性部件、组块、模块、电路和步骤。这些功能是否实施作为硬件或软件取决于特定的应用以及对整体系统提出的设计约束。熟练技工可以对于每个特定应用以改变方式实施所述功能,但是这些实施方式的决策不应解释为使得脱离本发明示例性实施方式的范围。
此外,在此所公开的实施方式可以采用设计用于执行在此所述功能的电子设备或电路,诸如,通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件或其任意组合而实施或执行。通用处理器可以是微处理器,但是在备选例中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器也可以实施作为计算装置的组合,例如DSP和微处理器的组合,多个微处理器,一个或多个微处理器与DSP核心协同,或任何其他这种配置。
结合在此所述实施方式描述的方法或算法的步骤可以直接地具体化在硬件、由处理器执行的软件模块、或者两者的组合中。软件模块可以驻留在随机访问存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移除盘、CD-ROM、或本领域已知的任何其他形式存储介质中。示例性的存储介质耦合至处理器以使得处理器可以从存储介质读取信息并且向其写入信息。在备选例中,存储介质可以集成至处理器。处理器和存储介质可以驻留在ASIC中。
已经描述了各种示例。这些和其他实施方式在以下权利要求书的范围内。
Claims (13)
1.一种用于通信的方法,包括:
由在包括多个节点的分布式路由系统的节点上操作的多个应用来公布状态数据,所述状态数据指示所述应用的当前状态,所述多个节点至少包括第一节点和第二节点;
由在所述分布式路由系统的所述节点上操作的系统管理器来公布状态数据,所述状态数据包括节点资源数据,所述节点资源数据包括关于所述分布式路由系统的所述节点的硬件资源的利用水平的信息,其中所述多个系统管理器至少包括第一系统管理器和第二系统管理器,所述第一系统管理器在所述第一节点上操作,所述第二系统管理器在所述第二节点上操作,并且指示所述分布式路由系统的当前状态的数据包括由所述应用公布的所述状态数据和由所述系统管理器公布的所述状态数据;
由所述第一系统管理器,至少部分基于以下各项来确定所述分布式路由系统的更新状态:(1)由所述应用公布的所述状态数据,(2)由所述系统管理器公布的所述状态数据,以及(3)针对应用的规则集,所述应用是所述多个应用中的应用,所述分布式路由系统的所述更新状态包括所述分布式路由系统的所述节点的每个节点的更新状态;
由所述第一节点向所述第二节点发送针对所述分布式路由系统的每个所述节点的更新状态数据,所述更新状态数据指示所述分布式路由系统的所述更新状态,所述第一节点和所述第二节点是所述分布式路由系统中包括的所述多个节点中的不同节点;以及
响应于接收所述更新状态数据,由所述第二系统管理器修改所述第二节点的状态以符合如在所述更新状态数据中所指示的所述分布式路由系统的所述更新状态,其中修改所述第二节点的所述状态包括以下至少一项:开始所述第二节点上的所述应用、停止所述第二节点上的所述应用或者修改所述第二节点上的所述应用的状态。
2.根据权利要求1所述的方法,其中所述分布式路由系统是多机架路由器。
3.根据权利要求1或2所述的方法,其中所述多个节点中的每个相应节点包括相应线卡机架或交换机卡机架。
4.根据权利要求1或2所述的方法,其中:
所述节点资源数据包括数据,所述数据指示以下至少一项:针对所述第二节点的当前中央处理单元(CPU)利用率、所述第二节点的存储器使用或者针对所述第二节点的可用存储器,以及
确定所述分布式路由系统的所述更新状态包括由所述第一系统管理器至少部分基于所述节点资源数据来确定所述分布式路由系统的所述更新状态。
5.根据权利要求1或2所述的方法,其中与在所述分布式路由系统的所述当前状态中相比,在所述分布式路由系统的所述更新状态中处理负载更均匀地平衡在所述分布式路由系统中包括的所述多个节点之间。
6.根据权利要求1或2所述的方法,其中针对所述应用的所述规则集包括用于响应于所述应用的故障确定所述分布式路由系统的所述更新状态的一个或多个规则,其中所述应用的故障在所述应用由于所述应用在给定时间间隔内进入退出状态特定次数而已经停止时出现,其中当所述应用处于所述退出状态时,所述应用不运行或者不响应。
7.根据权利要求6所述的方法,其中确定所述分布式路由系统的所述更新状态包括以下中的至少一项:
基于针对所述应用的所述规则集中的第一规则并且基于指示所述应用的所述故障的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中所述应用是否重启,
基于针对所述应用的所述规则集中的第二规则并且基于指示所述应用的所述故障的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中所述应用在其上操作的节点是否重启,
基于针对所述应用的所述规则集中的第三规则并且基于指示所述应用的所述故障的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中另一应用是否执行;以及
基于针对所述应用的所述规则集中的第四规则并且基于指示所述应用的所述故障的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中警告是否发起。
8.根据权利要求1或2所述的方法,其中针对所述应用的所述规则集包括用于响应于所述应用进入退出状态确定所述分布式路由系统的所述更新状态的一个或多个规则,其中当所述应用处于所述退出状态时,所述应用不运行或者不响应。
9.根据权利要求8所述的方法,其中确定所述分布式路由系统的所述更新状态包括以下中的至少一项:
基于针对所述应用的所述规则集中的第一规则并且基于指示所述应用已经进入所述退出状态的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中所述应用是否重启,
基于针对所述应用的所述规则集中的第二规则并且基于指示所述应用已经进入所述退出状态的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中所述应用在其上操作的节点是否重启,
基于针对所述应用的所述规则集中的第三规则并且基于指示所述应用已经进入所述退出状态的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中重启的一个或多个应用的列表,
基于针对所述应用的所述规则集中的第四规则并且基于指示所述应用已经进入所述退出状态的所述分布式计算系统的所述当前状态,确定在所述分布式计算系统的所述更新状态中第二应用是否执行,
基于针对所述应用的所述规则集中的第五规则,确定指示响应于所述应用进入所述退出状态重启所述应用的次数的规则,或者
基于针对所述应用的所述规则集中的第六规则,确定期间在确定所述应用已经进入故障阶段之前所述应用需要重启的特定次数的时间间隔。
10.根据权利要求1或2所述的方法,其中确定所述分布式路由系统的所述更新状态包括以下中的至少一项:
基于针对所述应用的所述规则集中指定能够运行所述应用的节点的属性的一个或多个规则,确定在所述分布式计算系统的所述更新状态中所述第二节点是否能够运行所述应用,
基于针对所述应用的所述规则集中的第一规则,确定在所述分布式计算系统的所述更新状态中所述应用是否在所述分布式计算系统中包括的所述多个节点中的所有节点上运行,
基于针对所述应用的所述规则集中的第二规则,确定在所述分布式计算系统的所述更新状态中允许开始的所述应用的实例的最大数目,
基于针对所述应用的所述规则集中的第三规则,确定在所述分布式计算系统的所述更新状态中允许在单个节点上开始的所述应用的实例的最大数目,或者
基于针对所述应用的所述规则集中的第四规则,确定是否开始所述应用作为所述分布式计算系统的引导过程的一部分。
11.根据权利要求1或2所述的方法,针对所述应用的所述规则集包括控制所述应用的升级的一个或多个规则。
12.一种分布式路由系统,包括:
多个节点,所述多个节点包括第一节点和第二节点,所述节点的每个节点使用一个或多个计算设备或硬件来实现,其中:
在所述分布式路由系统的所述节点上操作的多个应用公布状态数据,所述状态数据指示所述应用的当前状态;
在所述节点上操作的多个系统管理器公布状态数据,所述状态数据包括节点资源数据,所述节点资源数据包括关于所述分布式路由系统的所述节点的硬件资源的利用水平的信息,其中所述多个系统管理器至少包括第一系统管理器和第二系统管理器,所述第一系统管理器在所述第一节点上操作,所述第二系统管理器在所述第二节点上操作,并且指示所述分布式路由系统的当前状态的数据包括由所述应用公布的所述状态数据和由所述系统管理器公布的所述状态数据;
至少部分基于以下各项来确定所述分布式路由系统的更新状态:(1)由所述应用公布的所述状态数据,(2)由所述系统管理器公布的所述状态数据,以及(3)针对应用的规则集,所述应用是所述多个应用中的应用,所述分布式路由系统的所述更新状态包括所述分布式路由系统的所述节点的每个节点的更新状态;以及
向所述第二节点发送针对所述分布式路由系统的每个所述节点的更新状态数据,所述更新状态数据指示所述分布式路由系统的所述更新状态的至少一部分,所述第一节点和所述第二节点是所述分布式路由系统中包括的所述多个节点中的不同节点;以及其中所述第二系统管理器被配置为:
响应于接收所述更新状态数据,修改所述第二节点的状态以符合所述分布式路由系统的如在所述更新状态数据中所指示的所述更新状态,其中修改所述第二节点的所述状态包括以下至少一项:开始所述第二节点上的所述应用、停止所述第二节点上的所述应用或者修改所述第二节点上的所述应用的状态。
13.根据权利要求12所述的分布式路由系统,其中所述第一系统管理器被配置为执行根据权利要求2至11中任一项所述的方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/587,612 | 2014-12-31 | ||
US14/587,612 US10193958B2 (en) | 2014-12-31 | 2014-12-31 | Policy based framework for application management in distributed systems |
US201562155782P | 2015-05-01 | 2015-05-01 | |
US62/155,782 | 2015-05-01 | ||
US14/867,325 US10182105B2 (en) | 2014-12-31 | 2015-09-28 | Policy based framework for application management in a network device having multiple packet-processing nodes |
US14/867,325 | 2015-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105743692A CN105743692A (zh) | 2016-07-06 |
CN105743692B true CN105743692B (zh) | 2020-07-17 |
Family
ID=55085467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511029450.4A Active CN105743692B (zh) | 2014-12-31 | 2015-12-31 | 用于应用管理的基于策略的框架 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10182105B2 (zh) |
EP (1) | EP3041197B1 (zh) |
CN (1) | CN105743692B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9860311B1 (en) * | 2015-09-17 | 2018-01-02 | EMC IP Holding Company LLC | Cluster management of distributed applications |
US10210027B1 (en) | 2015-09-17 | 2019-02-19 | EMC IP Holding Company LLC | Cluster management |
US10346628B2 (en) * | 2015-12-16 | 2019-07-09 | Architecture Technology Corporation | Multi-domain application execution management |
US9960953B2 (en) * | 2016-01-26 | 2018-05-01 | Gigamon Inc. | Bypass switch for redundant in-line network switch appliance |
US11075806B1 (en) | 2016-06-30 | 2021-07-27 | Juniper Networks, Inc. | Hierarchical naming scheme for state propagation within network devices |
US11316775B2 (en) * | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Maintaining coherency in distributed operating systems for network devices |
US10887173B2 (en) * | 2016-12-21 | 2021-01-05 | Juniper Networks, Inc. | Communicating state information in distributed operating systems |
US11316744B2 (en) | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Organizing execution of distributed operating systems for network devices |
US10587517B2 (en) * | 2017-11-30 | 2020-03-10 | Juniper Networks, Inc. | Optimizing fabric path forwarding for virtual nodes within an electronic device |
CN109976822B (zh) * | 2017-12-25 | 2022-04-08 | 天翼云科技有限公司 | 分布式应用的配置方法、装置以及分布式系统 |
US10594544B2 (en) | 2018-07-17 | 2020-03-17 | Vmware, Inc. | Method for moving logical resources without explicit negotiations in a high availability, active-active service router cluster |
US11418382B2 (en) | 2018-07-17 | 2022-08-16 | Vmware, Inc. | Method of cooperative active-standby failover between logical routers based on health of attached services |
US10530634B1 (en) | 2018-07-27 | 2020-01-07 | Vmware, Inc. | Two-channel-based high-availability |
US11095742B2 (en) | 2019-03-27 | 2021-08-17 | Juniper Networks, Inc. | Query proxy for delivery of dynamic system state |
CN111277632B (zh) * | 2020-01-13 | 2022-05-06 | 中国建设银行股份有限公司 | 系统集群中应用管理的方法和装置 |
US11662994B1 (en) * | 2020-10-20 | 2023-05-30 | Metactix Llc | System and method for updating an application for a population of computers |
CN113271137A (zh) * | 2021-04-16 | 2021-08-17 | 中国电子科技集团公司电子科学研究院 | 一种天基网络异构算力资源的协同处理方法及存储介质 |
EP4300907A1 (en) * | 2022-07-01 | 2024-01-03 | Juniper Networks, Inc. | Network device upgrade based group priority |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980192A (zh) * | 2005-12-01 | 2007-06-13 | 丛林网络公司 | 多机架路由器中的不间断转发 |
CN101036330A (zh) * | 2004-12-01 | 2007-09-12 | 思科技术公司 | 用于检测网络故障的系统和方法 |
CN103999413A (zh) * | 2011-12-19 | 2014-08-20 | 阿尔卡特朗讯公司 | 在云端传送消息的方法和装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657320A (en) * | 1995-06-06 | 1997-08-12 | Mci Corporation | Method and system for resolving contention of spare capacity circuits of a telecommunications network |
US20010042139A1 (en) | 2000-03-31 | 2001-11-15 | Aprisma Management Technologies | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state |
US7392421B1 (en) * | 2002-03-18 | 2008-06-24 | Symantec Operating Corporation | Framework for managing clustering and replication |
WO2004081762A2 (en) * | 2003-03-12 | 2004-09-23 | Lammina Systems Corporation | Method and apparatus for executing applications on a distributed computer system |
GB0402572D0 (en) * | 2004-02-05 | 2004-03-10 | Nokia Corp | A method of organising servers |
US7490323B2 (en) | 2004-02-13 | 2009-02-10 | International Business Machines Corporation | Method and system for monitoring distributed applications on-demand |
US7716175B2 (en) | 2004-08-11 | 2010-05-11 | Tekelec | Methods, systems, and computer program products for multicast compression and pacing of database update messages transmitted between processing modules in a distributed processing system |
US7454427B2 (en) | 2005-01-31 | 2008-11-18 | Cassatt Corporation | Autonomic control of a distributed computing system using rule-based sensor definitions |
EP1955151B1 (en) * | 2005-12-01 | 2018-10-17 | CA, Inc. | Automated deployment and configuration of applications in an autonomically controlled distributed computing system |
US8572138B2 (en) | 2006-03-30 | 2013-10-29 | Ca, Inc. | Distributed computing system having autonomic deployment of virtual machine disk images |
US8589727B1 (en) * | 2008-02-04 | 2013-11-19 | Neverfail Group Limited | Methods and apparatus for providing continuous availability of applications |
US8458690B2 (en) * | 2009-04-29 | 2013-06-04 | Microsoft Corporation | Automated software deployment triggered by state differences in distributed systems |
US9459926B2 (en) * | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US9166908B2 (en) * | 2011-12-20 | 2015-10-20 | Cisco Technology, Inc. | Assisted intelligent routing for minimalistic connected object networks |
US8931051B2 (en) * | 2012-11-14 | 2015-01-06 | Microsoft Corporation | Scalable and highly available clustering for large scale real-time applications |
US20150082378A1 (en) * | 2013-09-18 | 2015-03-19 | Apcera, Inc. | System and method for enabling scalable isolation contexts in a platform |
WO2015058796A1 (en) * | 2013-10-23 | 2015-04-30 | Telefonaktiebolaget L M Ericsson (Publ) | Load balancing in a distributed network management architecture |
-
2015
- 2015-09-28 US US14/867,325 patent/US10182105B2/en active Active
- 2015-12-22 EP EP15202032.7A patent/EP3041197B1/en active Active
- 2015-12-31 CN CN201511029450.4A patent/CN105743692B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036330A (zh) * | 2004-12-01 | 2007-09-12 | 思科技术公司 | 用于检测网络故障的系统和方法 |
CN1980192A (zh) * | 2005-12-01 | 2007-06-13 | 丛林网络公司 | 多机架路由器中的不间断转发 |
CN103999413A (zh) * | 2011-12-19 | 2014-08-20 | 阿尔卡特朗讯公司 | 在云端传送消息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105743692A (zh) | 2016-07-06 |
EP3041197A1 (en) | 2016-07-06 |
US20160191613A1 (en) | 2016-06-30 |
US10182105B2 (en) | 2019-01-15 |
EP3041197B1 (en) | 2018-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105743692B (zh) | 用于应用管理的基于策略的框架 | |
US11429369B2 (en) | Distributed upgrade in virtualized computing environments | |
US10193958B2 (en) | Policy based framework for application management in distributed systems | |
US10949233B2 (en) | Optimized virtual network function service chaining with hardware acceleration | |
US10089123B2 (en) | Virtual cable modem termination system redundancy in a cable modem network environment | |
US10003498B2 (en) | Efficient management of network configuration-dependent network functionality | |
US9021459B1 (en) | High availability in-service software upgrade using virtual machine instances in dual control units of a network device | |
US10084657B2 (en) | Normalized software-defined networking interface | |
US9141373B2 (en) | System and method for accelerated software upgrades | |
CN110784400B (zh) | N:1有状态应用网关冗余方法、系统和备用服务网关 | |
US9917800B2 (en) | System and method for centralized virtual interface card driver logging in a network environment | |
WO2018137520A1 (zh) | 一种业务恢复方法及装置 | |
CN110061912B (zh) | 仲裁虚拟节点的冗余控制平面之间的主控权 | |
US10218605B2 (en) | On-demand control plane redundancy | |
US10972337B2 (en) | Method and apparatus for split-brain avoidance in sub-secondary high availability systems | |
US9706016B2 (en) | Unconstrained supervisor switch upgrade | |
US10841160B2 (en) | System and method for processing messages during a reboot of a network device | |
US11368355B2 (en) | Method for establishing high resilient active recovery for BGP route reflectors | |
CN111835685A (zh) | 一种监控Nginx网络隔离空间的运行状态的方法和服务器 | |
CN113709220B (zh) | 虚拟负载均衡器的高可用实现方法、系统及电子设备 | |
US8990365B1 (en) | Processing management packets | |
US11822952B2 (en) | Managing downtime to networking managers during configuration updates in cloud computing environments | |
WO2020032169A1 (ja) | 障害復旧制御方法、通信装置、通信システム、及びプログラム | |
US10122588B2 (en) | Ring network uplink designation | |
WO2023037141A1 (en) | Active node selection for high availability clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |