CN111316231A - 人工智能驱动的配置管理 - Google Patents
人工智能驱动的配置管理 Download PDFInfo
- Publication number
- CN111316231A CN111316231A CN201880071050.5A CN201880071050A CN111316231A CN 111316231 A CN111316231 A CN 111316231A CN 201880071050 A CN201880071050 A CN 201880071050A CN 111316231 A CN111316231 A CN 111316231A
- Authority
- CN
- China
- Prior art keywords
- cluster
- nodes
- clusters
- deployments
- node
- 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
Links
- 238000013473 artificial intelligence Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008859 change Effects 0.000 claims abstract description 6
- 230000002452 interceptive effect Effects 0.000 claims description 32
- 238000012800 visualization Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 27
- 238000010801 machine learning Methods 0.000 abstract description 6
- 239000013598 vector Substances 0.000 description 44
- 238000007726 management method Methods 0.000 description 35
- 238000003860 storage Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 22
- 238000004458 analytical method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 10
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 10
- 229910052737 gold Inorganic materials 0.000 description 10
- 239000010931 gold Substances 0.000 description 10
- 239000010410 layer Substances 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013024 troubleshooting Methods 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007621 cluster analysis Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文描述了用于人工智能驱动的配置管理的技术。在一些实施例中,机器学习过程确定用于软件资源的多个部署的特征集。基于特征集中的变化值,该过程将该多个部署中的每个部署聚类到多个聚类中的聚类中。该多个聚类中的每个聚类包括一个或多个节点,并且该一个或多个节点中的每个节点对应于在软件资源的该多个部署中的至少一个部署中被检测到的特征集的值的至少一个子集。该过程为该多个聚类中的每个聚类确定代表性节点。可以基于至少一个聚类的代表性节点来执行操作。
Description
权益声明;相关申请;通过引用并入
本申请要求于2018年7月23日提交的美国非临时专利申请16/042,971的权益,该申请进一步要求于2017年9月29日提交的美国临时专利申请62/566,235的权益,这些专利申请通过引用并入本文。
技术领域
本公开涉及管理部署的软件资源的配置。
发明内容
复杂的软件系统通常由于配置设置的大量可能的组合而难以管理。例如,相同的软件资源的不同部署可能具有语言设置、安全设置、补丁集更新(PSU)和网络设置以及其它配置设置的不同组合。未能正确管理部署配置可能会使系统面临各种问题,包括安全漏洞和性能下降。
一种管理软件配置的方法是手动创建黄金映像(gold image)。根据这种方法、系统管理员为一组软件部署选择最佳配置设置,并创建包含这些配置设置的软件映像(“黄金”映像)。然后将软件部署与黄金映像进行比较,以识别配置差异。当系统管理员知道每种软件资源的最佳配置时,该方法是有效的。但是,在大型且不断增长的环境中,同一软件资源的不同部署之间的最佳配置可能不同,并且当前的最佳配置可能不是将来的最佳配置。系统管理员可能只有有限的领域知识和带宽来确定哪些配置设置是最佳的以及哪些配置设置是有问题的。因此,这种方法无法很好地扩展到基于云的应用和其它大规模系统。
本节中描述的方法是可以采用的方法,但不一定是先前已经设想或采用的方法。因此,除非另有说明,否则不应仅由于将本节中所述的任何方法包括在本节中而将其视为有资格作为现有技术。
附图说明
在附图的各图中,通过示例而非限制的方式图示了实施例。应当注意的是,在本公开中对“实施例”或“一个实施例”的引用不一定是指相同实施例,并且它们意味着至少一个。在附图中:
图1图示了根据一些实施例的用于利用机器学习来驱动配置管理的示例系统架构;
图2图示了根据一些实施例的用于管理软件资源的部署的示例操作集合;
图3图示了根据一些实施例的用于生成带注释的聚类(cluster)集合的示例数据流图;
图4图示了根据一些实施例的用于提取用于对软件资源的部署进行聚类的特征集的示例操作集合;
图5图示了根据一些实施例的用于对软件资源的部署集合进行聚类的示例操作集合;
图6图示了根据一些实施例的用于汇总聚类集合的示例操作集合;
图7图示了根据一些实施例的聚类集合的示例交互式可视化;
图8图示了根据一些实施例的用于所选择的聚类的示例交互式可视化;
图9图示了根据一些实施例的聚类集合的示例汇总;
图10图示了根据一些实施例的用于基于聚类的部署集合来修正漂移的示例流程;以及
图11示出了图示根据一些实施例的计算机系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供透彻的理解。可以在没有这些具体细节的情况下实践一些实施例。一个实施例中描述的特征可以与另一个实施例中描述的特征组合。在一些示例中,参考框图形式描述了众所周知的结构和设备,以避免不必要地混淆本发明。
1.总体概述
2.系统架构
3.人工智能驱动的部署聚类
3.1特征集提取
3.2聚类生成
3.3聚类汇总和代表性节点
3.4对不同特征集的聚类
3.5可伸缩的存储器中聚类模型
4.用于配置管理的交互式接口
4.1聚类可视化和接口
4.2假想聚类和代表性节点变化
4.3汇总可视化和下钻(DRILL-DOWN)操作
4.4拖放接口
5.配置管理操作
5.1初始化新节点
5.2更新节点并修正漂移
5.3黄金映像订阅
5.4分析操作
5.5故障排除操作
6.计算机网络和云网络
7.微服务应用
8.硬件概述
9.其它事项;扩展
1.总体概述
本文描述了用于人工智能驱动的配置管理的技术。在一些实施例中,机器学习过程确定用于软件资源的多个部署的特征集。基于特征集中的变化值,该过程将该多个部署中的每个部署聚类到多个聚类中的聚类中。该多个聚类中的每个聚类包括一个或多个节点,并且该一个或多个节点中的每个节点对应于在软件资源的该多个部署中的至少一个部署中被检测到的特征集的值的至少一个子集。该过程为该多个聚类中的每个聚类确定代表性节点。可以基于至少一个聚类的代表性节点来执行操作。
2.系统架构
图1图示了根据一些实施例的用于利用机器学习来驱动配置管理的示例系统架构。如图1所示,系统100包括目标102a-i、收集代理104a-j、分析服务106、数据储存库118和客户端128a-k。在一些实施例中,系统100可以包括比图1所示的组件更多或更少的组件。图1所示的组件可以是彼此本地的或彼此远离的。图1所示的组件可以用软件和/或硬件来实现。每个组件可以分布在多个应用和/或机器上。多个组件可以被组合到一个应用和/或机器中。相对于一个组件描述的操作可以替代地由另一个组件执行。
目标102a-i对应于用于支持特定资源的部署的硬件和/或软件组件。示例硬件目标可以包括主机机器、服务器设备、网络适配器和存储驱动器。示例软件目标可以包括侦听器、负载均衡器、虚拟机、中间件和应用实例。在这种上下文中,软件资源或系统可以是通过使用各种硬件和软件组件运行的多层软件应用。例如,多层应用可以包括用于与一个或多个用户接口连接的表示层、用于执行特定于应用的逻辑的应用层以及用于存储和检索数据的数据层。在其它情况下,软件资源可以是多层应用的单层内的应用或其它软件组件。例如,软件资源可以对应于在多层应用的数据层中执行的数据库管理系统。在其它实施例中,软件资源可以是独立应用或其它软件组件。例如,软件资源可以是独立的桌面应用。因此,本文所述的人工智能驱动的管理技术可以应用于广泛的各种软件资源。
收集代理104a-j从目标102a-i收集部署参数,并将部署参数提供给分析服务106以进行后续处理。收集代理104a-j中的一个或多个收集代理可以是在与目标相同的主机上执行的守护程序(daemon)或后台进程。附加地或替代地,收集代理104a-j中的一个或多个收集代理可以位于远离目标的远程主机上,其中代理被配置为为该目标收集参数。虽然每个目标描绘了一个收集代理,但是收集代理可以根据实现从多个目标或从单个目标收集参数。
所收集的部署参数可能因实现而异。示例参数包括以下一项或多项:
·配置设置:这些参数识别软件资源的部署的配置。例如,这些参数可以识别哪些补丁已被应用于部署、安全设置(诸如防火墙和开放网络端口配置)、语言设置(诸如,在启动时已选择哪个语言)、操作系统(OS)设置(诸如,软件资源被配置为在其上执行的主机机器上的OS名称和版本)以及日志设置(诸如最大日志大小和速率)。
·静态属性:这些参数识别在运行时期间不改变的部署的特性。例如,静态属性可以对关于用于部署的软件二进制文件或代码占用(footprint)的信息进行编码。
·运行时属性:这些参数识别在运行时期间被捕获的部署的特性。例如,参数可以捕获运行时性能属性,诸如平均/最小/最大CPU性能、存储器带宽、活动会话和I/O吞吐量。这些参数还可以捕获错误报告、安全漏洞、日志写入吞吐量以及其它不是静态可用的信息。
·系统架构:这些参数识别用于运行软件资源的组件的结构和关系。例如,属性可以识别关于在其上运行软件资源的(一个或多个)目标主机的信息,诸如地理位置、主机名和IP地址。在另一个示例中,这些参数可以捕获拓扑/架构信息,诸如支持软件资源的部署的不同目标之间的依赖性。在又一个示例中,这些参数可以识别由软件资源的部署支持的可用服务的列表。
分析服务106包括可以被调用以执行如本文进一步描述的聚类和管理操作的应用和/或网络服务集合。分析服务106包括收集逻辑108、特征提取器110、聚类生成器112、聚类分析器114和控制台116。每个服务实现一个功能或功能集,如下所示:
·收集逻辑108与收集代理104a-j接口连接以收集用于软件资源的多个部署的部署参数。
·特征提取器110从用于对软件资源的部署进行聚类的部署参数中提取特征;
·聚类生成器112基于在软件资源的该多个部署中检测到的特征集的值来对部署参数进行聚类。
·聚类分析器114基于聚类的成员来汇总/注释聚类;以及
·控制台116提供接口,通过该接口可以调用分析服务106的一个或多个功能。
上面汇总的功能集可以通过单个服务或通过不同的服务来实现。附加地或替代地,取决于特定实施方式,示出为由单个服务执行的功能可以由不同服务执行。可以将一个或多个服务封装到微服务应用和/或云应用中,诸如软件即服务(SaaS)应用。
在实施例中,分析服务106被实现在一个或多个数字设备上。术语“数字设备”通常指包括处理器的任何硬件设备。数字设备可以指执行应用或虚拟机的物理设备。数字设备的示例包括计算机、平板电脑、膝上型电脑、台式机、上网本、服务器、web服务器、网络策略服务器、代理服务器、通用计算机,特定于功能的硬件设备、硬件路由器、硬件交换机、硬件防火墙、硬件防火墙、硬件网络地址转换器(NAT)、硬件负载均衡器、大型机、电视机、内容接收器、机顶盒、打印机、移动手持装置、智能电话、个人数字助理(“PDA”)、无线接收器和/或发送器、基站、通信管理设备、路由器、交换机、控制器、接入点和/或客户端设备。
数据储存库118包括用于存储由分析服务106生成和/或使用的数据的易失性和/或非易失性存储装置。所存储的数据集包括:
·收集的属性120,其包括由收集逻辑108收集的部署参数;
·特征向量122,其包括对由特征提取器110检测到的特征集的不同实例进行编码的特征向量;
·聚类的结果124,其将特征集的部署/实例分组到聚类中;以及
·接口对象126,其包括要呈现给用户的图表、图形、注释、汇总和/或其它元素。
在一些实施例中,数据储存库118是用于存储数据的任何类型的存储单元和/或设备(例如,文件系统、数据库、表的集合或任何其它存储机制)。此外,数据储存库118可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是或可以不是相同的类型或可以位于或可以不位于相同的物理站点。此外,数据储存库118可以在与系统100的一个或多个其它组件相同的计算系统上和/或在完全独立的计算系统上实现或执行。数据储存库118可以经由直接连接或经由网络通信地耦合到分析服务106。
客户端128a-k表示可以访问分析服务106以执行如本文进一步描述的聚类和管理操作的一个或多个客户端。在这种上下文中,“客户端”可以是人类用户,诸如管理员、客户端程序或某种其它应用实例。客户端可以在与分析服务106相同的主机上本地执行,或者可以在不同的机器上执行。如果在不同的机器上执行,那么客户端可以根据客户端-服务器模型经由一种或多种数据通信协议与分析服务106通信,诸如通过提交HTTP请求以调用一个或多个服务并接收包括由一个或多个被调用的服务生成的结果的HTTP响应。
控制台116可以向客户端128a-k提供接口,通过该接口可以调用所提供的服务中的一个或多个服务。接口的示例包括图形用户界面(GUI)、命令行接口(CLI)、应用编程接口(API)、触觉接口和语音命令接口。用户接口元素的示例包括复选框、单选按钮、下拉列表、列表框、按钮、切换开关、文本域、日期和时间选择器、命令行、滑块、页面和表格。
下面分别在标题为“计算机网络和云网络”的第6节和标题为“微服务应用”的第7节中描述与计算机网络和微服务应用相关的附加实施例。
3.人工智能驱动的部署聚类
在一些实施例中,分析服务106被配置为对从软件资源的多个部署收集到的部署参数执行无监督的聚类分析。可以基于软件资源的不同配置之间的部署参数中的学习模式来形成聚类。这些模式可能是隐藏的,或者可能以其它方式不那么明显,从而使得从原始部署数据中确定要进行的推断可能是极其昂贵的。
图2图示了根据一些实施例的用于管理软件资源的部署的示例操作集合。这些操作中的每个操作的附加示例和实施例在下面的3.1到3.4小节中提供了进一步的详细信息。该操作集合包括收集用于软件资源的多个部署的参数(操作202)。例如,收集逻辑108可以从特定软件应用或系统的部署中收集配置设置、静态属性、运行时属性和/或系统架构数据。
该操作集合还包括确定用于软件资源的部署的特征集(操作204)。用于对部署进行聚类的特征集可能因实现而异。在一些实施例中,使用收集到的部署参数的组合。例如,特征集可以包括在操作202处收集到的一个或多个参数,诸如一个或多个配置设置、静态属性、运行时属性和/或系统架构属性。如在第3.4小节中进一步详细描述的,可以使用不同的特征集来生成不同的聚类。在其它实施例中,可以在单个特征集上执行聚类。
为特征集选择参数的方式可以取决于特定实现而变化。可以以无监督或受监督的方式选择参数。例如,可以通过算法,诸如通过使用受监督的或无监督的过程来训练相关模型的机器学习模型来选择参数。在题为“CORRELATION-BASED ANALYTIC FOR TIME-SERIESDATA”的美国申请No.15/155,486中描述了示例基于相关性的机器学习模型,其全部内容通过引用并入本文,就如同全文完全阐述一样。作为另一个示例,可以基于一组过滤标准来自动选择参数,该过滤标准可以是默认预定义的或由用户选择的。满足过滤条件的参数被保留在特征集中,而不满足过滤条件的参数被移除。在又一个示例中,参数可以由外部用户/客户端来组织(curate)。组织的参数集可以存储在列表或类似数据结构中,并与收集到的参数进行匹配。
再次参考图2,该操作集合还包括基于在收集到的部署参数中检测到的特征集的变化值来生成节点的聚类(操作206)。可以从收集到的部署参数中确定特征集中的值。一般而言,基于特征集的值的相似性(诸如配置设置、运行时度量等)对部署进行聚类。即与具有特征集的相异值的另一个部署相比,部署更可能被指派给与具有特征集的相似值的另一个部署相同的聚类。
该操作集合还包括确定每个聚类中的代表性节点(操作208)。聚类的代表性节点可以从现有节点中选择,或者可以被构造为聚类的新节点。在一些实施例中,代表性节点对应于聚类的模式。在这种上下文中,模式是在指派给聚类的部署中,特征集中具有最频繁出现的值组合的节点。
确定模式可以涉及从特征集中进一步排除与代表性节点的预期目的不相关的某些特征。作为示例,如果特征不影响升级或补丁操作和/或不受升级或补丁操作的影响(其可以通过查看作为升级或补丁操作的主题的特征来确定),那么该特征可以被排除。作为另一个示例,如果特征与被分析的功能不相关(这可以基于该值是否在具有该功能的一些系统中存在而在没有该功能的其它系统中不存在来确定),那么该特征可以被排除。结果是确定特征的相关子集的模式。
在其它实施例中,可以以某种其它方式来构造或选择代表性节点,诸如通过计算特征集中的值的均值或者选择聚类的最后一个已知配置,诸如聚类中存在的升级或补丁的最新版本或日期。例如,可以将代表性节点的特征值计算为部署之间的平均值,其可能已在指派给聚类的部署之一中检测到或未检测到。
图3图示了根据一些实施例的用于生成带注释的聚类集合的示例数据流图。特征提取器110接收表示为D的部署参数集,用于软件资源的多次部署。数据点集{x1,1,…,xi,j}可以包括用于不同部署参数的参数值。例如,值可以识别用于对应部署的配置设置、运行时度量、拓扑信息等。特征提取器110还接收表示为F的特征集,其识别应当用于聚类的特征。基于特征集F和部署参数,特征提取器110为每个软件部署创建表示为FV的特征向量。聚类生成器112接收特征向量并生成表示为C的聚类集合。C中的每个聚类包括一个或多个节点,该一个或多个节点对应于特征集F中的值的至少一个子集。聚类分析器114为每个聚类确定代表性节点,其在数据集中标识为R。
3.1特征集提取
特征集是指驱动聚类过程的属性或参数集。特征集可以包括从软件部署收集到的参数的任何组合。附加地或替代地,特征集可以包括根据收集到的部署参数计算出的属性(在本文中称为“计算出的特征”)。例如,用于对数据库实例进行聚类的特征集可以包括以下三个原始特征:
·CPU计数,用于识别数据库实例可使用的CPU的数量;
·分配给数据库实例的存储器;以及
·数据库实例的存储器吞吐量。
该特征集还可以包括以下两个计算出的特征:
·在本文称为“计数”(“count”)的参数,其被指派识别从默认设置改变的配置设置的数量的值;以及
·在本文称为“_count”的参数,其被指派识别所利用的未记录的配置设置的数量的值。
上述特征集对于根据性能度量和配置设置对数据库实例进行聚类是有用的。但是,取决于特定的实施方式,特征的组合和所使用的特征的数量可能不同。
在一些情况下,特征集除了计算出的特征之外,还可以包括所有收集到的部署参数(如果有的话)。但是,许多参数对于聚类可能没有帮助。例如,如果所有部署都在相同版本的软件资源上运行,或者管理员对使用版本号作为区分特征不感兴趣,那么基于版本号的聚类可能无法传达有用的信息。但是,对于其它应用,基于版本号以及其它特征的聚类可能是有用的,诸如用于比较软件资源的不同版本之间的性能度量。特征提取器110可以提取用于聚类的特征,并且过滤/移除不使用的参数。如前所述,特征提取器110可以基于过滤标准集合和/或通过算法,基于注入的领域知识,诸如组织的参数集,来执行提取。
图4图示了根据一些实施例的用于提取用于对软件资源的部署进行聚类的特征集的示例操作集合。该操作集合包括识别从目标软件部署收集到的参数集(操作402)。
该操作集合还包括基于过滤标准和/或组织来确定特征集(操作404)。示例过滤标准可以包括参数的基数(cardinality)。例如,可以移除所有实例之间公共的或具有超过阈值的基数的参数。在后一种情况下,例如,如果特征在一百多个已部署的资源、80%以上已部署的资源或任何其它阈值之间是公共的,那么可以移除这些特征。该过滤器将移除在不同软件部署之间几乎没有变化的参数。
附加地或替代地,可以使用其它过滤标准来从特征集中移除参数。例如,特征提取器110可以检测并除去(stem)预定义的参数,诸如版本号和/或其它不相关的参数。
在一些实施例中,可以分析参数以确定其是否满足过滤器。例如,可以将参数与补丁信息集合进行比较,以确定参数是否是升级操作或补丁操作的主题。如果不是,那么可以从特征集中滤除该参数。
附加地或替代地,可以基于组织来选择参数。例如,系统管理员或其它用户可以提供感兴趣的参数列表。然后,只有参数列表上的特征才包含在特征集中。作为另一个示例,系统管理员或其它用户可以提供应排除的参数列表。列表上的特征将从特征集中排除,而不在参数列表中的特征可以被包含或可以不被包含在特征集中。特征组织允许将领域知识注入到过程中以定制特征提取过程。
附加地或替代地,特征集内的特征可以是基于一个或多个收集到的参数进行计算的计算出的特征。例如,可以通过对非默认参数设置(诸如已由用户从默认状态改变的配置值)的数量进行计数来创建特征。较高的值可以反映从默认状态较多数量的改变。作为另一个示例,可以通过对未记录的参数集的数量进行计数来创建特征。对于应用于软件部署的每个自定义的补丁或其它附加组件(add-on),该值可以递增。在又一个示例中,性能度量可以被聚合或以其它方式被组合。
该操作集合还包括创建特征向量,该特征向量包括在收集到的参数中检测到的特征集的值(操作406)。特征集的值的唯一组合在本文中被称为特征集的“实例”。在其中特征集为{CPU计数,分配的存储器,存储器吞吐量,计数,_count}的示例中,特征集的实例的示例特征向量可以为{320,8GB,97%,30,25}。但是,这些值在不同的部署和特征向量之间可能不同。
该操作集合还包括上卷(rolling up)公共特征向量(操作408)。例如,如果两个或更多个部署对于特征集或特征集的相关子集共享相同的值,那么可以将这些特征向量上卷为一个。可以维持计数值,该计数值识别多少个部署共享由特征向量编码的特征值。附加地或替代地,可以维持在特征向量和由特征向量表示的部署之间的映射。
3.2聚类生成
一旦提取了聚类特征,聚类生成器112就运行聚类分析,该聚类分析产生诸如软件部署之类的目标资源的聚类。图5图示了根据一些实施例的用于对软件资源的部署集合进行聚类的示例操作集合。该操作集合包括接收聚类特征集(操作502)。可以按照前面小节中的描述提取特征集,并将其提供给聚类生成器112.
该操作集合还包括将特征向量划分成多个聚类(操作504)。所使用的聚类方法可能因实现而异。示例可以包括但不限于k-模式聚类和k-均值聚类。例如,利用k模式聚类,聚类过程可以随机选择k个唯一特征向量作为初始聚类中心。然后,聚类过程可以计算每个特征向量与聚类模式之间的距离,并将特征向量指派给其中心具有到特征向量的最短距离的聚类。然后可以为每个聚类选择新模式,并将其与先前模式进行比较。如果不同,那么可以重新指派对象。否则,聚类可以停止。
该操作集合还包括确定用于软件部署的聚类的最佳数量(操作506)。在一些实施例中,通过对k的多个值执行操作504来确定聚类的最佳数量,其中k是聚类的总数。例如,可以将特征向量划分为两个聚类、三个聚类等,直到最大阈值。然后可以使用间隙统计来选择最佳k。根据该技术,对一个或多个随机数据集进行聚类,并将其与对实际数据集进行聚类的结果进行比较。然后选择聚类数量k以最大化间隙统计,其被定义为:
该操作集合还包括保留具有最佳数量的聚类的聚类(操作508)。例如,如果k的最佳数量为3,那么三个聚类被保留作为通过k模式或k均值聚类生成的聚类。
如前所述,可以基于距离向聚类指派特征向量。所使用的距离函数可以因实现而异。在一些实施例中,欧几里得距离用于将特征向量指派给聚类。在其它情况下,特征可以与权重相关联。例如,相比于较不重要的特征,被认为更重要的差异的特征在距离计算中可以被赋予更大的权重。在其它情况下,可以将特征集中的所有特征平均加权。
聚类操作的结果是包含一个或多个节点的聚类集合。聚类中的每个节点都对应于存储在一个或多个软件部署中被检测到的特征集的值的特征向量。例如,特征向量{320,8GB,97%,30,25}可以是特征集{CPU计数,分配的存储器,存储器吞吐量,计数,_count}的实例。可能已经在单个部署中或在多个部署中检测到该特征向量(它是上述特征集的实例)。在后一种情况下,将特征向量指派给聚类有效地将具有对应特征值的多个部署指派给聚类。
3.3聚类汇总和代表性节点
在一些实施例中,聚类分析器114被配置为生成每个聚类的汇总。汇总可以包含关于隐藏模式的信息或关于聚类的可能对配置管理有用的其它信息。例如,汇总可以识别已经被指派给聚类的软件部署的不同配置的数量、聚类之间分散/差异的大小、和/或聚类中的公共配置设置。
附加地或替代地,汇总可以识别聚类的代表性节点。在配置设置的上下文中,可以选择代表性节点作为被指派给聚类的部署的最频繁检测到的配置值的集合。可以选择代表性节点作为被指派给聚类的其它节点的黄金/推荐配置级别。在其它上下文中,代表性节点可以识别在软件部署当中检测到的最常见的安全漏洞、错误、性能度量或其它部署参数。代表性节点可以允许用户快速理解和可视化大量软件资源部署当中的配置漂移和/或其它潜在问题。
图6图示了根据一些实施例的用于汇总聚类集合的示例操作集合。该操作集合包括选择聚类(操作602)。可以按任何顺序分析聚类。例如,聚类分析器114可以从数据集C中选择第一聚类c1,或者以数据集中的任何其它聚类开始。
该操作集合还包括确定聚类内的特征集的不同实例/特征向量(操作604)。例如,在特征集包括配置设置的组合的情境下,该操作可以涉及确定聚类中有多少个配置设置的值的唯一组合。该数量对应于聚类中软件部署的特征集的唯一配置的数量。
该操作集合还包括基于聚类中的特征集的实例来确定聚类的代表性节点(操作606)。如前所述,可以选择代表性节点作为聚类中与最大数量的软件部署对应的节点。在其它实施例中,该节点可以被构造为新节点,而不是从现有节点中选择。例如,可以通过对聚类中多个节点之间的特征集中的值进行平均来构造新节点。
该操作集合还包括生成聚类的分层表示(操作608)。在一些实施例中,分层表示是基于聚类中每个非代表性节点的差异而计算的图。可以递归地构建该图以描述配置与代表性节点如何不同的结构。分层图可以识别到聚类中软件部署的每个不同配置/状态的完整路径。分层图还可以识别任何常见的中间观察到的配置/状态。该图可以提供用于向上对平(up-levelling)的便利接口。通过具有中间状态,可以基于用户的兴趣和偏好来递归地折叠或扩展该图。
一旦已经生成汇总,该过程就确定是否存在任何剩余聚类要进行分析(操作610)。如果是,那么对于下一个所选择的聚类重复该过程。如果没有剩余聚类要进行汇总,那么过程结束。
3.4对不同特征集的聚类
在一些情况下,可以使用不同的聚类特征集对软件部署进行多次聚类。例如,可以基于包括各种安全参数的特征集来生成聚类集合。可以使用包括性能特征的特征集来生成另一个聚类集合。又一个聚类集合可以集中于补丁集更新。因此,不同的聚类集合可以与不同的兴趣一致。
在一些实施例中,特征集可以被分组为类别,类别可以包括用户定义的类别和/或系统定义的类别。不同的类别可以与不同的特征集相关联。例如,可以定义性能类别以使用性能属性集合来对目标资源进行聚类,这些性能属性集合可以由系统100或用户定义。例如,性能属性可以包括CPU利用率、网络吞吐量和/或存储器利用率。附加地或替代地,可以将安全类别定义为包括安全参数的组合,安全参数诸如补丁级别、开放端口和防火墙设置。附加地或替代地,可以定义类别以分析多层应用的各个层。例如,表示层类别可以被定义为包括与目标部署的表示层相关联的属性的组合,诸如web服务器主机配置设置和web服务器性能信息。可以为应用层、数据层和/或任何其它部署参数集合定义类似的类别。
当定义了多个类别时,用户可以选择要对其执行聚类的类别。例如,如果用户选择性能类别,那么可以使用为该类别定义的性能属性的组合来创建特征向量集合。然后可以运行聚类以对相似执行的软件部署进行分组。然后,用户可以选择另一个类别,诸如安全,以使用安全属性的组合来创建特征向量。然后可以使用新创建的特征向量运行聚类,以对具有相似安全设置的软件部署进行分组。附加地或替代地,可以基于从属性的其它组合创建的特征向量来运行聚类。使用不同特征向量的聚类可以顺序地或并行地执行。
在以上给出的示例中,可以将软件部署指派给跨不同类别的不同聚类集合。例如,当对性能属性进行聚类时,可以将软件部署指派给包含一个或多个其它软件部署的一个聚类集合。当对不同的属性集合进行聚类时,可以将软件部署指派给包含不同组的软件部署的另一个聚类集合。
在一些实施例中,软件部署可以跨不同聚类集合被链接。例如,可以维护超链接和/或引用,该超链接和/或引用允许用户在软件部署被指派给的不同聚类集合之间导航。用户可以选择与软件部署相关联的链接,以跳转到和/或查看另一个聚类集合。例如,可以向用户呈现根据性能属性而生成的聚类集合和根据安全属性而生成的聚类集合。用户可以单击或以其它方式选择表示性能聚类集合中的软件部署的链接,以查看在安全聚类集合中该软件部署被指派的位置。感兴趣的聚类集合可以被注释、放大或以其它方式突出显示以便于识别。因此,用户可以沿着几个特征集维度容易地确定并可视化特定软件部署如何与其它部署一致。
3.5可伸缩的存储器中聚类模型
对存储器中的聚类进行建模的一种方法是创建代表各个目标资源的数据点,并对这些数据点运行聚类过程。给定目标资源的数据点可以存储或链接到目标资源的配置设置。可以从目标资源的配置设置中创建特征向量,并将特征向量与聚类质心进行比较以计算距离并为数据点选择聚类。由于每个数据点都被独立地指派给聚类,因此该方法可能涉及维护要进行聚类的每个目标资源的配置设置列表,这可能很难伸缩。大型数据中心和云环境可能具有成千上万个目标资源。因此,用于维护配置设置的完整列表的存储器开销量可能很大。
减少存储器占用的替代方法是用不同的配置替代实体配置的列表。在这种方法中,冗余配置被丢弃,并且只有不同的配置被保留在存储器中。然后可以将不同的配置映射到具有那些不同配置的实体的列表。因此,可以显著地压缩实体配置的数量,这可以显著地减少聚类模型的存储器占用。
在下面的示例中图示了用不同的配置替代实体配置列表所节省的存储器。可以提供以下原始样本作为聚类模型的输入:
·实体1:“param_a”:1,“param_b”:2,“param_c”:3,“param_d”:4
·实体2:“param_a”:1,“param_b”:20,“param_c”:30,“param_d”:4
·实体3:“param_a”:1,“param_b”:2,“param_c”:3,“param_d”:4
·实体4:“param_a”:10,“param_b”:2,“param_c”:3,“param_d”:42
·实体5:“param_a”:1,“param_b”:20,“param_c”:30,“param_d”:4
从上面的原始输入中,检测到三个不同的配置设置,它们可以如下表示:
·状态1:“param_a”:1,“param_b”:2,“param_c”:3,“param_d”:4,“entities”:[1,3]
·状态2:“param_a”:1,“param_b”:20,“param_c”:30,“param_d”:4,“entities”:[2,5]
·状态3:“param_a”:10,“param_b”:2,“param_c”:3,“param_d”:42,“entities”:[4]
每个不同的配置都映射到共享指定配置设置的一个或多个目标资源。如可以看到的,原始数据中的五个配置设置的列表被减少到三个不同的配置设置。当有上百个或更多输入时,节省的成本可能大得多。
还可以通过枚举用于聚类的参数之间的状态来改善可伸缩性,这些参数对应于作为特征集的一部分而选择的参数。例如,可以对上面列出的收集到的配置设置中的参数“param_a”和“param_d”执行聚类。因此,该空间可以被折叠为以下两个特征向量实例:
·向量1:“param_a”:1,“param_d”:4
·向量2:“param_a”:10,“param_d”:42
然后可以如先前描述的那样对不同的特征向量实例进行聚类。一旦聚类完成,就可以将状态和各个实体指派给对应的特征向量。例如,状态1和状态2以及对应的实体[1,2,3,5]被指派给向量1。状态3和对应的实体[4]被指派给向量2。可以基于与相同特征向量相关联的实体的param_b和param_c来计算差异。
4.用于配置管理的交互式接口
可以基于汇总的聚类集合来生成一个或多个交互式接口。交互式接口可以允许用户可视化、导航和以其它方式访问关于聚类的汇总信息。附加地或替代地,交互式接口可以基于聚类结果/汇总向用户提供用于执行一个或多个管理操作的选项。在题为“配置管理”的第5节中描述了可以通过本文提供的交互式接口启动的示例。
第4.1至4.4小节提供了可以从聚类的结果集中生成的交互式接口和可视化的示例。交互式接口和可视化可以以各种方式促进配置管理。例如,交互式接口可以允许通过直观的可视化快速识别并且高效地修正相似目标资源之间的配置漂移。作为另一个示例,交互式接口可以允许快速识别和解决安全漏洞和性能下降。提供下面描述的示例接口和可视化内容仅出于说明目的。交互式接口和可视化的呈现和格式可能因实现而异。
4.1聚类可视化和接口
在一些实施例中,聚类可视化包括节点和边集合的图形表示。可以基于针对聚类的结果而生成的分层图来生成图形表示。聚类可视化中的节点可以表示一个或多个目标资源以及特征向量的唯一实例。边连接已被指派给相同聚类的不同节点。例如,图7图示了聚类集合的示例交互式可视化700。交互式可视化700显示聚类0、聚类1、聚类2和聚类3。每个聚类包括与聚类特征集的不同实例对应的多个节点或顶点。
在一些实施例中,为聚类选择代表性节点。例如,可以选择特征向量的最频繁出现的实例作为代表性节点,或者可以如先前描述的那样构造代表性节点。代表性节点可以对应于用于被指派给聚类的部署的黄金映像或推荐配置。例如,参考图7,聚类0-3的黄金映像表示分别是节点702、704、706和708。代表性节点可以在视觉上突出显示以便于识别。例如,可以以与聚类中其它节点分开的颜色显示代表性节点。附加地或替代地,可以以更大的尺寸显示和/或注释代表性节点。
在一些实施例中,根据具有对应于节点的特征集的配置设置和/或其它值的软件部署的数量来显示图中的节点/顶点的尺寸。例如,节点的尺寸可以与软件部署的数量的对数成正比。因此,与对应于更少部署的节点相比,对应于更多数量的软件部署的节点可以具有更大的显示尺寸/面积。代表性节点可以具有聚类中的节点的最大显示尺寸。
在一些实施例中,属于相同聚类的节点通过边来连接,这些边可以在图形上表示为线。例如,每个聚类的代表性节点(节点702、704、706和708)各自连接到代表特征向量的不同实例的多个其它节点。这些节点也可以通过边连接到其它节点,从而支持假想聚类,如第4.2小节中所述。
可以基于显示分辨率来任意选择图7中的节点之间的边长度以适合显示器。在其它实施例中,边长度可以对表示两个节点的向量之间的距离进行编码。例如,边尺寸可以与两个节点的欧几里得距离成比例地增加。因此,相对相似的节点比相对于聚类中的其它节点而相对不同的节点显示得更靠近在一起。
在一些实施例中,聚类的节点是交互式的,从而允许用户快速访问关于部署集合的信息并发起管理操作。例如,用户可以单击或以其它方式选择节点,诸如节点704,以查看关于与该节点相关联的部署的信息。可以呈现的示例信息可以包括由节点表示的配置设置或其它特征值、指派给节点的部署数量、节点内部署的一个或多个地理地点、和/或对于与节点相关联的部署来说公共的属性。作为另一个示例,在选择节点时,可以向用户呈现目标部署的列表以及针对每个目标部署的收集到的配置设置。在又一个示例中,可以在选择节点时向用户提供可用的管理操作集合。然后,用户可以选择要相对于所选择的节点执行的管理操作。下面在题为“配置管理”的第5节中进一步描述了示例管理操作。
附加地或替代地,图中的两个节点之间的边可以是交互式的。例如,用户可以选择边以识别聚类的不同部分之间的差异。例如,参考图7,选择边710可以引起显示不同参数值之间的比较。如可以看到的,不同的子聚类具有不同的CPU计数、日志缓冲区速率和CPU分配。选择边可以允许用户相对于由边连接的节点和/或子聚类执行一个或多个操作。例如,在一些情况下,可以通过更新操作来协调两个节点之间的差异。
附加地或替代地,节点的聚类和/或组可以是交互式的。例如,用户可以选择聚类0-3中的一个,以下钻并查看关于该聚类的更多信息,或相对于该聚类执行管理操作。作为另一个示例,用户可以选择聚类中节点的子集以查看节点关系并针对节点执行管理操作。接口因此可以允许用户以各种粒度级别执行操作。针对大型节点组执行管理操作可提供高效的批量操作。在单个节点级别,可以执行更多定制的操作。
4.2假想聚类和代表性节点变化
在一些实施例中,聚类接口可以促进对假想聚类的识别和执行操作。在这种上下文中,假想聚类是指聚类内共享公共参数(诸如配置设置)的子聚类。对于假想聚类来说公共的参数可以不同于相同聚类中其它节点(诸如属于其它子聚类的节点)的参数。
在一些实施例中,假想聚类可以是连接到聚类的代表性节点的子聚类。例如,边710将代表性节点706与对应的子聚类连接。虽然代表性节点706已被选为黄金标准,但子聚类支持附加聚类的假设。在所示的示例中,子聚类的节点共享公共的CPU计数、日志缓冲区速率和CPU分配。对于子聚类来说公共的这些参数不同于聚类的代表性节点和其它子聚类中的节点。除了通过边710连接的子聚类之外,其它假想聚类也连接到节点704。
在一些实施例中,每个假想聚类包括代表子聚类的节点,其在本文中被称为假想代表性节点。假想代表性节点直接连接到整个聚类的代表性节点。例如,边710连接一个假想聚类的假想代表性节点。可以将子聚类内特征向量的最常见实例选择作为假想代表性节点。子聚类中的附加节点可以直接连接到假想代表性节点,而不是聚类的代表性节点。
在一些实施例中,假想聚类可以深入多个级别运行。例如,假想代表性节点(“父”节点)可以被连接到整个聚类的代表性节点。另一个假想代表性节点(“子”节点)可以被连接到假想聚类的假想代表性节点。当大量节点与主假想聚类的父节点共享公共参数时,可能会发生这种场景,但也可以沿着其它不同的参数被细分。因此,假想聚类可以促进在多个粒度级别的不同目标部署之间识别公共参数组。
在一些实施例中,可以将假想聚类与主聚类分开以形成新聚类。例如,用户可以沿着边710切断该子聚类,以从属于该子聚类的节点的子集中创建新的聚类。然后可以将节点的子集的中心/模式指派为新聚类的代表性节点。初始选择的代表性节点可以保持未被切断的节点的代表性节点。
在一些实施例中,该接口允许用户改变聚类和/或假想聚类的代表性节点。例如,用户可以右键点击或以其它方式选择聚类中代表性节点以外的节点。然后可以向用户呈现将节点设置为代表性节点的选项。响应于该选择,可以将代表性节点改变为所选择的节点。可视化可以被更新以突出显示新的代表性节点。附加地或替代地,可以重绘一个或多个边以连接到新的代表性节点而不是先前的代表性节点。当最佳配置之后是聚类中相对较少的部署、或者引入了新的节点/部署时,该方法可能是有用的。在这些情况下,可以更新自动选择的代表性节点以匹配新节点。
4.3汇总可视化和下钻操作
在一些实施例中,用户可以对各个聚类和/或节点进行下钻以查看更详细的信息。例如,用户可以选择聚类0-3之一来查看该聚类的更详细的交互式可视化,诸如下面的示例中给出的。附加地或替代地,用户可以选择各个节点以识别哪些软件部署与节点相关联。例如,选择节点可以使得针对共享对应于该节点的配置的每个软件部署显示标识符。
图8图示了根据一些实施例的用于所选择的聚类的示例交互式可视化800。交互式可视化800显示有多少部署共享对应于节点的特征值。例如,代表性节点802指示在包括聚类中的89%的部署的874个部署中检测到了对应的特征值。下一个最大的节点(节点804)指示在包括8%的软件部署的74个不同部署中检测到了对应的特征值。
在一些实施例中,在节点或边旁边显示节点配置中的差异。例如,参考图8,在节点804旁边显示的汇总指示与该节点对应的74个部署和与代表性节点802对应的874个部署之间的数据库文件的数量存在差异。节点806旁边显示的汇总指示与该节点对应的6个部署和与代表性节点802对应的874个部署之间的数据库文件的数量和参数“_fix_control”存在差异。类似地,汇总在每个其他节点旁边呈现识别对应于该节点的部署和对应于代表性节点802的部署之间的差异。
作为交互式聚类图的附加或替代,可以向用户呈现汇总图。例如,图9图示了根据一些实施例的用于聚类集合的示例汇总图900。这些图识别每个聚类中的部署的数量、每个聚类内的分散度以及聚类中心处的特征值。每个聚类可以被标记以突出显示差异。例如,聚类2对展现出高且可变存储器的部署进行分组。聚类0对cpu_count具有较高值的聚类进行分组,并且聚类3对具有小且可变存储器的聚类进行分组。取决于特定的实施方式,汇总表中显示的信息可能不同。汇总表中显示的一个或多个属性可能暴露给最终用户并由最终用户配置,从而允许生成自定义汇总。
在一些实施例中,下钻操作可以包括基于不同的参数重新聚类节点的子集。例如,聚类0-3可以最初基于第一特征集(诸如性能参数的组合)进行聚类。然后,用户可以选择聚类之一或聚类中节点的子集,并基于不同的属性(诸如安全属性或主机机器属性)集合请求队节点重新聚类。作为响应,基于新的参数集,将所选择的聚类的节点被重新聚类为一个或多个子聚类。
可以执行下钻操作以可视化部署模式并跨各个维度管理部署资源。例如,目标部署最初可以基于性能属性进行聚类。然后可以基于地理位置和/或其它属性重新聚类与低性能部署对应的聚类。这种方法可以使低性能部署中的模式被可视化并且被解决。用户可以类似地在其它维度下钻,包括已部署资源的配置设置的任何组合。
4.4拖放接口
在一些实施例中,交互式可视化支持拖放接口以执行管理操作。拖放接口允许用户单击或以其它方式选择聚类中一个或多个节点的图形表示,诸如图标。然后,用户可以将图形表示拖动并将一个或多个节点的图形表示放到显示器的另一个区域。然后,用户可以诸如通过释放单击的按钮来放下图形表示,以对节点发起一个或多个管理操作。拖放可以提供用于管理大量对象的配置的直观接口。
在一些实施例中,响应于用户将一个或多个节点拖放到另一个节点而触发一个或多个管理操作。例如,用户可以将一个或多个节点拖到聚类中的代表性节点或任何其它节点。作为响应,可以触发更新操作以协调被拖动的节点与代表性节点。更新操作可以涉及应用补丁和/或调整节点的其它配置设置以匹配代表性节点的配置设置,如下面进一步详细描述的。
附加地或替代地,取决于特定的实施方式,可以经由其它接口或自动地触发管理操作。例如,用户可以通过菜单接口、CLI或通过任何其它用户接口来触发管理操作。该接口可以允许用户以最少的输入,诸如拖放或单击,在不同的部署上并行发起多个操作。
5.配置管理
在一些实施例中,可以基于聚类处理的结果来自动或按需触发管理操作。示例管理操作可以包括:
·初始化新节点/部署;
·更新现有节点/部署
·修正聚类的节点内的漂移
·为节点订阅黄金映像
·执行分析;以及
·执行故障排除。
下面在小节5.1至5.5中提供管理操作的示例实施例
如下面示例中提供的那样,管理操作的功能可以取决于代表性节点的特征集的一个或多个值或代表性节点的其它特性,通过使得例如与代表性节点或其聚类相关联地在接口上显示特征集中的信息,或者通过使用此类信息来驱动相对于代表性节点或其对应聚类的修正操作、维护操作或某种其它操作的目标性能。例如,要求将聚类视为就好像它是单个节点的任何操作(例如,出于可视化目的、为了简化软件配置复杂性或其它目的)都可以利用代表性节点的特征集的一个或多个值或代表性节点的任何其它特性,即使没有将这些特性用于生成聚类的目的。该信息可以被提供给执行操作的服务。
5.1初始化新节点
在一些实施例中,聚类操作的结果可以用于初始化新节点。如果软件资源的新部署变得在线,那么可以基于初始参数将新部署指派给聚类。然后配置设置可以被设置为与聚类中代表性节点的配置设置匹配。
在一些实施例中,自动执行新节点的初始化。当第一次检测到新部署时,可以形成特征向量。特征向量可以用于将部署指派给具有最短距离的质心的聚类。然后代表性节点的配置设置可以被确定并被应用于新节点。例如,新节点可能缺少代表性节点的一个或多个补丁集更新。在这种情况下,可以在新节点上触发补丁过程以应用补丁集更新。作为另一个示例,诸如通过打开或关闭网络端口、配置身份和访问管理策略和/或更新防火墙设置,新节点上的安全设置可以被配置为与代表性节点匹配。
在其它实施例中,新节点的初始化可以通过请求来完成。例如,用户可以将新节点的图形表示拖放到代表性节点或聚类中的任何其它节点上。作为响应,可以在新节点上启动一个或多个过程集合,以初始化配置设置来匹配代表性节点的配置设置。
5.2更新节点并修正漂移
在一些实施例中,聚类操作的结果可以用于更新聚类中的节点。例如,聚类内的节点或一组节点可以自动或通过请求进行更新,以匹配代表性节点或聚类中任何其它节点的配置设置。响应于接收到更新节点或节点集合的请求,可以实例化一个或多个更新过程。更新过程可以应用补丁来修改软件二进制文件、执行脚本来修改初始化参数、或者以其它方式更新配置设置,如前小节所述。可以并行执行对多个节点的更新。
在一些实施例中,更新操作可以将特征添加到部署中,该特征已存在于代表性节点中,但是最初在升级的节点中缺失。例如,更新操作可以将用户定义的补丁、脚本或其它自定义特征添加到部署中。聚类的结果集因此可以用于更新从其运行一个或多个部署的资源组件集合。
在一些实施例中,可执行更新操作以修正聚类内的配置漂移。例如,可以自动或通过请求来更新属于相同聚类的节点,以匹配聚类中代表性节点的配置。漂移协调可以应用于聚类中的单个节点、节点的子集或聚类中的所有节点。系统可以向用户提供关于操作的时间估计。更新可以被安排和/或错开以减少停机时间。
图10图示了根据一些实施例的用于基于聚类的部署集合来修正漂移的示例流程。最初接收用于多个部署的部署参数1002。作为响应,可以基于上述技术来生成汇总图1004和交互式可视化1006。在所示的示例中,将3584个数据库部署分组为六个聚类,但是部署和聚类的数量可能因实现而异。交互式可视化1006经由GUI窗口1008提供修正聚类内的漂移的选项。用户可以选择选项以发起漂移修复。如果选择此选项,那么将更新数据库部署以匹配黄金/代表性节点的配置设置。
可以针对聚类内的所有节点或其中的节点子集全局执行修正。在一些实施例中,可以在假想聚类的基础上执行修正。如前所述,假想聚类具有与整个聚类的代表性节点不同的假想代表性节点。用户可以选择选项来使用假想代表性节点来修正子聚类而非全局代表性节点中的漂移。这种方法允许用户基于节点如何被组织成子聚类来使用不同的配置设置来协调不同的子聚类。
5.3黄金映像订阅
在一些实施例中,聚类操作的结果可以用于生成黄金映像订阅。例如,代表性节点可以自动地或由用户选择作为聚类中一个或多个其它节点的黄金映像。作为响应,生成订阅数据集,其将订阅的节点映射到黄金映像。一旦订阅,节点将跟随代表性节点的变化。因此,在代表性节点处检测到的升级可以触发对订阅的节点/部署的升级。
在一些实施例中,聚类内的所有节点都订阅该聚类的代表性节点。但是,在其它实施例中,聚类内的节点的不同子集可以订阅不同的黄金映像。例如,属于假想聚类的节点可以订阅子聚类的假想代表性节点,而不是整个聚类的代表性节点。在其它情况下,用户可以从聚类中的任何其它现有节点中选择黄金映像,或者可以用新特征集创建新黄金映像节点。
5.4分析操作
在一些实施例中,分析操作可以在聚类中的一个或多个节点上运行,以显示关于节点的分析信息。分析操作可以用于采集关于目标部署的见解,这些见解在聚类的结果集的上下文之外是不那么明显的。作为示例,可以针对属于聚类或子聚类的节点集合,向最终用户呈现诸如平均CPU利用率和存储器吞吐量之类的聚合性能度量。作为另一个示例,呈现聚类或子聚类中的特征值的变化性的分散率可以被呈现。还可以根据聚类中节点的一个或多个特征来执行其它分析操作。
在一些实施例中,可以执行分析操作以突出显示不同聚类和/或子聚类之间的差异。显示关于小代表性节点集合的信息可以使得更清楚地了解系统中不同聚类的不同目的,其中为了理解这些差异,显示关于每个聚类的代表性节点的信息的子集。因此,关于不同聚类(或假想聚类)的信息的呈现可以关注于差异。由所有代表性节点(或假想代表性节点)共享的特性可以从信息的呈现中排除。
在一些实施例中,可以将分析信息呈现给用户以促进管理操作。作为示例,响应于用户选择聚类中的节点,交互式接口可以显示关于该节点如何从代表性节点漂移的信息。例如,该信息可以包括与代表性节点不同的配置设置的列表,诸如补丁级别和安全设置的差异。附加地或替代地,该信息可以包括使该节点与代表性节点协调的成本估计。可以基于更新节点的配置设置以匹配代表性节点所需的步骤来确定成本估计。成本估计可以包括执行步骤的估计时间,这可以帮助用户在适当的时间安排管理操作。
5.5故障排除操作
解决一个节点的问题通常比解决整个聚类更容易。如果用户通过聚类和代表性节点的可视化能够确定特定聚类存在问题,那么用户可以尝试对代表性节点进行故障排除、跟踪对代表性节点所做的配置更改,并且,在故障排除完成后,将所有此类更改应用于整个聚类。例如,可以基于聚类中频繁发生的错误报告、与聚类相关联的频繁出现的错误日志、聚类的较差性能度量或基于与聚类同时显示的指示问题的度量来检测问题。用户可以利用关于聚类呈现的信息来隔离问题和解决问题的根本原因。
在一些实施例中,交互式接口允许用户在尝试解决诸如性能下降或安全违规之类的问题时采取改善措施。例如,用户可以关闭聚类中的一个或多个节点,以防止进一步的安全违规。一旦代表性节点上的问题已解决,用户即可使节点重新在线。在代表性节点上进行的任何配置更改都可以在其它节点重新在线之前传播到其它节点。例如,属于聚类的节点可以应用任何补丁、安全设置更新或对代表性节点进行的其它配置更改。
6.计算机网络和云网络
在一些实施例中,计算机网络提供节点集合之间的连接。节点可以在彼此本地和/或远离。节点通过一组链路连接。链路的示例包括同轴电缆、非屏蔽绞合电缆、铜缆、光纤和虚拟链路。
节点子集实现计算机网络。这样的节点的示例包括交换机、路由器、防火墙和网络地址转换器(NAT)。另一个节点子集使用计算机网络。这样的节点(也称为“主机”)可以执行客户端进程和/或服务器进程。客户端进程做出对计算服务(诸如,特定应用的执行和/或特定量的数据的存储)的请求。服务器进程通过执行所请求的服务和/或返回对应的数据来响应。
计算机网络可以是物理网络,包括通过物理链路连接的物理节点。物理节点是任何数字设备。物理节点可以是特定于功能的硬件设备,诸如硬件交换机、硬件路由器、硬件防火墙和硬件NAT。附加地或替代地,物理节点可以是被配置为执行各种虚拟机和/或执行相应功能的应用的通用机器。物理链路是连接两个或更多个物理节点的物理介质。链路的示例包括同轴电缆、非屏蔽绞合电缆、铜缆和光纤。
计算机网络可以是覆盖网络。覆盖网络是在另一个网络(诸如,物理网络)之上实现的逻辑网络。覆盖网络中的每个节点对应于底层网络中的相应节点。因此,覆盖网络中的每个节点与覆盖地址(寻址到覆盖节点)和底层地址(寻址实现覆盖节点的底层节点)两者相关联。覆盖节点可以是数字设备和/或软件进程(诸如虚拟机、应用实例或线程)。连接覆盖节点的链路被实现为通过底层网络的隧道。隧道任一端处的覆盖节点将它们之间的底层多跳路径视为单个逻辑链路。隧道处理(tunneling)通过封装和解封装来执行。
在实施例中,客户端可以位于计算机网络的本地和/或远离计算机网络。客户端可以通过其它计算机网络(诸如专用网络或互联网)访问计算机网络。客户端可以使用通信协议(诸如超文本传输协议(HTTP))将请求传送到计算机网络。通过诸如客户端接口(诸如web浏览器)、程序接口或应用编程接口(API)之类的接口来传送请求。
在实施例中,计算机网络提供客户端和网络资源之间的连接。网络资源包括被配置为执行服务器进程的硬件和/或软件。网络资源的示例包括处理器、数据存储装置、虚拟机、容器和/或软件应用。网络资源在多个客户端之间共享。客户端彼此独立地从计算机网络请求计算服务。网络资源按需动态分配给请求和/或客户端。分配给每个请求和/或客户端的网络资源可以基于例如(a)由特定客户端请求的计算服务,(b)由特定租户请求的聚合计算服务和/或(c)计算机网络的所请求的聚合计算服务来扩大或缩小。这种计算机网络可以被称为“云网络”。
在实施例中,服务提供商向一个或多个最终用户提供云网络。云网络可以实现各种服务模型,包括但不限于软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。在SaaS中,服务提供商向最终用户提供使用服务提供商的正在网络资源上执行的应用的能力。在PaaS中,服务提供商向最终用户提供将定制应用部署到网络资源上的能力。可以使用由服务提供商支持的编程语言、库、服务和工具来创建定制应用。在IaaS中,服务提供商向最终用户提供供应由网络资源提供的处理、存储、网络和其它基本计算资源的能力。可以在网络资源上部署任何任意应用,包括操作系统。
在实施例中,计算机网络可以实现各种部署模型,包括但不限于私有云、公共云和混合云。在私有云中,网络资源被供应给一个或多个实体(如本文所使用的术语“实体”是指企业、组织、个人或其它实体)的特定组独占使用。网络资源可以在特定实体组的处所本地和/或远离特定实体组的处所。在公共云中,云资源被供应给彼此独立的多个实体(也称为“租户”或“客户”)。计算机网络及其网络资源由与不同租户对应的客户端访问。这样的计算机网络可以被称为“多租户计算机网络”。几个租户可以在不同时间和/或相同时间使用相同的特定网络资源。网络资源可以在租户的处所本地和/或远离租户的处所。在混合云中,计算机网络包括私有云和公共云。私有云和公共云之间的接口允许数据和应用的可移植性。存储在私有云处的数据和存储在公共云处的数据可以通过接口交换。在私有云处实现的应用和在公共云处实现的应用可能具有彼此依赖性。可以通过接口执行从私有云处的应用到公共云处的应用(反之亦然)的调用。
在实施例中,多租户计算机网络的租户彼此独立。例如,一个租户的业务或操作可以与另一个租户的业务或操作分开。不同的租户可能对计算机网络具有不同的网络要求。网络要求的示例包括处理速度、数据存储量、安全要求、性能要求、吞吐量要求、时延要求、弹性要求、服务质量(QoS)要求、租户隔离和/或一致性。相同计算机网络可能需要实现由不同租户所要求的不同网络要求。
在一些实施例中,在多租户计算机网络中,实现租户隔离以确保不同租户的应用和/或数据彼此不共享。可以使用各种租户隔离方法。
在实施例中,每个租户与租户ID相关联。多租户计算机网络的每个网络资源用租户ID标记。仅当租户和特定网络资源与相同租户ID相关联时,才允许该租户访问特定网络资源。
在实施例中,每个租户与租户ID相关联。由计算机网络实现的每个应用用租户ID标记。附加地或替代地,由计算机网络存储的每个数据结构和/或数据集用租户ID标记。仅当租户和特定应用、数据结构和/或数据集与相同租户ID相关联时,才允许租户访问特定应用、数据结构和/或数据集。
作为示例,由多租户计算机网络实现的每个数据库可以用租户ID标记。只有与对应租户ID相关联的租户才可以访问特定数据库的数据。作为另一个示例,由多租户计算机网络实现的数据库中的每个条目可以用租户ID标记。只有与对应租户ID相关联的租户才可以访问特定条目的数据。但是,数据库可以由多个租户共享。
在实施例中,订阅列表指示哪些租户有权访问哪些应用。对于每个应用,存储被授权访问该应用的租户的租户ID列表。仅当租户的租户ID被包含在与特定应用对应的订阅列表中时,才允许该租户访问特定应用。
在实施例中,与不同租户对应的网络资源(诸如数字设备、虚拟机、应用实例和线程)被隔离到由多租户计算机网络维护的特定于租户的覆盖网络。作为示例,来自租户覆盖网络中的任何源设备的数据包可以仅被发送到相同租户覆盖网络内的其它设备。封装隧道被用于禁止从租户覆盖网络上的源设备到其它租户覆盖网络中的设备的任何传输。具体而言,从源设备接收的数据包被封装在外部数据包内。外部数据包从第一封装隧道端点(与租户覆盖网络中的源设备通信)发送到第二封装隧道端点(与租户覆盖网络中的目的地设备通信)。第二封装隧道端点对外部数据包进行解封装,以获得由源设备发送的原始数据包。原始数据包从第二封装隧道端点发送到相同特定覆盖网络中的目的地设备。
7.微服务应用
根据一些实施例,本文描述的技术用微服务架构实现。这种上下文中的微服务是指被设计为可独立部署的软件逻辑,其具有可以逻辑地耦合到其它微服务以构建各种应用的端点。使用微服务构建的应用不同于单片应用,单片应用被设计为单个固定单元并且通常包括单个逻辑可执行文件。通过微服务应用,不同的微服务可作为分开的可执行文件独立部署。微服务可以使用超文本传输协议(HTTP)消息和/或经由API端点根据其它通信协议进行通信。微服务可以分开管理和更新、用不同语言编写,并独立于其它微服务执行。
微服务提供了管理和构建应用的灵活性。可以通过连接不同的微服务集合来构建不同的应用,而无需改变微服务的源代码。因此,微服务充当逻辑构建块,可以以各种方式布置逻辑构建块以构建不同的应用。微服务可以提供监控服务,该监控服务在暴露于微服务管理器的触发事件集合中的触发事件发生时通知微服务管理器(诸如If-This-Then-That(IFTTT)、Zapier或Oracle自助服务自动化(OSSA))。为应用暴露的微服务可以替代地或附加地基于从微服务管理器接收到的数据提供在应用中执行动作的动作服务(通过传递值、将动作连接到其它触发器和/或从微服务管理器中的其它动作传递的数据,经由微服务管理器可控制和可配置)。微服务触发器和/或动作可以被链在一起以形成在可选的不同应用中发生的动作的配方,这些应用以其他方式彼此不知道或者没有对彼此的控制或依赖性。这些受管理的应用可以例如利用用户供应给管理器的应用凭据被认证或插入到微服务管理器中,而无需每次受管理的应用被单独使用或与其它应用结合使用时进行重新认证。
在一些实施例中,微服务可以经由GUI连接。例如,微服务可以显示为GUI的窗口、框架、其它元素内的逻辑块。用户可以将微服务拖放到用于构建应用的GUI的区域中。用户可以使用有向箭头或任何其它GUI元素将一个微服务的输出连接到另一个微服务的输入。应用构建器可以运行验证测试以确认输出和输入是兼容的(例如,通过检查数据类型、大小限制等)。
触发器
根据一些实施例,可以将上述技术封装到微服务中。换句话说,微服务可以基于上述技术触发(进入到微服务管理器中以供本文称为“目标”微服务的其它插入的应用可选地使用的)通知和/或可以表示为GUI块并连接到一个或多个其它微服务。触发条件可以包括值的绝对阈值或相对阈值、和/或要分析的数据量或数据持续时间的绝对阈值或相对阈值,使得每当插入的微服务应用检测到阈值被越过时,就发生对微服务管理器的触发。例如,当微服务应用检测到值已越过触发阈值时,用户可以向微服务管理器请求触发器。
在一个实施例中,触发器在被满足时可以输出数据以供目标微服务消费。在另一个实施例中,触发器在被满足时输出指示触发器已被满足的二进制值,或输出满足触发条件的字段名称或其它上下文信息。附加地或替代地,目标微服务可以连接到一个或多个其它微服务,使得向其它微服务输入警报。其它微服务可以基于上述技术执行响应动作,包括但不限于部署附加资源、调整系统配置和/或生成GUI。
动作
在一些实施例中,插入的微服务应用可以向微服务管理器暴露动作。暴露的动作可以接收数据或数据对象的标识或数据的位置作为输入,这使得数据被移动到数据云中。
在一些实施例中,暴露的动作可以接收增加或减少现有警报阈值的请求作为输入。输入可以识别现有的应用中(in-application)警报阈值以及是增加或减少还是删除阈值。附加地或替代地,输入可以请求微服务应用创建新的应用中警报阈值。应用中警报可以在登录到应用中时向用户触发警报,或者可以使用微服务应用本身内可用的默认或用户选择的警报机制,而不是通过插入到微服务管理器中的其它应用向用户触发警报。
在一些实施例中,微服务应用可以基于识别、定位或提供历史数据并定义所请求的输出的程度或范围的输入来生成和提供输出。动作在被触发时使微服务应用提供、存储或显示例如作为数据模型或作为描述数据模型的聚合数据的输出。
8.硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备来实现。专用计算设备可以是硬连线的以执行本技术,或者可以包括被永久性地编程以执行本技术的数字电子设备,诸如一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行本技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC、FPGA或NPU与定制的编程组合来实现本技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或结合硬连线和/或程序逻辑来实现技术的任何其它设备。
例如,图11是图示可以在其上实现本发明的实施例的计算机系统1100的框图。计算机系统1100包括总线1102或用于传送信息的其它通信机制以及与总线1102耦合用于处理信息的硬件处理器1104。硬件处理器1104可以是例如通用微处理器。
计算机系统1100还包括耦合到总线1102用于存储信息和要由处理器1104执行的指令的主存储器1106,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器1106也可以用于存储在要由处理器1104执行的指令的执行期间的临时变量或其它中间信息。当这种指令被存储在处理器1104可访问的非暂态存储介质中时,这种指令使计算机系统1100成为被定制用于执行指令中指定的操作的专用机器。
计算机系统1100还包括耦合到总线1102用于存储静态信息和处理器1104的指令的只读存储器(ROM)1108或其它静态存储设备。诸如磁盘或光盘之类的存储设备1110被提供并且被耦合到总线1102,以用于存储信息和指令。
计算机系统1100可以经由总线1102耦合到用于向计算机用户显示信息的显示器1112,诸如阴极射线管(CRT)。包括字母数字键和其它键的输入设备1114耦合到总线1102,用于将信息和命令选择传送到处理器1104。另一种类型的用户输入设备是光标控件1116,诸如鼠标、轨迹球或光标方向键,用于向处理器1104传送方向信息和命令选择并且用于控制显示器1112上的光标移动。这种输入设备典型地具有两个轴(第一轴(例如,x)和第二轴(例如,y))上的两个自由度,以允许设备在平面中指定位置。
计算机系统1100可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,所述定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统结合使计算机系统1100成为专用机器或将计算机系统1100编程为专用机器。根据一个实施例,本文的技术由计算机系统1100响应于处理器1104执行主存储器1106中包含的一条或多条指令的一个或多个序列而执行。这些指令可以从另一个存储介质(诸如存储设备1110)读取到主存储器1106中。在主存储器1106中包含的指令序列的执行使处理器1104执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令或与软件指令组合使用。
如本文使用的术语“存储介质”是指存储有使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备1110。易失性介质包括动态存储器,诸如主存储器1106。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带、内容可寻址存储器(CAM)和三态内容可寻址存储器(TCAM)。
存储介质与传输介质不同但可以与传输介质结合使用。传输介质参与在存储介质之间传递信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含有总线1102的电线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信期间生成的那些。
各种形式的介质可以涉及将一条或多条指令的一个或多个序列携带到处理器1104以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统1100本地的调制解调器可以在电话线上接收数据并使用红外线发射器将数据转换为红外线信号。红外线检测器可以接收红外线信号中携带的数据,并且适当的电路系统可以将数据放置在总线1102上。总线1102将数据携带到主存储器1106,处理器1104从主存储器1106中检索并执行指令。由主存储器1106接收的指令可以可选地在由处理器1104执行之前或之后存储在存储设备1110上。
计算机系统1100还包括耦合到总线1102的通信接口1118。通信接口1118提供耦合到网络链路1120的双向数据通信,其中网络链路1120连接到本地网络1122。例如,通信接口1118可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器、或向对应类型的电话线提供数据通信连接的调制解调器。作为另一个示例,通信接口1118可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何这种实现中,通信接口1118发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路1120典型地通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路1120可以通过本地网络1122提供到主计算机1124或到由互联网服务提供商(ISP)1126操作的数据设备的连接。ISP 1126又通过现在通常称为“互联网”1128的全球分组数据通信网络提供数据通信服务。本地网络1122和互联网1128都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路1120上并且通过通信接口1118的信号是传输介质的示例形式,这些信号将数字数据携带到计算机系统1100或携带来自计算机系统1100的数字数据。
计算机系统1100可以通过(一个或多个)网络、网络链路1120和通信接口1118发送消息和接收数据,包括程序代码。在互联网示例中,服务器1130可以通过互联网1128、ISP1126、本地网络1122和通信接口1118传输对于应用程序的所请求代码。
接收到的代码可以在它被接收时由处理器1104执行,和/或存储在存储设备1110或其它非易失性存储装置中以供以后执行。
9.其它事项;扩展
实施例针对具有一个或多个设备的系统,一个或多个设备包括硬件处理器并且被配置为执行本文描述的和/或以下权利要求中任一项所述的任何操作。
在实施例中,非暂态计算机可读存储介质包括指令,当由一个或多个硬件处理器执行时,所述指令使得执行本文描述的和/或权利要求中任一项所述的任何操作。
根据一些实施例,可以使用本文描述的特征和功能的任何组合。在前面的说明书中,已经参考因实现而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。
Claims (14)
1.一种方法,包括:
确定用于软件资源的多个部署的特征集;
基于特征集中的变化值,将所述多个部署中的每个部署聚类到多个聚类中的聚类中;
其中所述多个聚类中的每个聚类包括一个或多个节点;
其中所述多个聚类中的至少一个聚类包括多个节点;
其中所述一个或多个节点中的每个节点对应于在软件资源的所述多个部署中的至少一个部署中检测到的特征集的值的至少一个子集;
为所述多个聚类中的每个聚类确定代表性节点;以及
基于所述至少一个聚类的代表性节点执行操作。
2.如权利要求1所述的方法,其中代表性节点对应于在属于所述至少一个聚类的部署中最常被检测到的特征集的值的特定集合。
3.如权利要求1-2中的任一项所述的方法,其中特征集包括用于软件资源的所述多个部署的配置设置;其中代表性节点对应于被推荐用于软件资源的所述多个部署中属于所述至少一个聚类的部署的配置设置。
4.如权利要求3所述的方法,还包括通过更新用于部署的配置设置以匹配对应于代表性节点的配置设置,来基于代表性节点协调用于属于所述至少一个聚类的部署的配置设置。
5.如权利要求1-4中的任一项所述的方法,还包括基于每个聚类的特征集的不同值生成每个聚类的分层图。
6.如权利要求1-5中的任一项所述的方法,还包括为所述多个聚类生成交互式可视化;其中用于聚类的交互式可视化包括属于所述至少一个聚类的所述多个节点的视觉表示以及连接所述多个节点的边缘;其中所述多个节点中的每个节点的至少一个视觉方面是基于所述多个部署中有多少部署具有与对应于该节点的特征集的值匹配的特征集的值。
7.如权利要求6所述的方法,还包括通过所述交互式可视化来接收属于第一聚类的节点的子集的选择;响应于该选择,为节点的子集生成新聚类;以及确定新聚类的新代表性节点。
8.如权利要求6所述的方法,其中所述交互式可视化允许选择聚类中的各个节点以与代表性节点协调,或使所述至少一个聚类中的节点组与代表性节点协调;其中所述交互式可视化允许用户进行拖放来重新配置已漂移的节点。
9.如权利要求1至7中的任一项所述的方法,其中所述多个聚类是第一聚类集合,所述方法还包括生成多个不同的聚类集合;其中每个相应的聚类集合是使用与所述多个部署相关联的不同的相应特征集生成的。
10.如权利要求1至9中的任一项所述的方法,其中所述操作是响应于选择而执行的;其中所述操作是至少部分地基于所述至少一个聚类的代表性节点的特定特征集的一个或多个值或者至少部分地基于代表性节点的其它特性而执行的。
11.如权利要求1至10中的任一项所述的方法,其中所述操作使得显示所述至少一个聚类内的节点以及关于代表性节点的信息。
12.如权利要求1-11中的任一项所述的方法,其中所述操作至少部分地基于代表性节点来触发所述多个部署中的一个或多个部署中的更新。
13.一种或多种存储指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行如权利要求1至12中的任一项所述的方法。
14.一种包括一个或多个硬件处理器和一个或多个存储指令的非暂态计算机可读介质的系统,所述指令在由所述一个或多个硬件处理器执行时,使得执行如权利要求1-12中的任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762566235P | 2017-09-29 | 2017-09-29 | |
US62/566,235 | 2017-09-29 | ||
US16/042,971 | 2018-07-23 | ||
US16/042,971 US10664264B2 (en) | 2017-09-29 | 2018-07-23 | Artificial intelligence driven configuration management |
PCT/US2018/049315 WO2019067167A1 (en) | 2017-09-29 | 2018-09-04 | MANAGING CONFIGURATION MANAGED BY ARTIFICIAL INTELLIGENCE |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111316231A true CN111316231A (zh) | 2020-06-19 |
Family
ID=65897463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880071050.5A Pending CN111316231A (zh) | 2017-09-29 | 2018-09-04 | 人工智能驱动的配置管理 |
Country Status (4)
Country | Link |
---|---|
US (5) | US10496396B2 (zh) |
EP (1) | EP3688575B1 (zh) |
CN (1) | CN111316231A (zh) |
WO (1) | WO2019067167A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI767530B (zh) * | 2021-01-22 | 2022-06-11 | 緯穎科技服務股份有限公司 | 產生運算裝置的參考配置的電子裝置和方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11005710B2 (en) * | 2015-08-18 | 2021-05-11 | Microsoft Technology Licensing, Llc | Data center resource tracking |
US10360012B2 (en) * | 2017-11-09 | 2019-07-23 | International Business Machines Corporation | Dynamic selection of deployment configurations of software applications |
US10671739B2 (en) * | 2018-01-17 | 2020-06-02 | Salesforce.Com, Inc. | Managing the sharing of common library packages with subscribers |
US11762927B2 (en) * | 2018-10-23 | 2023-09-19 | Zeta Global Corp. | Personalized content system |
US10510022B1 (en) * | 2018-12-03 | 2019-12-17 | Sas Institute Inc. | Machine learning model feature contribution analytic system |
US11140038B2 (en) * | 2018-12-12 | 2021-10-05 | Level 3 Communications, Llc | Systems and methods for network device management using device clustering |
US11522898B1 (en) * | 2018-12-17 | 2022-12-06 | Wells Fargo Bank, N.A. | Autonomous configuration modeling and management |
EP3906508B1 (en) * | 2018-12-31 | 2024-03-13 | Intel Corporation | Securing systems employing artificial intelligence |
US11977959B2 (en) * | 2019-05-15 | 2024-05-07 | EMC IP Holding Company LLC | Data compression using nearest neighbor cluster |
US11442914B1 (en) * | 2019-05-20 | 2022-09-13 | Pinterest, Inc. | Efficient LSH computation |
EP3761561B1 (en) * | 2019-07-03 | 2022-09-14 | Hewlett Packard Enterprise Development LP | Self-learning correlation of network patterns for agile network operations |
US11636161B1 (en) * | 2019-07-16 | 2023-04-25 | Proofpoint, Inc. | Intelligent clustering systems and methods useful for domain protection |
CN110457114B (zh) * | 2019-07-24 | 2020-11-27 | 杭州数梦工场科技有限公司 | 应用集群部署方法及装置 |
US11178065B2 (en) * | 2019-08-07 | 2021-11-16 | Oracle International Corporation | System and methods for optimal allocation of multi-tenant platform infrastructure resources |
US11153316B2 (en) * | 2019-08-30 | 2021-10-19 | International Business Machines Corporation | Locked-down cluster |
US11182142B2 (en) * | 2019-10-10 | 2021-11-23 | Wipro Limited | Method and system for dynamic deployment and vertical scaling of applications in a cloud environment |
US20210117172A1 (en) * | 2019-10-21 | 2021-04-22 | Pccw Vuclip (Singapore) Pte. Ltd. | Data-driven consumer journey optimzation system for adaptive consumer applications |
WO2021174221A1 (en) * | 2020-02-27 | 2021-09-02 | Archer Andrew J | Ai augmented digital platform and user interface |
US11831606B2 (en) | 2020-04-29 | 2023-11-28 | Kyndryl, Inc. | Dynamically managing firewall ports of an enterprise network |
US11516432B2 (en) * | 2020-08-12 | 2022-11-29 | DTEN, Inc. | Mode control and content sharing |
CN112363730A (zh) * | 2020-11-06 | 2021-02-12 | 上海节卡机器人科技有限公司 | 一种视觉项目部署方法、视觉系统、电子设备和存储介质 |
US11627032B2 (en) * | 2020-11-30 | 2023-04-11 | At&T Intellectual Property I, L.P. | Data-powered shipwright for network cloud maintenance |
US11424982B2 (en) * | 2021-01-22 | 2022-08-23 | Vmware, Inc. | Remediation of a system to new desired state using configuration dependency graph |
CN112860806B (zh) * | 2021-04-06 | 2022-09-02 | 中国科学技术大学 | 数据分类方法及装置、存储介质及电子设备 |
US11861356B1 (en) * | 2022-03-31 | 2024-01-02 | Amazon Technologies, Inc. | Continuous deployment and orchestration of feature processing units in a managed cloud and a provider network for consistent data processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011102891A1 (en) * | 2010-02-19 | 2011-08-25 | Thomson Licensing | Media content spatial navigation |
CN103907091A (zh) * | 2011-10-31 | 2014-07-02 | 惠普发展公司,有限责任合伙企业 | 跨网络的远程软件部署 |
CN104904161A (zh) * | 2012-12-31 | 2015-09-09 | F5网络公司 | 预建流量管理系统组件虚拟机的弹性卸载 |
WO2017123683A1 (en) * | 2016-01-15 | 2017-07-20 | Microsoft Technology Licensing, Llc | Automatic recommendations for deployments in a data center |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363495B1 (en) * | 1999-01-19 | 2002-03-26 | International Business Machines Corporation | Method and apparatus for partition resolution in clustered computer systems |
US7020695B1 (en) | 1999-05-28 | 2006-03-28 | Oracle International Corporation | Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem) |
US20030224344A1 (en) | 2000-03-27 | 2003-12-04 | Ron Shamir | Method and system for clustering data |
US6801937B1 (en) | 2000-05-31 | 2004-10-05 | International Business Machines Corporation | Method, system and program products for defining nodes to a cluster |
US7606898B1 (en) * | 2000-10-24 | 2009-10-20 | Microsoft Corporation | System and method for distributed management of shared computers |
US6684177B2 (en) | 2001-05-10 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Computer implemented scalable, incremental and parallel clustering based on weighted divide and conquer |
US8635328B2 (en) | 2002-10-31 | 2014-01-21 | International Business Machines Corporation | Determining time varying thresholds for monitored metrics |
US8898330B2 (en) | 2004-05-28 | 2014-11-25 | Sap Se | Server node configuration using a configuration tool |
US20050289538A1 (en) | 2004-06-23 | 2005-12-29 | International Business Machines Corporation | Deploying an application software on a virtual deployment target |
EP1910937A4 (en) | 2004-12-29 | 2010-12-01 | Coco Communications Corp | NETWORK clustering |
US7739143B1 (en) | 2005-03-24 | 2010-06-15 | Amazon Technologies, Inc. | Robust forecasting techniques with reduced sensitivity to anomalous data |
US7739284B2 (en) | 2005-04-20 | 2010-06-15 | International Business Machines Corporation | Method and apparatus for processing data streams |
US7496663B2 (en) | 2005-08-29 | 2009-02-24 | International Business Machines Corporation | System and method for detecting status changes in a network using virtual coordinate mapping |
US9037698B1 (en) | 2006-03-14 | 2015-05-19 | Amazon Technologies, Inc. | Method and system for collecting and analyzing time-series data |
US7987106B1 (en) | 2006-06-05 | 2011-07-26 | Turgut Aykin | System and methods for forecasting time series with multiple seasonal patterns |
US7783510B1 (en) | 2006-06-23 | 2010-08-24 | Quest Software, Inc. | Computer storage capacity forecasting system using cluster-based seasonality analysis |
GB2448489A (en) | 2007-04-11 | 2008-10-22 | Univ Aberdeen | Substituted calcium phosphate materials |
US9420513B1 (en) | 2007-06-22 | 2016-08-16 | Hewlett Packard Enterprise Development Lp | Clustering approach to estimating a network metric for nodes |
US8200454B2 (en) | 2007-07-09 | 2012-06-12 | International Business Machines Corporation | Method, data processing program and computer program product for time series analysis |
US8352568B2 (en) | 2008-05-12 | 2013-01-08 | Mckesson Financial Holdings | System, apparatus, method and computer program product for configuring disparate workstations |
WO2009155574A1 (en) | 2008-06-19 | 2009-12-23 | Servicemesh, Inc. | Cloud computing gateway, cloud computing hypervisor, and methods for implementing same |
US8271949B2 (en) | 2008-07-31 | 2012-09-18 | International Business Machines Corporation | Self-healing factory processes in a software factory |
US8363961B1 (en) | 2008-10-14 | 2013-01-29 | Adobe Systems Incorporated | Clustering techniques for large, high-dimensionality data sets |
US8583649B2 (en) * | 2008-11-10 | 2013-11-12 | Google Inc. | Method and system for clustering data points |
WO2010064644A1 (ja) | 2008-12-03 | 2010-06-10 | 日本電気株式会社 | クラスタ制御システム、クラスタ制御方法、及びプログラム |
US8234236B2 (en) | 2009-06-01 | 2012-07-31 | International Business Machines Corporation | System and method for efficient allocation of resources in virtualized desktop environments |
US9070096B2 (en) | 2009-08-11 | 2015-06-30 | Mckesson Financial Holdings | Appliance and pair device for providing a reliable and redundant enterprise management solution |
US8229876B2 (en) | 2009-09-01 | 2012-07-24 | Oracle International Corporation | Expediting K-means cluster analysis data mining using subsample elimination preprocessing |
US20110126197A1 (en) | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8819701B2 (en) | 2009-12-12 | 2014-08-26 | Microsoft Corporation | Cloud computing monitoring and management system |
WO2011151500A1 (en) | 2010-05-31 | 2011-12-08 | Helsingin Yliopisto | Arrangement and method for finding relationships among data |
US8261295B1 (en) | 2011-03-16 | 2012-09-04 | Google Inc. | High-level language for specifying configurations of cloud-based deployments |
EP2737411A4 (en) | 2011-07-26 | 2015-10-14 | Nebula Inc | SYSTEMS AND METHODS FOR CLOUD COMPUTING IMPLEMENTATION |
JP5710417B2 (ja) | 2011-08-05 | 2015-04-30 | 株式会社東芝 | 無線受信装置 |
US9355357B2 (en) | 2011-10-21 | 2016-05-31 | Hewlett Packard Enterprise Development Lp | Computing predicted data according to weighted peak preservation and time distance biasing |
US9172608B2 (en) * | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
US8880525B2 (en) | 2012-04-02 | 2014-11-04 | Xerox Corporation | Full and semi-batch clustering |
US20130326202A1 (en) | 2012-05-30 | 2013-12-05 | Roi Rosenthal | Load test capacity planning |
US9147167B2 (en) | 2012-11-19 | 2015-09-29 | Oracle International Corporation | Similarity analysis with tri-point data arbitration |
US9710493B2 (en) | 2013-03-08 | 2017-07-18 | Microsoft Technology Licensing, Llc | Approximate K-means via cluster closures |
US9514213B2 (en) | 2013-03-15 | 2016-12-06 | Oracle International Corporation | Per-attribute data clustering using tri-point data arbitration |
US9124490B2 (en) | 2013-03-15 | 2015-09-01 | Comcast Cable Communications, Llc | Consolidated performance metric analysis |
US9495395B2 (en) | 2013-04-11 | 2016-11-15 | Oracle International Corporation | Predictive diagnosis of SLA violations in cloud services by seasonal trending and forecasting with thread intensity analytics |
US10163034B2 (en) | 2013-06-19 | 2018-12-25 | Oracle International Corporation | Tripoint arbitration for entity classification |
US20160299961A1 (en) | 2014-02-04 | 2016-10-13 | David Allen Olsen | System and method for grouping segments of data sequences into clusters |
CN105224558A (zh) | 2014-06-16 | 2016-01-06 | 华为技术有限公司 | 语音业务的评价处理方法及装置 |
US10754328B2 (en) * | 2014-09-05 | 2020-08-25 | Accenture Global Solutions Limited | Self-adaptive device intelligence as a service enterprise infrastructure for sensor-rich environments |
WO2016061283A1 (en) * | 2014-10-14 | 2016-04-21 | Skytree, Inc. | Configurable machine learning method selection and parameter optimization system and method |
US20160283533A1 (en) | 2015-03-26 | 2016-09-29 | Oracle International Corporation | Multi-distance clustering |
US10496926B2 (en) * | 2015-04-06 | 2019-12-03 | EMC IP Holding Company LLC | Analytics platform for scalable distributed computations |
US10679136B2 (en) * | 2015-04-23 | 2020-06-09 | International Business Machines Corporation | Decision processing and information sharing in distributed computing environment |
US20160314184A1 (en) | 2015-04-27 | 2016-10-27 | Google Inc. | Classifying documents by cluster |
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
WO2017105376A1 (en) * | 2015-12-14 | 2017-06-22 | Vce Company, Llc | Methods, systems, and computer readable mediums for workload clustering |
-
2018
- 2018-07-20 US US16/041,269 patent/US10496396B2/en active Active
- 2018-07-23 US US16/042,971 patent/US10664264B2/en active Active
- 2018-09-04 EP EP18782824.9A patent/EP3688575B1/en active Active
- 2018-09-04 WO PCT/US2018/049315 patent/WO2019067167A1/en active Search and Examination
- 2018-09-04 CN CN201880071050.5A patent/CN111316231A/zh active Pending
-
2019
- 2019-08-07 US US16/534,896 patent/US10592230B2/en active Active
-
2020
- 2020-04-21 US US16/854,635 patent/US11023221B2/en active Active
-
2021
- 2021-05-27 US US17/332,649 patent/US20210286611A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011102891A1 (en) * | 2010-02-19 | 2011-08-25 | Thomson Licensing | Media content spatial navigation |
CN103907091A (zh) * | 2011-10-31 | 2014-07-02 | 惠普发展公司,有限责任合伙企业 | 跨网络的远程软件部署 |
CN104904161A (zh) * | 2012-12-31 | 2015-09-09 | F5网络公司 | 预建流量管理系统组件虚拟机的弹性卸载 |
WO2017123683A1 (en) * | 2016-01-15 | 2017-07-20 | Microsoft Technology Licensing, Llc | Automatic recommendations for deployments in a data center |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI767530B (zh) * | 2021-01-22 | 2022-06-11 | 緯穎科技服務股份有限公司 | 產生運算裝置的參考配置的電子裝置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200249931A1 (en) | 2020-08-06 |
EP3688575B1 (en) | 2022-10-12 |
US10592230B2 (en) | 2020-03-17 |
US20190138290A1 (en) | 2019-05-09 |
US10496396B2 (en) | 2019-12-03 |
WO2019067167A1 (en) | 2019-04-04 |
US20190102155A1 (en) | 2019-04-04 |
US20210286611A1 (en) | 2021-09-16 |
US10664264B2 (en) | 2020-05-26 |
EP3688575A1 (en) | 2020-08-05 |
US11023221B2 (en) | 2021-06-01 |
US20190361693A1 (en) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023221B2 (en) | Artificial intelligence driven configuration management | |
US10789065B2 (en) | Method for automatically selecting configuration clustering parameters | |
US11949703B2 (en) | Systems and methods for multivariate anomaly detection in software monitoring | |
US10855548B2 (en) | Systems and methods for automatically detecting, summarizing, and responding to anomalies | |
US10853731B2 (en) | Rule based consistency management for complex systems | |
US11537940B2 (en) | Systems and methods for unsupervised anomaly detection using non-parametric tolerance intervals over a sliding window of t-digests | |
CN113454604A (zh) | 预测性系统修复 | |
US11669559B2 (en) | Multi-dimensional clustering and correlation with interactive user interface design | |
US11068127B2 (en) | Springboard interface for quick task transitions | |
US20160364283A1 (en) | Hierarchical fault determination in an application performance management system | |
US11573812B2 (en) | Generating a next best action recommendation using a machine learning process | |
US11362893B2 (en) | Method and apparatus for configuring a cloud storage software appliance | |
US10942801B2 (en) | Application performance management system with collective learning | |
US11138060B2 (en) | Application performance management system with dynamic discovery and extension | |
US20210035025A1 (en) | Systems and methods for optimizing machine learning models by summarizing list characteristics based on multi-dimensional feature vectors | |
US11461673B2 (en) | Shared machine learning model for application discovery | |
US10817396B2 (en) | Recognition of operational elements by fingerprint in an application performance management system | |
CN110928958A (zh) | 生成多维数据库查询 | |
US20240086184A1 (en) | Schema transformation for managing an application build |
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 |