CN114281353A - 使用部署元数据避免平台和服务中断 - Google Patents

使用部署元数据避免平台和服务中断 Download PDF

Info

Publication number
CN114281353A
CN114281353A CN202011604852.3A CN202011604852A CN114281353A CN 114281353 A CN114281353 A CN 114281353A CN 202011604852 A CN202011604852 A CN 202011604852A CN 114281353 A CN114281353 A CN 114281353A
Authority
CN
China
Prior art keywords
application
applications
installation
deployment
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011604852.3A
Other languages
English (en)
Inventor
M.古基诺
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.)
Red Hat Inc
Original Assignee
Red Hat 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 Red Hat Inc filed Critical Red Hat Inc
Publication of CN114281353A publication Critical patent/CN114281353A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

一种系统包括簇、存储器以及与所述存储器进行通信的处理器。所述簇包括节点和应用程序编程接口(API)服务器。所述处理器被配置为接收确定所述簇的维护可用性状态的请求。安装在所述簇上的多个应用程序中的每一个是可发现的,并且检索与所述多个应用程序中的每一个相关联的部署元数据。解析所述多个应用程序中的每一个的部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则。与所述多个应用程序中的第一应用程序相关联的一个或多个安装规则与所述多个应用程序中的一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合。接下来,基于所述冲突的集合来确定维护可用性状态。

Description

使用部署元数据避免平台和服务中断
技术领域
本公开总体上涉及计算机系统和方法。
背景技术
计算机系统可以运行经由服务器或云提供的应用程序或服务。可以在运行时开发和部署应用程序或服务。应用程序实例或服务可以在容器中运行,所述容器可以在物理机或虚拟机上运行。容器可以用于分离计算系统的各个组件。例如,计算系统的不同组件可以在不同容器和/或虚拟机处被执行,所述不同容器和/或虚拟机在计算设备或多个计算设备上执行。对已安装服务和/或应用程序的维护和/或修改通常可以应用在可能不断发展的各种服务器或云环境中。
发明内容
本公开提供了用于分析部署元数据以避免平台和服务中断的新型和创新的系统和方法。在示例中,一种系统包括簇(cluster)、存储器和一个或多个处理器。所述一个或多个处理器与所述存储器进行通信,并且所述簇包括一个或多个节点和应用程序编程接口(API)服务器。所述处理器被配置为接收确定所述簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序。发现安装在所述簇上的所述多个应用程序中的每一个。检索与所述多个应用程序中的每一个相关联的部署元数据。解析所述多个应用程序中的每一个的部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则。将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联。接下来,基于所述冲突的集合来确定维护可用性状态。
在示例中,一种方法包括接收确定簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序。发现安装在所述簇上的多个应用程序中的每一个,并且检索与所述多个应用程序中的每一个相关联的部署元数据。解析所述多个应用程序中的每一个的部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则。将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联。接下来,基于所述冲突的集合来确定维护可用性状态。
在示例中,一种系统包括存储器和一个或多个处理器,其中,所述一个或多个处理器与所述存储器进行通信。所述处理器被配置为接收针对评估部署在簇内的应用程序的安装的请求。接下来,检索与所述应用程序相关联的部署元数据,并且访问数据库,所述数据库包括与所述应用程序的模型安装相关联的一个或多个模型安装规则。解析所述部署元数据以检索所述应用程序的一个或多个安装规则。将所述应用程序的所述一个或多个安装规则与和所述应用程序的所述模型安装相关联的所述一个或多个安装规则进行比较,以确定所述应用程序与所述应用程序的所述模型安装之间的差异的集合。随后,基于所述差异的集合来确定部署状态。
在下面的具体实施方式和附图中描述并理解所公开的方法和装置的附加特征和优点。鉴于附图和描述,本文描述的特征和优点不是全部包含的,并且具体地,许多其它特征和优点对于本领域的普通技术人员将是显而易见的。此外,应当注意,在说明书中使用的语言主要是出于可读性和指导性目的而选择的,而不是限制本发明主题的范围。
附图说明
图1示出了根据本公开的一个或多个方面的示例性计算系统的高级组件图。
图2示出了根据本公开的示例性实施例的用于确定计算系统的维护可用性的示例性方法的流程图。
图3示出了根据本公开的实施例的评估应用程序的安装的示例性方法的流程图。
图4A和4B示出了根据本公开的实施例的评估计算系统内的应用程序的部署的示例性方法的流程图。
图5示出了根据本公开的示例性实施例的用于确定计算系统的每个组件的维护可用性的示例性系统的框图。
图6示出了根据本公开的示例性实施例的用于评估计算系统内的应用程序的安装的示例性系统的框图。
具体实施方式
公开了用于实施用于基于部署元数据来避免平台和服务中断和/或停机时间的系统和方法的技术。通常,应用程序平台(诸如OpenShift和Kubernetes)允许将来自各种源的各种服务和应用程序部署到共享平台上。通常,在共享平台上维护和管理服务和应用程序可能很困难,因为没有单个工具、接口和/或通用实施方式来帮助识别已部署的应用程序和服务,这可能会由于平台维护和/或故障而中断。通常,共享平台的管理是手动过程,其中每个应用程序或服务都需要单独的关注和/或分析,以确定一个或多个应用程序是否容易受到与共享平台内每个应用程序的部署相关的潜在中断的影响。
如本文公开的各种示例中所述,为了推进共享平台的自动化和/或管理并避免对平台和服务的中断,本文公开的系统和方法有利地实施部署元数据分析工具。部署元数据分析工具可操作以发现部署在平台上的现有服务和/或应用程序,检索相关元数据,分析相关元数据以评估应用程序的承受中断的能力以及基于应用程序的配置而输出潜在问题。在各种实例,所描述的部署元数据分析工具可以体现在独立工具内和/或嵌入在平台内部署的工具内。在许多实例中,平台可以与簇和/或计算系统互换使用。
在各种实例中,在平台管理期间,可以手动或自动运行部署元数据分析工具,以检查和收集平台上已部署的服务和应用程序部署元数据。分析元数据以确定在正常维护操作和/或平台中断期间,部署在平台上的应用程序和/或服务是否易于中断。
例如,第一种场景是在共享平台上安装了第一应用程序和第二应用程序。在这个实例中,第一应用程序的部署元数据描述的副本数量大于一,并且平台已自动确保每个副本位于不同的节点上(例如,位于第一节点和第二节点上,其中第一节点和第二节点在同一网荚(pod)中)。第二应用程序的部署元数据描述的副本数量等于一,并且副本安装在第一节点上。当分析用于第一应用程序和第二应用程序的这种配置时,可以确定在第一节点上执行维护将会对第二应用程序的可用性产生负面影响。所述工具的输出可以用于通知平台管理员第二应用程序易于中断,并且维护可能应推迟直到通知第二应用程序的所有者并改变其应用程序以具有更多副本或同意中断第二应用程序是可接受的。
在第二种场景中,使用上述相同的配置,考虑第一应用程序是否具有允许对第一应用程序进行零次中断(即,没有一个副本可以脱机)的POD中断预算(PODDisruptionBudget(PDB))。在这种情况下,由于PDB,系统维护将无法在第一节点或第二节点上进行。这种配置对平台管理员和应用程序所有者两者造成非期望后果,因为无法定期维护平台,并且应用程序既无法更新,也无法承受任何类型的中断。部署元数据分析工具可操作以通知平台管理员:由于第一应用程序的部署元数据的配置,因此维护不太可能成功。在一些实例中,部署元数据分析工具可以操作以为潜在中断提供补救措施。
部署元数据分析工具可以通过名称和所有权信息向被确定具有非零中断风险的每个服务或应用程序的平台管理员识别服务和/或应用程序。在一些实例中,部署元数据分析工具可操作以提供安装在平台上的每个应用程序和/或服务的状态(status)和/或状态(state)。在各种实例中,部署元数据分析工具可以配置以分析更多或更少的元数据,可以配置以对一些元数据进行的加权大于对其它元数据进行的加权,和/或配置以识别元数据中影响服务中断确定的模式。在大多数实例中,部署元数据分析工具的输出可以包括报告、对另一个自动化过程的输入,或者导致与人或进程发生通信。工具的输出结果可以用于在确定平台上的维护和纠正措施时向服务或应用程序所有者通知缺陷和/或向平台管理员通知信息。在各种实例中,所收集的部署元数据和其它元数据可以包括但不限于:PodDisruptionBudget、副本计数、宽限期超时、就绪探针(readiness probe)配置、健康状况检查配置、正常运行时间、标签、注释、部署状态以及描述服务和/或应用程序部署的期望和/或当前状态的其它有用元数据。
图1描绘了根据本公开的一个或多个方面的示例性计算系统100的高级组件图。计算系统100可以包括服务器185、应用编程接口(API)服务器180、一个或多个虚拟机(VM170A-B,通常为170)、节点(例如,节点110A-C,通常为110),以及数据库175。应用程序198中的每一个根据安装规则179进行部署,所述安装规则被存储为部署元数据150。API服务器180包括与安装在计算系统100内的每个应用程序(例如,198A-D)和/或服务相关联的部署元数据150。数据库175包括安装在计算系统100内的每个应用程序198和/或服务的模型安装177的示例。在各种实例中,模型安装177可以包括一个或多个模型安装规则。在一些实例中,计算系统100(例如,簇)可以被部署在一个或多个地理位置中,并且具有安装在整个计算系统100中的应用程序198。
虚拟机170A-B可以包括虚拟机存储器(VM存储器)、虚拟CPU(VCPU)、虚拟存储器设备(VMD)和虚拟输入/输出设备(VI/O)。例如,虚拟机170A可以包括虚拟机存储器195A、虚拟CPU 190A、虚拟存储器设备193A和虚拟输入/输出设备194A。类似地,虚拟机170B可以包括虚拟机存储器195B、虚拟CPU 190B、虚拟存储器设备193B和虚拟输入/输出设备194B。在示例中,应用程序198A-D可以是不同的应用程序或服务。在另一个示例中,应用程序198A-D可以是相同应用程序或服务的不同实例。
在示例中,虚拟机170A可以执行访客操作系统并运行可以利用基础VCPU 190A、VMD 193A和VI/O设备194A的应用程序198A-B。一个或多个应用程序198A-B可以根据相应的访客操作系统在虚拟机170A上运行。虚拟机(例如,如图1所示的VM 170A-B)可以在基础硬件和操作系统(“OS”)上的任何类型的相关的、独立的、兼容的和/或不兼容的应用程序上运行。在示例中,在虚拟机170A上运行的应用程序(例如,应用程序198A-B)可以取决于基础硬件和/或OS。在另一个示例性实施例中,在虚拟机170A上运行的应用程序198A-B可以独立于基础硬件和/或OS。例如,在第一虚拟机170A上运行的应用程序198A-B可以依赖于基础硬件和/或OS,而在第二虚拟机(例如,VM 170B)上运行的应用程序(例如,应用程序198C-D)独立于基础硬件和/或操作系统。另外,在虚拟机170A上运行的应用程序198A-B可以与基础硬件和/或OS兼容。在示例性实施例中,在虚拟机170A上运行的应用程序198A-B可以与基础硬件和/或OS不兼容。例如,在一个虚拟机170A上运行的应用程序198A-B可以与基础硬件和/或OS兼容,而在另一虚拟机170B上运行的应用程序198C-D与基础硬件和/或OS不兼容。
在示例中,虚拟机170A-B可以替代地是执行应用程序或服务(诸如微服务)的容器。在示例中,容器可以各自运行进程或服务,并且容器可以是任何执行环境。例如,容器可以是虚拟服务器。应当理解,容器可以是独立的执行环境,其类似于虚拟机的执行环境。应用程序198A-D或服务(例如,微服务)可以在软件容器或虚拟机(例如,虚拟机170A-B)中运行。
计算系统100可以包括一个或多个节点110A-C。每个节点110A-C可以继而包括通信地耦合到存储器设备(例如,MD 130A-D)和输入/输出设备(例如,I/O 140A-C)的一个或多个物理处理器(例如,CPU 120A-E)。每个节点110A-C可以是计算机,诸如物理机器,并且可以包括设备,诸如硬件设备。在示例中,硬件设备可以包括网络设备(例如,网络适配器或将计算机连接到计算机网络的任何其它组件)、外围组件互连(PCI)设备、存储设备、磁盘驱动器、声音或视频适配器、照相机/摄像机、打印机设备、键盘、显示器等。虚拟机170A-B可以设置在同一主机或节点(例如,节点110A)或不同节点上。例如,VM 170A和VM 170B都可以被设置在节点110A上。替代地,VM 170A可以设置在节点110A上,而VM 170B设置在节点110B上。
如本文所使用的,物理处理器或处理器120A-E是指能够执行对算术、逻辑和/或I/O操作进行编码的指令的设备。在一个说明性示例中,处理器可以遵循冯·诺依曼架构模型,并且可以包括算术逻辑单元(ALU)、控制单元和多个寄存器。另一方面,处理器可以是通常能够一次执行一个指令(或处理单个指令流水线)的单核处理器,或者可以同时执行多个指令的多核处理器。另一方面,处理器可以被实施为单个集成电路、两个或更多个集成电路,或者可以是多芯片模块的组件(例如,单个微处理器管芯包括在单个集成电路封装中,因此共享单个套接字)。处理器也可以被称为中央处理单元(CPU)。
如本文所讨论的,存储器设备130A-D是指易失性或非易失性存储器设备,诸如RAM、ROM、EEPROM或能够存储数据的任何其它设备。如本文所讨论的,I/O设备140A-C是指能够在一个或多个处理器引脚与能够输入和/或输出二进制数据的外部设备之间提供接口的设备。
可以使用范围在从点对点处理器互连到系统区域网络(诸如基于以太网的网络)中的各种技术来互连处理器(例如,CPU 120A-E)。每个节点内的本地连接(包括处理器120A-E与存储器设备130A-D之间的连接)可以由具有适当架构的一条或多条本地总线(例如,外围组件互连(PCI))来提供。
图2示出了根据本公开的示例性实施例的用于确定计算系统的维护可用性的示例性方法的流程图。尽管参考图2所示的流程图描述了示例性方法200,但是应当理解,可以使用执行与方法200相关联的动作的许多其它方法。例如,一些框的顺序可以改变,一些框可以与其它框组合,框可以重复,并且所描述的一些框是可选的。方法200可以通过处理逻辑来执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件或两者的组合。
如图2所示,示例性方法200可以开始于接收确定簇的维护可用性状态的请求(框205)。例如,服务器185可以接收确定计算系统100的维护可用性状态的请求,其中计算系统100(例如,簇)包括安装在计算系统100上的多个应用程序198。在一些实例中,维护任务可以从系统100中自动发起,所述系统可以发起部署元数据分析工具的执行以确定维护可用性状态。在其它实例中,服务器185可以接收确定维护可用性状态的外部请求。维护可用性状态识别计算系统100中的一个或多个组件或整个计算系统100是否可能易于中断。在各种实例中,中断可以包括计算系统100内发生故障和/或需要系统维护的一个或多个组件(例如,VM 170、节点110、API服务器180和/或其它组件),所述发生故障和/或需要系统维护导致所述一个或多个组件会在任何时间内重新启动和/或关闭电源。由于但不限于修补操作系统、硬件故障、软件安装需要重新启动、节省功率、计算系统100或系统100的一个或多个组件的停运和/或可能需要关闭计算系统100中的机器的电源的任何其它原因,计算系统100可能发生中断。维护计算系统100的步骤是确定是否可以在不影响已安装的应用程序198的情况下关闭和/或重新启动一个或多个系统(即,节点110、VM 170、服务器185和/或API服务器180)以进行维护。
接下来,示例性方法200可以包括发现安装在簇上的多个应用程序中的每一个(框210)。例如,在接收到确定计算系统100的维护可用性状态的请求时,服务器185通过查询API服务器180以确定要分析哪些应用程序198来发现哪些应用程序198和/或服务被安装在计算系统100上。应用程序编程接口(API)服务器180存储部署元数据150,所述部署元数据含有与每个应用程序198的安装相关联的信息。例如,部署元数据150可以包括网荚中断预算、副本计数、宽限期超时、就绪探针配置、健康状况检查配置、正常运行时间、标签、注释、部署状态以及描述服务和/或应用程序198的部署的期望和/或当前状态的其它有用元数据。在一些实例中,API服务器180可以包括用于每个已安装的应用程序198和/或服务的清单,其中清单包括与已安装的应用程序198和/或服务相关联的部署元数据。在各种示例中,部署元数据150可以包括与每个应用程序198相关联的安装规则179以及关于应用程序198的部署的其它信息。
接下来,示例性方法200可以包括检索与多个应用程序中的每一个相关联的部署元数据(框215)。例如,在确定哪些应用程序198和/或服务被安装在计算系统100上时,服务器185从API服务器180中检索与每个应用程序198相关联的部署元数据150。可以解析部署元数据150以确定如何在计算系统100内部署应用程序198。在各种实例中,应用程序198可以与服务互换使用。接下来,示例性方法200可以包括解析多个应用程序中的每一个的部署元数据以检索与多个应用程序中的每一个相关联的一个或多个安装规则(框220)。例如,服务器185解析部署元数据150以检索与安装在计算系统100内的每个应用程序198相关联的安装规则179。在各种实例中,部署元数据可以是包括用于应用程序198的部署元数据的清单和/或文档。在一些实例中,用于应用程序198的安装规则179可以包括VM亲和性,其可以指示是否将应用程序或者应用程序的一个或多个部分安装在单个VM 170或多个VM 170上。在其它实例中,用于应用程序的安装规则179可以包括节点亲和性,其可以指示是否将应用程序或者应用程序的一个或多个部分安装在单个节点110或多个节点110上。
接下来,示例性方法200可以包括将与多个应用程序中的第一应用程序相关联的一个或多个安装规则与多个应用程序中的一个或多个安装规则关联,以确定第一应用程序的冲突的集合(框225)。例如,服务器185将用于第一应用程序198D的安装规则179与多个应用程序198的一个或多个安装规则179关联,以确定应用程序198D的冲突的集合。对于第一应用程序198D的冲突的集合中的每个冲突,每个冲突均与和第一应用程序198D有关的潜在中断相关联。在某些实例中,应用程序198可能与安装在计算系统100内的一个或多个其它应用程序198发生冲突。例如,如果一个或多个应用程序198仅安装在单个VM 170和/或单个节点110上,并且特定VM 170或节点110重新启动以进行维护,则维护活动可能会导致一个或多个应用程序198中断。在一些实例中,应用程序198可能与其自身发生冲突。例如,应用程序198可以具有前端和后端。在这个实例中,如果前端和后端安装在同一VM 170或节点110上,并且所述特定节点被卸载以进行维护,则应用程序198与其自身发生冲突,并且将因维护活动而中断。在各种实例中,可以通过在单独的VM 170和/或节点110上部署应用程序的多个实例和/或应用程序的多个部分(例如,后端、前端和数据库)来避免潜在中断。在这些实例中,如果单个VM 170或节点110发生故障或被重新启动,则应用程序198的其它实例在计算系统100的其它部分中仍然起作用。
接下来,示例性方法200可以包括基于冲突的集合来确定维护可用性状态(框230)。例如,服务器185将一个或多个应用程序198的冲突进行比较,以确定是否存在与至少一个其它应用程序198(包括其自身)的冲突。如果对于应用程序198存在一个或多个冲突,则维护可用性状态可以被设置为不可用。如果应用程序198中的任一个均不相互冲突,则维护可用性状态可以被设置为可用。在各种实例中,计算系统100可以基于冲突的集合来确定对安装规则179的一个或多个更新,以解决对任何应用程序198的部署的潜在中断。
图3示出了根据本公开的实施例的评估应用程序的安装的示例性方法的流程图。尽管参考图3所示的流程图描述了示例性方法300,但是应当理解,可以使用执行与方法300相关联的动作的许多其它方法。例如,一些框的顺序可以改变,一些框可以与其它框组合,框可以重复,并且所描述的一些框是可选的。方法300可以通过处理逻辑来执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件或两者的组合。
如图3所示,示例性方法300可以开始于接收针对评估部署在簇内的应用程序的请求(框305)。例如,服务器185接收针对分析和/或评估在计算系统100内的应用程序198D的安装的请求。取决于应用程序198D的部署状态,如果需要,可以重新配置应用程序198D以避免可预见的中断。在各种实例中,单个应用程序198的安装可以跨越一个或多个VM 170和/或可以跨越一个或多个节点110。在一些实例中,单个应用程序198D的安装可以包括应用程序198的多个模块和/或模块副本跨一个或多个节点110和/或一个或多个VM 170的安装。在一个示例中,应用程序198D的理想安装包括安装在整个计算系统100上的应用程序198D的四个副本,以防止由于各种原因(例如,系统维护、硬件故障、软件故障、病毒和/或一个或多个节点和/或VM可能脱机的其它原因)而导致来自VM 170和/或节点110的潜在中断。然而,如果在将应用程序198D部署到计算系统100时配置不当(例如,配置有针对单个VM的VM亲和性),则应用程序198D的四个副本中的每一个都可能安装在单个VM 170或单个节点110上,这可能增加来自应用程序198的可用性和/或服务的中断的可能性。
接下来,示例性方法300可以包括检索与应用程序相关联的部署元数据(框310)。例如,服务器185从API服务器180中检索与应用程序198D相关联的部署元数据。API服务器180存储安装在计算系统100上的每个应用程序198的部署元数据150。可以从API服务器180中检索与安装在计算系统100上的每个应用程序198相关联的部署元数据150。接下来,示例性方法300可以包括访问数据库(框315),所述数据库包括与应用程序的模型安装相关联的一个或多个模型安装规则。例如,服务器185访问数据库175,所述数据库包括应用程序198D的模型安装177。模型安装177可以包括用于模型配置的一个或多个规则和/或建议(例如,与节点亲和性/反亲和性、故障亲和性/反亲和性、POD亲和性/反亲和性有关的规则和/或建议)。如果应用程序198的安装与模型安装177未保持一致,则在尝试使用应用程序198时出现潜在中断的可能性可能会增加。为了避免潜在中断,每个应用程序198的实施应尽可能多地与模型安装177保持一致。
接下来,示例性方法300可以包括解析部署元数据以检索针对应用程序的一个或多个安装规则(框320)。例如,服务器185解析部署元数据150以检索针对应用程序198D的一个或多个安装规则179。解析可以包括将包括部署元数据150的文件分解为子组件,所述子组件识别用于部署应用程序198D的一个或多个安装规则179。接下来,示例性方法300可以包括将应用程序的一个或多个安装规则与和应用程序的模型安装相关联的一个或多个安装规则进行比较以确定应用程序与应用程序的模型安装之间的差异的集合(框325)。例如,服务器185将应用程序198D的一个或多个安装规则179与和应用程序198D的模型安装177相关联的一个或多个安装规则进行比较,以确定应用程序198D与模型安装177之间的差异的集合。将应用程序198和模型安装177的一个或多个规则中的每一个进行比较,以确定是否以非模型配置安装应用程序198D,所述非模型配置可能潜在地增加应用程序198D的中断的可能性。接下来,示例性方法300可以包括基于差异来确定部署状态(框330)。例如,服务器185分析差异的集合以确定应用程序198D的部署状态。已经以与模型安装177保持一致的配置部署的应用程序198D可以具有正确部署的状态。已经以与模型安装177不完全一致的配置部署的应用程序198可能会处于部署不正确的状态。在一些实例中,取决于应用程序198的安装与模型安装177之间存在多少差异,部署状态还包括部署级别。在这些实例中,部署级别可以是与应用程序198的可能性中断的可能性相对应的低、中等或高。
图4A和4B示出了根据本公开的实施例的用于评估计算系统内的应用程序的部署的示例性方法的流程图。尽管参考图4所示的流程图描述了示例性方法400,但是应当理解,可以使用执行与方法400相关联的动作的许多其它方法。例如,一些框的顺序可以改变,一些框可以与其它框组合,块可以重复,并且所描述的一些框是可选的。例如,在所示流程图中,服务器185与API服务器180和数据库175进行交互以检索信息以分析应用程序198的部署。
如图4A所示,服务器185接收针对评估应用程序198的部署的请求(框405)。服务器185从API服务器180请求部署元数据150(框410)。在接收到针对部署元数据150的请求时(框415),API服务器180检索部署元数据150并将与应用程序198相关联的部署元数据150发送到服务器185(框420)。在各种实例中,API服务器180可以将部署元数据150存储在数据库175中。在某些实施例中,数据库175还可以包括与安装在计算系统100内的每个应用程序198的模型安装177有关的元数据。接下来,服务器185访问数据库175以检索与模型安装177相关联的规则(框425)。在数据库175处接收到访问请求之后(框430),数据库175以与模型安装177相关联的规则进行响应(框435)。服务器185解析部署元数据150以检索与应用程序198相关联的一个或多个规则(框440)。然后,服务器185将来自应用程序198的一个或多个规则与来自模型安装177的模型规则进行比较,以确定应用程序198的安装与模型安装177的部署之间的差异(框445)。根据差异,服务器185确定应用程序198的部署状态(框450)。在各种示例中,部署状态可以等于指示中断潜在性的多个级别中的一个。例如,在一个实例中,低级别的中断可能与和模型安装177保持一致的应用程序198的安装保持一致。在另一个实例中,中等级别的中断可能与和模型安装177仅部分地保持一致的应用程序198的安装保持一致。在又另一实例中,高级别的中断可能与和模型安装177完全未保持一致的应用程序198的安装保持一致。
在各种实例中,计算系统100内的数据库175可以包括从模型安装177的模型规则的偏移到补救每个偏移的模式的映射。例如,偏移可以是无节点反亲和性策略与具有节点反亲和性策略的对比,所述节点反亲和性策略指定应用程序198的每个部分都部署在不同节点110上。服务器185访问数据库175(框455),所述数据库包括从模型规则的偏移到补救模式的映射。在接收到访问请求之后(框460),数据库175以对从模型规则和潜在中断的偏移到可用于补救每个偏移的模式的映射的访问来进行响应(框465)。服务器185将差异与偏移的映射进行比较以获得一个或多个模式以补救应用程序198中的每个偏移(框470),并输出比较结果(框475)。一旦服务器185获得批准以一个或多个模式来更新应用程序的部署(框480),则服务器185实施每个模式以补救每个应用程序的部署(框485)。接下来,服务器195更新应用程序服务器180内的部署元数据(框490)。在从服务器185接收到更新时,API服务器180存储更新后的部署元数据150(框495)。
图5是包括簇515、存储器505和处理器510的系统500的框图,其中处理器510与存储器505进行通信。簇包括一个或多个节点520和应用程序编程接口(API)服务器525。处理器510被配置为接收确定簇515的维护可用性状态535的请求550,其中在簇515上安装多个应用程序(540、541)。发现安装在簇515上的多个应用程序(540、541)中的每一个。检索与多个应用程序(540、541)中的每一个相关联的部署元数据530。解析多个应用程序(540、541)中的每一个的部署元数据530以检索与多个应用程序(540、541)中的每一个相关联的一个或多个安装规则555。与多个应用程序(540、541)中的第一应用程序540相关联的一个或多个安装规则555与多个应用程序(540、541)中的一个或多个安装规则关联,以确定第一应用程序的冲突545的集合。针对第一应用程序540的冲突545的集合中的冲突545中的每一个与和第一应用程序540有关的潜在中断545相关联。接下来,基于冲突545的集合来确定维护可用性状态535。
图6是包括存储器605和处理器610的系统600的框图,其中处理器610与存储器605进行通信。处理器610被配置为接收针对评估部署在簇615内的应用程序625的安装的请求660。接下来,检索与应用程序625相关联的部署元数据630。访问数据库635,所述数据库包括与应用程序625的模型安装640相关联的一个或多个安装规则645。解析部署元数据630以检索应用程序625的一个或多个安装规则655。接下来,将应用程序625的一个或多个安装规则655与和应用程序625的模型安装640相关联的所述一个或多个安装规则645进行比较,以确定应用程序625与应用程序625的模型安装640之间的差异650的集合。基于差异650的集合来确定部署状态620。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第1示例性方面中,一种系统,包括:簇,所述簇包括一个或多个节点和应用程序编程接口(API)服务器;存储器;以及与所述存储器进行通信的一个或多个处理器,其中,所述处理器被配置为:接收确定所述簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序;发现安装在所述簇上的所述多个应用程序中的每一个;检索与所述多个应用程序中的每一个相关联的部署元数据;解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则;将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及基于所述冲突的集合来确定维护可用性状态。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第2示例性方面中,其中,关联包括确定与所述第一应用程序相关联的所述一个或多个安装规则的哪些部分与所述多个应用程序中的其它应用程序中的一个或多个匹配。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第3示例性方面中,其中,关联包括确定所述簇内的第一节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第4示例性方面中,其中,关联包括确定所述簇内的并且与所述多个应用程序中的第二应用程序相关联的每个节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第5示例性方面中,其中,所述处理器还被配置为输出所述维护可用性状态和所述冲突的集合。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第6示例性方面中,其中,所述维护可用性状态是可用的。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第7示例性方面中,其中,所述维护可用性状态是不可用的。
在可以与前述方面中的任何一个或多个(即,第1方面)结合使用的本公开的第8示例性方面中,其中,所述处理器还被配置为修改所述多个应用程序中的所述一个或多个中的一个应用程序的一个或多个规则,以修改所述应用程序的所述维护可用性状态。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第9示例性方面中,一种系统,其包括:接收确定簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序;发现安装在所述簇上的所述多个应用程序中的每一个;检索与所述多个应用程序中的每一个相关联的部署元数据;解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则;将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及基于所述冲突的集合来确定维护可用性状态。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第10示例性方面中,其中,关联包括:确定与所述第一应用程序相关联的所述一个或多个安装规则的哪些部分与所述多个应用程序中的其它应用程序中的一个或多个匹配。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第11示例性方面中,其中,关联包括:确定所述簇内的第一节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第12示例性方面中,其中,关联包括:确定所述簇内的并且与所述多个应用程序中的第二应用程序相关联的每个节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第13示例性方面中,其中,所述方法还包括:输出所述维护可用性状态和所述冲突的集合。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第14示例性方面中,其中,所述维护可用性状态是可用的。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第15示例性方面中,其中,所述维护可用性状态是不可用的。
在可以与前述方面中的任何一个或多个(即,第9方面)结合使用的本公开的第16示例性方面中,其中,所述方法还包括:修改所述多个应用程序中的所述一个或多个中的一个应用程序的一个或多个规则,以修改所述应用程序的所述维护可用性状态。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第17示例性方面中,一种非暂时性机器可读介质,其存储介质,所述介质在由处理器执行时被配置为:接收确定簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序;发现安装在所述簇上的所述多个应用程序中的每一个;检索与所述多个应用程序中的每一个相关联的部署元数据;解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则;将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及基于所述冲突的集合来确定维护可用性状态。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第18示例性方面中,其中,关联包括:确定与所述第一应用程序相关联的所述一个或多个安装规则的哪些部分与所述多个应用程序中的其它应用程序中的一个或多个匹配。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第19示例性方面中,其中,关联包括:确定所述簇内的第一节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第20示例性方面中,其中,关联包括:确定所述簇内的并且与所述多个应用程序中的第二应用程序相关联的每个节点的停机时间是否对所述第一应用程序产生影响。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第21示例性方面中,其中,所述处理器还被配置为:输出所述维护可用性状态和所述冲突的集合。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第22示例性方面中,其中,所述维护可用性状态是可用的。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第23示例性方面中,其中,所述维护可用性状态是不可用的。
在可以与前述方面中的任何一个或多个(即,第17方面)结合使用的本公开的第24示例性方面中,其中,在由所述处理器执行时还被配置为:修改所述多个应用程序中的所述一个或多个中的一个应用程序的一个或多个规则,以修改所述应用程序的所述维护可用性状态。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第25示例性方面中,一种系统,其包括:用于接收确定簇的维护可用性状态的请求的部件,其中,在所述簇上安装多个应用程序;用于发现安装在所述簇上的所述多个应用程序中的每一个的部件;用于检索与所述多个应用程序中的每一个相关联的部署元数据的部件;用于解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则的部件;用于将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则关联以确定所述第一应用程序的冲突的集合的部件,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及用于基于所述冲突的集合来确定维护可用性状态的部件。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第26示例性方面中,一种系统,其包括:存储器;以及与所述存储器进行通信的一个或多个处理器,其中,所述处理器被配置为:接收针对评估部署在簇内的应用程序的安装的请求;检索与所述应用程序关联的部署元数据;访问数据库,所述数据库包括与所述应用程序的模型安装相关联的一个或多个模型安装规则;解析所述部署元数据以检索所述应用程序的一个或多个安装规则;将所述应用程序的所述一个或多个安装规则与和所述应用程序的所述模型安装相关联的所述一个或多个安装规则进行比较,以确定所述应用程序与所述应用程序的所述模型安装之间的差异的集合;以及基于所述差异的集合来确定部署状态。
在可以与前述方面中的任何一个或多个(即,第26方面)结合使用的本公开的第27示例性方面中,其中,所述处理器还被配置为:输出所述部署状态和所述差异的集合。
在可以与前述方面中的任何一个或多个(即,第26方面)结合使用的本公开的第28示例性方面中,其中,所述处理器还被配置为:基于所述差异的集合来确定针对所述应用程序的所述一个或多个安装规则的更新的集合,其中,所述更新包括来自所述一个或多个模型安装规则中的至少一个规则。
在可以与前述方面中的任何一个或多个(即,第26方面)结合使用的本公开的第29示例性方面中,其中,部署元数据被存储在应用程序编程接口(API)服务器内。
在可以与前述方面中的任何一个或多个(即,第29方面)结合使用的本公开的第30示例性方面中,其中,所述API服务器存储用于安装在所述簇上的每个应用程序的清单。
在可以与前述方面中的任何一个或多个(即,第26方面)结合使用的本公开的第31示例性方面中,其中,部署元数据包括节点亲和性。
在可以与前述方面中的任何一个或多个(即,第26方面)结合使用的本公开的第32示例性方面中,其中,部署元数据包括POD亲和性。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第33示例性方面中,一种方法,其包括:接收针对评估部署在簇内的应用程序的安装的请求;检索与所述应用程序关联的部署元数据;访问数据库,所述数据库包括与所述应用程序的模型安装相关联的一个或多个模型安装规则;解析所述部署元数据以检索所述应用程序的一个或多个安装规则;将所述应用程序的所述一个或多个安装规则与和所述应用程序的所述模型安装相关联的所述一个或多个安装规则进行比较,以确定所述应用程序与所述应用程序的所述模型安装之间的差异的集合;以及基于所述差异的集合来确定部署状态。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第34示例性方面中,其中,所述方法还包括:输出所述部署状态和所述差异的集合。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第35示例性方面中,其中,所述方法还包括:基于所述差异的集合来确定针对所述应用程序的所述一个或多个安装规则的更新的集合,其中,所述更新包括来自所述一个或多个模型安装规则中的至少一个规则。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第36示例性方面中,其中,部署元数据被存储在应用程序编程接口(API)服务器内。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第37示例性方面中,其中,所述API服务器存储用于安装在所述簇上的每个应用程序的清单。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第38示例性方面中,其中,部署元数据包括节点亲和性。
在可以与前述方面中的任何一个或多个(即,第33方面)结合使用的本公开的第39示例性方面中,其中,部署元数据包括POD亲和性。
本文描述的主题的各方面可以单独或结合本文描述的一个或多个方面使用。在本公开的第40示例性方面中,一种非暂时性机器可读介质,其存储介质,所述介质在由处理器执行时被配置为:接收针对评估部署在簇内的应用程序的安装的请求;检索与所述应用程序关联的部署元数据;访问数据库,所述数据库包括与所述应用程序的模型安装相关联的一个或多个模型安装规则;解析所述部署元数据以检索所述应用程序的一个或多个安装规则;将所述应用程序的所述一个或多个安装规则与和所述应用程序的所述模型安装相关联的所述一个或多个安装规则进行比较,以确定所述应用程序与所述应用程序的所述模型安装之间的差异的集合;以及基于所述差异的集合来确定部署状态。
在可以与前述方面中的任何一个或多个(即,第40方面)结合使用的本公开的第41示例性方面中,在由所述处理器执行时还被配置为:输出所述部署状态和所述差异的集合。
在可以与前述方面中的任何一个或多个(即,第40方面)结合使用的本公开的第42示例性方面中,在由所述处理器执行时还被配置为:基于所述差异的集合来确定针对所述应用程序的所述一个或多个安装规则的更新的集合,其中,所述更新包括来自所述一个或多个模型安装规则中的至少一个规则。
在可以与前述方面中的任何一个或多个(即,第40方面)结合使用的本公开的第43示例性方面中,其中,部署元数据被存储在应用程序编程接口(API)服务器内。
在可以与前述方面中的任何一个或多个(即,第43方面)结合使用的本公开的第44示例性方面中,其中,所述API服务器存储用于安装在所述簇上的每个应用程序的清单。
在可以与前述方面中的任何一个或多个(即,第40方面)结合使用的本公开的第45示例性方面中,其中,部署元数据包括节点亲和性。
在可以与前述方面中的任何一个或多个(即,第40方面)结合使用的本公开的第46示例性方面中,其中,部署元数据包括POD亲和性。
在这些方面中的任一个相互排斥的程度上,应当理解,这种相互排斥性将不以任何方式限制此类方面与任何其它方面的组合,而无论此方面是否被明确叙述。这些方面中的任一个都可以作为系统、方法、装置、设备、介质等不受限制地受到要求保护。
应当理解,对本文描述的示例性实施例的各种改变和修改对于本领域技术人员将是显而易见的。在不脱离本主题的精神和范围并且不减少其预期优点的情况下,可以进行此类改变和修改。因此,意图是此类改变和修改被所附权利要求所涵盖。

Claims (20)

1.一种系统,包括:
簇,所述簇包括一个或多个节点和应用程序编程接口API服务器;
存储器;以及
一个或多个处理器,与所述存储器进行通信,其中,所述处理器被配置为:
接收确定所述簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序;
发现安装在所述簇上的所述多个应用程序中的每一个;
检索与所述多个应用程序中的每一个相关联的部署元数据;
解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则;
将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则进行关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及
基于所述冲突的集合来确定维护可用性状态。
2.根据权利要求1所述的系统,其中,所述关联包括:
确定与所述第一应用程序相关联的所述一个或多个安装规则的哪些部分与所述多个应用程序中的其它应用程序中的一个或多个相匹配。
3.根据权利要求1所述的系统,其中,所述关联包括:
确定所述簇内的第一节点的停机时间是否对所述第一应用程序产生影响。
4.根据权利要求1所述的系统,其中,所述关联包括:
确定所述簇内的、并且与所述多个应用程序中的第二应用程序相关联的每个节点的停机时间是否对所述第一应用程序产生影响。
5.根据权利要求1所述的系统,其中,所述处理器还被配置为输出所述维护可用性状态和所述冲突的集合。
6.根据权利要求1所述的系统,其中,所述维护可用性状态是可用的。
7.根据权利要求1所述的系统,其中,所述维护可用性状态是不可用的。
8.根据权利要求1所述的系统,其中,所述处理器还被配置为:
修改所述多个应用程序中的所述一个或多个中的一个应用程序的一个或多个规则,以修改所述应用程序的所述维护可用性状态。
9.一种方法,包括:
接收确定簇的维护可用性状态的请求,其中,在所述簇上安装多个应用程序;
发现安装在所述簇上的所述多个应用程序中的每一个;
检索与所述多个应用程序中的每一个相关联的部署元数据;
解析所述多个应用程序中的每一个的所述部署元数据以检索与所述多个应用程序中的每一个相关联的一个或多个安装规则;
将与所述多个应用程序中的第一应用程序相关联的所述一个或多个安装规则和所述多个应用程序中的所述一个或多个安装规则进行关联,以确定所述第一应用程序的冲突的集合,其中,所述第一应用程序的所述冲突的集合中的每个冲突与和所述第一应用程序有关的潜在中断相关联;以及
基于所述冲突的集合来确定维护可用性状态。
10.根据权利要求9所述的方法,其中,所述关联包括:
确定与所述第一应用程序相关联的所述一个或多个安装规则的哪些部分与所述多个应用程序中的其它应用程序中的一个或多个匹配。
11.根据权利要求9所述的方法,其中,所述关联包括:
确定所述簇内的第一节点的停机时间是否对所述第一应用程序产生影响。
12.根据权利要求9所述的方法,其中,所述关联包括:
确定所述簇内的、并且与所述多个应用程序中的第二应用程序相关联的每个节点的停机时间是否对所述第一应用程序产生影响。
13.根据权利要求9所述的方法,其还包括:
输出所述维护可用性状态和所述冲突的集合。
14.根据权利要求9所述的方法,其中,所述维护可用性状态是可用的。
15.根据权利要求9所述的方法,其中,所述维护可用性状态是不可用的。
16.根据权利要求9所述的方法,还包括:
修改所述多个应用程序中的所述一个或多个中的一个应用程序的一个或多个规则,以修改所述应用程序的所述维护可用性状态。
17.一种系统,包括:
存储器;以及
一个或多个处理器,与所述存储器进行通信,其中,所述处理器被配置为:
接收评估部署在簇内的应用程序的安装的请求;
检索与所述应用程序关联的部署元数据;
访问数据库,所述数据库包括与所述应用程序的模型安装相关联的一个或多个模型安装规则;
解析所述部署元数据以检索所述应用程序的一个或多个安装规则;
将所述应用程序的所述一个或多个安装规则与和所述应用程序的所述模型安装相关联的所述一个或多个安装规则进行比较,以确定所述应用程序与所述应用程序的所述模型安装之间的差异的集合;以及
基于所述差异的集合来确定部署状态。
18.根据权利要求17所述的系统,其中,所述处理器还被配置为:
输出所述部署状态和所述差异的集合。
19.根据权利要求17所述的系统,其中,所述处理器还被配置为:
基于所述差异的集合来确定针对所述应用程序的所述一个或多个安装规则的更新的集合,其中,所述更新包括来自所述一个或多个模型安装规则中的至少一个规则。
20.根据权利要求17所述的系统,其中,与所述应用程序相关联的所述部署元数据被存储在应用程序编程接口API服务器内。
CN202011604852.3A 2020-09-28 2020-12-30 使用部署元数据避免平台和服务中断 Pending CN114281353A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/035,083 2020-09-28
US17/035,083 US20220100766A1 (en) 2020-09-28 2020-09-28 Platform and service disruption avoidance using deployment metadata

Publications (1)

Publication Number Publication Date
CN114281353A true CN114281353A (zh) 2022-04-05

Family

ID=73838957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011604852.3A Pending CN114281353A (zh) 2020-09-28 2020-12-30 使用部署元数据避免平台和服务中断

Country Status (3)

Country Link
US (1) US20220100766A1 (zh)
EP (1) EP3974979A1 (zh)
CN (1) CN114281353A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750710B2 (en) * 2021-11-30 2023-09-05 Hewlett Packard Enterprise Development Lp Management cluster with integration service for deploying and managing a service in tenant clusters

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100798923B1 (ko) * 2006-09-29 2008-01-29 한국전자통신연구원 컴퓨터 및 네트워크 보안을 위한 공격 분류 방법 및 이를수행하는 프로그램을 기록한 기록 매체
US10496605B2 (en) * 2016-04-29 2019-12-03 Splunk Inc. Application deployment for data intake and query system
US10768920B2 (en) * 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10355929B2 (en) * 2017-02-27 2019-07-16 Cisco Technology, Inc. Mitigating network impact of disruptive device changes
US10558533B2 (en) * 2017-12-07 2020-02-11 Red Hat, Inc. Reducing service disruptions in a micro-service environment
US10592290B2 (en) * 2018-01-10 2020-03-17 International Business Machines Corporation Accelerating and maintaining large-scale cloud deployment
US20200034193A1 (en) * 2018-07-24 2020-01-30 Hewlett Packard Enterprise Development Lp Migration of containerized applications
US20200133651A1 (en) * 2018-10-24 2020-04-30 CA Software Österreich GmbH Release automation service in software development tools
US11574236B2 (en) * 2018-12-10 2023-02-07 Rapid7, Inc. Automating cluster interpretation in security environments
US11169854B2 (en) * 2019-01-31 2021-11-09 Hewlett Packard Enterprise Development Lp Node eligibility determinations

Also Published As

Publication number Publication date
US20220100766A1 (en) 2022-03-31
EP3974979A1 (en) 2022-03-30

Similar Documents

Publication Publication Date Title
US9882969B2 (en) Methods and apparatus to configure virtual resource managers for use in virtual server rack deployments for virtual computing environments
US8856776B2 (en) Updating firmware without disrupting service
US7506336B1 (en) System and methods for version compatibility checking
JP3954088B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
US7139940B2 (en) Method and apparatus for reporting global errors on heterogeneous partitioned systems
US20150220411A1 (en) System and method for operating system agnostic hardware validation
US7120823B2 (en) Method and apparatus for recovering logical partition configuration data
US20070260910A1 (en) Method and apparatus for propagating physical device link status to virtual devices
US20030163768A1 (en) Method and apparatus for preventing the propagation of input/output errors in a logical partitioned data processing system
US20080172679A1 (en) Managing Client-Server Requests/Responses for Failover Memory Managment in High-Availability Systems
US9753809B2 (en) Crash management of host computing systems in a cluster
CN114398058A (zh) 具有自描述依从性信息的固件组件
US10275330B2 (en) Computer readable non-transitory recording medium storing pseudo failure generation program, generation method, and generation apparatus
US7904564B2 (en) Method and apparatus for migrating access to block storage
US7673082B2 (en) Method and system to determine device criticality for hot-plugging in computer configurations
CN114281353A (zh) 使用部署元数据避免平台和服务中断
US9092205B2 (en) Non-interrupting performance tuning using runtime reset
US9798608B2 (en) Recovery program using diagnostic results
US20150331772A1 (en) Methods for updating diagnostic tools on a hardware device and devices thereof
US7302690B2 (en) Method and apparatus for transparently sharing an exception vector between firmware and an operating system
Baitinger et al. System control structure of the IBM eServer z900
Sakthikumar et al. White Paper A Tour beyond BIOS Implementing the ACPI Platform Error Interface with the Unified Extensible Firmware Interface
US20050138479A1 (en) Method and apparatus for device error log persistence in a logical partitioned data processing system
US11797368B2 (en) Attributing errors to input/output peripheral drivers
US11620199B1 (en) Method and system for detection of post routine deviation for a network device

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