一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

云就绪度的验证和预测的制作方法

2022-08-13 14:24:32 来源:中国专利 TAG:

云就绪度的验证和预测


背景技术:

1.诸如处理单元的计算机硬件被制造在硅芯片上。具体地,可以在硅晶片上蚀刻多个晶体管以实现特定的元件集合。这些元件包括逻辑门、寄存器、算术逻辑单元,等等。这些元件的特定配置和互连可以根据指令集架构。可能会在硬件中发现错误,诸如缺陷、瑕疵或漏洞。这些错误中的一些错误可能是不可逆转地蚀刻在硬件的硅上的硬件错误。其他错误可能根源于用于操作硬件的软件。当发现这些错误时,可以开发和部署代码来减轻或消除这些错误。还可以部署代码以改进计算机硬件的功能。


技术实现要素:

2.为了提供对本文描述的一些方面的基本理解,下面给出主题创新的简要发明内容。本发明内容不是对所要求保护的主题的广泛概述。其目的既不是为了标识所要求保护的主题的关键或重要元素,也不是为了标示主题创新的范围。其唯一目的是以简要形式呈现所要求保护的主题的一些概念,作为稍后呈现的更详细描述的前序。
3.实施例提供了一种用于验证和预测云就绪度的方法。该方法包括标识来自云基础设施的组件的样本,其中更新被应用于样本以生成处理后的样本,并且处理后的样本具有统计上足够的规模和相关的云级别多样性,以及标识来自云基础设施的组件的对照样本,其中对照样本相对于处理后的样本是统计上可比较的。该方法还包括对处理后的样本和对照样本执行工作负载集合。此外,该方法包括基于对处理后的样本和对照样本的工作负载集合的执行期间捕获的遥测的比较来预测更新对用户体验的影响。
4.另一实施例提供了一种方法。该方法包括上载更新和限定经由被应用于硬件更新的测试用例而确定的验证和预测的范围,其中范围包括确定在测试用例的执行期间的工作负载类型、被允许的时间、并发组件的数目。该方法还包括监测测试用例的执行,其中测试用例以云级别规模和云级别多样性而被执行,以及从一个或多个被测组件获取遥测。
5.此外,另一实施例提供了用于存储计算机可读指令的一个或多个计算机可读存储介质。计算机可读指令执行用于验证和预测云就绪度的方法。该方法包括标识来自云基础设施的组件的样本,其中更新被应用于样本以生成处理后的样本,并且处理后的样本具有统计上足够的规模和相关的云级别多样性,以及标识来自云基础设施的组件的对照样本,其中对照样本相对于处理后的样本是统计上可比较的。该方法还包括对处理后的样本和对照样本执行工作负载集合。此外,该方法包括基于对处理后的样本和对照样本的工作负载集合的执行期间捕获的遥测的比较来预测更新对用户体验的影响。
6.下面的描述和附图详细阐述了所要求保护的主题的某些说明性方面。然而,这些方面仅表示可以采用创新原则的各种方式中的几种,并且所要求保护的主题旨在包括所有这些方面及其等同形式。所要求保护的主题的其他优势和新颖特征将在结合附图考虑时,从以下对本创新的详细描述中变得明显。
附图说明
7.图1是云就绪度标准和验证环境的框图;
8.图2是实现硬件更新的云就绪度的验证和预测的方法的过程流程图;
9.图3是实现固件更新的云就绪度的验证和预测的方法的过程流程图;
10.图4是实现对对照样本和处理后的样本的测试期间捕获的结果和遥测数据的统计分析的方法的过程流程图;以及
11.图5是示出了根据所公开主题的各方面,被配置为验证和预测云就绪度的示例性计算设备的框图。
具体实施方式
12.云基础设施可以被定义为用于实现基于云的服务的硬件和软件的组合。硬件可以包括服务器、机架、网络交换机、路由器、量子计算机、存储设备、电源单元(psu)等。软件可以包括固件、操作系统等。云计算服务,或简称为“云”,可以指基于可以递送各种计算服务的云基础设施的网络。用于支持云的组件可以被设计用于多种应用,诸如存储和管理数据、运行应用或递送内容或服务,诸如流式传输视频、web邮件、办公生产力软件或社交媒体。云服务提供商操作和维护网络以及相关联的服务和应用,其可以具有位于全球各地的元件,这些元件以通信方式耦合在一起,并作为单个生态系统操作。用户可以根据与云服务提供商的预定义协议来访问由云启用的服务。因此,用户可以是云服务提供商的客户端。
13.云服务提供商能够支持若干用户并提供对云基础设施的访问。每个用户的数据可以是隔离的,并且对其他用户保持不可见。云服务提供商可以通过例如安装新硬件、更换硬件、修复硬件、安装新软件、更新软件等来管理云基础设施。为每个用户供应硬件和软件使云服务提供商能够访问每个用户的云使用数据。云使用数据可以是例如工作负载的类型,工作负载的量,预期响应,跨用户和季节的资源消耗分布,硬件、软件和服务的各种库存量单位(sku)的用户兴趣。
14.因此,云服务提供商的任务是提供最先进的服务并维护不断演进的云。实际上,云在各个级别上都在经历着不断变化。首先,云、云管理、云控制结构和软件基础设施上的工作负载在不断演进。例如,管理程序、os和设备驱动器在不断变化。此外,云硬件和低级别基础设施正在变化和演进。虽然云服务提供商管理和维护演进的云,但是其硬件和相关软件可以由硬件供应商提供给云服务提供商。云底层的硬件和软件中的错误可能会导致硬件或软件在操作期间出现故障,从而导致向用户提供的云服务中断。这样的中断可能会导致用户体验倒退。
15.云基础设施的功能倒退可能是引入云基础设施的不良硬件或软件更新的结果。例如,诸如节点,服务器,硬盘驱动器,调制解调器,交换机,路由器,机架,电源单元,包括控制器、固件和传感器的机架管理器,多个级别的网络组件,存储装置,冷却基础设施或高压基础设施的云基础设施的组件可能会遭受缺陷,诸如漏洞或错误。例如,倒退可以是由引入云硬件或软件的最近部署的更新所引入的问题。在一些情况下,倒退指示用户在为该用户执行云服务期间观察到的问题或故障。通常,用户具有与云服务提供商的针对特定服务级别的协议。硬件错误可能会引起云服务提供商违反与用户的该协议。通常,硬件中的错误和所产生的硬件故障只可以由硬件供应商解决。响应于发现硬件错误或基于硬件的云故障,硬
件供应商可以提供软件或硬件更新以更新、修复或改进硬件功能。
16.通常,更新是对云基础设施的修改。例如,可以开发代码来更新、修复或改进硬件或软件功能。在实施例中,代码可以被称为更新。在示例中,更新可以是微代码,其中微代码是实现硬件的配置或重新配置的指令集。在实施例中,微代码可以是可编程指令层,其用作硬件和与硬件相关联的指令集架构之间的中介。类似地,更新也可以是实现硬件的基本功能的固件。例如,固件可以提供定义诸如视频卡、键盘和鼠标的组件如何通信和执行某些功能的指令。更新也可以是新安装的硬件、更换硬件或修复的硬件。
17.当在云基础设施中发现错误或缺陷时,可以创建减轻或消除所发现的错误或缺陷的更新。即使提供了消除错误或缺陷的更新,云服务提供商也可能由于错误或缺陷而违反了与用户的协议。在硬件错误的情况下,硬件供应商可以提供更新以消除错误或缺陷。然而,硬件供应商可能缺乏充分测试硬件错误或缺陷的知识和资源,因为硬件供应商不知道要应用于硬件的工作负载、场景和其他方面。此外,更新本身可能引入倒退,并且更新的供应商通常无法预测更新对用户体验的影响。此外,验证更新是否确实适合于在云基础设施中部署通常是一件具有挑战性的事情。
18.本技术实现云就绪度的验证和预测。如本文所使用的,更新的云就绪度指示该更新用于云基础设施中的适合性。在评估更新的云就绪度时,本技术预测更新对用户体验的影响。在实施例中,该预测可以通过模拟或仿真用户工作负载来发生。对用户体验的影响的预测还可以使用实际的用户工作负载来发生。当更新对用户体验的预测影响是用户注意不到的时,更新可以被验证。如本文所使用的,当更新负面地改变用户对云基础设施的操作或访问时,更新的预测影响可以是注意得到的。
19.如本文所描述的,更新可以是物理硬件更新,其中硬件被替换、修复或放置在特定配置中。更新也可以是软件更新,其中提供代码以消除或减轻软件错误。软件更新的示例包括对中央处理单元(cpu)的微代码(ucode)改变、对图形处理单元(gpu)的固件和微代码改变、对网络芯片组的固件改变、基本输入/输出系统(bios)改变、现场可编程门阵列(fpga)重新编程、混合硬盘驱动器(hhd)固件、固态驱动器(ssd)固件、主机操作系统、网络接口卡(nic)等。软件更新还可以包括设备专用代码,诸如设备驱动器。
20.为便于描述,本技术被描述为评估和预测对“组件”的更新的云就绪度。术语“组件”可以指任何电子设备,包括通常被认为是组件的子组件。术语组件也可以指软件。例如,本技术可以验证和预测作为云基础设施的组件的对设备驱动器的软件更新的就绪度。本技术还可以验证和预测对作为被安装在外围组件互连快速(pcie)中的图形卡的组件的图形处理单元(gpu)的固件更新的云就绪度。在另一示例中,本技术可以验证和预测对作为向数据中心中经常使用的组件机架供电的组件的电源单元(psu)的固件更新的就绪度。每个机架可以包括诸如节点、服务器、硬盘驱动器、调制解调器、交换机、路由器和其他电子设备的组件。在该示例中,样本可以被标识以用于下文描述的统计分析,但是测试中的特定更新被应用于间接影响样本的组件。可以使其相应的云就绪度得以验证和预测的具有所应用更新的组件的附加示例包括对网络基础设施、冷却基础设施或存储服务的更新。
21.归根结底,云就绪度由用户体验和与提供令人满意的用户体验相关联的成本来定义。例如,导致大量虚拟机(vm)中断的更新不是云就绪的。类似地,云服务提供商为了平息这样的中断而在冗余上花费很多,从而使用户不知道这些中断,这也可能意味着底层更新
不是云就绪的。因此,在实施例中,当用户注意得到的问题(中断、停机、闪烁等),它的根本原因低于所需的阈值时,并且满足此阈值所需的开销被包含在成本、工作量等方面,更新是云就绪的,然而,用户注意得到可以取决于用户及其相应的工作负载。此外,注意得到可以随时间变化。此外,特定的阈值不是预定义的。相反,阈值可以是用户预期、合同和可动作sla的函数,它们往往会随时间演进。
22.因此,本文描述的云就绪度标准(crc)对更新进行验证并预测该更新是否云就绪。在实施例中,云就绪度标准可以包括测试、实验、统计分析和预测。在实施例中,云就绪度标准由更新所引起的用户注意得到的问题的测量以及与将该测量保持在特定阈值以下相关联的成本来定义。在实施例中,对更新所引起的用户注意得到的问题的测量以及与将该测量保持在特定阈值以下相关联的成本实现了对与硬件更新相关联的用户影响的预测。以这种方式,本技术实现了对硬件更新是否满足由当时的测试集合、用户期望、合同义务以及云管理结构和基础设施方面事实上定义的云就绪度标准的验证和预测。
23.作为初步事项,一些附图描述了一个或多个结构组件的上下文中的概念,这些结构组件被不同地称为功能、模块、特征、元件等。图中所示的各种组件可以以任何方式实现,诸如经由软件、硬件(例如,离散逻辑组件)、固件或其任何组合。在一些实施例中,各种组件可以反映相应组件在实际实现中的使用。在其他实施例中,图中所示的任何单个组件可以由多个实际组件实现。附图中对任何两个或更多个分离组件的描述可以反映由单个实际组件执行的不同功能。下文讨论的图1提供了关于可用于实现附图中所示功能的一个系统的细节。
24.其他附图以流程图形式描述概念。在这种形式中,某些操作被描述为构成以特定顺序执行的不同框。这样的实现是示例性且非限制性的。本文描述的某些框可以被组合在一起并在单个操作中执行,某些框可以被分成多个组成部分框,并且某些框可以以不同于本文所示的顺序来执行,包括执行框的并行方式。流程图中所示的框可以通过软件、硬件、固件、手动处理等来实现。如本文所使用的,硬件可以包括计算机系统、诸如专用集成电路(asic)的分立逻辑组件等。
25.关于术语,短语“被配置为”包括可以构建任何类型的功能以执行所标识的操作的任何方式。功能可以被配置为使用例如软件、硬件、固件等来执行操作。
26.术语“逻辑”包括用于执行任务的任何功能。例如,流程图中所示的每个操作对应于用于执行该操作的逻辑。可以使用例如软件、硬件、固件等来执行操作。
27.如本文所使用的,术语“组件”、“系统”、“客户端”、“服务器”等旨在指与计算机相关的实体,无论是硬件、软件(例如,在执行中)、或固件或其任何组合。例如,组件可以是在处理器上运行的进程、对象、可执行文件、程序、函数、库、子例程、计算机或软件和硬件的组合。
28.如本文所使用的,术语“硬件供应商”可以指硬件组件的任何供应商。在示例中,云基础设施的硬件组件可以从云服务提供商获取。在其他示例中,云基础设施的硬件组件可以从除云服务提供商之外的第三方获取。
29.作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程中,并且组件可以定位在一个计算机上和/或分布在两个或更多个计算机之间。术语“处理器”通常被理解为指硬件组件,诸如计算机系统的处理单元。
30.此外,所要求保护的主题可以被实现为使用标准编程和/或工程技术来生产软件、固件、硬件或其任何组合以控制计算机实现所公开的主题的方法、装置或制品。本文使用的术语“制品”旨在包括可从任何计算机可读存储设备或介质访问的计算机程序。
31.计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘和磁条等)、光盘(例如,压缩盘(cd)和数字多功能盘(dvd)等)、智能卡和闪存设备(例如,卡、棒和密钥驱动等)。相反,计算机可读介质(即,非存储介质)通常可以另外包括通信介质,诸如用于无线信号的传输介质等。
32.鉴于应用于云基础设施的频繁且复杂的更新,本文描述的对云就绪度的验证和预测实现了对更新的验证。例如,微代码更新、bios改变和网卡固件可能比过去更频繁地更新。此外,无论是更新本身,还是更新与联网硬件和基础设施的其他方面的交互,硬件更新的复杂性通常都在增加。此外,传统上很难针对云就绪度来对更新进行验证,因为云中的用户体验不断演进,包括云基础设施和管理、云使用的硬件、用户基础、工作负载和用户预期。换句话说,传统上模仿云是一件具有挑战性的事情,因为它的实际规范在不断变化。此外,云的复杂性正在发生变化,并且总体上在增加。例如,随着诸如缓解威胁、优化和安全引导的概念应用于该集成,硬件和软件之间的集成变得更加复杂。云托管的工作负载也是多种多样的,这涉及到底层基础设施中越来越多的鲜为人知的地方(例如,导致相当复杂的cpu漏洞的暴露)。这种多样性也在定期演化。换句话说,云托管的工作负载的多样性可能会暴露硬件错误,这些错误在典型的标准操作中通常不会被发现。最后,由于大量的工作负载和测试用例,即使没有如上所述的云的动态演化,测试云就绪度也需要扩展。
33.一般来说,硬件供应商考虑所有可能性是不可行的,诸如频繁且复杂的更新和不断变化、多样化且易于扩展的云。此外,问题的统计表现和一些错误的古怪行为只有在测试用例期间应用于更新的必要规模和多样性时才会暴露出来。此外,错误可能难以捉摸,需要专门的工具和过程才能发现。归根结底,云服务提供商要为由用户观察到的任何错误负责。云服务提供商在硬件供应商和用户之间提供缓冲。因此,更新的始发者被排除在归因于硬件错误的问题之外,并且不对由此造成的损害负责。
34.图1是云就绪度标准环境100的框图。环境100可以被用以在支持或复制云计算服务的联网环境中测试对云基础设施的更新。计算服务包括但不限于存储和管理数据、执行应用或递送内容的设备、存储装置、联网和软件,或诸如流式传输视频、web邮件、办公生产力软件或社交媒体的服务。一旦出现故障,则云计算服务可能会中断,并且用户体验会倒退。环境100实现了在实际用户生产工作负载中部署之前对更新进行充分测试。具体地,本技术实现了对更新对用户体验的影响的预测。
35.如图1所示,合作伙伴团队102可以访问创作系统104。合作伙伴团队104可以代表具有开发测试用例的技术专门知识的受管理服务提供商。在实施例中,合作伙伴团队可以经由创作系统104创作测试用例。创作系统实现如在测试用例中针对云服务提供虚拟机(vm)的任务。具体地,创作系统104使得合作伙伴团队能够开发测试逻辑,并根据合作伙伴团队的期望检查和调整测试参数。如图所示,创作系统104包括命令行输入(cli)和门户。创作系统104可以经由命令行输入和门户来访问。在实施例中,可以经由cli和门户将定义与测试用例相关联的任务的脚本输入到系统100。
36.可以在全堆栈生产刀片上执行测试用例,以生成最真实的云条件。此外,相关样本
可以通过部署足够的刀片来表示,这些刀片代表云基础设施的相关部分,以用于统计上显著的结果。在实施例中,测试用例可以在生产中的沙箱或隔离测试环境中运行以保护用户vm。可以模拟用户业务,并且可以利用合成工作负载来表示用户使用场景。为了模拟生产故障,可以注入故障以评估有效负载对恢复力的影响,从而实现快速和一致的结果。当在处理后的样本和对照样本上执行工作负载集合时注入错误可能暴露更新或处理后的样本中的错误。在实施例中,为了减少假阳性,可以创作测试,使得唯一的变量是所测试的有效负载。
37.经由创作系统104获取的脚本使得执行应用编程接口(api)106能够调用可以在用于支持云服务的多个云基础设施配置上执行的测试用例的过程。在实施例中,执行api 106可以将来自创作系统104的脚本作为输入。在实施例中,执行api 106还可以将来自连续集成连续部署(cicd)/集成系统块108的关于要测试的硬件/软件的特定构建的连续测试数据作为输入。cicd/集成系统块108实现在测试期间对更新的连续改变和这些更新的递送。在实施例中,执行api 106可以被配置为部署、配置和管理应用于支持云网络的硬件配置的测试用例。
38.执行引擎110可以协调要应用于从执行api 106获取的测试用例的特定工作负载。具体地,执行引擎110可以布置工作流的特定任务的序列,并根据测试用例的需要而增长或减慢工作流内的任务。执行引擎110可以将来自固件存储库112的用于测试的调度脚本和更新作为输入。
39.测试用例和更新被发送到测试环境管理系统114和云控制平面(ccp)116,ccp 116能够调用特定库存量单位(sku)、虚拟机等以在隔离环境118中执行测试用例。在实施例中,组件的特定配置可以被称为sku。每个sku可以唯一地标识产品、服务或其任何组合。在实施例中,sku可以指示可以由云提供商使用的硬件的特定布置。
40.隔离环境118实现对工作负载的保护,诸如来自工作负载环境120的测试工作负载。具体地,隔离环境消除或限制仍在测试中的可能虚假更新的潜在影响。隔离环境可以根据其特定用途而有所不同。例如,云服务提供商可以选择在模仿生产云的复制环境中执行有效负载134。然而,隔离环境也可以是进程隔离,其中执行实际实况生产工作负载的vm通过隔离在用户vm上执行的进程而用于测试。在这种情况下,本文描述的用于验证和预测的测试包括将进程添加或注入到用户在其实况生产工作负载中拥有和使用的vm中。
41.隔离环境118还可以通过临时分配云基础设施验证和预测目的的节点(组件)来实现。包含式ccp 116控制云基础设施请求的特定组件。在一些隔离环境中,只有处理后的主机节点上的一些虚拟机被分配用于验证和预测相关的工作负载。隔离环境118还可以通过专用整个机架(其具有多个主机节点)、计算节点的整个子网等来使用更鲁棒(和昂贵)的隔离级别来实现。
42.如图所示,来自故障注入库122的故障可选地注入隔离环境118中。在实施例中,如下所述将测试用例应用于a样本和b样本还包括故障注入。故障注入通常代表边缘情况和错误,即被认为不太可能或不太可信的那些场景。故意的故障注入加速了对这种边缘情况的覆盖,并实际上缩短了暴露相关问题所需的时间。故障注入背后的想法是催化自然情况下很少发生的情况。这实现了减少评估更新所需的时间,并增加验证和预测充分的置信度。通常,导致错误的情况可能发生在百万分之一的节点日。故障注入人为地增加了关于覆盖范围的可能性。自然地,同样的注入定性地和定量地应用于a样本和b样本两者,如下所述。
43.如图所示,隔离环境118包括主机节点124和主机节点126。在许多云实现中,主机节点124和126用于托管提供给用户的vm。在其他情况下,主机节点管理提供给用户应用的存储装置。测试用例可以应用于主机节点124和主机节点126中的每个主机节点。主机节点124包括访客堆栈使用的虚拟机128和虚拟机130。通常,访客实现了完整的计算堆栈,类似于物理计算机。虚拟机128可以包括访客代理(ga)132。虚拟机130可以包括ga 133。由vm执行的工作负载可以被称为访客。本技术可以包括具有类比于主机代理的职责的访客代理。例如,访客代理可以从访客操作系统和在访客代理上执行的进程收集遥测。在实施例中,访客代理可以被用以从故障注入库122注入故障。
44.可以将有效负载134应用于主机节点124。云就绪度标准主机代理136驻留在主机节点124上。类似地,可以将有效负载138应用于主机节点126。云就绪度标准主机代理140驻留在主机节点126上。crc主机代理136和140直接从它们相应的主机节点收集各种遥测。当控制平面116收集的遥测充分时,这可能是冗余的。然而,当主机节点被隔离时,crc主机代理136和140可以更多地访问详细数据(因此,不担心用户数据隐私,也不太担心由于密集的遥测收集而对主机节点的整体性能产生负面影响)。在实施例中,crc主机代理136和140的另一目的是不受约束地控制主机本身,例如诱导重启或注入人为的主机级别故障。
45.来自测试用例的结果可以存储在结果存储库150中。在实施例中,结果存储包括遥测存储库152、调度存储库154、执行存储库156、主机事件存储库158和访客事件存储库160。结果可以包括应用于样本的测试输出,如下所述。这些结果可以包括例如通过/失败指示、在故障的情况下发生故障的层的标识(诸如硬件、主机操作系统、虚拟机、访客操作系统、应用等)以及来自这样的层的遥测。如本文所描述的,遥测被定义为从测试中的样本中的各个点进行的一般测量。例如,遥测可以包括在各个这样的层上的硬件和软件的性能指示符、各种测量和/或时间序列数据,诸如电压和温度,以及来自各个层的日志。此外,遥测可以包括来自云控制平面116的测试用例的输出、日志和遥测的输出。因此,在工作负载的执行期间捕获的遥测可以包括工作负载执行的输出或结果以及从底层云控制平面、硬件配置或其任何组合得到的度量。
46.测试用例范围可以包括任何数目的变量。例如,工作负载类型可以定义测试用例。工作负载类型可以是多变量的。不同的工作负载类型可以被描述为计算繁重的、专注于存储器的、i/o或联网受限的、工作负载持续时间、工作负载强度或工作负载顺序。此外,可以针对测试用例定义各种基础设施变量。这些基础设施变量包括虚拟机(vm)sku、vm大小、vm密度、访客os、地理位置及其他。
47.来自结果存储的结果和遥测可以被传送到评分系统162。评分系统162向具有存储在结果存储库150中的测试结果的更新提供评分或评级。例如,更新可能不满足服务外部用户所需的就绪度标准,但仍可能具有足够的可靠性,以便在内部用于选定的工作负载(其被认为是对主机质量不太敏感)。异常检测系统164分析结果和遥测中的数据模式并标识异常。例如,异常检测系统164可以通过所接收的遥测中的细微扰动来标识大型舰队(fleet)中的问题组件。仪表板166是云就绪度标准环境100的视觉表示。仪表板166可以在视觉上呈现量化的方面,如当前执行的a样本节点和b样本节点的数目。
48.在实施例中,使用在工作负载集合的执行期间捕获的遥测来预测与递送足够高质量的用户体验相关联的开销成本的改变。足够高质量的用户体验可以是对用户体验缺乏注
意得到的负面影响的用户体验。可以评估与确保质量用户体验相关联的开销,其中在以下方面定义开销和阈值:货币成本、冗余度、所消耗的能量、由于冗余增加而产生的工作量小时数、平息质量问题、或其任何组合。
49.图1的框图是示例性的,并且不应被视为限于环境100。注意,环境100可以具有比图1的示例中所示的那些更多或更少的框。此外,这些框可以经由诸如图5的计算设备500的计算组件来实现。
50.可以经由统计方法来确定更新对用户体验的影响的验证和预测。该预测可以从对a-b样本在限定时间线(例如,几周)上的行为的比较中得出的结论和数据的外推中得出,如应用于整个群体以预测在扩展时间段(或没有确定的终点)上的预期行为。具体地,可以将来自对照样本的观察结果与来自处理后的样本的观察结果进行比较。如本文所使用的,对照样本可以被称为“a样本”,而处理后的样本可被称为“b样本”。a样本和b样本中的每个样本都可以从给定的群体中获取。在实施例中,样本是直接或间接测试中的组件的“代表”。因此,本文使用的代表样本指的是来自群体的组件的子集,其是与测试中的特定更新相关联的组、质量或种类的典型示例。因此,测试中的更新可以规定或通知被选择用于比较的样本。
51.在实施例中,用于得出更新对用户体验的影响的预测的外推是基于a与b结果的比较和结论而应用于整个群体的恒等函数。如果处理后的b样本在具有统计学意义的有限时间范围内比控制a样本的表现更好或更差,则可以针对群体的行为进行外推。应用于群体的该行为可以在无限的时间跨度内预测样本所代表的整个群体的更新性能。
52.在另一实施例中,外推是与恒等函数相反的实际函数。该实际函数可以被用以各种原因。例如,a和b样本可能不能如所希望的那样代表更广泛的相应群体。在这种情况下,a-b比较的外推可能需要考虑样本和更广泛群体之间的差异的函数。例如,考虑这样一种情况,其中更广泛的群体具有比a-b样本慢的cpu。在该示例中,外推必须相应地“修正”预期性能,这可能会被认为更新不充分。使用实际函数的另一原因是引入安全裕度。例如,如果样本的功耗限制比更广泛的群体更宽松,并且更新消耗的功率稍微多一点,那么这可能使其不充分(这实际上是影响预测的外推函数)。
53.在根据本技术的a-b比较中,对照样本和处理后的样本是统计上可比较的。如本文所使用的,统计上可比较可以指在质量、量或种类上相似的样本。例如,统计上可比较的样本可以具有相同类型和数目的组件。因此,统计上可比较的样本是从满足相同样本要求的群体中获取的那些样本,诸如节点、服务器、硬盘驱动器、调制解调器、交换机、路由器、虚拟机或其他组件的类型和数目。
54.在根据本技术的统计测试中,统计上可比较的两个样本被选择。一个样本被指定为a或对照样本,另一样本被指定为b或处理后的样本。a或对照样本是未应用更新的硬件/软件配置。b或处理过的样本是应用了更新的硬件/软件配置。比较处理后的样本和对照样本的性能很重要,因为组件通常会经历背景噪声问题,其中这些问题不是立即注意得到的。
55.可以对若干a-b比较技术进行统计分析,并随后对跨越无限时间跨度的更广泛的群体进行外推,以创建对用户体验的影响的预测,并确定更新是否云就绪。例如,a-b比较可以基于整体性能。性能较差的处理后的b样本可以是负面指示符,反之亦然。性能指示符包括以下任一项:基于时间的基准测试(通常认为经过的时间越少越好)、并发程度(越多越
好,但在某些情况下认为越少越好)、io操作数目、总能耗(通常越少越好)、功耗、计算周期的数目、存储器足迹等等。这些性能指示符可能在样本中的不同实体之间有所不同。因此,统计方法是有用的。
56.另一比较可以是对特定事件的数目进行计数。其中一些问题随机表现为云基础设施的方面或组件出现故障和损坏。任何孤立事件都可能没有多大意义,因为它可能看起来像是偶尔发生的事件。当在具有代表性和足够大的样本中追踪该事件时,可以对这样的事件进行外推。可以对这样的事件的数量进行计数,然后基于该计数对群体进行外推。在实施例中,可以针对因不相关或合法原因而发生的事件对事件进行筛选。
57.可以对云基础设施方面的故障或损坏事件之前的引导指示符(li)进行统计分析,并随后对跨越无限时间跨度的更广泛的群体进行外推,以创建对用户体验的影响的预测,并确定更新是否云就绪。例如,在完全故障之前,存储单元的时延可能会显著增加。在故障之前,双列直插式存储器模块(dimm)的功耗可能会偏离该型号的常见模式。在实施例中,追踪几个引导指示符。可以自动监控引导指示符是否偏离和背离健康节点所表现出的模式(或其他方面)。可以发出有关这样的异常的警报。通过这种方式,引导指示符可以提供对更新行为的洞察,还可以减小样本大小和获得可信实验数据所需的时间。
58.在某些情况下,有必要分析第一时间异常,并收集此数据作为a样本和b样本的统计数据。异常可能是组件故障。在某些情况下,异常可能更为微妙。例如,异常可能是引导指示符偏离健康样本(或群体)的常见模式。在该示例中,如果b表现出比a更少或更多的早期故障,则更新分别是相对于a的改进或恶化。
59.诸如节点、vm、交换机、存储等云基础设施组件在执行期间通常会经历一些问题。因此,本技术比较a/b样本,以便在两个样本都可以预期发生某种类型的问题时确定哪些问题可以归因于该更新。例如,该比较可以是可用性与停机、正常运行时间与停机时间、中断、数据丢失等的比较。在实施例中,比较对比这样的异常的详情。例如,如果a和b样本由于不同的原因而意外故障,或者甚至只是由于不同的遥测而意外故障,这些故障可以指示更新引入了差异——这可能是有害的。此外,还可以比较来自每个样本的一般遥测。例如,可以针对每个样本比较诸如功耗、热足迹、计算周期的数目、存储装置的性能等的一般遥测。
60.用于测试的工作负载包括与典型的基于云的工作负载相关联的复杂性和多样性。可以在测试期间使用云固有的规模和多样性,以确保有足够的资源,从而能够覆盖测试云就绪度标准所需的测试用例。具体地,测试中的a/b样本被分配为确保有充足的支持来执行所需的工作负载。在实施例中,对测试中的样本进行扩展以确保使用充足的组件来运行所需的工作负载。在实施例中,可扩展性可以指创建或扩展测试中的样本的计算/存储容量以适应典型的云使用需求的能力。此外,统计上充足的规模可以指示将错误的裕度降低到预定义阈值以下的样本大小。通过对测试中的样本进行扩展,本技术确保用户不会因为缺乏可用于测试的充足组件而经历倒退。在实施例中,样本的大小可以确定云就绪度的验证和预测的置信度水平。
61.在实施例中,可以针对统计分析的结果确定p-值。p-值可以指示结果被认为具有统计意义的数据点。例如,可以使用0.1或0.05的p-值阈值,其中小于阈值的值是具有统计意义的。在实施例中,可以根据被更新的组件的性质和其他考虑因素来增加或减少p-值。
62.多样性确保每个样本中都有足够多样的组件实例可用于更新测试。在实施例中,
相关云级别多样性实现可应用于处理后的样本和对照样本中的更新的各种组件实例。通常,云服务提供商可以提供对多个sku的访问。用于测试的样本是这些sku的代表。为了针对特定sku得到用于测试的样本,可以首先过滤硬件sku的可应用性。例如,给定微代码改变,只有具有受这种微代码改变影响的cpu的刀片被认为包括在预测微代码改变的正确性和验证微代码改变中。在实施例中,硬件sku的样本应该跨越等效类别,等效类别跨越被确定为可应用于当前微代码改变的硬件sku的一般群体。例如,可应用的硬件sku的一般群体应该包括具有各种步长、各种存储器类型和大小、各种总线频率、各种bios等的cpu的刀片。
63.此外,为了验证微代码改变或更新,每个等效类别需要多个硬件实例。每个等效类别的大小都足以进行a/b分析。在示例中,每个等效类别可以包括数十个节点或更多。在实施例中,可以偏斜等效类别大小以放大各种信号。例如,如果更新被怀疑导致某些类别中的古怪行为,则样本大小可以相应增加。此外,如果某个类别有错误历史,则相应的样本大小会增加。最后,如果已知某个工作负载会导致错误,则暴露于该工作负载的节点的数目会在等同类别上增加。
64.通过操纵测试中的关联a/b样本的规模和多样性,根据本技术的测试可以在由云服务提供商操作和管理的云的不同集成环境中以具有统计意义的规模重复地执行工作负载。可以基于所应用的更新的工作负载执行的结果来预测更新的正确性。
65.图2是实现对硬件更新的验证和预测的方法200的流程图。在实施例中,方法200使云服务提供商能够预测硬件更新的正确性,诸如新安装的组件或修复的组件。组件可以是例如硬件设备,诸如服务器、机架、网络交换机、路由器、量子计算机、存储设备、电源单元(psu)等。根据本技术的硬件更新可以是组件的特定配置。组件的该配置可以被称为目标硬件配置。因此,在框202,目标硬件配置被部署在云基础设施中。附加地,基准硬件配置被标识。如上所述,可以比较目标硬件配置和基准硬件配置。具体地,基准硬件配置可以被视为对照样本或a样本。目标硬件配置可以被视为处理后的样本或b样本。
66.在框204,用于实验的测试变量被定义。如本文所使用的,实验指的是在云基础设施的组件上运行工作负载。在主机节点的情况下,实验可以由要在主机上执行的工作负载组成。在实施例中,测试变量包括合成工作负载和故障注入。可以根据基准硬件配置的典型工作负载来选择合成工作负载。因此,合成工作负载可以包括已知在基准硬件配置的至少一部分上利用或执行的一个或多个任务。在实施例中,实验可以是由目标硬件配置、合成工作负载和故障注入定义的测试用例。测试用例以云固有的规模和云固有的多样性来执行。在实施例中,可以通过使用合成工作负载在生产环境中测试更新,该合成工作负载被设计为一般地覆盖硬件功能,特别是被改变的方面。可以执行合成工作负载的使用,使得其不影响生产工作负载。此外,可以选择故障注入来模拟在典型情况下很少发生的测试场景。
67.在框206,测试变量被应用于目标硬件配置和基准硬件配置。换句话说,每个a样本硬件配置和b样本硬件配置都是在相似的条件下进行测试的。在框208,遥测数据点被收集以用于分析和比较。针对每个目标硬件配置和基准硬件配置收集遥测数据点。在框210,基于目标硬件配置相对于基准配置的遥测、可靠性和性能来预测更新的云就绪度。
68.图3是实现对软件更新的验证和预测的方法300的流程图。在实施例中,方法200使云服务提供商能够预测诸如微代码的软件更新对用户体验的影响。因此,软件更新可以是例如代码、微代码、固件等。在实施例中,软件更新是用于修改或调解硬件功能的代码。在某
些情况下,更新可以是应用于更新物理组件的代码。例如,更新可以是对物理组件的固件。在图3的示例中,目标固件被描述为软件更新。然而,根据本技术可以使用任何软件更新。
69.在框302,目标固件被部署到云基础设施服务器的样本。标识等效的服务器组作为基准。如上所述,可以比较目标固件和基准固件。具体地,基准固件可以是固件的先前版本,并且被视是对照样本或a样本。目标固件可以被视是处理后的样本或b样本。
70.在框304,测试变量被定义以用于实验。在实施例中,测试变量包括合成工作负载和故障注入。可以根据基准固件的典型工作负载来选择合成工作负载。因此,合成工作负载可以包括已知在基准固件的至少一部分上利用或执行的一个或多个任务。在实施例中,实验可以是由目标固件、合成工作负载和故障注入定义的测试用例。测试用例以云固有的规模和云固有的多样性来执行。在实施例中,可以通过使用合成工作负载在生产环境中测试更新,该合成工作负载被设计为一般地覆盖硬件功能,特别是被改变的方面。可以执行合成工作负载的使用,使得其不影响生产工作负载。此外,可以选择故障注入来模拟在典型情况下很少发生的测试场景。
71.在框306,测试变量被应用于目标固件和基准组。换句话说,a样本和b样本中的每个样本都是在相似的条件下进行测试的。在框308,遥测数据点被收集以用于分析和比较。针对每个目标固件和基准固件收集遥测数据点。在框310,基于目标固件相对于基准配置的遥测、可靠性和性能来预测更新的云就绪度。
72.图4是实现根据本技术的统计分析的方法400的流程图。在框402,收集遥测数据点以用于分析和比较。例如,可以在图2的框208或图3的框308收集遥测数据点。在框404,来自对照样本和处理后的样本的遥测数据点被比较。在该比较的过程中,考虑了数据点的自然变化。此外,在该比较期间,遥测数据点中的异常值被消除。在框406,对照样本和处理后的样本之间的数据差异被建模为客户体验度量。
73.在框408,基于对用户体验的预测影响来做出关于部署更新的通过/不通过决策。通过确定用户倒退的根本原因,可以实现通过/不通过决策,并通过“不通过”决策防止倒退泄漏到生产中。在实施例中,倒退可以是由引入到云基础设施的最近部署的更新引入的问题。倒退也可能是一个潜在的漏洞,它一直处于休眠状态,直到特定的有效负载或云基础设施中的改变导致该漏洞变得突出。本文使用的“变得突出”可以指注意得到的问题。在一些情况下,用户倒退经由年度中断率(air)或用户部署性能/可靠性(tdp/r)峰值来指示。air和tdp/r度量是两个基本的kpi,其可用于理解、设置基线和比较对云数据和控制平面的硬件、软件和配置改变对用户体验的影响。预测更新对用户体验的影响还可以包括对任何更新的air影响的预测。在实施例中,air度量可以测量一年内用户体验中断的可能性。因此,air是专注于用户体验的kpi。在实施例中,从底层云控制平面、硬件配置或其任何组合中得到air和tdp/r度量。
74.本技术可以解决在不断演进和复杂的动态环境中评估云就绪度的挑战,而现有方法仅限于静态配置的实验室。后者不仅被云的复杂性和多样性压倒,而且不可能跟上云演进的动态性质。此外,本技术解决了大群体总是表现出边缘情况和错误的现实。因此,本技术利用了大群体的概率行为,而现有方法仅限于确定性测试或最好地捕获古怪性。
75.在一些情况下,对云就绪度的验证和预测是一项服务。通过启用cicd集成,第三方(诸如硬件供应商)可以分析和评估云就绪度标准。cicd集成可以经由图1的cicd/集成系统
块108来实现。连续集成(ci)和连续递送(cd)实现了具有速度、安全性和可靠性的测试用例到测试环境的传递。具体地,连续集成(ci)允许开发人员(诸如合作伙伴团队)在构建测试用例的同时多次将代码集成到共享存储库中。然后,每个签入都由自动构建进行验证,从而允许团队及早检测到问题。通过定期集成,可以更快地检测到错误并更容易地对其进行定位。连续递送(cd)是将更新实现到验证和预测过程中。通过这种方式,更新以及最终的硬件配置和云始终处于可部署状态,即使面对每天做出改变的合作伙伴团队也是如此。
76.为了将云就绪度实现为服务,云就绪度标准系统实现自组织请求,这些请求可以并发验证的云就绪度标准。这需要对应于硬件更新类型的充足资源的动态响应和供应、管理并发验证的自动控制平面等。此外,云就绪度标准系统实现多个用户和账户、租户或订阅中的多个用户。最后,必须对云就绪度标准系统进行仪表化,以允许可编程和可脚本化的集成。可编程和可脚本化的集成可以实现如下所述的过程。
77.例如,更新可以被部署。在一些情况下,使用元数据部署更新,元数据通知其可应用性(过滤目标硬件节点)和部署指令或工具。例如,部署指令或工具可以包括时间延迟、重新启动、部署的指导/脚本,以及可选的与部署的指导/脚本相关的工具。对验证和预测的范围进行了界定。如本文所使用的,界定范围是指确定在测试用例期间供使用的工作负载类型、允许的时间、并发节点的数目。接下来,监测从所需验证/预测的范围得到的测试用例。具体地,可以实现api来开始,停止,获取中期进度状态、中期结果和最终结果。遥测是从测试中的a/b样本获取的。具体地,可以实现api以从测试中的系统获取遥测,这允许对那些系统进行故障排除和调试。api还可以保留/释放硬件容量,以确保所需的硬件可用/被释放。
78.通过这种方式,第三方可以访问云就绪度标准,并且可以验证或预测硬件更新的就绪度。本文描述的对云就绪度标准的访问可以作为服务提供给第三方,从而导致硬件更新开发的经济性的改变。例如,cpu开发人员将能够像软件开发人员一样,以很小的步骤迭代对微代码的改变,从而根据实际演进的云来验证这种增量改变。传统上,cpu开发人员仅限于静态配置的实验室。通过扩展,硬件更新的验证流水线(也称为cicd流水线)可以被实况集成,以依赖于本文描述的云就绪度标准服务。
79.转到图5,图5是示出被配置为根据所公开主题的方面来验证和预测云就绪度的示例性计算设备500的框图。图5是可以(例如)部署架构100或其部分的计算环境的一个实施例。示例性计算设备500包括一个或多个处理器(或处理单元),诸如处理器502和存储器504。处理器502和存储器504以及其他组件通过系统总线510互连。系统总线510可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线架构中的任何一种的本地总线。作为示例而非限制,这样的架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线、以及也称为夹层总线的外围组件互连(pci)总线。参考图1描述的存储器和程序可以部署在图5的相应部分中。
80.存储器504通常(但不总是)包括易失性存储器506和非易失性存储器508两者。易失性存储器506只要该存储器被供电即可保持或存储信息。相比之下,即使在电源不可用时,非易失性存储器508也能够存储(或持久保存)信息。一般而言,ram和cpu高速缓冲存储器是易失性存储器506的示例,而rom、固态存储设备、存储器存储设备和/或存储卡是非易失性存储器508的示例。
81.计算设备500还可以包括其他可移除/不可移除易失性/非易失性计算机存储介质。仅作为示例,计算设备500还可以包括对不可移除、非易失性磁介质进行读取或写入的硬盘驱动器,对可移除、非易失性磁盘进行读取或写入的磁盘驱动器,以及对诸如cd rom或其他光学介质的可移除、非易失性光盘进行读取或写入的光盘驱动器。可以在示例性操作环境中使用的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于盒式磁带、闪存卡、数字多功能盘、数字录像带、固态ram、固态rom等。硬盘驱动器可以通过不可移除的存储器接口连接到系统总线510。磁盘驱动器和光盘驱动器可以通过可移除存储器接口连接到系统总线510。
82.计算设备500还可以包括基本输入/输出系统(bios),其包含诸如在启动期间帮助在计算机设备500内的元件之间传输信息的基本例程,并且通常存储在非易失性存储器508中。易失性存储器506通常包含处理器502可立即访问和/或当前正被处理器502操作的数据和/或程序模块。作为示例而非限制,图5还可以包括操作系统、应用程序、其他程序模块和程序数据。
83.计算设备500通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备500访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于并且不包括调制后的数据信号或载波。它包括硬件存储介质,包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并可由计算设备500访问的任何其他介质。通信介质通常在传输机制中实现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制后的数据信号”是指其一个或多个特性以将信息编码到信号中的方式进行设置或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。上述任何项的组合也应包括在计算机可读介质的范围内。
84.处理器502在执行如上所述的云就绪度标准的各种功能时执行从存储器504(和/或从计算机可读介质)取回的指令。处理器502可以由诸如单处理器、多处理器、单核单元和多核单元的多个可用处理器中的任何一个组成。
85.此外,所示计算设备500包括用于通过计算机网络将该计算设备与其他设备和/或服务互连的网络通信组件512。在实施例中,计算设备500可以实现对如图1所示的云就绪度标准和验证环境100的访问。网络通信组件512,有时被称为网络接口卡或nic,其经由物理/有形(例如,有线、光学等)连接、无线连接或两者,使用一个或多个通信协议在网络上通信。如本领域技术人员容易理解的,网络通信组件(诸如网络通信组件512)通常包括通过传输介质(即,网络)发送和接收数字和/或模拟信号的硬件和/或固件组件(并且还可以包括或包含可执行软件组件)。
86.计算设备500还包括i/o子系统514。如将理解的,i/o子系统包括硬件、软件和/或固件组件的集合,其实现或促进计算设备500的用户和计算设备500的处理系统之间的相互通信。实际上,经由i/o子系统514,计算机操作员可以经由一个或多个输入通道提供输入,
作为说明而不是限制,输入通道诸如是触摸屏/触觉输入设备、按钮、定点设备、音频输入、光学输入、加速计等。可以通过一个或多个显示屏(其可以是也可以不是触敏的)、扬声器、触觉反馈等来进行信息的输出或呈现。如将容易理解的,计算机操作员和计算设备500之间的交互经由计算设备的i/o子系统514来实现。
87.计算设备500还包括云就绪度标准管理器516和创作系统518。云就绪度标准管理器516可用于测试对支持或复制云计算服务的隔离环境520中的硬件的更新。计算服务包括但不限于存储和管理数据、执行应用或传递内容的设备、存储装置、联网和软件,或诸如流视频、web邮件、办公生产力软件或社交媒体的服务。创作系统518可以实现测试用例的开发,包括测试逻辑和测试参数。备选地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如,但不限于,可使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(fga)、程序专用集成电路(asic)、程序专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。
88.还应当注意,本文描述的不同实施例可以以不同方式组合。也就是说,一个或多个实施例的部分可以与一个或多个其他实施例的部分组合。所有这一切都是在本文考虑的。
89.尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上面描述的特定特征和动作被公开作为实现权利要求的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献