映像的漂移管理的制作方法

文档序号:11160857阅读:210来源:国知局
本公开涉及部署资源的标准化。本公开更具体地涉及用于跨不同目标软件部署来推荐、创建和管理标准化的配置级别的计算机实现的技术。
背景技术
::本节中描述的方法是可以被追求的方法,但不一定是先前已经构想或追求的方法。因此,除非另有指示,否则不应当假设本节中描述的方法中的任何方法仅仅由于它们被包括在本节中而被认为是现有技术。随着时间的推移,许多数据中心经历两种主要类型的变换。第一,随着软件部署的数量日益增加,典型的数据中心经历显著增长。第二,随着技术的进步或者对底层部署模型的改变,数据中心内的软件架构通常被改进或更新。这些变换经常导致孤立、分散、变化和复杂的软件部署。一些企业部署具有跨多个版本和各种软件补丁级别的数百和数千个软件部署。数据中心内软件部署的日益增加和差异化(divergent)的本质为系统管理员带来了重大挑战。大的、变化的分布式环境可能需要相当数量的带外(outofband)紧急改变和自组织(ad-hoc)改变以保持系统正确地执行。由于差异持续存在并且随着附加的部署和更新而增长,因此不可预测的故障和计划外停机的风险可能增加。此外,软件部署的变化和复杂的本质可能导致资源利用率差并且使计划的维护窗口存在问题。附图说明在附图的图中通过示例的方式而不是限制的方式示出了各种实施例,在附图中相似的附图标记指代相似的元件并且其中:图1示出了用于管理部署资源的标准的示例系统;图2示出了用于将目标映射到推荐的软件配置级别的示例过程;图3示出了用于计算结束状态定义的示例过程;图4示出了用于跨与特定推荐桶相关联的不同目标来规格化(normalize)补丁的示例过程;图5示出了可以被用来创建黄金映像(goldimage)的不同方法;图6示出了随着补丁随时间被发布对结束状态定义和对应黄金映像的更新;图7示出了黄金映像的基础版本和后续版本的创建;图8示出了用于跨多个目标维护标准的示例过程;图9示出了订阅映像并且遵循对可用的最新版本的更新的目标;图10示出了其中多个黄金映像被维护的示例数据中心环境;图11示出了将签名映射到对应的软件配置描述的示例散列表;图12示出了已经用多个签名标记的示例黄金映像;图13示出了使用软件配置级别签名执行合规性(compliance)检查的示例过程;图14示出了用于黄金映像的版本的不同状态之间的转移;图15示出了在新映像版本创建期间在黄金映像内发生的周期;图16示出了用于识别群集组内的离群(rogue)目标的示例过程;图17示出了基于离群目标如何被分类来协调(reconcile)离群目标的不同方法;图18示出了合并离群目标的漂移(drift)补丁的示例映像更新;图19A、19B、19C、19D、19E和19F示出了可以被用来管理标准化过程的示例控制面板(dashboard)和其它界面;以及图20是示出可以在其上实现实施例的计算机系统的框图。具体实施方式在下面的描述中,为了解释的目的,阐述了许多具体细节,以便于提供对本公开的透彻理解。然而,明显可以在没有这些具体细节的情况下实践本发明。在其它实例中,以框图形式示出结构和设备,以便于避免不必要地使本发明模糊。映像顾问(advisor)总体概述在各种实施例中,描述了用于为了减少配置污染而生成推荐的计算机系统、存储的指令和技术步骤。这些推荐一般可以识别受管理环境内的不同软件配置的数量可以被最小化或以其它方式减少的方式。通过减少污染,环境可以变得更易于管理和安全。此外,由孤立、分散、变化和复杂的部署消耗的计算资源的量可以被显著改进。根据一个实施例,映像顾问包括用于基于与多个目标相关联的属性集合生成软件配置分类集合的逻辑和接口。映像顾问将软件配置分类集合中的每个相应的软件配置分类与该多个目标中的一个或多个目标相关联。对于软件配置分类集合中的每个相应的软件配置分类,映像顾问生成并提供识别用于该多个目标中的该一个或多个目标的推荐的源组件集合的推荐。在另一个实施例中,映像顾问包括用于基于与多个目标相关联的一个或多个属性的集合来确定当前软件配置级别集合的逻辑和接口。软件配置级别集合中的每个相应的当前软件配置级别可以与该多个目标中当前在相应的当前软件配置级别被配置的至少一个目标相关联。映像顾问还基于与该多个目标相关联的一个或多个属性的集合来确定推荐的软件配置级别的集合。推荐的软件配置级别集合中的每个推荐的软件配置级别用于该多个目标中的至少一个目标。映像顾问可以显示当前配置级别和/或推荐的软件配置级别的集合。填充内容总体概述数据中心或其它受管理环境内的软件资源可以在不同的配置级别被部署。例如,软件资源的不同部署可以具有不同级别的补丁,以使得尚未在一个部署处应用的一个或多个补丁在另一个部署处被应用。潜在的配置的数量可以对可管理性产生负面影响并且使跨不同部署的标准化变得复杂。在各种实施例中,描述了用于为可能处于不同配置级别的多个软件部署确定推荐的标准软件配置级别的计算机系统、存储的指令和技术步骤。基于该确定,可以生成满足推荐的标准源组件集合的映像。该映像可以被用来更新不满足所推荐的标准的软件部署。在一个实施例中,基于对多个目标软件部署的补丁级别的分析来创建映像的基础版本。补丁信息可以跨该多个目标软件部署被规格化,以提供要包括在推荐的映像的标准和基础版本中的补丁的列表。在一个实施例中,利用来自服务提供商的外部推荐来进一步扩充推荐的补丁信息。外部推荐可以包括诸如针对特定软件产品的全球供应商推荐之类的租户通用的补丁推荐,或者诸如用于诊断的支持单(diagnosedsupportticket)的补丁之类的租户特定的补丁推荐。扩充的补丁信息可以被合并到为该多个目标软件部署创建的映像的基础版本中。推荐可以被用来确定将哪个配置级别作为标准推荐。软件配置签名概述描述与特定软件部署相关联的配置级别可以涉及许多属性。例如,示例描述可以包括识别产品的名称、发布日期和平台以及唯一地识别被应用的每个补丁(如果有的话)的信息的属性。作为另一个示例,复合目标可以由多个不同的软件产品/应用或其它元素组成。每个软件应用可以包括多个插件或其它子元素,并且每个子元素可以是利用其自身的生命周期和补丁能够独立更新的。鉴于这样的复杂性,确定用于特定目标的配置级别可以是涉及大量属性比较并且消耗宝贵处理资源的时间密集型过程。在各种实施例中,描述了用于生成软件配置级别签名的计算机系统、存储的指令和技术步骤。配置级别签名允许目标的配置级别的快速比较并且允许合规性检查,以确定特定目标是否满足特定配置级别。配置级别签名还提供当部署的数量快速增加时执行配置比较的可扩展性。在一个实施例中,基于与软件部署相关联的摘要(digest)信息,为目标软件部署生成软件配置级别签名。摘要信息可以包括属性的有序集合,该属性的有序集合描述或以其它方式识别软件部署从其运行的源组件集合。例如,摘要信息可以识别软件系统的基础版本和应用到该软件系统的所有补丁。摘要信息还可以识别软件映像内的所有组件及其对应的补丁级别。在复合系统中,组件可以包括父软件单元以及共同作为父软件单元的一部分的独立却相关联的子软件块。每个组件可以具有其自身的生命周期。配置级别签名可以被存储为用于相关联的软件部署的目标特性。在另一个实施例中,为源组件的目标集合生成签名。这个签名可以与和一个或多个相应软件部署相关联的一个或多个签名的集合进行比较。如果特定软件部署的签名与用于源组件的目标集合的签名不匹配,则该软件部署可以被分类为不合规。版本管理概述数据中心和其它环境内的标准可以随时间演变。例如,软件部署可以被持续地添加、修补或以其它方式修改。当软件升级和其它补丁被发布时,标准可以被更新以捕获这些改变。在各种实施例中,描述了用于管理用于目标软件部署组的标准的计算机系统、存储的指令和技术步骤。在一个实施例中,为订阅黄金映像的一组目标软件部署维护订阅数据。黄金映像表示对于订阅的目标来说要遵循的标准。目标的组可以被称为“群集组”,因为目标遵循黄金映像的领导并且因此“群集”在一起。如果黄金映像改变,则订阅的目标遵循并且应用改变,以跟上最新的标准。黄金映像的多个映像版本可以被维护。每个不同版本表示不同的配置级别并且跟踪黄金映像标准随时间的演变。例如,当创建映像的新版本时,一个或多个后续版本可以保持活动。这允许订阅的目标有时间改变到新标准,从而阻止不想要的和潜在的破坏性中断。在一个实施例中,映像的新版本的创建导致映像的结束状态定义和对应的载荷(payload)创建的修订。新映像版本的创建可以包括来自一个或多个源的附加补丁的计算。映像的新版本可以遵循特定的生命周期。在一个实施例中,映像版本通过多个状态转移,所述多个状态包括草案状态、活动受限状态、活动当前状态、活动状态和/或退休状态中的一个或多个。漂移管理概述最初共享相同配置级别的不同软件部署可以随时间漂移。例如,没有应用于一个目标部署的自组织更新或其它补丁可以在另一个目标部署处被应用,或者由于错误或回滚(rollback)一些更新可能没有在某些目标处应用。如果保持不受管理,则随着更多的补丁被发布和应用,软件部署可能进一步漂离。在各种实施例中,描述了用于管理遵循标准的多个软件部署之间的漂移的计算机系统、存储的指令和技术步骤。通过阻止或减少漂移,跨越潜在大量软件部署的标准可以被更容易地维护。这允许更可管理和安全的环境,并且可以通过阻止部署变得太孤立、分散、复杂和变化来优化资源利用。在一个实施例中,存储识别用于多个目标软件部署的标准配置级别的结束状态定义。漂移管理系统可以确定目标软件部署是否已经从由结束状态定义识别的标准配置级别漂移。如果至少一个目标软件部署已经漂移,则漂移管理系统可以执行协调,以使漂移者恢复与标准合规。标准化管理系统本文描述的技术可以由标准化管理系统实现,该标准化管理系统提供从其跟踪监控器并且维护数据中心或其它受管理环境内的软件资源的部署的集中式位置。标准化管理系统可以支持与软件资源的标准化相关的各种功能,这些功能包括但不限于:·识别与数据中心、云或其它环境内部署的目标相关联的不同配置;·基于目标的分类为目标的组推荐标准化配置;·生成表示用于不同的相应目标组的标准化配置的黄金映像;·生成和分解唯一地表示标准化配置的签名;·为一组目标维护黄金映像的多个版本;·管理从黄金映像标准漂移的目标;和/或·呈现用于精简(streamline)标准化过程的控制面板和/或其它图形用户界面(GUI)元素。图1示出了根据实施例的、用于管理部署资源的标准的示例系统。系统100一般包括主机110a至110n、数据收集器120、储存库(repository)130和标准化管理逻辑140。系统100的组件可以在一个或多个数据中心、一个或多个云和/或一个或多个其它联网环境中实现。主机110a至110n表示一个或多个网络主机的集合并且一般包括目标112a至112n和代理114a至114n。每个代理是在对应的主机机器上执行并且监控一个或多个相应目标的进程,诸如服务或守护进程。本上下文中的“目标”是指软件部署,其中软件部署可以包括但不限于系统100内部署的应用、系统程序、开发软件和/或其它软件系统。目标从源组件的集合运行,其中用于软件部署的源组件包括但不限于作为例如修补配置、修改、更新或者新提供或初始化软件的结果已产生的指令和/或配置的集合。术语“用于软件部署的源组件”与术语“用于软件部署的配置级别”在本文中可互换使用。虽然在图1中每个主机仅示出了一个代理和目标,但是每个主机的代理和/或目标的数量可以依实施方式而变化。例如,多个代理可以被安装在给定主机上,以监控不同的目标应用或其它资源。代理114a至114n与数据收集器120可通信地耦接并且根据一个或多个通信协议将收集的数据发送到数据收集器120。可以被用来在代理和数据收集器120之间传输数据的示例通信协议包括但不限于超文本传送协议(HTTP)、简单网络管理协议(SNMP)和互联网协议族的其它通信协议。数据收集器120聚集从代理114a至114n收集或以其它方式接收的数据,并且将聚集的数据存储在储存库130中。在实施例中,数据收集器120由主机110a至110n之一执行。可替代地,数据收集器120在不执行任何代理的不同主机机器上执行。类似地,储存库130和标准化管理逻辑140可以驻留在示出的主机机器中的任何主机机器上或者可以在分开的主机或主机集合(包括但不限于在云中的分开的主机或主机集合)上实现。标准化管理逻辑140管理与主机110a至110n上部署的资源的标准化相关的各个方面。标准化管理逻辑140可以包括但不限于映像顾问142、映像创建器144、组管理器146、签名生成器148、版本管理器150和/或漂移管理器152。这些组件中的每一个支持如在本文进一步详细描述的不同的功能集合。标准化管理逻辑140还可以包括控制操纵台154,其提供允许用户在本地或从远程网络位置监控和管理本文所描述的标准化过程的用户接口。用户接口可以包括但不限于图形用户界面(GUI)、应用编程接口(API)、命令行界面(CLI)或者与用户交互的一些其它手段。本上下文中的“用户”可以包括但不限于应用或诸如系统管理员之类的人类用户。配置识别和分类在一个实施例中,映像顾问142包括用于将用于目标112a至112n的源组件的当前集合进行识别和分类的逻辑。例如,映像顾问142可以确定在系统100内部署了多少不同的软件版本和补丁。映像顾问142可以基于描述或以其它方式识别目标如何被配置的属性集合来将目标的源组件的当前集合进行分类。通过识别用于目标112a至112n的当前配置级别和源组件,可以形成系统100内的配置污染(如果有的话)的全貌。可以基于主属性和次属性将用于不同软件部署的源组件和配置级别的集合进行分类。主属性是在同一软件资源的不同部署之间不改变的属性。主属性可以被用来描述软件部署的基础版本。示例主属性可以包括但不限于:·目标类型:该属性主要在产品级别将目标进行分类,诸如识别产品名称和/或供应商。该属性还可以识别产品的架构模型。例如,一些数据库管理系统支持在独立服务器上、在集群环境内等的部署。·软件发布版本:该属性识别目标资源的发布版本。在数据中心环境中可以存在多个可用的发布版本。给定的发布可以具有带不同补丁的多个部署。·操作系统(或平台)版本:该属性识别托管软件的操作系统(OS)或其它平台。在数据中心中可以存在多于一个OS类型。因此,同一产品在不同平台上执行时可以被不同地分类。目标还可以基于应用的补丁属性来分类。该属性识别已在目标处应用的关键补丁更新(criticalpatchupdate,CPU)、补丁集更新(patchsetupdate,PSU)或其它补丁。如本文所使用的“补丁”可以包括插件、错误修复、特征改进、自定义修改和/或对软件部署的某种其它更新。补丁在被应用时可以改变程序可执行文件(executable)。应用的同一版本的不同部署可以具有在一个目标处被应用而没有在另一目标处被应用的补丁。次属性是在同一软件资源的不同部署之间可以不同的属性。次属性可以被用来进一步细化目标的配置分类。次属性的示例可以包括但不限于:·支持的应用:该属性识别由目标支持的应用。例如,数据库管理系统可以被用来支持客户关系管理(CRM)应用、商业智能(BI)应用等。·位置:该属性识别目标的位置。例如,给定的应用可以被部署在由同一标准化管理逻辑管理的地理上不同的数据中心中。该属性可以识别目标所属的地理区域和/或特定数据中心。·业务线:该属性识别由目标支持的业务线(LOB)。例如,LOB可以包括诸如会计、供应链管理、人力资源等之类的不同类别。·租户:该属性识别目标与其相关联的租户。一些数据中心支持多租户环境,其中不同的目标属于不同的租户或以其它方式与不同的租户相关联。·定制特性:用户可以为目标创建定制特性。例如,管理员可以定义安全级别属性,以便将高度敏感目标与同一数据中心内的其它目标分开分类。在一个实施例中,数据收集器120为目标112a至112n中的每一个收集并且在储存库130中存储上面的属性中的一个或多个。一旦所述上面的属性中的一个或多个被收集,则映像顾问142扫描目标特性,以确定用于目标112a至112n的当前软件配置。然后,映像顾问142使用这些属性来识别系统100内的所有唯一的软件配置。例如,共享公共目标类型、软件发布、操作系统和补丁集更新的所有目标可以被分组为单个唯一的配置分类。在其它示例中,附加的次属性可以被用来细化分类。例如,属于不同位置、LOB和/或租户的组可以被分开分组。映像顾问142可以向用户提供不同的配置分类以及多少目标属于每个不同的配置分类,如下文进一步描述的。上文识别的主属性和次属性是通过示例的方式给出的,但是可以依实施方式而变化。例如,在一些软件部署中,上文识别的主属性中的一个或多个主属性可以是次属性,或者反之亦然。在一些实施例中,主属性和次属性可以基于域特定的规则或适用于特定应用域的其它信息来确定。因此,定义一个软件配置分类的主属性可以不同于另一软件配置分类的主属性。推荐的结束状态配置级别在一个实施例中,映像顾问142包括用于为目标112a至112n确定和生成推荐的软件源组件的逻辑。推荐的配置级别的逻辑描述在本文中被称为“结束状态定义”。结束状态定义包括依据一个或多个推荐的目标属性来定义或以其它方式识别推荐的源组件集合的数据。例如,结束状态定义可以指定为一组目标推荐的目标类型、软件版本、操作系统和补丁。在一个实施例中,映像顾问142基于对目标112a至112n的目标属性的分析来计算初始的结束状态定义。为了计算初始的结束状态定义,映像顾问可以基于主属性来执行粗略分类。利用粗略分类,即使目标的次属性可能不同,与相同主属性(例如,目标类型、软件版本和平台)相关联的目标也被指派特定的结束状态定义或以其它方式与特定的结束状态定义相关联。在这种情况下,主属性充当用于分组目标的最小公分母。因此,具有共同主属性的目标共享同一推荐的源组件集合。映像顾问142还可以使用一个或多个次属性来生成和/或精炼(refine)初始的结束状态定义。即使目标可能共享相同的主属性,具有不同次属性或次属性的组合的目标也可以被分类在不同的组中。例如,在一个位置处的、具有与第二位置处的目标应用相同的主属性的目标应用可以与不同的推荐的源组件集合和结束状态定义相关联。除了位置以外或者作为位置的替代,一个或多个其它次属性可以在分析中被使用,从而在分类目标时允许不同的粒度级别。图2示出了用于将目标映射到推荐的软件配置级别的示例过程。该过程包括基于分类属性将目标分组到推荐桶中,如下文进一步讨论的。如在本上下文中使用的“推荐桶”或“软件配置分类”是指共享相同分类属性的一个或多个目标(例如,软件部署)的逻辑分组。属于同一推荐桶/软件配置分类的目标与同一结束点定义和推荐的软件配置级别相关联。参照图2中所绘出的过程,在步骤202处,映像顾问142为从目标112a至112n中选择的目标识别分类属性集合。用于目标分类的分类属性集合可以依实施方式而变化。在一个实施例中,在步骤202处识别的分类属性的集合包括所选择的目标的主属性以及零个或更多个次属性。在步骤204处,映像顾问142分析该属性集合,以确定所选择的目标是否适合现有的推荐桶。如果分类属性集合与同一推荐桶内的其它目标的分类属性匹配,则目标适合推荐桶。例如,即使在推荐桶中的目标之间诸如所应用的补丁或其它次属性之类的其它属性可能不同,具有相同目标类型、发布版本和平台的目标也可以被分组到同一推荐桶中。如果所选择的目标不适合相应的推荐桶或者还没有创建推荐桶,则在步骤206处,映像顾问142基于分类属性集合生成新的推荐桶。例如,当所选择的目标包括新的主属性时,映像顾问142创建新的推荐桶。本上下文中的“新”意味着在分类过程期间在先前分析的目标中没有遇到该主属性。如果所选择的目标适合相应的推荐桶或者一旦桶已经在步骤206处被创建,则在步骤208处,映像顾问142将所选择的目标添加到推荐桶。在一些情况下,可以允许用户定义分类标准,以使得目标适合多于一个推荐桶。在这样的场景中,在步骤208处仅选择桶中的一个桶来添加目标。选择可以由用户进行或者可以由映像顾问142自动确定。在步骤210处,映像顾问142确定是否存在要分析的任何剩余目标。如果存在尚未被添加到推荐桶的剩余目标,则对于新选择的目标重复步骤202至208。可以重复该过程直到目标112a至112n中的每一个已经被分析和分类。一旦目标已经被分析和分类,则在步骤212处,映像顾问142为推荐桶内的目标定义结束状态。在一个实施例中,映像顾问142为每个相应的推荐桶计算不同的结束状态定义。然后,目标与它们所属的推荐桶的结束状态定义相关联。因此,同一推荐桶内的目标共享相同的结束状态定义和推荐的源组件集合。分开的推荐桶内的目标与不同的结束状态定义和不同的推荐的源组件集合相关联。推荐精炼映像顾问142可以允许用户通过指定次标准来进一步过滤和分割推荐桶。例如,初始分析可以仅使用主属性而不使用次属性来对目标进行分组。因此,不管次属性的任何差异,具有相同主属性的目标被放在同一个推荐桶中。然后用户可以输入一个或多个次属性,以滤出特定的目标或调整分组。在一个示例中,管理员可能不希望标准化过程涉及高度敏感的目标。为了防止这样的场景,用户可以基于与目标相关联的安全级别属性从推荐桶滤出/移除目标。作为另一个示例,用户可以提交请求,以通过位置、LOB或某种其它次属性或属性组合来进一步分割推荐桶。响应于接收到请求,映像顾问142根据附加标准来调整推荐桶。附加的分割标准可以创建推荐桶之间的更精细的粒度,从而导致更大数量的推荐桶和结束状态定义。作为示例,特定推荐桶可以包括十个目标。这些目标中的五个目标可以被安装在第一位置处,三个目标可以被安装在第二位置处,而两个目标可以被安装在第三位置处。然后,如果用户请求通过位置的进一步分割,则推荐桶基于位置被分割成三个新的推荐桶。两个新推荐桶中的一个推荐桶包括来自第一位置的五个目标,第二推荐桶包括来自第二位置的三个目标,而第三推荐桶包括来自第三位置的三个目标。这些桶中每一个可以基于附加标准被进一步分割。该方法允许用户调整为了标准化而根据其将目标进行分组的参数。结束状态计算对于给定的推荐桶,若干可能的结束状态定义和对应的源组件集合可以是可能的。例如,特定推荐桶可以包括以若干不同方式配置的目标。在一些情况下,这些目标中的一个目标可以根据优化的配置来配置。在其它情况下,这些目标都不可以被最优地配置。如上文所讨论的,映像顾问142可以基于对目标112a至112n的分析来计算初始的结束状态定义。为了计算用于特定推荐桶的结束状态定义,映像顾问142可以规格化来自属于特定推荐桶的目标的源组件集合。规格化可以涉及将目标的不同配置合并或以其它方式组合成对应于推荐的标准源组件集合的单个结束状态定义。例如,映像顾问可以组合应用到推荐桶内的每个目标的补丁,如本文进一步描述的。在260处计算初始的结束状态定义之后,结束状态定义可以被进一步增强和更新。例如,映像顾问142可以检查来自诸如供应商支持站点之类的外部源的更新或其它推荐的配置信息。在一个实施例中,映像顾问142可以基于以下来修改结束状态定义:·来自供应商或其它服务提供商的目标通用/租户通用的配置推荐;和/或·来自供应商或其它服务提供商的目标特定/租户特定的配置推荐。上面的上下文中的“目标通用的”或“租户通用的”推荐是指不管软件应用安装在哪里或控制软件部署的实体是什么都应用到特定软件应用的推荐。作为示例,供应商可以向其所有客户发出全球CPU或PSU。“目标特定的”或“租户特定的”推荐(本文也称为“定向(targeted)”推荐)是指应用于特定目标或租户的推荐。例如,供应商可以针对特定客户的环境发出定制的补丁更新。图3示出了用于计算结束状态定义的示例过程。在步骤302处,映像顾问142计算用于特定推荐桶的初始结束状态定义。作为示例,映像顾问可以跨推荐桶内的目标来规格化补丁信息数据,如下文进一步描述的。在步骤304处,映像顾问142确定是否存在任何目标/租户通用的推荐。映像顾问142可以通过针对步骤302处计算的结束状态中不包括的附加的推荐配置而查询供应商的支持站点或其它外部服务来确定是否存在任何通用的推荐。如果存在附加的推荐配置,则在步骤306处,相应地更新结束状态定义。如果不存在附加的推荐配置或者更新在步骤306处已经完成,则过程前进到步骤308。在步骤308处,映像顾问142确定是否存在没有包括在初始结束状态定义中的任何目标或租户特定的推荐配置。在一个实施例中,映像顾问通过搜索与推荐桶中的目标相关联的未决服务请求来识别配置。如果存在任何附加的租户或目标特定的推荐配置,则在步骤310处,更新结束状态定义以包括那些配置。如果不存在附加的推荐配置或者步骤310处的更新完成,则过程前进到步骤312,并且映像顾问142提供用于推荐桶的推荐的结束状态。在本上下文中提供可以包括但不限于经网络发送结束状态、将识别推荐的结束状态的数据存储在指定的存储位置处、和/或使推荐的结束状态被显示。跨目标的补丁规格化如前面所指示的,同一推荐桶内的目标可以具有已经被应用的不同级别的补丁。例如,一个目标可能已应用未应用到同一推荐桶中的至少一个其它目标的一个或多个供应商提供的补丁和/或一个或多个定制补丁。为了确定哪些补丁要包括在结束状态定义中,映像顾问142可以跨给定推荐桶内的目标集合来规格化补丁。根据一个实施例,映像顾问142执行安装在推荐桶内的目标上的所有补丁的并集(union),以规格化补丁并且计算初始结束状态定义。并集操作保留已应用到目标的唯一补丁并且丢弃冗余的补丁(即,已应用到多于一个目标的补丁)。在另一个实施例中,映像顾问142可以基于补丁跨推荐桶内的目标出现的频率来规格化补丁。出现高于阈值频率的补丁可以被添加到推荐的结束状态,而不满足阈值的补丁可以被省略。图4示出了用于跨与特定推荐桶相关联的不同目标规格化补丁的示例过程。在步骤402处,映像顾问142分析选择的目标以识别哪些补丁(如果有的话)已经被应用。在一个实施例中,由代理114a至114n和数据收集器120收集的目标特性包括识别哪些补丁已被应用到目标112a至112n的补丁描述信息。映像顾问142可以搜索所选择的目标的目标特性,以确定哪些补丁已经被应用。如果一个或多个补丁已经被应用到所选择的目标,则在步骤404处,映像顾问142确定这一个或多个补丁中的哪些补丁已经被添加到与结束状态定义相关联的推荐补丁的列表。如果至少一个补丁没有包括在列表中,则过程继续到步骤406。否则,过程前进到步骤408。在步骤406处,映像顾问142从所选择的目标的目标特性中提取没有包括在推荐补丁列表中的每个补丁的补丁信息,并且将该补丁信息添加到列表。在一些实施例中,映像顾问142可以在将补丁添加到列表之前检查例外列表。例如,例外列表可以识别不应当被添加到要推荐的列表或补丁的不兼容或不期望的补丁。如果特定补丁在例外列表上,则映像顾问142可以继续而不添加该特定补丁。在步骤408处,映像顾问142确定在推荐桶内是否存在剩余的目标。如果存在尚未被分析的剩余目标,则过程重复剩余的目标。否则,过程继续到步骤412。在步骤410处,映像顾问142生成或更新包括推荐补丁的列表的结束状态定义。结束状态定义与特定的推荐桶相关联,以便于推荐用于桶内的目标的标准化补丁级别。规格化的补丁列表可以呈现给用户,以使得用户可以查看和浏览推荐补丁的列表。通用和定制补丁推荐如前面所指出的,映像顾问142可以基于通用或定向配置推荐来修改结束状态定义。在一个实施例中,这些推荐包括来自供应商和/或其它服务提供商的推荐的补丁更新。例如,可以通过添加来自以下的补丁进一步增强结束状态定义:·供应商或其它服务提供商的补丁推荐,诸如CPU或PSU;和/或·为已为其提供解决方案但尚未应用该解决方案的目标创建的支持单。为了确定是否存在通用推荐,映像顾问142可以向服务提供商的支持站点发送请求。该请求可以包括识别用于目标的特定桶的当前推荐结束状态的结束状态定义或其它数据。响应于接收到请求,支持站点可以针对用于对应软件产品的服务提供商发布的补丁来检查推荐补丁。如果支持站点没有识别出尚未包括在当前推荐的结束状态中的补丁,则支持站点可以向映像顾问142发送指示不存在附加推荐的响应。否则,如果支持站点识别出没有包括在当前推荐的结束状态中的补丁,则支持站点可以向映像顾问142发送包括补丁或指示可以下载补丁的位置的响应。然后映像顾问142可以利用识别服务提供商的推荐补丁的信息来更新结束状态定义。在一个示例中,映像顾问142可以针对推荐桶内的目标来搜索未决支持单。本上下文中的“支持单”是指识别从客户或其它用户到服务提供商的服务请求的数据项。例如,支持单可以包括改正特定错误或者为特定软件应用提供特定增强的请求。如果服务请求尚未被解决或者如果解决方案(resolution)尚未被应用到服务请求所针对的目标(多个目标),则支持单被称为未决的。如果映像顾问142检测到仍然未决的针对目标中的一个目标的支持单,则映像顾问142可以向服务提供商的支持站点发送状态请求。如果支持站点确定服务请求被解决,则支持站点可以向映像顾问142发送包括补丁或指示可以下载补丁的位置的响应。然后映像顾问142可以用识别服务提供商的推荐补丁的信息来更新结束状态定义。黄金映像创建结束状态定义是软件源组件集合的逻辑定义。例如,结束状态定义可以将源组件集合定义为基础软件版本加上要在其上应用的推荐的补丁。表示结束状态的物理软件二进制组件在本文中被称为“黄金映像”。术语“黄金”是表示用于软件配置的最优或推荐标准或级别的限定符。黄金映像可以被用来安装包括推荐的源组件集合的软件。在一个实施例中,映像创建器144包括用于基于结束状态定义来创建黄金映像的逻辑。为了创建黄金映像,映像创建器144确定由结束状态定义所定义的软件的配置级别。例如,映像创建器144可以确定软件的基础版本加上哪些补丁被推荐。然后映像创建器144生成包括包含由结束状态定义识别的源组件的二进制载荷或其它机器可读代码的黄金映像。映像创建器144生成用于黄金映像的载荷数据的方式可以依实施方式而变化。例如,图5示出了可以被用来创建黄金映像的不同方法。在场景502中,映像创建器从参考目标挑选软件。例如,特定推荐桶内的一个或多个目标可能已经包括推荐的源组件集合。在这种场景中,映像顾问144可以指派这些目标中的一个充当黄金映像,或者可以将二进制载荷复制到另一个位置。在场景504中,映像创建器从其上具有补丁的参考“烹制(cook)”黄金映像。例如,如果存在被识别为推荐的附加补丁,则映像创建器144可以在测试目标上部署软件应用的基础版本,然后应用所推荐的补丁。一旦创建了黄金映像,则映像顾问142将黄金映像映射到为其创建黄金映像的推荐桶和相关联的目标。因此,每个推荐桶和其中的目标与定义推荐的源组件集合的特定结束状态定义和包括包含该推荐的源组件集合的软件的物理载荷的黄金映像相关联。结束状态和黄金映像更新用于目标的最优配置级别可以随时间改变。例如,插件、错误修复或其它补丁可以由软件应用的供应商定期发布。为了考虑这样的更新,用于目标的特定桶的结束状态定义和黄金映像可以随时间改变。在一个实施例中,结束状态定义和黄金映像的基础版本最初由标准化管理逻辑140创建。在创建基础版本之后,发布的补丁在结束状态定义级别被引入,并且映像创建器144可以创建黄金映像的新版本。图6示出了随着补丁随时间被发布对结束状态定义和对应黄金映像的更新。版本602表示在时间T1处创建的结束状态定义的基础版本。结束状态定义的基础版本对应于软件应用的基础版本加上应用到其上的两个补丁。映像608是与由版本602定义的配置级别匹配的黄金映像。在时间T2处,用于该软件应用的五个补丁被发布。通过更新版本602以包括附加补丁来创建结束状态定义的版本604,并且通过将附加补丁应用到映像608来创建映像610。在时间T3处,PSU加上两个补丁被发布。通过将PSU和两个附加补丁添加到结束状态定义的版本604来创建结束状态定义的版本606,并且通过将PSU和两个附加补丁应用到映像610来创建映像612。在时间T3处,版本606表示结束状态定义的当前/最新版本,并且映像612表示黄金映像的当前/最新版本。图7示出了黄金映像的基础版本和后续版本的创建。如前面所讨论的,映像的基础版本可以从参考目标直接拉取,或者通过烹制来自其上具有补丁的参考的映像。通过在基础版本上应用新获取的补丁来创建新的映像版本。群集组(flockinggroup)为了标准化用于推荐桶内的目标的源组件集合,目标可以订阅黄金映像。订阅同一黄金映像的一组目标在本文中被称为“群集组”。黄金映像充当群集组的领导。当黄金映像因为改变而被修订时,订阅的目标遵循黄金映像,以跟上最新版本。图8示出了用于跨多个目标维护标准的示例过程。在802处,定义一个或多个结束状态的集合。定义结束状态可以包括分析目标112a至112n并且将目标分组到推荐桶中,如上文所描述的。在804处,目标订阅特定的结束状态定义和对应的黄金映像。在一个实施例中,每个推荐桶订阅单个结束状态定义和单个黄金映像。因此,同一推荐桶内的目标形成群集组。组管理器146可以维护将群集组内的目标映射到特定结束状态定义的订阅数据。在806处,结束状态定义被更新。例如,服务提供商可以发布用于与结束状态定义相关联的特定软件应用的CPU或PSU。然后这些补丁可以被添加到结束状态定义,并且对应的黄金映像可以被更新。在808处,订阅结束状态定义的目标遵循该结束状态定义。例如,新发布的升级或其它补丁被应用到同一群集组中的目标中的每个目标。因此,对黄金映像的改变被传播到订阅的目标,从而便于大规模环境中的更新以及跨不同软件部署维护标准化的配置。图9示出了订阅映像并且遵循对可用的最新版本的更新的目标。映像902表示用于在特定平台上运行的软件应用的特定发布版本的结束状态定义。映像902包括黄金映像的多个版本。目标(多个目标)904表示订阅映像902的一个或多个目标。当映像902被更新时,目标(多个目标)904跟随该映像,以使得目标的配置匹配映像902的配置。应用到映像902的补丁也被传播到目标(多个目标)904中的每一个。多映像管理在一些情况下,可以为目标112a至112n维护多于一个黄金映像。例如,映像顾问142可以推荐用于不同软件配置分类的不同结束状态定义,如上文所描述的。映像创建器144可以生成不同的黄金映像,以表示每个相应的结束状态定义。然后,组管理器146可以基于相应目标的软件配置分类自动地使每个相应目标订阅映像。附加地或可替代地,管理员或其他用户可以手动选择要订阅映像的目标或目标组。图10示出了其中维护多个黄金映像的示例数据中心环境。映像1002表示用于第一软件配置分类的黄金映像,映像1004表示用于第二软件配置分类的黄金映像,而映像1006表示用于第三软件配置分类的黄金映像。目标(多个目标)1012包括适合第一软件配置分类并且订阅黄金映像1002的一个或多个目标,目标(多个目标)1014包括适合第二软件配置分类并且订阅黄金映像1004的一个或多个目标,而目标(多个目标)1016包括适合第三软件配置分类并且订阅黄金映像1006的一个或多个目标。当存在多个黄金映像时,目标遵循它们订阅的映像,而不遵循其它黄金映像。例如,如果映像1002被更新,则黄金映像的新版本被创建。然后,目标(多个目标)1012可以应用更新以遵循该黄金映像的新版本。但是,目标(多个目标)1014和1016不应用更新,因为它们没有订阅映像1002。类似地,对映像1004的更新被应用到目标(多个目标)1014,而不应用到目标(多个目标)1012和1016,并且对映像1006的更新被应用到目标(多个目标)1016,而不应用到目标(多个目标)1012和1014。签名生成在一个实施例中,签名生成器148从与目标或黄金映像版本相关联的摘要信息生成软件配置级别签名。本上下文中的“摘要信息”是指识别源组件集合的数据。例如,摘要信息可以包括描述或以其它方式识别相应目标的特点的属性的有序集合。包括在摘要中的任何条目或修改软件安装的任何条目可以被认为是源组件。签名生成器148可以通过挖掘和整理(collate)识别目标的源组件的目标特性(诸如上文描述的那些目标特性)的集合来提取摘要信息。一般而言,被挖掘并且用来生成签名的属性包括识别软件系统的基础版本和已经应用到软件的补丁的属性。属性被整理的顺序可以依实施方式而变化。在一个实施例中,签名生成器148从应用到目标的最外壳的属性开始。然后签名生成器148向内工作,以整理应用到元素、子元素等的特性。作为示例,签名生成器可以创建字符串,该字符串以描述外壳的主属性(例如,主属性)开始,随后是识别作为目标的一部分并且在外壳内的目标组件(例如,插件或其它应用)的属性,随后是识别应用到组件中的每个组件的子组件(例如,补丁)的属性。在一个实施例中,签名是通过对摘要信息应用散列函数而获得的散列值。当应用散列函数时,摘要信息充当输入到散列函数中的散列键。响应于接收到摘要信息,散列函数将摘要信息映射到可以被用来唯一地识别摘要信息中所描述的软件源组件的散列值。对摘要信息应用的散列函数可以依实施方式而变化。示例可以包括但不限于加密散列函数和非加密散列函数。签名映射在一个实施例中,签名生成器148维护将签名映射到对应摘要信息的签名到摘要映射。例如,签名生成器148可以维护散列表或其它数据结构内的映射。因此,给定特定签名,可以从签名到摘要映射确定和提取对应的软件配置级别。此外,可以确定和提取包括在摘要信息中的各个属性或属性组。例如,对于给定的签名可以确定和提取目标类型、发布版本、平台和/或补丁。图11示出了将签名映射到对应的软件配置描述的示例散列表。参考散列表1100,散列值1102映射到散列表中的条目1112,该条目存储描述第一软件配置的摘要信息。类似地,散列值1104和1106分别映射到存储对应的摘要信息的条目1114和1116。通过将散列函数1120应用到用于每个相应目标的摘要信息来获得散列值。黄金映像的签名标记在一个实施例中,签名生成器148包括用于为黄金映像生成签名的逻辑。可以为单个黄金映像生成多个签名,以区分黄金映像的不同版本。例如,当创建黄金映像的新版本时,签名生成器148可以对结束状态定义应用散列函数,以生成配置级别签名。签名生成器148可以将得到的签名映射到新的映像版本和对应的结束状态定义。这个过程可以在每次生成新版本时继续,从而产生每个映像版本的签名标记。图12示出了已经用多个签名标记的示例黄金映像。在第一时间点处,黄金映像1200的版本1202由映像创建器144创建。版本1202包括应用到软件系统的基础版本的两个补丁。当映像被创建时,签名生成器148可以对与版本1202相关联的摘要信息(例如,结束状态定义)应用散列函数,以生成签名1212。然后签名生成器148存储版本1202和签名1212之间的映射。签名1212还可以被映射到描述或以其它方式指示映像版本1202的源组件的摘要信息。在第二时间点处,五个补丁可以被添加到黄金映像1200,以创建版本1204。签名生成器148可以对与版本1204相关联的更新的摘要信息应用散列函数,以生成签名1214。签名生成器148将签名1214映射到映像版本1204和对应的摘要信息。签名生成器148可以对黄金映像的每个新版本继续这个过程。因此,签名1216被映射到版本1206及其对应的摘要信息。由于不同映像版本之间的不同补丁级别,签名生成器148为每个版本生成唯一地识别相应映像版本的对应源组件的不同签名。签名可以被用来确定群集组的成员遵循映像的哪个版本,如下文进一步描述的。对于目标的签名管理在一个实施例中,签名生成器148包括用于生成和存储用于目标112a至112n的配置级别签名的逻辑。例如,如上文所描述的,签名生成器148可以对用于每个相应目标的摘要信息应用散列函数,以生成和映射表示相应目标的配置级别的签名。散列值/配置级别签名可以作为目标的特性的部分存储在目标处,和/或可以作为所收集的信息的部分存储在储存库130中。取决于特定实施方式,签名生成器148可以定期或按需生成签名。作为示例,代理114a至114n可以定期地收集目标特性并且向数据收集器120发送该目标特性。在接收时,签名生成器148可以从目标特性生成配置级别签名并且将该签名作为目标特性存储在储存库130中。因此,用于每个目标的配置级别签名可以被定期更新和存储。在另一个示例中,每当补丁被应用到目标112a至112n中的一个时,签名生成器148可以生成签名。基于签名的合规性查询在一个实施例中,签名生成器148包括用于识别符合映像版本的目标的逻辑。在合规性检查期间,签名生成器148将为映像生成的签名与为目标生成的签名进行比较。这种技术允许快速计算合规性,从而避免在定义配置级别时所涉及的潜在大量属性之间的复杂比较。图13示出了用于使用软件配置级别签名来执行合规性检查的示例过程。在步骤1302处,为特定黄金映像生成一个或多个签名的集合。签名集合可以包括用于黄金映像的不同版本的多个签名。签名集合中的每个相应签名可以基于对应映像版本的结束状态定义来生成,如上文所描述的。在步骤1304处,为目标集合中的每个目标生成签名。在一个实施例中,该目标集合是遵循黄金映像的群集组的一部分。每个签名可以基于相应目标的目标特性来生成,如上文所描述的。在步骤1306处,接收检查目标集合与特定黄金映像的合规性的请求。合规性请求可以被发出,以确定多少目标当前符合黄金映像和/或确定目标中的每个目标正在遵循黄金映像的哪个版本(如果有的话)。响应于合规性请求,在步骤1308处,用于特定黄金映像的该一个或多个签名的集合与为目标集合中的每个目标生成的签名进行比较。在步骤1310处,基于签名比较来确定目标集合的合规性。如果用于目标的签名与用于映像版本的签名之间的签名匹配,则目标遵循那个映像版本并且可以被确定为合规。如果对于特定目标不存在匹配,则目标可以被确定为不合规。在步骤1312处,向用户提供合规性结果。例如,合规性结果可以指示目标集合内的目标遵循黄金映像的百分比以及总共多少目标遵循黄金映像。合规性结果还可以指示映像特定的信息,诸如多少目标遵循每个不同的映像。还可以向用户通知任何漂移者,如下文进一步描述的。因此,配置级别签名可以被用来快速确定合规性状态并且为订阅黄金映像的目标更新进度。映像生命周期概述黄金映像及其相关联的版本在其生命期间可以经历不同的状态,因为它被用来更新订阅的目标。例如,当首次发布黄金映像的新版本时,可能需要花时间将订阅的目标移动到新版本。目标可以延迟切换到新版本,以避免由应用更新或出于其它原因导致的服务中断。为了支持这样的目标,映像的旧版本可以保持活动,尽管它不是黄金映像的最新版本。一旦不存在处于旧映像版本上的订阅的目标,则映像的那个版本可以退休。在另一个示例中,黄金映像的新版本在被公布到订阅的目标之前可以经历测试阶段。用于黄金映像及其版本的示例生命周期状态可以包括但不限于:·草案:映像版本的初始状态。从映像版本的创建到映像版本的测试阶段,映像版本可以保持在这个状态中。·活动:受限:对目标的子集而不是订阅的目标的完整集合执行试验的映像测试发布的状态。·活动:当前:公开的映像的最新版本的状态。本上下文中的公共意味着该版本对于所有订阅的目标可用(例如,不是在草案状态或受限状态中)。·活动:尚未退休的映像的旧版本的状态。·退休:映像版本的生命结束状态。当没有订阅的目标时,映像版本可以从活动使用中退休。用于更新的映像的测试阶段如上文所指示的,黄金映像的新版本在被公布到所有订阅的映像之前可以被测试。在测试阶段期间,订阅黄金映像的一个或多个目标的子集或某个其它测试目标集合可以利用黄金映像的新版本来更新。测试阶段给予管理员分析测试目标上的新映像版本的机会,以便在新版本推出到生产目标之前识别潜在的难题(problem)或其它问题(issue)。如果遇到难题,则管理员可以尝试解决问题或者将黄金映像的新版本回滚到先前的版本。在一个实施例中,组管理器146为每个群集组维护测试目标的列表。当接收到对黄金映像的更新时,组管理器146向列表上的测试目标发布更新,但是不向群集组的其它成员发布更新。管理员或其他用户可以创建和修改列表,以指定目标中的哪些目标被用作测试目标。用于映像版本的状态转移图14示出了用于黄金映像的版本的不同状态之间的转移。黄金映像的新版本(基础版本或后续版本)在草案状态1402下开始。在这个状态下,用于新版本的载荷已被创建,但是尚未变为活动的并且尚未被用来更新订阅的目标。从草案状态1402,映像版本可以被(例如,由管理员或其他用户)提升到在活动受限状态1404或活动当前状态1406下的活动使用。如果映像版本被提升到活动受限状态1404,则映像版本被发布到受限的测试目标集合以用于beta测试(betatesting),如上文所描述的。一旦测试完成,则映像版本可以被提升到活动当前状态1406。当在活动当前状态1406下时,映像的新版本向所有订阅的目标公布。本上下文中的“公布”意味着映像对于所有订阅的目标可用以在更新过程中被使用。在一些情况下,通知可以被发送到订阅的目标中的一个或多个,以指示映像的新版本可用。然后订阅的目标可以开始更新到映像的新版本的过程。映像版本保持在活动当前状态1406下,直到有更新的(newer)映像版本被提升到这个状态。当更新的映像版本被提升到活动当前状态1406时,前任者(predecessor)被推到活动状态1408。当在活动状态1410下时,映像版本可以支持尚未被移动到黄金映像的最当前版本的一个或多个遵循者。例如,订阅的目标可以延迟更新到黄金映像的新版本直到稍后的日期。一旦不再存在遵循特定版本的订阅映像的任何目标,则那个版本可以从活动状态1410转移到退休状态1412。当映像版本在退休状态1412下时,所有订阅的目标已经被更新到黄金映像的后续版本,并且没有目标遵循该退休的版本。在退休状态1412下的黄金映像的较旧版本可以被归档或删除。图15示出了在新映像版本的创建期间黄金映像内发生的周期。在开始时,存在黄金映像的三个活动版本:版本1501、1502和1503。在创建后,版本1504作为草案版本开始。然后版本1504被提升到受限状态。当在受限状态下时,映像版本1501、1502和1503保持活动。然后版本1504可以被提升为黄金映像的当前版本。在提升后,版本1503从活动当前状态被推到活动状态。在稍后的时间点处,遵循版本1501的所有目标都可以被更新为黄金映像的后续版本。因此,版本1501转移到退休状态。离群目标在一些情况下,作为群集组的一部分的目标可以从群集组漂移。当补丁以不遵循黄金映像的方式被应用、省略或移除时,目标被认为从群集漂移。在一些场景中,例如,即使所应用的补丁不包括在黄金映像的结束状态定义中,目标也可以以自组织或紧急的方式被修补以解决出现的问题。在其它场景中,补丁可能会回滚或丢失。在黄金映像的结束状态定义之外被修补的目标在本文中被称为“离群”目标。在黄金映像的结束状态定义之外的补丁在本文中被称为“漂移”补丁。离群目标可以被分类为不同的类别。第一,离群目标可以具有不包括在黄金映像的当前版本中的附加补丁。第二,离群目标可以具有比黄金映像的当前版本更少的补丁。漂移管理器152可以基于其分类来管理离群目标,如下文进一步详细描述的。在一些实施例中,具有比黄金映像的当前版本更多或更少的补丁、但是遵循黄金映像的其它活动版本的目标不被分类为离群的。例如,特定目标可以遵循在活动受限状态下或者在活动的但不是当前的状态下的目标。遵循这样的版本的目标可以被认为符合黄金映像标准,因为黄金映像的这些版本还没有退休。离群识别在一个实施例中,漂移管理器152包括用于将离群目标进行识别和分类的逻辑。为了识别离群目标,漂移管理器152可以将用于黄金映像的活动版本的软件配置级别签名与订阅的目标的软件配置级别签名进行比较。如果没有检测到匹配,则订阅的目标可以被分类为离群的。漂移管理器152还可以基于漂移补丁是否已被应用或者离群目标是否丢失了属于黄金映像的当前活动版本的补丁来对离群目标进行分类。图16示出了用于识别群集组内的离群目标的示例过程。在步骤1602处,漂移管理器152将用于黄金映像的活动版本的软件配置级别签名与订阅的目标的软件配置级别签名进行比较。在步骤1604处,漂移管理器确定配置级别签名是否匹配。如果签名匹配,则订阅的目标不是离群的,并且过程继续到步骤1610。如果签名不匹配,则在步骤1606处,漂移管理器152确定是否存在黄金映像的剩余活动版本。如果在步骤1606处确定存在订阅的目标尚未针对其进行检查的剩余活动版本,则过程返回到步骤1602,以将用于剩余活动版本的配置级别签名与离群目标的配置级别签名进行比较。如果所有剩余的活动版本都已经被分析并且仍然不存在匹配,则过程继续到步骤1608,并且目标被分类为离群的。在步骤1610处,漂移管理器152确定群集组中是否存在尚未被分析的任何剩余的订阅的目标。如果存在,则过程对剩余的订阅的目标重复。否则,过程结束。漂移控制在一个实施例中,漂移管理器152包括用于控制群集组内的漂移的逻辑。如果更新导致订阅的目标漂移并且变为离群的,则漂移管理器152可以阻止带外更新,直到其通过正确的改变管理批准为止。例如,用户可以请求或以其它方式尝试对订阅的目标应用补丁。漂移管理器152可以拦截更新并且确定其是否符合结束状态定义。如果更新将导致目标漂移,则漂移管理器152可以阻止该更新并且通知数据中心管理器或其他管理员。然后,管理员可以选择允许更新并且允许目标漂移,或者阻止更新,从而维护由黄金映像表示的标准。漂移通知在一个实施例中,漂移管理器152包括用于在目标漂移时显示和存储通知和/或其它指示的逻辑。通知可以指示目标已经以什么方式从群集组漂移。例如,通知可以指示目标是否具有太多补丁、太少补丁,或者是否存在不兼容的补丁。如果目标具有一个或多个附加的漂移补丁,则漂移管理器152可以提供识别在离群目标处被应用的漂移补丁的补丁信息。如果目标丢失一个或多个补丁,则通知可以识别目标缺少哪些补丁。对于给定的群集组,漂移管理器152可以向用户呈现合规性信息。合规性信息可以显示群集组中的多少目标已漂移。合规性信息还可以呈现用于离群目标的目标信息,从而允许用户准确地查明(pinpoint)哪个目标(哪些目标)已经从群集组漂移。用户可以向下深究(drilldown)到特定目标,以识别导致目标(多个目标)漂移的补丁(或补丁的缺少)。离群协调在一个实施例中,漂移管理器152包括用于协调离群目标的逻辑。协调的过程包括使离群目标恢复与结束状态定义合规。一旦目标被协调,则离群的分类可以被移除,并且目标可以遵循黄金映像,如上文所描述的。对于离群目标的不同分类,协调过程可以不同。根据一个实施例,当漂移由附加补丁引起时,漂移管理器152将这些补丁应用到黄金映像的当前版本,以创建黄金映像的新版本。用于群集组的结束状态定义也被更新,以包括附加的补丁。一旦黄金映像的新版本被公布,则可以用附加的补丁更新群集组的每个成员。因此,在离群目标处应用的自组织或紧急补丁可以被传播到群集组的其它成员。在一个实施例中,当漂移由丢失补丁引起时,漂移管理器152通过将丢失的补丁应用到离群目标来协调离群目标。例如,当补丁在其它改变管理活动期间回滚或丢失时,订阅的目标可以开始漂移。为了应用丢失的补丁,可以用映像的当前版本重写(overwrite)离群目标的软件副本。图17示出了基于离群目标如何分类来协调离群目标的不同方法。在步骤1702处,分析离群目标以确定漂移由附加的补丁还是丢失的补丁引起。例如,漂移管理器152可以分析离群目标的目标特性,以确定哪些补丁已经在目标处被应用。漂移管理器152可以将所应用的补丁与用于群集组的结束状态定义进行比较,以确定漂移的原因。如果漂移由附加的漂移补丁(或附加的补丁和丢失的补丁的组合)引起,则在步骤1704处,创建来自离群的新的映像版本并且将该新的映像版本添加到黄金标准。新映像版本包括导致离群目标漂移的附加补丁以及离群目标丢失的补丁(如果有的话)。如果漂移由丢失的补丁而不是附加的补丁引起,则在步骤1706处,用映像的当前版本的重写离群目标。用新的更新协调离群在一些实施例中,可以允许离群目标漂移,直到创建了黄金映像的新版本。例如,管理员可以以不符合结束状态定义的方式在特定软件应用处应用自组织或紧急补丁。漂移管理器152可以允许软件应用继续在带外操作,直到从供应商或其它服务提供商发布软件应用的新更新。一旦更新被发布,则漂移管理器152可以将离群目标协调回受管理的映像版本。图18示出了合并离群目标的漂移补丁的示例映像更新。在1802处,V2是黄金映像的当前版本。响应于供应商或服务提供商推荐更新,映像创建器144在1804处创建黄金映像的新版本。为了创建新的映像版本V3,除了来自服务提供商的推荐补丁之外,映像创建器144还应用来自一个或多个离群目标的一个或多个漂移补丁的集合。映像版本V3被添加到黄金映像,并且在1806处可以被提升为活动状态。目标添加在一些情况下,新的目标或目标组可以在黄金映像已被创建并且订阅已被形成之后被添加到系统100并在系统100内初始化。当新目标被添加时,映像顾问142可以分析目标的属性(例如,主属性和/或次属性),以对目标进行分类并且为新目标确定要加入的群集组。例如,当接收到初始化目标的请求时,新目标可以被添加到共享相同目标类型、软件发布版本和平台的目标的群集组。一旦被添加到群集组,则新目标可以被更新,以匹配黄金映像的最新版本。如果目标不适合任何其它群集组,则可以形成新的群集组。在一个实施例中,用于新初始化的目标的漂移信息可以由漂移管理器152生成和显示。响应于接收到初始化新目标的请求,漂移管理器152可以将新目标的配置级别与在用于新目标被添加到的群集组的结束状态定义中指定的源组件进行比较。如果漂移管理器152确定新目标不满足用于该群集组的推荐的结束状态,则漂移管理器152可以生成和显示指示新目标不同于标准配置级别的信息。漂移管理器还可以指示新目标以什么方式不同于标准配置级别。例如,漂移管理器152可以显示新目标的补丁级别与和结束状态定义相关联的推荐补丁级别的差异。示例映像管理接口在一个实施例中,映像顾问142提供集中式接口和工作流程集合,用户可以通过集成式接口和工作流程集合来最小化配置污染以及管理系统100内的标准。集中式接口可以包括识别目标112a至112n的当前配置级别和/或推荐不同配置级别的控制面板或其它用户接口元素的集合。图19A至19F描绘了可以被用来管理标准化过程的示例控制面板和其它接口。图19示出了控制面板1900,其显示数据中心内的软件配置的当前状态以及同一数据中心内的软件配置的推荐状态。由控制面板1900绘出的显示内容是在数据库软件安装的背景下,并且指示数据中心内数据库安装的总数。然而,除了显示用于数据库安装的推荐之外或作为显示用于数据库安装的推荐的替代,控制面板可以被用来显示用于其它类型的软件安装的配置级别。饼图1902示出了数据中心内当前安装的软件配置的总数。饼图1902的每个切片对应于不同的软件配置级别。饼图1902的每个切片还表示数据中心内在对应软件配置级别配置的一个或多个目标。饼图1904示出了数据中心内的软件配置的推荐数量。饼图1904的每个切片对应于不同的推荐配置级别和结束状态定义。饼图1904的每个切片还表示被分组在对应的推荐桶内的一个或多个目标。用户可以选择按钮1906来查看用于推荐桶中的每个推荐桶的推荐的结束状态定义和黄金映像。图19B示出了控制面板1910,其显示用于不同推荐桶的推荐结束状态定义。在控制面板1910内,用户可以导航以查看数据中心的分析,该数据中心的分析呈现诸如控制面板1900中所绘出的显示内容。用户还可以查看和分类推荐的黄金映像和结束状态定义。用户可以基于推荐创建新的黄金映像,或者可以精炼推荐标准以生成新的推荐。图19C示出了控制面板1920,其显示用于监控映像和订阅的成员的集中式接口。该接口允许用户查看数据中心内遵循特定黄金映像的订阅的目标和活动部署的总数。该接口还绘出了黄金映像的活动版本的数量以及符合黄金映像的订阅的目标的百分比。控制面板1920还绘出了用于黄金映像的组的统计数据。例如,尽管对于12.1.0.1发布存在四个分开的黄金映像,但是也为12.1.0.1发布示出了订阅的目标的总数、合规性百分比以及其它组合的统计数据。附加地,控制面板1920描绘了用于数据中心环境内的黄金映像的完整集合的订阅的目标、部署、活动版本的总数和合规性百分比。图19D示出了控制面板1930,其显示关于选择的黄金映像及其版本的信息。控制面板1930识别黄金映像的哪个版本是当前的以及黄金映像的哪些较旧的版本仍然活动。控制面板1930还描绘了多少部署遵循黄金映像的每个活动版本以及多少部署是离群的。图19E示出了控制面板1940,其显示用于管理黄金映像内的不同映像版本的状态的选项。控制面板1940允许用户向下深究到与黄金映像相关联的不同版本和订阅中。控制面板1940还允许用户管理新创建的映像版本的状态。例如,用户可以创建、编辑或删除黄金映像的草案版本。用户还可以将映像版本提升为活动受限或活动当前状态,或者将受限版本恢复到草案状态。图19F示出了控制面板1950,其显示用于管理订阅的目标的动作中心。从控制面板1950,用户可以执行包括添加新成员、更新不合规成员、处理离群目标以及查看目标的更新状态的动作。上面的控制面板允许用户理解在任何给定时间点处环境内的配置污染和标准化的状态。控制面板还提供用于跟踪库存和趋势的图表和其它接口元素,以帮助管理员理解数据中心环境内的蔓延(sprawl)和进行中的变化。硬件概述根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行技术,或者可以包括诸如被永久性地编程以执行技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括被编程为按照固件、存储器、其它存储装置或者其组合中的程序指令执行技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的编程结合来实现技术。专用计算设备可以是桌上型计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现技术的任何其它设备。例如,图20是示出可以在其上实现本发明的实施例的计算机系统2000的框图。计算机系统2000包括总线2002或者用于传送信息的其它通信机制,以及与总线2002耦接以用于处理信息的硬件处理器2004。硬件处理器2004可以是例如通用微处理器。计算机系统2000还包括耦接到总线2002以用于存储信息和要由处理器2004执行的指令的主存储器2006,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器2006还可以用于在要由处理器2004执行的指令的执行期间存储临时变量或其它中间信息。当被存储在处理器2004可访问的非暂态存储介质中时,这样的指令使计算机系统2000成为被定制以执行指令中指定的操作的专用机器。计算机系统2000还包括耦接到总线2002以用于为处理器2004存储静态信息和指令的只读存储器(ROM)2008或者其它静态存储设备。诸如磁盘、光盘或固态驱动器之类的存储设备2010被提供并且耦接到总线2002,以用于存储信息和指令。计算机系统2000可以经由总线2002耦接到诸如液晶显示器(LCD)或发光二极管(LED)显示器之类的显示器2012以用于向计算机用户显示信息。包括字母数字和其它键的输入设备2014耦接到总线2002,以用于向处理器2004传送信息和命令选择。另一种类型的用户输入设备是诸如鼠标、轨迹球或者游标方向键之类的游标控制器2016,以用于向处理器2004传送方向信息和命令选择以及用于控制显示器2012上的游标移动。这种输入设备通常具有允许设备指定平面中的位置的在两个轴(第一个轴(例如,x)和第二个轴(例如,y))上的两个自由度。计算机系统2000可以使用与计算机系统结合使得计算机系统2000成为专用机器或者将计算机系统2000编程为专用机器的定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所描述的技术。根据一个实施例,本文的技术由计算机系统2000响应于处理器2004执行包含在主存储器2006中的一条或多条指令的一个或多个序列而执行。这样的指令可以从诸如存储设备2010之类的另一存储介质读取到主存储器2006中。包含在主存储器2006中的指令序列的执行使处理器2004执行本文所描述的过程步骤。在可替代的实施例中,硬连线的电路系统可以代替软件指令或者与软件指令结合使用。如在本文所使用的,术语“存储介质”指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备2010。易失性介质包括动态存储器,诸如主存储器2006。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带,或者任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔的图案的任何物理介质、RAM、PROM以及EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。如本文所使用的,术语“逻辑”包括被配置为执行一个或多个功能或动作和/或引起来自另一逻辑、方法和/或系统的一个或多个功能或动作的计算机或电气硬件组件(多个电气硬件组件)、固件、存储指令的非暂态计算机可读介质和/或这些组件的组合。逻辑可以包括由可执行代码控制的微处理器、离散逻辑(例如ASIC)、模拟电路、数字电路、编程的逻辑器件、包含当被执行时执行算法的指令的存储器设备等等。逻辑可以包括一个或多个门、门的组合或其它电路组件。在描述多个逻辑单元的地方,将多个逻辑单元并入一个物理逻辑组件中可以是可能的。类似地,在描述单个逻辑单元的地方,在多个物理逻辑组件之间分布单个逻辑单元可以是可能的。存储介质不同于传输介质但是可以与其结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,这些同轴电缆、铜线和光纤包括包含总线2002的线。传输介质还可以采取声波或光波的形式,诸如在无线电波数据通信和红外数据通信中生成的那些声波或光波。将一条或多条指令的一个或多个序列承载到处理器2004以供执行可以涉及各种形式的介质。例如,指令最初可以被承载在远程计算机的磁盘或固态驱动器上。远程计算机可以把指令加载到其动态存储器中并且使用调制解调器经电话线发送指令。计算机系统2000本地的调制解调器可以接收电话线上的数据并且使用红外发射器把数据转换成红外信号。红外检测器可以接收红外信号中承载的数据,而适当的电路系统可以把数据放在总线2002上。总线2002把数据承载到主存储器2006,处理器2004从主存储器2006检索指令并且执行指令。由主存储器2006接收的指令可以可选地在由处理器2004执行之前或之后被存储在存储设备2010上。计算机系统2000还包括耦接到总线2002的通信接口2018。通信接口2018提供耦接到网络链路2020的双向数据通信,其中网络链路2020连接到局域网2022。例如,通信接口2018可以是提供到对应类型的电话线的数据通信连接的综合业务数字网络(ISDN)卡、线缆调制解调器、卫星调制解调器或调制解调器。作为另一个示例,通信接口2018可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。无线链路也可以被实现。在任何这样的实现中,通信接口2018发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。网络链路2020通常通过一个或多个网络提供到其它数据设备的数据通信。例如,网络链路2020可以通过局域网2022提供到主机计算机2024或者到由互联网服务提供商(ISP)2026运营的数据设备的连接。ISP2026又通过现在通常被称为“因特网”2028的全球分组数据通信网络提供数据通信服务。局域网2022和因特网2028两者都使用承载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路2020上并且通过通信接口2018的信号是传输介质的示例形式,其中这些信号把数字数据承载到计算机系统2000或者承载来自计算机系统2000的数字数据。计算机系统2000可以通过网络(多个网络)、网络链路2020和通信接口2018发送消息和接收包括程序代码的数据。在因特网示例中,服务器2030可以通过因特网2028、ISP2026、局域网2022和通信接口2018传送对应用程序的请求代码。接收的代码可以由处理器2004在它被接收到时执行,和/或被存储在存储设备2010或其它非易失性存储装置中以供以后执行。云计算概述本文所描述的技术是使用一个或多个处理解决方案实现的,该一个或多个处理解决方案的示例包括分布式系统、集群计算系统和云计算系统。在实施例中,系统100是云计算系统的一部分。云计算系统实现以下的一个或多个:云存储、云处理、云通信和任何其它类型的云计算服务。此外,云计算系统可以按现使用现付费(pay-for-what-you-use-as-you-use-it)模型操作、按固定订阅模型操作等。在这个实施例中,归因于系统100或归因于本描述内的其它实体的功能中的任何部分(或全部)可经由在云计算系统处暴露的接口来控制。扩展和可替代物在前面的说明书中,参考依实施方式不同的许多具体细节描述了本发明的实施例。因此,说明书和附图应当以说明性意义而不是限制性意义来考虑。本发明范围的唯一且排他的指示物以及申请人意图要作为本发明范围的是以权利要求发布的具体形式从本申请发布的权利要求集合的字面和等价范围,包括任何后续补正。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1