基于从机器学习模型得出的操作向机群中的设备创建和部署包

文档序号:1895041 发布日期:2021-11-26 浏览:1次 >En<

阅读说明:本技术 基于从机器学习模型得出的操作向机群中的设备创建和部署包 (Creating and deploying packages to devices in a fleet based on operations derived from a machine learning model ) 是由 C·G·卡勒 A·穆亚尔 于 2020-03-26 设计创作,主要内容包括:提供了用于基于源自机器学习模型或其他自动反馈模型的操作来创建包并将包部署到机群中的设备的系统和方法。作为示例,提供了一种用于创建用于部署到一组设备的包括有效负载的包的方法。方法包括:接收有效负载,其中有效负载具有与将有效负载部署到一组设备相关的相关联的一组有效负载参数。方法还包括:使用处理器,自动创建用于部署到一组设备的包,其中包包括用于将有效负载部署到一组设备的指令,并且其中指令指定如下多个操作中的至少一个操作,该多个操作是至少基于相关联的一组有效负载参数的子集从机器学习模型得出的。(Systems and methods are provided for creating and deploying packages to devices in a cluster based on operations derived from a machine learning model or other automated feedback model. As an example, a method for creating a package comprising a payload for deployment to a set of devices is provided. The method comprises the following steps: a payload is received, where the payload has an associated set of payload parameters related to deploying the payload to a set of devices. The method further comprises the following steps: automatically creating, using a processor, a package for deployment to a set of devices, wherein the package includes instructions for deploying a payload to the set of devices, and wherein the instructions specify at least one of a plurality of operations derived from a machine learning model based at least on a subset of an associated set of payload parameters.)

基于从机器学习模型得出的操作向机群中的设备创建和部 署包

背景技术

将包括固件或其他低级系统代码的包部署到包含与云对应的硬件的机群中的组件是困难的。公共云包括执行各种功能的全球服务器网络,这些功能包括存储和管理数据、运行应用程序以及交付内容或服务,诸如流视频、电子邮件、办公生产力软件或社交媒体。服务器和其他组件可能位于世界各地的数据中心。虽然公共云通过因特网向公众提供服务,但是企业可能会使用私有云或混合云。私有云和混合云还包括容纳在数据中心中的服务器网络。

数据中心不仅包括服务器,还包括其他组件,诸如网络交换机、路由器和其他设备。服务器和其他组件可能通过不同的供应商提供,并且可能包括不同类型或版本的主板、CPU、内存和其他设备。除了计算机、网络和存储组件,数据中心还包括其他组件,诸如机箱、机架、电源单元以及其他这样的组件。

这些设备中的每个可能需要包括固件在内的低级系统代码。将包部署到可能分布在世界各地许多数据中心中的各种各样的设备是具有挑战性的。因此,需要用于将包部署到机群中的设备的方法和系统。

发明内容

在一个示例中,本公开涉及一种用于创建包括有效负载的包以部署到一组设备的方法。所述方法可以包括:接收有效负载,其中有效负载具有与将有效负载部署到一组设备有关的相关联的一组有效负载参数。方法还可以包括:使用处理器,自动创建用于部署到一组设备的包,其中包包括用于将有效负载部署到一组设备的指令,并且其中指令指定如下多个操作中的至少一个操作,该多个操作是至少基于相关联的一组有效负载参数的子集从机器学习模型得到的。

在另一示例中,本公开涉及一种将包部署到机群的方法。方法可以包括:评估机群,以确定一组机群参数,该一组机群参数与将包部署到机群相关联。方法可以包括:使用处理器,自动创建用于将包部署到机群的部署计划,其中部署计划包括用于将包部署到机群的指令,并且其中指令指定如下多个操作中的至少一个操作,该多个操作是至少基于一组机群参数的子集从机器学习模型得出的。

在又一示例中,本公开涉及一种用于将包部署到机群的系统。系统可以被配置为:评估机群,以确定与将包部署到机群相关联的一组机群参数。系统可以被配置为:使用处理器,自动创建用于将包部署到机群的部署计划,其中部署计划包括用于将包部署到机群的指令,并且其中指令指定如下多个操作中的至少一个操作,该多个操作是至少基于一组机群参数的子集从机器学习模型得到的。

在又一示例中,本公开涉及一种用于创建包括有效负载的包以部署到一组设备的方法。方法可以包括:接收有效负载,其中有效负载具有与将有效负载部署到一组设备有关的相关联的一组有效负载参数。方法还可以包括:使用处理器,自动创建用于部署到一组设备的包,其中包包括用于将有效负载部署到一组设备的指令,并且其中指令指定如下多个操作中的至少一个操作,该多个操作是至少基于相关联的一组有效负载参数的子集从自动反馈模型得到的。

提供本发明内容以简化形式介绍在以下详细描述中进一步描述的概念的选择。本发明内容无意确定要求保护的主题的关键特征或基本特征,也不意在用于限制要求保护的主题的范围。

附图说明

本公开以示例的方式示出并且不受附图限制,其中相似的附图标记指示相似的元件。图中的元件是为了简单和清楚而示出的并且不必然按比例绘制。

图1示出根据一个示例的用于将包部署到包括云中的硬件的机群中的设备的系统环境的图;

图2是根据一个示例的包括机群的部署和监控的系统的框图;

图3是根据一个示例的数据中心中的集群的框图;

图4示出根据一个示例的部署和监控的框图;

图5示出包括具有用于执行与部署和监控相关联的操作的指令的模块的存储器500的图;

图6示出根据一个示例的包的组成部分;

图7示出根据一个示例的分段部署的示例;

图8示出根据一个示例的用于部署包的方法的流程图;

图9示出根据一个示例的一个阶段中的硬件的扫描树的图;

图10示出根据一个示例的另一阶段中的硬件的扫描树的图;

图11A和图11B示出根据一个示例的用于部署包的方法的流程图;

图12示出根据一个示例的影响表;

图13示出根据一个示例的机器学习系统;

图14示出根据一个示例的包括与图13的机器学习系统一起使用的指令和数据的存储器;

图15示出根据一个示例的用于创建包括有效负载的包以部署到一组设备的方法的流程图;

图16示出根据一个示例的用于将包部署到机群的方法的流程图;

图17示出根据一个示例的部署仪表板。

具体实施方式

本公开中描述的示例涉及向机群创建和部署包括有效负载的包。特定示例涉及基于源自机器学习模型的操作创建和部署包。将包括固件或其他低级系统代码的包部署到云中的包括硬件的组件是困难的。公共云包括执行各种功能的全球服务器网络,这些功能包括存储和管理数据、运行应用程序以及交付内容或服务,诸如流视频、电子邮件、办公生产力软件或社交媒体。服务器和其他组件可能位于世界各地的数据中心。虽然公共云通过因特网向公众提供服务,但是企业可能会使用私有云或混合云。私有云和混合云还包括容纳在数据中心中的服务器网络。

数据中心不仅包括服务器,还包括诸如网络交换机、路由器和其他设备的其他组件。服务器和其他组件可能通过不同的供应商提供,并且可能包括不同类型或版本的主板、CPU、内存和其他设备。

这些设备中的每个可能需要包括固件的低级系统代码。将包部署到可能分布在世界各地许多数据中心中的各种各样的设备是具有挑战性的。这是因为包的部署需要安全、牢靠和可靠地完成。存在若干外部因素会影响安全性、牢靠性和可靠性目标。作为示例,部署通常比一次可以管理得多,尤其是当一些部署具有高影响潜力时。特定类型的更改或目标需要其他方的明确同意来门部署(例如,潜在的功率或性能影响)。此外,可能需要监控包的部署的影响,以确保安全可靠的部署。最后,有效负载通常包括来自其他公司的固件或其他代码,并且必须进行评估和测试,以确保安全。

为了确保包的安全、牢靠和可靠的部署,本公开的特定示例涉及确保质量有效负载、适当的验证和测试以及监控对机群的影响。特定示例涉及使用机器学习来改进包的创建和部署。

图1示出根据一个示例的用于将包部署到云中的包括硬件的机群中的设备的系统环境100的图。设备的示例包括但不限于基板管理控制器(BMC)、CPU、GPU、FPGA、FPGA实例、机架管理器/控制器、机箱管理器/控制器、电源单元控制器、存储设备(例如,SSD或HDD)、网络设备(例如,交换机、路由器、防火墙和网桥)或数据中心中可能需要更新的任何其他设备。包可以包括有效负载,有效负载可以包括指令、低级系统代码、固件、设置、配置或可能需要更新的其他信息。系统环境100可以包括有效负载提交102、包创建110、包存储库120、部署和监控140、计算/存储/网络160、控制平面170、数据平面180。

继续参考图1,包创建110可以包括扫描112、测试114和打包116。在该示例中,可以经由有效负载提交102接收有效负载。可以使用用于有效负载工程团队的自助服务门户来实现有效负载提交102。因此,在该示例中,有效负载提交102可以提供图形用户界面,经由该图形用户界面可以提交任何有效负载。作为有效负载提交102的一部分,可以获得多种相关信息并将其存储在数据库(例如,与部署和监控相关联的数据库212)中。这可以通过向提交者提交问卷来获取信息。作为备选或附加地,信息可以作为与有效负载相关联的元数据被包括在内。信息可以包括与部署、变更、测试和影响相关的信息。有效负载相关信息或从提交的信息得出的任何信息被称为与有效负载相关联的参数。

仍参照图1,扫描112可以包括针对与有效负载相关联的各种参数来扫描有效负载。作为示例,作为该过程的一部分,可以扫描和提取与有效负载相关联的元数据。可以处理提取的信息,以确定其是否满足提交标准。符合提交标准可以指示提交是有效提交。在提交被验证之后,提取的信息可以作为记录存储在与部署和监控140相关联的数据库中。信息也可以具有时间戳。扫描112还可以包括针对任何病毒或其他不合需要的工件(artifact)扫描有效负载。测试114可以包括通过使用有效负载更新特定目标设备以确保有效负载在安装时将按预期工作来测试有效负载。打包116可以包括打包有效负载。在本公开的其他部分中描述了作为该过程的一部分所涉及的附加步骤。

继续参考图1,如虚线框130所示,机器学习可以用于部署与部署和监控140相关联的机器学习模型。类似地,如虚线框150所示,机器学习可以用于部署与计算/存储/网络160、控制平面170和数据平面180相关联的机器学习。在本公开的其他部分中提供了关于使用这样的机器学习模型的附加细节。

图2是根据一个示例的包括部署和监控(例如,图1的部署和监控140)和机群210的系统200的框图。如在本公开中使用的,术语机群可以包括但不限于由云服务提供者拥有的数据中心中的一些或全部、云服务提供者拥有和运营的数据中心中的一些或全部、通过服务提供者的客户运营的云服务提供者拥有的所有数据中心中的一个或全部、数据中心的任何其他组合、单个数据中心、或者甚至特定数据中心中的一些集群。部署和监控140可以经由数据平面220耦合到机群210。部署和监控140可以经由控制面230耦合到机群210。机群210可以包括一个或多个数据中心,这些数据中心又可以包括计算集群/存储/网络设备。因此,在该示例中,机群210可以包括集群1 240、集群2 260和集群Q 280,其中Q可以是大于1的整数。集群1 240可以经由总线222耦合到部署和监控140;集群2 260可以经由总线224耦合到部署和监控140;集群Q 280可以经由总线226耦合到部署和监控140。集群1 240可以经由总线232耦合到部署和监控140;集群2 260可以经由总线234耦合到部署和监控140;集群Q 280可以经由总线236耦合到部署和监控140。如图2中所示,机器学习可以耦合到部署和监控140。与机器学习相关联的附加细节在本公开的后面提供。虽然图2中未示出,部署和监控140可以经由任意数量的中间网络(例如,广域网、光网络、无线网络、有线网络或其他类型的网络)耦合到图2中所示的集群中的任一个集群。因此,本公开中使用的术语总线包括但不限于信号线、经由路由器、交换机、其他网络设备耦合的信号线、经由任何类型的网络耦合的信号线、无线连接、信号线和无线连接的组合、交换结构等。尽管图2示出以特定方式布置的机群210的特定数量的集群,但是机群210可以包括更多或更少的集群。此外,虽然图2示出与机群210相关的部署和监控140的特定布置,部署和监控140可以不同地布置,包括分布在若干位置并且经由不同类型的网络或总线互连的部分。

图3是根据一个示例的数据中心中的集群300的框图。集群300可以是包括在使用部署和监控140管理的机群中的集群中的一个集群。在该示例中,集群300可以包括可以用于互连硬件组件的机架的架顶式(TOR)交换机。因此,集群300可以包括TOR交换机302、304和306。每个TOR交换机可以耦合集群300中的组件中的至少一些。作为示例,TOR交换机304可以互连机架310、机架330和机架350。每个机架可以包括机架管理器和若干机架,这些机架可以包括诸如服务器、网络存储、网络硬件(例如,交换机、路由器和桥接器)等的组件。机架310可以包括若干机箱,例如包括机箱314、316、318和320。类似地,机架330可以包括若干机箱,例如包括机箱334、336、338和340。此外,机架350可以包括多个机箱,例如包括机箱354、356、358和360。每个机架可以包括机架管理器,所述机架管理器被配置为与诸如部署和监控140的部署和监控系统接口。因此,机架310可以包括机架管理器312,机架330可以包括机架管理器332,并且机架350可以包括机架管理器352。每个机箱可以包括被组织成组的服务器,诸如刀片(blades)。机箱中的一些或全部也可以包括网络和存储设备。每个机箱还可以包括风扇以向服务器或容纳在机箱内的其他组件提供冷却空气。尽管图3示出机架、交换机、机箱和机箱内的组件的特定布置,但是本文中公开的系统和方法不限于任何特定布置。因此,该系统和方法适用于针对数据平面和控制平面二者的数据中心的任何组织。

图4示出根据一个示例的部署和监控400(例如,图1的部署和监控140)的框图。部署和监控400可以包括可以经由总线420互连的处理器402、I/O设备404、存储器406、显示器408、传感器410、部署数据库412和网络接口414。处理器402可以执行存储在存储器中的指令406。I/O设备404可以包括诸如键盘、鼠标、语音识别处理器或触摸屏的组件。存储器406可以是非易失性存储器或易失性存储器(例如,闪存、DRAM、SRAM或其他类型的存储器)的任何组合。显示器408可以是任何类型的显示器,诸如LCD、LED或其他类型的显示器。传感器410可以包括被配置为检测和/或接收信息(例如,与设备相关联的状况)的遥测或其他类型的传感器。传感器410可以包括被配置为感测与CPU、存储器或其他存储组件、FPGA、母板、基板管理控制器等相关联的状况的传感器。传感器410还可以包括被配置为感测与机架、机箱、风扇、电源单元(PSU)等相关联的状况的传感器。传感器410还可以包括被配置为感测与网络接口、控制器(NIC)、架顶(TOR)交换机、架中(MOR)交换机、路由器、配电单元(PDU)、机架级不间断电源(UPS)系统等相关联的状况的传感器。

继续参考图4,传感器410可以以硬件、软件或硬件和软件的组合来实施。一些传感器410可以使用传感器API来实施,所述传感器API可以允许传感器410经由传感器API接收信息。被配置为检测或侦听特定状况或事件的软件可以经由传感器API传送与通过部署和监控400正在监控的设备相关联的任何状况。远程传感器或其他遥测设备可以并入数据中心内,以感测与安装在其中的组件相关联的状况。远程传感器或其他遥测也可以用于监控数据中心中的其他不利信号,并将信息提供给部署和监控。作为示例,如果冷却机架的风扇停止工作,则传感器可能会感测到这种情况并报告给部署和监控功能。这种类型的监控可以确保检测、报告和纠正部署的任何二阶效应。

仍参照图4,部署数据库412可以用于存储与有效负载提交和包相关的记录。此外,部署数据库412还可以存储用于生成与部署相关的报告的数据。在本公开的其他部分中记录了关于部署数据库412的功能的附加细节。

网络接口414可以包括通信接口,诸如以太网、蜂窝无线电、蓝牙无线电、UWB无线电或其他类型的无线或有线通信接口。总线420可以耦合到控制平面和数据平面二者。尽管图4将部署和监控400示出为包括以特定方式布置和耦合的特定数量的组件,其可以包括不同地布置和耦合的更少或更多的组件。此外,与部署和监控400相关联的功能可以根据需要进行分布。

图5示出存储器500(例如,图4的存储器406)的图,所述存储器包括具有用于执行与部署和监控400(还有图1的部署和监控140)相关联的操作的指令的模块。存储器500可以包括预扫描模块502、计划模块504、打包模块506、验证模块508、部署模块510和部署监控器512。预扫描模块502可以评估作为有效负载提交的一部分而提供的有效负载参数(例如,有效负载提交102)。预扫描模块502可以评估包括有效负载的任何包的部署的影响(例如,使用来自图4的数据库412中的其他表的预定义信息)并且通过评估当前的机群配置。通过预扫描模块502生成的结果可以记录在图4的数据库412中。计划模块504可以建立在通过预扫描模块502执行的工作的基础上并确定将需要的任何附加的计划信息或步骤并将结果记录回数据库412中。计划模块504可以确定与计划部署相关联的风险因素。计划模块504还可以确定可能被需要以确保安全和可靠部署的门和看门狗。与门和看门狗相关的细节可以记录在数据库412中。基于所有这些信息,计划模块504可以评估用于部署和验证的各个阶段可以提供给定机群的相关区域的当前配置的覆盖范围。自动化部署可以通过将作为包的验证的一部分部署到初级阶段(例如,包括没有工作负载的节点的阶段)、然后是次级阶段(例如,包括具有非客户工作负载的节点的阶段)、然后是最小扫描树(以下所述)、然后是机群部署,其范围可以基于包和有效负载而变化。考虑到当前的机群使用和组成,可以自动生成集群的最小扫描树,以达到目标覆盖范围。相对于图9和图10提供关于集群的最小扫描树的生成的附加细节。最后,如果与有效负载或包相关联的参数指示推荐附加分段(例如,在另一代设备之前的一代),然后可以生成建议的分段计划。生成的信息可以存储在数据库412中。

仍参照图5,打包模块506可以处理提交的有效负载并构建部署包。作为该过程的一部分,打包模块506可以基于有效负载参数生成部署指令。打包模块506可以指定可以在进一步推出部署之前以部署为目标的一组生产中测试(TIP)设备。在一个示例中,TIP机制可以用于执行最小覆盖的测试,以验证关键配置中的包。图6中提供了示例包的附加细节。因此,示例包600可以包括用于部署的一个或多个有效负载。在该示例中,包600可以包括有效负载1 602、有效负载2604和有效负载N 606。N可以是大于1的整数。包600还可以包括健康监控器608。健康监控器608可以包括关于监控什么的信息以及与被监控信息相关联的触发阈值。包600还可以包括包部署指令610。在一个示例中,包部署指令610可以包括规定部署计划的操作或动作。包部署指令还可以包括关于在更一般级别监控二阶效应的指令。

参考图5,验证模块508可以接收完成的包并验证包。此过程可能包括启动对目标设备的生产中测试(TIP)部署。部署监控器512可以被实施为逻辑服务,以监控活动部署的进度。可以跟踪每次提交和后续部署的状态,包括部署的开始时间、部署的结束时间、部署的运行时间以及部署中的任何延迟。部署监控器512还可以跟踪与部署相关的性能指标。下文中的表1示出可以通过部署监控512跟踪的一些主要关键性能指标(KPI)。

表1

部署和监控512还可以跟踪附加KPI,其在下表2中被称为次要KPI。

表2

图7示出根据一个示例的分段部署700的示例。包部署可能会影响数百个唯一的组件,组件中的每个可以具有相应的SKU或唯一标识符,以标识将组件与其他组件类型区分开来的组件类型。示例组件可以是由英特尔生产的特定CPU版本。在该示例中,将固件部署到英特尔CPU可能会影响通过英特尔生产的数十个唯一的CPU版本,这些版本可以作为接收固件更新的机群的一部分进行部署。特定的CPU版本可以具有对应的SKU以标识该版本的CPU。机群可以包括数千个具有该特定CPU版本的CPU。机群可以包括许多其他版本的英特尔CPU以及这些其他版本中的每个的数千(或更少)的CPU。在该示例中,可以通过遵循安全部署过程安全地完成部署。示例安全部署过程可以包括首先扫描机群,以确定机群中SKU的多样性。该过程可以包括部署和监控140,所述部署和监控连续扫描机群并保持跟踪每个唯一的三元组或3元组,包括与硬件相关联的代、与硬件相关联的制造商以及与设备相关联的SKU。图4的部署数据库412可以包括用于保持跟踪唯一的三元组的表格。

继续参考图7,在一个示例中,部署测试设置(例如,机群部分710)可以被分段组织,这些阶段可以在概念上对应于爆炸半径。因此,每个级可以包括越来越多的硬件,使得对越来越多数量的级的包部署可以覆盖机群中越来越多的硬件。因此,STAGE 1 720可以包括被配置为仅处理合成工作负载的硬件(例如,服务器)。作为示例,作为STAGE 1 720的一部分组织的服务器可以托管不为任何客户工作负载或可能对客户或另一用户产生不利影响的其他工作负载提供服务的虚拟机。在该示例中,由于部署到STAGE 1 720的任何包将不会影响任何实际工作负载,因此使用爆炸半径类比,爆炸半径可能为零。STAGE 2 730可以包括被配置为处理实时工作负载的硬件(例如,服务器),如果所述硬件受到影响,可能会对至少一些用户的工作负载产生不利影响,但不会对任何客户的工作负载产生不利影响。因此,在该示例中,使用爆炸半径类比,STAGE 2 730可以包括至少一定数量的服务器,如果所述服务器受到包部署的影响,则可能会影响至少少量用户的工作负载。估计对客户的工作负载影响的一种方式是基于容器数量或虚拟机(VM)数量对服务器分类。因此,在一个示例中,作为STAGE 2 730的一部分,仅那些容器计数或VM计数低于阈值的服务器(例如,每个台服务器两个容器或每个服务器两个VM)可以作为部署的目标。STAGE 3 740可以包括大量服务器,如果所述服务器受到影响,至少会对少数客户的工作负载产生不利影响。在一个示例中,STAGE 740还可以包括每个服务器具有更大容器计数或每个服务器具有更大VM计数的服务器。STAGE 4 750和STAGE 5 760可以包括越来越多且多样化的服务器,如果所述服务器受到影响,可能会对越来越多的客户工作负载产生不利影响。再一次,在一个示例中,越来越多的客户工作负载可以对应于越来越多的每个服务器容器计数或每个服务器VM计数。当然,也可以使用客户的工作负载的其他标记来确定在一个阶段或另一个阶段中包括哪些服务器或其他硬件。在一个示例中,通过首先将包部署到尽可能少的阶段,可以管理部署的爆炸半径。虽然图7示出用于安全部署的特定数量的阶段,可以使用更多或更少的阶段。

图8示出根据一个示例的用于部署包的方法的流程图800。步骤802可以包括接收提交。在收到提交后,后续处理步骤中的一些可以并行执行。因此,在该示例中,一个路径可以涉及创建包和验证包,而并行路径可以涉及预扫描和计划部署。作为打包路径的一部分,可以自动创建和验证包。因此,步骤804可以包括创建可以包括有效负载、包部署指令(例如,配置指令或设置)和健康监控器(例如,图6的包600)的包。在该示例中,可以在通过图4的处理器402执行的对应于图5的打包模块506的指令时执行该步骤。该包还可以包括为验证包而确定的一组生产中测试(TIP)目标。步骤808可以包括验证包。在该示例中,可以在通过图4的处理器402执行对应于图5的验证模块502的指令时执行该步骤。包验证可以包括自动处理包作为TIP的一部分。通过这些步骤获得的任何结果可以存储在图4的部署数据库412中。

继续参考图8,计划路径可以涉及自动确定风险因素和可能需要的任何门。因此,在该示例中,步骤806可以包括预扫描有效负载和任何其他提交参数,以确定与包括所提交的有效负载的任何包的部署相关联的风险因素。可以在图4的部署数据库412中跟踪风险因素和门。在该示例中,可以在通过图4的处理器402执行对应于图5的预扫描模块502的指令时执行该步骤。基于这些参数,可以对图7的STAGE 1 720中组织的较少数量的服务器或其他类型的设备的覆盖范围进行评估,和/或图7的STAGE 2 730将提供给定的机群的当前配置。作为该步骤的一部分,部署和监控(例如,图1的部署和监控140)可以提供建议的部署计划(步骤810)。部署计划可以包括在打包和部署期间可以实现的并行度。部署期间的示例并行级别可以涉及机架中作为单个集群的一部分的所有服务器是否可以并行接收包。部署计划还可以包括在将包部署到机群之前所需的测试和验证级别。部署计划还可以将客户及其工作负载的重要性考虑在内。因此,特定客户可以具有对其操作至关重要的设备,并且将包到这些设备的任何部署可以需要附加的签核。与部署计划相关联的细节可以存储在图4的部署数据库412或其他存储中。在该示例中,可以在通过图4的处理器402执行对应于图5的计划模块504的指令时执行该步骤。在步骤812中可以批准或不批准部署计划。在一个示例中,该决定可以通过与机群相关联的管理员做出。

仍参照图8,如果在步骤812中批准部署计划,则在步骤814中,可以部署包。在该示例中,可以在通过图4的处理器402执行对应于图5的部署模块510的指令时执行该步骤。针对图9和图10提供使用最小扫描树方法的部署的附加细节。作为备选,如果在步骤812中拒绝部署,则在步骤816中,可以拒绝提交。作为此步骤的一部分,部署和监控可以记录提交的拒绝。虽然图8示出以特定顺序执行的特定数量的步骤,但是可以以相同的顺序或不同的顺序执行更多或更少的步骤。

图9示出根据一个示例的用于图7的STAGE 1 720中的硬件的扫描树900的图。如前所述,STAGE 1 720可以包括被配置为仅处理合成工作负载的硬件(例如,服务器)。作为示例,作为STAGE 1 720的一部分组织的服务器可以托管不处理任何客户的工作负载或可以对客户或其他用户产生不利影响的其他工作负载的虚拟机。在该示例中,图9示出在STAGE1 720中存在两代(G1 910和G2 940)硬件。可以是有效负载(例如,固件)的部署的目标的具有唯一的SKU(或一些其他项目标识符)的每个设备可以表示为扫描树的边缘。在该示例中,每个设备可以通过三元组(3元组)标识,包括:(1)设备所在的数据中心中的硬件的生成,(2)具有设备的服务器或其他设备的制造商,以及(3)与设备相关联的SKU。因此,在该示例中,STAGE 1 720可以包括以下三元组:G1 910、M1 912、SKU 1 922;G1 910,Ml 912,SKU 2924;G1 910、M2 914、SKU 3 926;G1 910MM 916,SKU 7 928;和G1 910、MM 916、SKU 9 930。STAGE 1 720还可以包括以下三元组:G2 940、Ml 942、SKU 1 952;G2 940,Ml 942,SKU 2954;G2 940、M3 944、SKU 5 956;和G2 940、MM 946、SKU 8 958。关于对应于STAGE 1 720的扫描树900中的三元组的信息可以存储在数据库中(例如,图4的部署数据库412)。虽然图9示出仅具有两代硬件的扫描树,其他代硬件可能会有附加的扫描树。类似地,虽然图9示出特定数量的制造商和特定数量的SKU,但是还可以存在其他制造商和SKU。

图10示出根据一个示例的图7的STAGE 2 730中的硬件的扫描树1000的图。如前所述,STAGE 2 730可以包括至少一些数量的服务器,如果所述服务器受到包部署的影响,可能会影响至少少量用户的活动工作负载。在这个示例中,图10示出STAGE 2 730中的存在两代(G1 1010和G2 1040)硬件。可以作为有效负载(例如,固件)的部署的目标的具有唯一SKU(或一些其他标识符)的每个设备可以表示为扫描树的边缘。在该示例中,类似于针对图9描述的示例,每个设备可以通过三元组(3-tuple)来标识,包括:(1)设备所在的数据中心中硬件的生成,(2)具有设备的服务器或其他设备的制造商,以及(3)与设备相关联的SKU。因此,在该示例中,STAGE 2 730可以包括以下三元组:G1 1010、M1 1012、SKU 1 1022;G1 1010,Ml 1012,SKU 2 1024;G1 1010,Ml 1012,SKU 3 1026;G1 1010、M2 1014、SKU 4 1028;G11010MM 1016,SKU 5 1030;G1 1010,MM 1016,SKU 6 1032;G1 1010,MM 1016,SKU 7 1034;G1 1010,MM 1016,SKU 8 1036;和G1 1010、MM 1016、SKU 9 1038。STAGE 2 730还可以包括以下三元组:G2 1040、M1 1042、SKU 1 1052;G2 1040、Ml 1042,SKU 2 1054;G2 1040、Ml1042,SKU 3 1056;G2 1040、M3 1044、SKU 4 1058;G2 1040、M3 1044、SKU 5 1060;G21040、MM 1046、SKU 7 1062;和G2 1040、MM 1046、SKU 8 1064。在该示例中,STAGE 2 730的扫描树包括更高多样性的组件。作为示例,STAGE 2 730的扫描树包括作为通过制造商M1提供的G1代硬件的一部分的SKU 3 1026。此外,STAGE 2 730的扫描树包括通过制造商MM提供的G1代的附加类型组件。类似地,针对G2代硬件,扫描树包括其他类型的组件。关于对应于STAGE 2 730的扫描树1000中的三元组的信息可以存储在数据库中(例如,图4的部署数据库412)。虽然图10示出仅具有两代硬件的扫描树,但是其他代硬件可以存在附加的扫描树。类似地,虽然图10示出特定数量的制造商和特定数量的SKU,但是可以存在其他制造商和SKU。

图11A和图11B示出根据一个示例的用于部署包的方法的流程图。步骤1102可以包括扫描机群中的硬件以获得关于硬件的信息。在一个示例中,步骤1102可以包括图5的预扫描模块502,所述预扫描模块扫描机群中的硬件,以获取有关机群中部署的硬件组件的信息。通过扫描硬件获得的信息可以存储在图4的部署数据库412中。扫描的信息可以包括关于与机群中的每个硬件组件相关联的代、制造商和SKU的信息。该信息可以组织在一个或多个表中并存储在图4的部署数据库412中。

步骤1104可以包括将机群中的硬件分类为按容积(volume)划分的部署类别。在一个示例中,将机群中的硬件按容积分类为部署类别可以包括处理有关硬件的扫描信息的图5的计划模块504。部署类别可以包括可能需要部署包的至少一个类型(或类别)的组成部分。因此,在一个示例中,每个部署类别可以包括可以接收相同或相似的有效负载的那些组成部分。分类信息可以存储在图4的部署数据库412中。计划模块504还可以确定与计划部署相关联的风险因素。作为示例,计划模块504可以确定可能受部署影响的客户类型。计划模块504可以进一步确定可能需要以确保安全和可靠部署的门和看门狗。与门和看门狗有关的细节也可以记录在图4的部署数据库412中。基于所有这些信息,计划模块504可以评估用于部署和验证的各个阶段可以提供给定机群的相关区域的当前配置的覆盖范围。

步骤1106可以包括将包映射到针对部署所选择的设备。作为该步骤的一部分,计划模块504可以创建将包映射到针对部署包而选择的设备的信息(例如,一个表或一组表)。该信息可以存储在图4的部署数据库412中。

步骤1108可以包括扫描STAGE 1中的硬件,以确定所选择的分集目标是否被满足。如果所选择的分集目标被满足,则流程可以进行到处理STAGE A 1110。否则,流程可以进行到处理STAGE B 1112。在一个示例中,作为该步骤的一部分,如针对图9和图10,计划模块504可以构建(或处理现有的)最小扫描树。目标可以是在以诸如对客户的工作负载的干扰最小的与操作特征一致的方式部署包时获得合理的可信度的量。作为示例,如针对图9所描述的,如果要将包部署到机群中具有五个不同SKU的FPGA,则最小扫描树可以包括选择的三元组集合。在STAGE 1中,允许覆盖选择的分集目标。选择的多样性目标可以是作为部署的计划阶段的一部分可以接收包的不同类型的SKU的百分比。因此,在该示例中,只要80%的不同类型的FPGA接收到该包,则可以足以满足所选择的多样性目标。假设,作为该示例的一部分,STAGE 1仅包括50%的不同类型的FPGA,则计划模块504可以得出所选择的分集目标未被满足的结论,并且处理可以继续处理STAGE B 1112。作为备选,如果STAGE 1包括80%的不同类型的FPGA,然后计划模块504可以进行到处理STAGE A 1110。

关于图11B,如果扫描STAGE 1中的硬件没有实现满足所选择的分集目标,则流程可以从处理阶段B 1112继续。因此,步骤1114可以包括扫描STAGE 2中的硬件以确定所选择的分集目标是否被满足。在该示例中,如关于图11所描述的,计划模块504可以构建(或处理现有的)最小扫描树。类似于关于图11A的FPGA示例,计划模块504可以扫描STAGE 2中的硬件,以确定所选择的分集目标是否被满足。因此,如果STAGE 1和STAGE 2中的FPGA的SKU的组合包括FPGA的80%的SKU,则计划模块504可以进行到处理阶段A 1110。否则,流程可以进行到步骤1116。

步骤1116可以包括扫描STAGE 3中的硬件以确定所选择的分集目标是否被满足。在该示例中,计划模块504可以以与关于图10所描述的类似方式来构建(或处理现有的)STAGE 3的最小扫描树。类似于关于图11A的FPGA示例,计划模块504可以扫描STAGE 3中的硬件以确定所选择的分集目标是否被满足。因此,如果STAGE 1、STAGE 2和STAGE 3中的FPGA的SKU的组合包括FPGA的SKU的80%,则计划模块504可以进行到处理阶段A 1110。否则,流程可以进行到步骤1118。

步骤1118可以包括继续扫描附加阶段直到满足选择的分集目标或所有剩余阶段已被扫描。在一个示例中,可以基于包类型来选择所选择的分集目标。作为备选或附加地,可以基于影响类型来选择所选择的多样性目标。因此,对于特定包装类型,所选的多样性目标可能是SKU的75%,而对于另一种包装类型,所选的多样性目标可能是90%。

一旦确定了机群的状态并且确定了用于特定包或包的组的部署的最小扫描树,处理可以进行到接下来的步骤。这些步骤可以包括确定部署的速度。在一个示例中,部署的速度可以与部署包括的门的数量有关。每个门可以对应于指定在部署过程的每个步骤之后部署可以延迟的时间的等待时间段(例如,特定数量的小时、天或月)。作为示例,对于将特定包部署到CPU,部署可以在部署到最小扫描树后的24小时内进行门;在24小时后,包可以部署到具有相关SKU的其余机群中的CPU。在一个示例中,当部署涉及经由控制平面(例如,图2的控制平面230)处理的设备相对于经由数据平面处理的设备时,门可以指定更长的等待时间段(例如,图2的数据平面220)。

在另一个示例中,部署的速度可以与部署的影响有关。因此,门的数量和通过门指定的等待时间段可以取决于部署对机群的影响。作为示例,特定部署可以表征为有影响,而其他部署可以表征为无影响。部署也可以按照无影响和有影响之间的滑动比例来表征。该过程可以包括计划模块504,所述计划模块考虑包类型和包的影响类型二者。包括影响类型和包类型的与影响对应的信息可以存储在数据库(例如,图4的部署数据库412)中的表中。

图12示出根据一个示例的影响表1200。影响表1200可以用于保持跟踪包部署对机群中的各种设备的影响。作为示例,影响表1200可以用于将设备上的影响分类为多个影响类型并且将包分类为多个包类型。在一个示例中,影响表1200可以存储在图4的部署数据库412中。在该示例中,影响表1200可以包括被组织为行和列的信息,包括行中的影响类型1210和列中的包类型1240。影响类型1210可以包括CPU暂停1212、存储暂停1214、网络暂停1216、FPGA暂停1218、重启1220、功率增加1222、性能下降1224和热影响1226。包类型1240可以包括微码1242、通用可扩展固件接口(UEFI)/基本输入/输出系统(BIOS)1244、基板管理控制器(BMC)1246、固态驱动器(SSD)1248、硬盘驱动器(HDD)1250和FPGA 1252。FPGA 1252还可以包括两个包子类型:FPGA平台1254和FPGA图像1256。虽然影响表1200示出以特定方式组织的特定信息,但是可以以不同的方式包括和组织更多或更少的信息。此外,影响表1200中的信息可以封入在包括链接表或其他结构在内的其他类型的数据结构中。作为另一个示例,影响表中的信息可以被分布,使得每个包的影响信息可以与包一起作为元数据或与包相关联的其他数据结构被包括在内。

继续参照图12,在该示例中,如表中所示,部署具有微码的包可以使得CPU暂停小于X秒(Xs);部署具有UEFI/BIOS的包可以使得CPU暂停少于X秒(Xs);并且将包部署到FPGA平台可以使得CPU暂停少于X秒(Xs),其中X是数字。此外,在该示例中,将包部署到SSD可以引起Y秒(Ys)的存储暂停,而将包部署到HDD可以引起Z秒(Zs)的存储暂停,其中Y和Z中的每个是数字。此外,将包部署到FGPA平台可以引起小于F秒(Fs)的网络暂停。将包部署到FPGA平台可以使得FPGA暂停小于P秒(Ps)。另一方面,将包部署到FPGA图像可以是特定于图像的。

仍然参照图12,在该示例中,影响表1200可以包括关于可以引起重启的分组类型的信息。因此,在该示例中,部署UEFI/BIOS包和部署包到FPGA平台可以总是引起重启;然而,将包部署到SSD或HDD可以仅在某些时候引起重启。影响表1200还可以包括关于基于特定包类型的部署的功率变化(例如,增大的功率)的信息。对于微码、UEFI/BIOS、SSD和HDD包类型,功率增大可以是小的;然而,对于FPGA平台包类型,功率的增大可以是中等的,而对于FPGA图像,功率的增大可能是特定于图像的。影响表1200还可以包括关于基于特定包类型的部署的性能变化(例如,性能下降)的信息。对于微码、UEFI/BIOS、SSD和HDD包类型,性能下降可以是小的。影响表1200还可以包括关于基于特定包类型的部署的热影响(例如,更高或更低的热影响)的变化的信息。对于微码、UEFI/BIOS和BMC包类型,热影响可以是低的。

虽然影响表1200包含关于特定包类型和影响类型的信息,但是影响表1200可以包含关于附加的或更少的包类型和影响类型中的每个的特定信息。作为示例,影响表1200可以包括关于对向网络接口控制器(NIC)、架顶(TOR)交换机、架中(MOR)交换机、路由器、配电单元(PDU)和机架级不间断电源(UPS)系统部署包的影响的信息。

图13示出根据一个示例的机器学习系统1300。机器学习系统1300可以包括处理器1302、I/O设备1304、存储器1306、传感器1310、显示器1320和网络接口1322,它们可以经由总线系统1330互连。总线系统1330可以经由包括有线网络和无线网络在内的网络耦合到数据平面(例如,图2的数据平面220)和控制平面(例如,图2的控制平面230)二者。处理器1302可以执行存储在存储器1306中的指令。存储器1306可以是非易失性存储器或易失性存储器(例如,闪存、DRAM、SRAM或其他类型的存储器)的任何组合。传感器1310可以包括被配置为检测和/或接收信息(例如,与设备相关联的状况)的遥测或其他类型的传感器。

继续参考图13,传感器1310可以包括被配置为感测与CPU、存储器或其他存储组件相关联的状况的传感器、FPGA、主板、基板管理控制器等。传感器1310还可以包括被配置为感测与机架、机箱、风扇、电源单元(PSU)等相关联的状况的传感器。传感器1310还可以包括被配置为感测与网络接口控制器(NIC)、架顶(TOR)交换机、架中(MOR)交换机、路由器、配电单元(PDU)、机架级不间断电源(UPS)系统等相关联的状况的传感器。传感器1310可以使用传感器API来实施,所述传感器API可以允许传感器1310经由传感器API接收信息。被配置为检测或侦听特定状况或事件的软件可以经由传感器API传送与部署和监控400正在监控的设备相关联的任何状况。并入数据中心内以感测与安装在其中的组件相关联的状况的远程传感器或其他遥测设备可以感测状况并将信息提供给传感器1310或处理器1302。此外,部署和监控还可以将与事件或状况相关的数据传送给传感器1310或处理器1302。作为示例,通过图4的传感器410感测的任何事件或状况可以根据需要被提供到处理器1302。

显示器1320可以是任何类型的显示器,诸如LCD、LED或其他类型的显示器。网络接口1322可以包括通信接口,诸如以太网、蜂窝无线电、蓝牙无线电、UWB无线电或其他类型的无线或有线通信接口。虽然图13将机器学习系统1300示出为包括以特定方式布置和耦合的特定数量的组件,其可以包括不同地布置和耦合的更少或附加的组件。此外,与机器学习系统1300相关联的功能可以根据需要进行分布。

图14示出根据一个示例的包括供机器学习系统1300使用的指令和数据的存储器1400(例如,图13的存储器1306)。在该示例中,指令可以以包括代码、数据或二者的块或模块的形式组织在存储器1400中。在该示例中,存储器1400可以包括基于学习的分析器(LBA)1410、训练数据1420、机器学习(ML)模型1430、影响表1440、有效负载参数1450、包参数1460、部署参数1470和机群参数1480。虽然图14示出以特定方式组织的指令和数据,指令和数据可以以各种方式组合或分布。

继续参考图14,基于学习的分析器(LBA)1410可以实施监督学习算法,所述算法可以基于输入数据进行训练,并且一旦被训练,其可以基于训练做出预测或指示。在该示例中,LBA 1410可以实施诸如线性回归、用于回归设置的支持向量机(SVM)、用于回归设置的随机森林、用于回归设置的梯度提升树和神经网络等技术。线性回归可以包括对自变量和因输出变量之间的过去关系建模。神经网络可以包括用于创建输入层、一个或多个隐藏层和输出层的人工神经元。每个层可以被编码为以系数或常数的形式表示的权重矩阵或向量,所述系数或常数可能已经经由神经网络的离线训练获得。神经网络可以实施为循环神经网络(RNN)、长短期记忆(LSTM)神经网络或门控循环单元(GRU)。基于监督学习的模型所需的所有信息可以转换为对应于任何这些技术的向量表示。以LSTM为例,LSTM网络可以包含一系列重复的RNN层或其他类型的层。LSTM网络的每个层都可以在给定的时间步长消耗一个输入,例如,来自先前时间步长的层的状态,并可以产生一组新的输出或状态。在使用LSTM的情况下,可以将单个内容块编码为单个向量或多个向量。作为示例,词或词的组合(例如,短语、句子或段落)可以编码为单个向量。每个块可以编码到LSTM网络的单个层(例如,特定的时间步长)中。LSTM层可以使用一组方程来描述,以下所示:

it=σ(Wxixt+Whiht-1+Wcict-1+bi

ft=σ(Wxfxt+Whfht-1+Wcfct-1+bf)

ct=ftct-1ittanh(Wxcxt+Whcht-1+bc)

ot=σ(Wxoxt+Whoht-1+Wcoct+bo)

ht=ottanh(ct)

在该示例中,在每个LSTM层内,如果需要,可以使用向量运算(例如,点积、内积或向量加法)或非线性运算的组合来处理输入和隐藏状态。

虽然图14将LBA 1410描述为包括指令,指令可以被编码为对应于A/I处理器的硬件。在这种情况下,与基于学习的分析器相关联的功能中的一些或全部可以被硬编码或以其他方式提供作为A/I处理器的一部分。作为示例,A/I处理器可以使用具有必要功能的FPGA来实施。

训练数据1420可以是可意用于训练神经网络模型或类似机器学习模型的数据。在一个示例中,训练数据1420可以用于训练机器学习模型,以最小化与包的部署相关联的误差函数。在一个示例中,误差函数的最小化可以通过获得关于各种有效负载和包参数的用户反馈来获得,并为卷积运算或其他类型的运算确定适当的权重,以作为基于机器的学习的一部分来执行。作为示例,可以向测试环境中的用户提供一组具有已知有效负载和包参数的预选映射函数,并询问他们选择他们喜欢的映射函数。

ML模型1430可以包括可以用作机器学习系统1300的一部分的机器语言模型。ML模型1430可以包括通过训练过程创建的模型。在该示例中,训练数据1420可以包括目标属性,诸如用于部署包的选定多样性目标。作为LBA 1410的一部分而包括的适当的机器学习算法可以在训练数据1420中找到将给定的一组输入参数(例如,有效负载参数和包参数)映射到用于部署包的选择的多样性目标的模式。在另一个示例中,机器学习算法可以在训练数据1420中找到将输入参数映射到部署分类的模式。示例部署分类可以包括至少两个类别:有影响或无影响。也可以使用其他机器语言模型。作为示例,训练数据1420可以用于训练将输入包类型映射到与包的部署相关联的任何影响的机器语言模型。影响可以以与关于影响表1440描述的相似的形式表示。因此,影响表1440可以与图12的影响表1200相似或相同。

有效负载参数1450可以包括与有效负载相关联的参数。在一个示例中,有效负载参数可以包括有效负载的类型、有效负载的目标SKU、由有效负载部署引起的变化程度、任何先决条件、任何已知影响和所需部署时间。有效负载参数1450可以从与有效负载相关联的元数据中提取或以其他方式通过如前所述的提交过程获得。

包参数1460可以包括与包括有效负载的包相关联的参数。在一个示例中,包参数1460可以包括与包所包括的健康监控类型有关的信息。包参数1460还可以包括包类型以及部署包所需的门和看门狗。

部署参数1470可以包括关于推出计划的信息。作为示例,部署参数1470可以包括对部署所需的目标状况的评估。这些状况可以包括关于是否需要任何设备重置、节点重启、节点重新整理、供电循环或磁盘重新格式化的信息。这些参数可以作为与包相关联的指令和/或元数据的一部分被包括在内。

机群参数1480可以包括关于整个机群或可以是部署目标的机群子集的信息。机群参数可以包括与和机群或机群的子集中的数据中心相关联的物品类型(例如,SKU)相关的信息。该信息可以包括SKU中的每个的数量。此外,机群参数1480可以包括关于包括在机群或机群的子集中的数据中心的附加细节。作为示例,有关数据中心的信息可以包括位置信息、数据中心的AC电压供应(例如,120伏或240伏)、运营商信息(例如,数据中心是否通过服务提供者或通过服务提供者的客户运营)。可以使用图5的部署模块510来评估机群参数1480。机群参数1480中的一些可以存储在图4的部署数据库412中。

ML模型1430可以包括被训练为优先考虑具有最小影响的目标的模型。因此,在一个示例中,ML模型可以了解到,当需要重启节点时,应首先对空节点进行部署——因为它们没有运行任何工作负载。ML模型1430还可以包括可以被训练以接收与有效负载、包、部署和机群相关联的参数作为输入的模型,并且确定部署步骤中的一些是否可以并行执行。此外,ML模型1430可以包括可以被训练为接收与有效负载、包、部署和机群相关联的参数作为输入的模型,并确定在部署到机群期间可能需要的特定门和看门狗。此外,ML模型1430可以包括可以被训练为接收与有效负载、包、部署和机群相关联的参数作为输入的模型,并确定应该作为包的部署的一部分包括的健康监控类型。最后,也可以使用其他自动反馈模型。作为示例,这样的自动反馈模型可以不依赖于机器学习;代替地,他们可以依赖其他反馈机制来允许自动创建用于部署的包或允许自动创建用于将包部署到机群的部署计划。无论如何,在一些情况下,自动反馈模型可以使用诸如强化学习模型的机器语言模型进行学习。

图15示出根据一个示例的用于创建包括有效负载的包以部署到一组设备的方法的流程图1500。步骤1502可以包括接收有效负载,其中有效负载具有涉及将有效负载部署到该组设备的相关联的一组有效负载参数。如前所述,可以经由提交门户或其他方式接收有效负载。有效负载参数可以是关于图14所解释的有效负载参数1450。

步骤1504可以包括使用处理器,自动创建用于部署到该组设备的包,其中包包括用于将有效负载部署到该组设备的指令,并且其中指令指定以下多个操作中的至少一个操作,这多个操作是至少基于该相关联组的有效负载参数的子集从机器学习模型得出的。在该示例中,处理器1302可以执行存储在存储器1306中的指令(例如,对应于基于学习的分析器1410的指令)以执行该步骤。部署有效负载的指令可以指定操作,诸如部署所需的门和/或看门狗的数量。操作可以涉及与将包部署到该组设备相关的任何部署参数(例如,图14的部署参数1470)。作为示例,操作可以指定包括推出计划的部署时间表和范围。操作还可以包括用于包部署的健康监控信息。健康监控信息可以包括监控什么以及与监控信息相关联的触发阈值。

在一个示例中,自动创建用于部署到该组设备的包可以包括处理与有效负载相关联的元数据或其他提交参数。机器学习模型可以基于训练数据进行训练,训练数据包括该相关联组的有效负载参数的至少一个子集与对将有效负载部署到该组设备的影响进行分类的一组标签之间的映射。在一个示例中,该组标签可以包括将影响分类为有影响的第一标签和将影响分类为无影响的第二标签。关于图14描述的任何ML模型1430可以按照前面的解释进行训练和使用。

图16示出根据一个示例的用于将包部署到机群的方法的流程图1600。步骤1602可以包括评估机群,以确定与将包部署到机群相关联的一组机群参数。在该示例中,处理器1302可以执行存储在存储器1306中的指令(例如,对应于基于学习的分析器1410的指令),以执行该步骤。评估机群可以包括处理与机群相关联的元数据。元数据可以包括关于机群的使用和组成的信息。元数据可以存储在图4的部署数据库412中。在一个示例中,如先前关于图11A和图11B所解释的,评估机群还可以包括扫描与机群相关联的硬件。

步骤1604可以包括使用处理器,自动创建用于将包部署到机群的部署计划,其中部署计划包括用于将包部署到机群的指令,并且其中指令至少基于该组机群参数的子集指定源自机器学习模型的多个操作中的至少一个。在该示例中,处理器1302可以执行存储在存储器1306中的指令(例如,对应于基于学习的分析器1410的指令)以执行该步骤。机器学习模型可以基于训练数据进行训练,所述训练数据包括机群参数的至少子集和与部署计划相关的至少一个标签之间的映射。此外,机器学习模型可以基于关于将包部署到机群的反馈进行训练。多个操作可以包括对应于监控包向机群的部署的动作。因此,如前所述,部署监控器可以监控对机群的部署。关于图5的部署监控器512提供了关于部署监控器的附加细节。操作可以包括关于监控什么的信息以及与所监控的信息相关联的触发阈值。此外,操作可以包括对应于生成关于包括机群中的一组设备的最小扫描树的信息的动作。关于图11A和图11B提供涉及生成关于最小扫描树的信息的附加细节。

在一个示例中,可以以对客户工作负载具有最小影响的方式分段在整个机群中推出包。因此,首先可以将包部署到空节点(例如,不托管任何工作负载的节点)。接下来,可以将包部署到具有最小数量(例如,两个)工作负载(例如,基于容器计数或节点所支持的虚拟机的计数确定)的那些节点。接下来,可以将包部署到那些工作负载数量稍多的节点等。如果部署使得硬件功能中断,这可以限制爆炸半径并有助于遏制对客户工作负载的任何损害。

还可以实施逻辑报告服务,以保持实时跟踪部署。该服务可以访问存储在图4的部署数据库412中的数据以及存储在其他来源的数据,并自动生成报告。可以使用诸如BI的业务分析工具来实施报告服务。还可以实施部署仪表板。

图17示出根据一个示例的部署仪表板1700。部署仪表板1700包括涉及关于各种包类型的部署的机群的当前状态的信息。可以实时显示和跟踪信息。涉及机群的当前状态的信息可以存储在图4的部署数据库412中,并且可以通过图5的部署监控器512经由部署仪表板1700检索和显示。在该示例中,部署仪表板1700可以包括新鲜度信息,所述新鲜度信息指示关于特定包类型的部署的机群的当前状态。在该示例中,部署仪表板1700可以包括按包类型表示当前机群状态的计量器。部署仪表板1700还可以指示计量器是与控制平面设备还是数据平面设备相关。此外,部署仪表板1700可以指示被跟踪的部署影响较小或有影响。因此,计量器1710可以指示与底盘管理器相关的包的部署的当前状态。计量器1720可以指示与电源单元(PSU)相关的包的部署的当前状态。计量器1730可以指示与CPU微码相关的包的部署的当前状态。计量器1730可以指示与CPU微码相关的包的部署的当前状态。计量器1740可以指示与基带管理控制器(BMC)相关的包的部署的当前状态。计量器1750可以指示与UEFI/BIOS相关的包的部署的当前状态。计量器1760可以指示与HDD/SDD相关的包的部署的当前状态。虽然图17示出具有以特定方式组织的特定数量的计量器的部署仪表板1700,部署仪表板1700可以包括可以不同地组织的附加的或更少的计量器。作为示例,部署仪表板1700可以包括用于跟踪其他包类型的仪表,所述包类型包括例如FPGA平台、FPGA图像、网络接口控制器(NIC)、架顶(TOR)交换机、架中(MOR)交换机、路由器、配电单元(PDU)和机架级不间断电源(UPS)系统。

此外,可以提供其他仪表板,包括用于跟踪每个活动部署的仪表板。每个这样的仪表板可以显示部署进度,包括当前部署率和预计完成时间。除了活动部署之外,还可以显示待定部署。对于挂起的部署,仪表板可以包括部署的状态,诸如已提交、打包、测试、等待、中止或已完成。通过部署监控器(例如,图5的部署监控器512)可以使关于每个部署(活动或未决)的附加细节可用。除了仪表板之外,部署监控器512还可以提供关于关键结果的报告,诸如部署安全性、部署时间、检测效率、部署影响和部署并行性。

总之,本公开涉及一种用于创建包括有效负载的包以部署到一组设备的方法。该方法可以包括接收有效负载,其中有效负载具有与将有效负载部署到该组设备有关的相关联的一组有效负载参数。该方法还可以包括使用处理器自动创建用于部署到该组设备的包,其中该包包括用于将有效负载部署到该组设备的指令,并且其中该指令指定多个操作中的至少一个操作,该多个操作是至少基于相关联的一组有效负载参数的子集从机器学习模型得出的。

自动创建用于部署到该组设备的包还可以包括处理与有效负载相关联的元数据或其他提交参数。机器学习模型可以是基于训练数据来训练的,训练数据包括相关联的一组有效负载参数的至少子集与一组标签之间的映射,一组标签对将有效负载部署到该组设备的影响进行分类。该一组标签可以包括将影响分类为有影响的第一标签和将影响分类为无影响的第二标签。

多个操作可以包括与以下相关的动作:与将包部署到一组设备相关联的调度。多个操作可以包括与以下相关的动作:与将包部署到一组设备相关联的门。多个操作可以包括与以下相关的动作:与将包部署到一组设备相关联的看门狗。

在另一个示例中,本公开涉及一种用于将包部署到机群的方法。该方法可以包括评估机群,以确定与将包部署到机群相关联的一组机群参数。该方法还可以包括使用处理器自动创建用于将包部署到机群的部署计划,其中部署计划包括用于将包部署到机群的指令,并且其中指令指定如下多个操作中的至少一个操作,多个操作是至少基于该组机群参数的子集从机器学习模型得出的。

评估机群可以包括处理与机群相关联的元数据。机器学习模型可以基于训练数据进行训练,所述训练数据包括机群参数的至少子集和与部署计划相关的至少一个标签之间的映射。机器学习模型可以基于关于将包部署到机群的反馈来训练。

多个操作可以包括对应于监控包向机群的部署的动作。多个操作可以包括对应于生成关于包括机群中的一组设备的最小生成树的信息的动作。

在又一个示例中,本公开涉及一种用于将包部署到机群的系统。该系统可以被配置为评估机群,以确定与将包部署到机群相关联的一组机群参数。该系统还可以被配置为使用处理器自动创建用于将包部署到机群的部署计划,其中部署计划包括用于将包部署到机群的指令,并且其中指令至少基于该机群参数的子集指定源自机器学习模型的多个操作中的至少一个。

作为评估机群的一部分,系统还可以被配置为处理与机群相关联的元数据。机器学习模型可以基于训练数据进行训练,所述训练数据包括至少机群参数的子集和与部署计划相关的至少一个标签之间的映射。机器学习模型可以基于关于将包部署到机群的反馈来训练。

多个操作可以包括对应于监控包向机群的部署的动作。多个操作可以包括对应于生成关于包括机群中的一组设备的最小生成树的信息的动作。

在又一个示例中,本公开涉及一种用于创建包括有效负载的包以部署到一组设备的方法。该方法可以包括接收有效负载,其中该有效负载具有与将有效负载部署到该组设备有关的相关联的一组有效负载参数。该方法还可以包括使用处理器自动创建用于部署到该组设备的包,其中该包包括用于将有效负载部署到该组设备的指令,并且其中该指令至少基于相关联组的有效负载参数的子集指定源自自动反馈模型的多个操作中的至少一个。

自动创建用于部署到该组设备的包可以包括处理与有效负载相关联的元数据或其他提交参数。自动反馈模型可以包括基于训练数据训练的强化学习模型,所述训练数据包括相关联组的有效负载参数的至少子集与对将有效负载部署到该组设备的影响进行分类的标签集之间的映射。该组标签可以包括将影响分类为有影响的第一标签和将影响分类为影响较小的第二标签。

多个操作可以包括与和将包部署到该组设备相关联的调度相关的动作。多个操作可以包括与和将包部署到一组设备相关联的门相关的动作。多个操作可以包括与和将包部署到一组设备相关联的看门狗相关的动作。

应当理解,本文中描述的方法、模块和组件仅仅是示例性的。作为备选或另外地,本文中描述的功能可以至少部分地通过一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、特定应用集成电路(ASIC)、特定应用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。在抽象但仍然明确的意义上,组件的任何布置实现相同的功能被有效地“关联”,从而实现所需的功能。因此,本文中组合以实现特定功能的任何两个组件可以被视为彼此“关联”,从而实现期望的功能,而与架构或中间组件无关。同样,任何两个如此关联的组件也可以被视为彼此“可操作地连接”或“耦合”以实现所需的功能。

与本公开中描述的一些示例相关联的功能还可以包括存储在非暂时性介质中的指令。本文中使用的术语“非暂时性介质”是指任何存储使机器以特定方式运行的数据和/或指令的介质。示例性非暂时性介质包括非易失性介质和/或易失性介质。非易失性介质包括例如硬盘、固态驱动器、磁盘或磁带、光盘或磁带、闪存、EPROM、NVRAM、PRAM或其他这样的介质,或网络版本的这样的媒体。易失性介质包括例如动态存储器,诸如DRAM、SRAM、高速缓存或其他这样的介质。非暂时性媒体与传输媒体不同,但可以与传输媒体结合使用。传输媒体用于向机器传输数据和/或指令或从机器传输数据和/或指令。示例性传输介质包括同轴电缆、光纤电缆、铜线和无线介质,诸如无线电波。

此外,本领域技术人员将认识到,上述操作的功能之间的界限仅仅是说明性的。多个操作的功能可以组合成单个操作,和/或单个操作的功能可以分布在附加操作中。此外,备选实施例可以包括特定操作的多个实例,并且在各种其他实施例中可以改变操作的顺序。

虽然本公开提供了具体示例,但是在不脱离如以下权利要求中阐述的本公开的范围的情况下可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的,并且所有这些修改意在包括在本公开的范围内。本文中关于特定示例描述的任何益处、优点或问题的解决方案不应被解释为任何或所有权利要求的关键、必需或基本特征或要素。

此外,如本文中所用的,术语“一”或“一个”被定义为一个或多于一个。此外,在权利要求中使用诸如“至少一个”和“一个或多个”的介绍性短语不应被解释为暗示通过不定冠词“一”或“一个”对另一权利要求要素的引入将包含这样的引入的权利要求要素的任何特定权利要求限制于仅包含一个这样的要素的发明,即使同一权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词。这同样适用于定冠词的使用。

除非另有说明,否则使用诸如“第一”和“第二”的术语来任意区分这样的术语所描述的元素。因此,这些术语不必然意在指示这样的元素的时间或其他优先级。

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于改进人机接口性能的汽车电子控制单元预启动

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!