CN115934244A - 生成用于测试容器编排系统的测试集群 - Google Patents

生成用于测试容器编排系统的测试集群 Download PDF

Info

Publication number
CN115934244A
CN115934244A CN202211151909.8A CN202211151909A CN115934244A CN 115934244 A CN115934244 A CN 115934244A CN 202211151909 A CN202211151909 A CN 202211151909A CN 115934244 A CN115934244 A CN 115934244A
Authority
CN
China
Prior art keywords
cluster
deployment
object definition
transforming
definition
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
CN202211151909.8A
Other languages
English (en)
Inventor
J.A.里夫
E.L.马里恩
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115934244A publication Critical patent/CN115934244A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了一种用于测试容器编排系统的方法、系统和计算机程序产品。该方法包括通过从对象提取对象定义以及变换该对象定义以创建具有等效语法形式的复制对象定义来复制生产集群的对象。复制对象定义比对象定义需要更少的资源。该方法还包括将生产集群的复制的对象应用于以缩小的形式复制生产集群的配置的简化测试集群。另外,该方法包括利用简化测试集群测试容器编排系统的升级版本。

Description

生成用于测试容器编排系统的测试集群
技术领域
本公开涉及容器编排系统,并且更具体地,涉及测试容器编排系统。
背景技术
复杂应用可以被分解成独立的部分,称为“微服务”,其经由消息传递进行协作。容器用于部署云中的应用的微服务。多个容器可以一起运行或“编排”以使得每个容器运行单独的微服务,并且组合的微服务集表示完整的应用。容器编排系统可以采取集群管理系统的形式,其以运行容器的物理或虚拟机的形式管理集群的主机组。
发明内容
各种实施例涉及一种测试容器编排系统的方法。该方法包括通过从对象提取对象定义以及变换该对象定义以创建具有等效语法形式的复制对象定义来复制生产集群的对象。复制对象定义比对象定义需要更少的资源。该方法还包括将生产集群的复制的对象应用于以缩小的形式复制生产集群的配置的简化测试集群。另外,该方法包括利用简化测试集群测试容器编排系统的升级版本。
在一些实施例中,该方法包括检测生产集群中的新对象,从新对象中提取新对象定义,变换新对象定义以创建新的复制对象定义,以及将具有新的复制对象定义的复制的对象应用于简化测试集群。可以监视生产集群的新对象。变换对象定义可以包括使用取决于对象类型的一组规则来修改对象定义。在一些实施例中,变换对象定义包括将所需资源缩回到对象操作所需的最小值。该对象可以是部署对象。在这些实例中,变换对象定义可以包括将部署缩小到一个副本,将部署映像改变为没有运行代码和最小资源的简单模拟操作系统和应用,将部署映像改变为用于运行容器的选择性方面以检查配置的替代映像,或者简化检查。在一些实施例中,替代映像可由用户配置以测试所选功能。
另外的实施例涉及一种系统,该系统包括存储器和通信地耦合到存储器的处理器,其中处理器被配置成执行该方法。附加实施例涉及一种计算机程序产品,其包括具有与其一起实施的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使设备执行所述方法。
上述发明内容并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
本公开中包括的附图并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是典型实施例的说明,而不限制本公开。
图1是示出根据本公开的一些实施例的容器编排系统的框图。
图2是示出根据本公开的一些实施例的用于生成简化测试集群的过程的流程图。
图3是示出根据本公开的某些实施例的涉及部署对象形式的新对象的过程的流程图。
图4是示出根据本公开的一些实施例的对象复制系统的组件的框图。
图5是示出根据本公开的一些实施例的计算机系统的框图。
图6是示出根据本公开的一些实施例的云计算环境的框图。
图7是示出根据本公开的一些实施例的抽象模型层的框图。
具体实施方式
本公开的方面总体上涉及容器编排系统的领域,并且具体地涉及测试容器编排系统。虽然本公开不一定限于此类应用,但是通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
复杂应用可以被分解成独立的部分,称为“微服务”,其经由消息传递来协作,并且微服务的组合集合可以表示完整的应用。
容器可以用于部署云中的应用的微服务。容器可以提供优于像虚拟机那样的技术的优点,因为容器可以更便携、更快地启动和停止、并且与连续集成和连续递送(CI/CD)系统更兼容。多个容器可以一起运行或“编排”,其中每个容器运行单独的微服务,并且组合的微服务组表示完整的应用。例如,
Figure BDA0003856773200000021
(Kubernetes是Linux基金会的商标)是用于自动化应用部署、缩放和管理的开放源容器编排系统。
当容器的数量显著增加时,可能需要容器编排系统,尤其是在CI/CD系统中。容器管理系统可提供用于管理、调度、联网和监视容器的自动化系统。容器编排系统可以允许构建应用服务,其可以跨越多个容器、跨集群调度容器、缩放那些容器、以及随着时间管理它们的健康。
容器编排系统可以采取集群管理系统的形式,其可以以运行容器的物理或虚拟机的形式管理主机的集群组。集群可以跨越公共云、私有云和混合云的主机。
在容器编排系统中,可以存在快速改变的生态系统,其具有频繁的更新以添加新的特征和能力,通常具有大量的中断改变。在这样的系统内,存在可以集合以形成环境的各种资源类型,其可以依赖于资源类型之间的复杂链接。在集群内运行的容器的组通常还依赖于其他外部服务,诸如数据库或日志平台。
一旦完成,几乎不可能逆转容器编排系统迁移。因此,在升级容器编排系统之前进行的测试可能是非常有价值的。当用户计划将生产集群移动到容器编排系统的更高版本时,用户可以对开发集群进行测试升级。然而,如果开发集群被破坏,则可能对开发者的生产率具有大的影响。此外,开发集群通常比在生产集群中运行的集群更简单,这意味着在可以对其进行测试并安全地应用于生产集群的方面可能存在间隙。
本文公开了用于生成可被用于测试容器编排系统的测试集群的技术。在一些实施例中,通过从每个对象提取对象定义并变换该对象定义以创建具有等效语法形式且需要较少资源和/或提供较少功能的复制对象定义来复制生产集群的对象。当新对象被添加到生产集群时,可以执行对象复制。
复制的对象可被应用于简化测试集群,以便以缩小的形式复制生产集群的配置。简化测试集群可用于测试对容器编排系统或支持系统的升级,同时保持与生产集群的最新关系。
在对象被应用到测试集群之前,可以使用一组规则来修改对象的定义,以这样的方式,即,对象的定义的语法被保留,但是资源使用被减少,并且由整个系统提供的实际功能被模拟或简化。
应当理解,上述优点是示例性优点,并且不应当被解释为限制。本公开的实施例可以包含所有、一些前述优点,或者不包含前述优点,同时保持在本公开的精神和范围内。
现在转到附图,图1是示出根据本公开的一些实施例的容器编排系统100的框图。容器编排系统100可以包括生产集群110、测试集群(test cluster)120和对象复制系统130。容器编排系统100可以采取集群管理系统的形式,该集群管理系统可以以运行容器的物理或虚拟机的形式管理主机的集群组,其中主机跨越公共云、私有云和混合云。
容器编排系统100中的集群可以是用于运行容器化应用的一组节点机器。在一些实施例中,容器不与单独的机器相联系,而是跨集群抽象。容器的定义也可以与诸如文件系统的其它资源一起应用于集群,这些资源然后在集群所拥有的一组机器上运行。集群可以从需要运行的事物的定义中抽象出真实机器。生产集群110可以是一组机器,而测试群120可以是另一组机器。
在一些实施例中,以生产集群110的简化版本的形式提供测试集群120,以缩小的形式复制生产集群110的配置。这可允许测试集群120具有比生产集群110更少的底层机器。测试集群120可用于测试对容器编排系统100或支持系统的升级。测试集群120可被升级到容器编排系统100的最新版本,以测试配置部署是否在更新的系统100上无错误地工作。
容器编排系统可以具有作为集群中的持久实体并且表示集群的状态的对象。对象可以具有当前状态和期望状态,使得集群成为声明性系统,其中集群工作以确保对象处于期望状态。对象可以描述哪些容器化的应用正在运行、应用可用的资源以及应用周围的策略。大多数对象可以包括对象定义(在此也称为规范)和对象状态。对象定义可以在对象被创建时设置,提供资源旨在具有的特征的描述以便定义对象的期望状态。对象状态可以是由容器编排系统提供和更新的对象的当前状态。
微服务可以部署在容器中,并且容器组(pod)可以定义为在单个工作节点上运行的一个或多个容器的并置组。
生产集群110被示为具有不同类型的示例对象111-113。在这个例子中,示出了部署对象111、服务对象112和持久卷对象113。对象可在它们由用户经由对象应用编程接口(API)指定时被添加到生产集群110。在一些实施例中,服务对象112可以将固定的互联网协议(IP)地址映射到容器组的逻辑组,并且持久卷对象113可以定义提供的存储抽象。部署对象111可以是表示在集群上运行的应用的对象。当创建部署对象111时,对象定义可被设置成指定需要运行的应用的副本的数量。如果任何副本实例失败,导致状态改变,则容器编排系统100可以响应规范和状态之间的差异以开始替代实例。
对象复制系统130可检测添加到生产集群110的对象,并将这些对象复制到测试集群120。所示出的测试集群120包括示例性的复制的对象121-123,它们分别是对象111-113的副本。复制的对象包括副本部署对象121、副本服务对象122和副本持久卷对象123。
对象复制系统130可包括对象检测组件131,其可检测被添加到生产集群110的新对象并检索对应的对象定义。对象复制系统130还可以包括对象变换组件132,其可以修改对象定义。在一些实施例中,这些修改可以减少所需资源的数量并且注入更简单的处理。对象复制系统130还可包括对象应用组件133,其可在测试集群120中创建修改的对象定义。因此,具有修改的定义的复制的对象可以应用于测试集群120。
由对象变换组件132变换的复制的对象121-123可能比生产集群110中的对象111-113更简单且需要更少的资源,因此,可能不会直接再现生产功能。对象变换组件132可以使用一组规则来修改配置,并且变换可以取决于对象的类型。在一些实施例中,每个修改的对象121-123可以以这样的方式应用于测试集群120,即,在极大地减少由整个系统100提供的资源使用和/或(一个或多个)实际功能的同时,保留配置的语法,这可以允许保持复杂度。
该变换可以取决于对象的类型。部署对象111将在以下更详细地讨论,因为它们运行实际代码并需要可被模拟的资源来这样做。其它资源也可以像永久卷一样被缩回到尽可能小。这可以接近于零资源,因为运行的容器不执行真实的生产代码,并且因此可能不需要任何实际空间。
图2是示出根据本公开的一些实施例的生成简化测试集群的过程200的流程图。为了说明过程200,但不是限制实施例,在图1的容器编排系统100的上下文中描述图2,其中图2中所引用的元件与图1中所示的元件相同,在两个图中使用相同的附图标记。
在操作201,可监视生产集群110的添加的新对象。在操作202,可以确定在操作201是否已经将新对象添加到生产集群110。如果尚未添加新对象,则过程200可返回到操作201,并继续监视生产集群110的新对象。
如果在操作202检测到新对象,则过程200可前进到操作203,其中为新对象提取对象定义。在操作204,可以修改所提取的对象定义以生成需要更少资源并提供更少实际功能(例如,包括更少函数)的表单,同时保留在操作203提取的原始对象定义的语法。
在操作205,可将变换的对象定义应用于测试集群120。通过对复制的测试集群120进行这些改变,可以在操作206生成简化测试集群120。在一些实施例中,简化测试集群不复制生产系统功能,但以缩小的形式复制容器编排系统100所使用的配置。
在过程200中的任何点处,测试集群120可被升级到容器编排系统100的最新版本,以测试配置部署是否在更新的系统上工作而没有任何错误。
图3是示出根据本公开的一些实施例的涉及部署对象111形式的新对象的过程300的流程图。为了说明过程300,但不是限制实施例,在图1的容器编排系统100的环境中描述图3,其中图3中所指的元件与图1中所示的元件相同,在两个图中使用相同的参考数字。
在操作301,可将新的部署对象111添加到生产集群110。然后可以检测新的部署对象111。在操作302,可以从新的部署对象111提取部署对象定义。部署对象111运行实际代码,因此需要资源。在操作303,可以变换部署对象定义以生成需要较少资源并提供较少实际功能的形式,同时保留在操作302提取的原始部署对象定义的语法。在一些实施例中,操作303使用操作311-313来变换部署对象定义。
在操作311,部署可被缩小至最小资源使用。这可以通过使用各种技术将资源缩放回最小值来实现。例如,缩小可以包括使用一个复制的对象。缩小还可以包括将存储器、中央处理单元(CPU)等的资源使用降低到最小。例如,最小使用可以是启动容器组或容器所需的最小值。
在操作312,部署映像可以被改变为使用简单的模拟操作系统(OS)和应用。可以存在包括没有运行代码而被映像的最小操作系统的默认模拟映像。例如,容器的模拟映像可以包括可用的最小OS和仅是包含非常长睡眠的外壳脚本的应用。还可以存在替代映像来运行容器的选择性方面以便检查配置。用户可以配置替代映像以测试所选择的功能。在一些实施例中,存在用户提供他们自己的简单映像的选项,如果需要,其可以具有一些功能。
在操作313,准备性(readiness)和活动性(liveliness)检查也可被简化以应对部署对象的其它改变。在最简单的情况下,可以去除这些检查。然而,如果在操作312选择的模拟映像具有检查准备性和/或活动性的机制,则可以包括这些检查。在操作304,操作303的变换的部署对象可被应用于测试集群120。
作为示例,生产集群110中的部署类型对象111的对象定义可以是:
Figure BDA0003856773200000071
Figure BDA0003856773200000081
对于测试集群中的相同部署类型对象(例如,测试集群120中的副本部署对象121),变换的对象定义可以是:
Figure BDA0003856773200000082
Figure BDA0003856773200000091
应用于上述部署类型对象定义以影响变换的规则可以是:
·将副本减少到1;
·如果存在模拟版本,则将映像从真实映像改变为模拟版本,并且将“模拟”添加到映像名称;
·将存储器和cpu减少到模拟映像可以支持的值。
图4是示出根据本公开的一些实施例的对象复制系统130的组件的框图。为了说明对象复制系统130,但不是限制实施例,在图1的容器编排系统100的环境中描述图4,其中图4中所指的元件与图1中所示的元件相同,在两个图中使用相同的参考数字。
对象复制系统130可以包括至少一个处理器401、硬件模块或用于执行所描述的组件的功能的电路,所述组件可以是在(一个或多个)处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,使得能够并行处理组件的一些或所有功能。对象复制系统130还可以包括存储器402。存储器402可以被配置为向至少一个处理器401提供计算机指令403以执行组件的功能。
对象复制系统130可包括用于检测生产集群110(图1)中的新对象的对象检测组件131。对象检测组件131可包括用于监视生产集群110的被添加的新对象的生产集群监视组件411。另外,对象检测组件131可包括新对象获取组件412。
对象复制系统130可包括对象变换组件132,用于通过从对象提取对象定义并变换该对象定义以创建具有可需要更少资源和/或提供更少功能的等效语法形式的复制对象定义来复制生产集群110的对象。对象变换组件132可包括用于从新对象中提取对象定义的对象定义提取组件421和用于变换对象定义以创建复制对象定义变换组件422。对象定义变换组件422可包括用于应用规则以变换不同对象类型的规则应用组件423和用于配置规则的配置组件428。
作为部署对象(例如,图1中所示的部署对象111)的示例,对象定义变换组件422可以包括部署对象变换组件424,其包括用于将部署缩小到一个副本和/或最小资源使用以启动容器组或容器的缩小组件425。对象定义变换组件422还可以包括映像改变组件426,在一些实施例中,其可以将部署映像改变为没有运行代码和最小资源集的简单模拟操作系统和应用。在进一步的实施例中,映像改变组件426可以将部署映像改变为可以运行容器的选择性方面以检查配置的替代映像。对象定义变换组件422还可以包括用于简化诸如准备性和/或活动性检查的检查的检查简化组件427。
对象复制系统130还可包括对象应用组件133,用于将复制的对象应用于简化测试集群120(图1),该简化测试集群可以缩小的形式复制生产集群110的配置,其中简化测试集群120可以用于测试对容器编排系统100或支持系统的升级。
在一些实施例中,生产集群110可被复制到测试集群120,其中用于生产的整个配置在测试系统中被复制。这可以用于在生产集群110被修改时配置测试集群120。或者,可将所有生产配置的一次性副本应用于测试集群120。复制生产集群可能是有挑战性的,因为生产集群可能非常大并且可能需要大量资源来产生相同的副本。在这些实例中,运行着的容器组可能在复制的集群中不能正确地起作用,或者在例如数据库的情况下可能干扰生产。
在一些实施例中,生产集群110可以被复制,以便在新版本上或在添加新资源的情况下快速地测试作为整体的容器编排基础设施,而不需要运行和适当地设置单独的软件应用。这可以通过抽象出对象来实现。这可以减少测试中断改变和版本升级的时间和费用,并且可以消除对开发者的破坏风险。
此外,这可以允许用户以较少的努力获得生产集群110的完全复杂性,并且以更高的置信度将改变应用于生产。因为假容器组可以被带到真容器组的位置,所以可以复制集群而不导致副作用,诸如应用从测试集群在生产数据库中进行改变。这可以允许创建每个互连资源定义,并且容器组通过它们的准备性检查。
通过对复制的测试集群120进行这些改变,可以产生简化测试集群120,其不复制生产系统功能,但以缩小的形式复制编排系统100所使用的配置。在一些实施例中,这允许以在修改实际生产集群110之前可以找到关于编排配置的问题的方式来测试容器编排系统100和支持软件的升级。例如,可以发现与当在版本之间移动时中断配置改变有关的问题。
图5是示出了可以用于实现本文描述的方法、工具、组件和任何相关功能中的一个或多个(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例性计算机系统500的框图。在一些实施例中,计算机系统500的主要组件包括一个或多个处理器502、存储器子系统504、终端接口512、存储接口516、输入/输出设备接口514和网络接口518,所有这些组件都可以直接或间接地通信耦合,以便经由存储器总线503、输入/输出总线508、总线接口单元507和输入/输出总线接口单元510进行组件间通信。
计算机系统500包含一个或多个通用可编程中央处理单元(CPU)502A、502B和502N,在此统称为CPU 502。在一些实施例中,计算机系统500包含相对大的系统的典型的多个处理器;然而,在其它实施例中,计算机系统500可以替代地是单CPU系统。每个CPU 502可以执行存储在存储器子系统504中的指令,并且可以包括一级或多级板载高速缓存。
存储器504可以包括随机存取半导体存储器、存储设备或用于存储或编码数据和程序的存储介质(易失性或非易失性)。在一些实施例中,存储器504表示计算机系统500的整个虚拟存储器,并且还可以包括耦合到计算机系统500或经由网络连接的其他计算机系统的虚拟存储器。存储器504在概念上是单个单片实体,但是在其他实施例中,存储器504是更复杂的布置,诸如高速缓存和其他存储器设备的层级。例如,存储器可存在于多级高速缓存中,并且这些高速缓存可进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器还可以是分布式的,并且与不同的CPU或CPU组相关联,如在各种所谓的非均匀存储器存取(NUMA)计算机体系结构中的任何一种中所公知的。
容器编排系统100及其组件(图1和图4)可以包括在存储器504中。然而,在其他实施例中,这些组件中的一些或全部可以在不同的计算机系统上,并且可以例如经由网络远程访问。计算机系统500可以使用虚拟寻址机制,该机制允许计算机系统500的程序表现为好像它们仅访问大的单个存储实体而不是访问多个较小的存储实体。因此,存储器504的组件不必同时全部完全包含在同一存储设备中。此外,尽管这些组件被示为单独的实体,但在其他实施例中,这些组件中的一些、这些组件中的一些的部分、或所有这些组件可被封装在一起。
在一些实施例中,容器编排系统100包括在处理器502上执行的指令或由在处理器502上执行的指令解释的指令,以执行如本公开中进一步描述的功能。在另一个实施例中,替代基于处理器的系统或除了基于处理器的系统之外,容器编排系统100通过半导体设备、芯片、逻辑门、电路、电路卡和/或其它物理硬件设备以硬件实现。在另一个实施例中,容器编排系统100除了指令之外还包括数据。
尽管存储器总线503在图5中被示为提供CPU 502、存储器子系统504、显示系统506、总线接口507和输入/输出总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层的、星形或网状配置中的点对点链路、多个分层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然输入/输出总线接口510和输入/输出总线508被示为单个相应单元,但是在一些实施例中,计算机系统500可包含多个输入/输出总线接口单元510、多个输入/输出总线508或两者。此外,虽然示出了将输入/输出总线508与延伸到各种输入/输出设备的各种通信路径分离的多个输入/输出接口单元,但是在其他实施例中,输入/输出设备中的一些或全部可以直接连接到一个或多个系统输入/输出总线。
计算机系统500可以包括总线接口单元507,以处理处理器502、存储器504、显示系统506和输入/输出总线接口单元510之间的通信。输入/输出总线接口单元510可以与输入/输出总线508耦合,用于向和从各种输入/输出单元传送数据。输入/输出总线接口单元510通过输入/输出总线508与多个输入/输出接口单元512、514、516和518通信,这些输入/输出接口单元也被称为输入/输出处理器(IOP)或输入/输出适配器(IOA)。显示系统506可以包括显示控制器。显示控制器可以向显示设备505提供视觉、音频或这两种类型的数据。显示系统506可以与显示设备505耦合,诸如独立显示屏、计算机监视器、电视机、或者平板或手持设备显示器。在替代实施例中,由显示系统506提供的功能中的一者或一者以上可在处理器502集成电路上。另外,由总线接口单元507提供的功能中的一个或多个可以在处理器板502集成电路上。
在一些实施例中,计算机系统500是多用户大型计算机系统、单用户系统、或者服务器计算机或具有很少或没有直接用户接口但从其它计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统500被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
注意,图5旨在描绘示例性计算机系统500的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示的组件或除其之外的组件,并且这些组件的数量、类型和配置可以变化。
在一些实施例中,本文描述的数据存储和检索过程可以在云计算环境中实现,这将在下面参考图6和图7进行描述。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、社区体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
图6是示出根据本公开的一些实施例的云计算环境50的框图。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图6中所示的计算设备54A-54N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算设备通信。
图7是示出根据本公开的一些实施例的由云计算环境50(图6)提供的一组功能抽象层的框图。应当预先理解,图7中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和对应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
在一个示例中,管理层80提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及容器编排系统对象处理96。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等)和过程编程语言(诸如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的部件(mean)。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了对本公开的各种实施例的描述,但是其并非旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
尽管已经根据具体实施例描述了本公开,但是可以预期,其改变和修改对于本领域技术人员将变得显而易见。因此,所附权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有这样的变更和修改。
本文所使用的术语仅用于描述特定实施例的目的,且不希望限制各种实施例。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组的存在或添加。
在各种实施例的示例实施例的先前详细描述中,参考了附图(其中相同的标号表示相同的元件),附图形成了描述的一部分,并且其中通过图示示出了其中可以实践各种实施例的特定示例实施例。这些实施例被足够详细地描述以使本领域技术人员能够实践这些实施例,但是可以使用其他实施例,并且可以在不偏离各种实施例的范围的情况下做出逻辑、机械、电气和其他改变。在之前的描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践各种实施例。在其它实例中,为了不使实施例模糊,没有详细示出公知的电路、结构和技术。
当不同的参考数字包括共同的数字后跟随不同的字母(例如100A、100B、100C、100N)或标点符号后跟随不同的数字(例如100-1、100-2或100.1、100.2)时,仅在没有字母或跟随数字的情况下使用参考字符(例如100)可以指作为整体的元件组、该组的任何子集、或该组的示例样本。
如本文所用,当用于物品时,“多个”是指一个或多个物品。例如,“多个不同类型的网络”是一个或多个不同类型的网络。
此外,当与项目列表一起使用时,短语“至少一个”意味着可以使用所列项目中的一个或多个的不同组合,并且可能仅需要列表中的每个项目中的一个。换句话说,“至少一个”是指项目的任意组合,并且可以使用来自列表的项目的数量,但是不是列表中的所有项目都是必需的。项目可以是特定对象、事物或类别。
例如,但不限于,“项目A、项目B和项目C中的至少一个”可以包括项目A、项目A和项目B,或项目B,该示例还可以包括项目A、项目B和项目C,或项目B和项目C,当然,可以存在这些项目的任何组合。在一些说明性示例中,“至少一个”可以是,例如但不限于,项目A两个;项目B一个;项目C十个;项目B四个和项目C七个;或者其他合适的组合。

Claims (12)

1.一种测试容器编排系统的方法,包括:
复制生产集群的对象,其中所述复制包括:
从对象中提取对象定义;以及
变换所述对象定义以创建具有等效语法形式的复制对象定义,其中所述复制对象定义比所述对象定义需要更少的资源;
将所述生产集群的复制的对象应用于以缩小的形式复制所述生产集群的配置的简化测试集群;以及
利用所述简化测试集群测试所述容器编排系统的升级版本。
2.根据权利要求1所述的方法,还包括:
检测所述生产集群中的新对象;
从所述新对象中提取新对象定义;
变换所述新对象定义以创建新的复制对象定义;以及
将具有所述新的复制对象定义的新的复制的对象应用于所述简化测试集群。
3.根据权利要求2所述的方法,还包括监视所述生产集群的新对象。
4.根据权利要求1所述的方法,其中变换所述对象定义包括使用取决于对象类型的一组规则来修改所述对象定义。
5.根据权利要求1所述的方法,其中变换所述对象定义包括将所需资源缩放回操作所述对象所需的最小值。
6.根据权利要求1所述的方法,其中所述对象是部署对象,并且其中变换所述对象定义包括将部署缩小到一个副本。
7.根据权利要求1所述的方法,其中所述对象是部署对象,并且其中变换所述对象定义包括将部署映像改变为没有运行代码和最小资源的简单模拟操作系统和应用。
8.根据权利要求1所述的方法,其中所述对象是部署对象,并且其中变换所述对象定义包括将部署映像改变为用于运行容器的选择性方面以检查配置的替代映像。
9.根据权利要求8所述的方法,其中所述替代映像可由用户配置以测试选定功能性。
10.根据权利要求1所述的方法,其中所述对象是部署对象,并且其中变换所述对象定义包括简化检查。
11.一种用于测试容器编排系统的系统,包括:
存储器;以及
通信地耦合到所述存储器的处理器,其中所述处理器被配置为执行根据权利要求1-10中任一项所述的方法。
12.一种用于测试容器编排系统的计算机程序产品,所述计算机程序产品包括程序指令,所述程序指令能够由处理器执行以使设备执行根据权利要求1-10中任一项所述的方法。
CN202211151909.8A 2021-10-04 2022-09-21 生成用于测试容器编排系统的测试集群 Pending CN115934244A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/449,858 US11880296B2 (en) 2021-10-04 2021-10-04 Generating a test cluster for testing a container orchestration system
US17/449,858 2021-10-04

Publications (1)

Publication Number Publication Date
CN115934244A true CN115934244A (zh) 2023-04-07

Family

ID=85774436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211151909.8A Pending CN115934244A (zh) 2021-10-04 2022-09-21 生成用于测试容器编排系统的测试集群

Country Status (3)

Country Link
US (1) US11880296B2 (zh)
JP (1) JP2023054777A (zh)
CN (1) CN115934244A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880296B2 (en) 2021-10-04 2024-01-23 International Business Machines Corporation Generating a test cluster for testing a container orchestration system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977562B2 (en) * 2021-12-15 2024-05-07 Dell Products L.P. Knowledge base for correcting baseline for cluster scaling
US20240330164A1 (en) * 2023-04-03 2024-10-03 American Megatrends International, Llc Method and cluster for testing orchestration
CN116866180B (zh) * 2023-07-04 2024-03-01 北京志凌海纳科技有限公司 集群升级的测试方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003445B2 (en) * 2001-07-20 2006-02-21 Microsoft Corporation Statistically driven sentence realizing method and apparatus
US7673292B2 (en) * 2005-01-11 2010-03-02 International Business Machines Corporation Auto conversion of tests between different functional testing tools
US7840851B2 (en) * 2008-02-15 2010-11-23 Red Hat, Inc. Annotating GUI test automation playback and debugging
US10326655B1 (en) 2015-06-01 2019-06-18 Amazon Technologies, Inc. Infrastructure replication
US10459829B2 (en) * 2017-06-07 2019-10-29 M/S. Cigniti Technologies Limited Overall test tool migration pipeline
US10908999B2 (en) 2018-07-30 2021-02-02 EMC IP Holding Company LLC Network block device based continuous replication for Kubernetes container management systems
US11880296B2 (en) 2021-10-04 2024-01-23 International Business Machines Corporation Generating a test cluster for testing a container orchestration system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880296B2 (en) 2021-10-04 2024-01-23 International Business Machines Corporation Generating a test cluster for testing a container orchestration system

Also Published As

Publication number Publication date
US20230105203A1 (en) 2023-04-06
JP2023054777A (ja) 2023-04-14
US11880296B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
US11093216B2 (en) Automatic discovery of microservices from monolithic applications
US10353716B2 (en) Automated deployment and performance evaluation of a virtualized-computing environment
US10175977B2 (en) User profile based code review
US10977167B2 (en) Application monitoring with a decoupled monitoring tool
CN110580197A (zh) 大型模型深度学习的分布式计算架构
US10366112B2 (en) Compiling extract, transform, and load job test data cases
CN115934244A (zh) 生成用于测试容器编排系统的测试集群
US20130268913A1 (en) Managing application template artifacts in a networked computing environment
CN114341847B (zh) 对容器的外部操作与突变事件的对应关系
US10394971B2 (en) Hybrid simulation of a computing solution in a cloud computing environment with a simplified computing solution and a simulation model
CN116648692A (zh) 迁移复杂的传统应用
CN114371857A (zh) 数字孪生使能的资产性能和升级管理
US11853749B2 (en) Managing container images in groups
US10768961B2 (en) Virtual machine seed image replication through parallel deployment
US11726778B2 (en) Translating clusters of a monolith application to microservices
US10979488B2 (en) Method for increasing file transmission speed
US11640281B2 (en) Tool for introspection in object-oriented source code
CN115758228A (zh) 基于不平衡数据集的分类
CN116097258A (zh) 确保区块链基础设施的安全供应
CN115698981A (zh) 基于nlp模型增强的语料库的定向部分重新丰富
US11829741B2 (en) Instantiated deployment of microservices
US20220012159A1 (en) Heterogeneous services for enabling collaborative logic design and debug in aspect oriented hardware designing
US11663181B2 (en) Database replication using heterogenous encoding
US20240086255A1 (en) Identification of reusable components
CN117859309A (zh) 自动选择在其上执行任务的节点

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