CN114631077B - 用于使用配置对象来检测计算环境中软件应用的使用的自动化技术 - Google Patents

用于使用配置对象来检测计算环境中软件应用的使用的自动化技术 Download PDF

Info

Publication number
CN114631077B
CN114631077B CN202080076364.1A CN202080076364A CN114631077B CN 114631077 B CN114631077 B CN 114631077B CN 202080076364 A CN202080076364 A CN 202080076364A CN 114631077 B CN114631077 B CN 114631077B
Authority
CN
China
Prior art keywords
signature
computing environment
configuration
cluster
catalog
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.)
Active
Application number
CN202080076364.1A
Other languages
English (en)
Other versions
CN114631077A (zh
Inventor
A·巴宝尔
A·戴斯兹
J·瓦劳兹泽克
J·莫尔
M·科马克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114631077A publication Critical patent/CN114631077A/zh
Application granted granted Critical
Publication of CN114631077B publication Critical patent/CN114631077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文提供的系统和方法提供了用于发现安装在基于集群的计算环境中的应用的技术。获得签名的目录。扫描一个或多个集群以获得关于所述一个或多个集群中的配置参数的信息。将签名的目录与来自所述扫描的包括配置参数的信息进行比较,以识别基于每个集群安装的软件应用。

Description

用于使用配置对象来检测计算环境中软件应用的使用的自动 化技术
技术领域
本发明的实施例涉及检测计算环境中的软件应用,并且更具体地,涉及用于基于配置对象来检测基于集群的计算环境中的软件应用的自动化技术。
背景技术
在软件资产管理中,管理员需要知道安装了什么类型的软件应用,以及该应用正被使用在哪里。在基于集群的环境中,软件应用可以被部署在容器中并且被安装而无需将允许识别应用的标签或其他注释。
用于发现已安装应用的传统技术涉及扫描集群中的文件和文件系统,这既耗时又计算密集。
发明内容
根据本发明的实施例,提供了用于检测安装在基于集群的计算环境中的软件应用的自动化技术。特别地,配置对象可以用于识别已安装的软件应用。
提供了用于检测安装在计算环境中的软件应用的方法、系统和计算机可读介质。获得签名的目录。扫描计算环境以获得关于与在计算环境中供应的软件应用相对应的配置参数的信息。签名目录与包括配置参数的信息进行比较,以确定计算环境中的软件应用。这种方法的优点包括在不对文件系统执行扫描操作的情况下识别应用。
计算环境可以是包括一个或多个集群的基于集群的计算环境。所确定的软件应用可以跨不同的集群分布以优化处理。通过重新分布或平衡多个集群上的工作负载,可以提高计算性能,其中重新分布或平衡可以基于对特定集群上的软件应用的识别。
一个或多个集群中的容器可以使用与特定配置参数相关联的对象。pod的输出可以与签名目录进行比较以识别软件应用。将标识信息打包在pod中允许在不对文件系统执行扫描操作的情况下识别应用。
签名目录可以包括包含与软件应用对应的卷、命令、配置参数或秘密的信息。该签名目录允许基于通过扫描操作获得的信息来识别软件应用。
应当理解,本发明内容不旨在标识本公开的实施例的关键或必要特征,也不旨在用于限制本公开的范围。通过以下描述,本公开的其它特征将变得易于理解。
附图说明
通常,在各个附图中相同的附图标记用于表示相同的部件。通过在附图中对本公开的一些实施例的更详细的描述,本公开的上述和其他特征和优点将变得更加明显。
图1是根据本公开的实施例的用于在基于集群的环境中自动检测软件应用的示例计算环境的框图。
图2是根据本公开的实施例的用于基于配置对象来自动检测软件应用的操作的详细流程图。
图3是根据本公开的实施例的用于在基于集群的计算环境中自动检测软件应用使用的操作的详细流程图。
图4是根据本公开的实施例的用于在基于集群的计算环境中自动检测软件应用的操作的高级流程图。
具体实施方式
图1示出了用于本发明实施例的示例环境100。具体地,该环境包括一个或多个服务器系统10、以及一个或多个客户端或终端用户系统20。服务器系统10和客户端系统20可以彼此远离,并通过网络35通信。该网络可以由任何数量的任何合适的通信介质(例如,广域网(WAN)、局域网(LAN)、因特网、内联网等)实现。或者,服务器系统10和客户端系统20可以是彼此本地的,并且可以经由任何适当的本地通信介质(例如,局域网(LAN)、硬连线、无线链路、内联网等)进行通信。
客户端系统20使得用户能够查看由服务器系统10生成的结果。服务器系统10可以包括基于集群的软件发现模块15,用于自动确定安装了哪些软件应用,如下面更详细描述的。尽管图1中示出了客户端服务器关系,但是应当理解,其它配置也是可能的。
数据库系统30可以存储用于分析的各种信息(例如,配置参数扫描储存库32、不匹配签名储存库34、签名目录36、集群分析储存库38等)。数据库系统可以由任何常规或其它数据库或存储单元实现,可以位于服务器系统10和客户端系统20本地或远离它们,并且可以经由任何适当的通信介质(例如,局域网(LAN)、广域网(WAN)、因特网、硬连路、无线链路、内联网等)进行通信。客户端系统可以呈现图形用户界面(例如,GUI等)或其他界面28(例如,命令行提示、菜单屏幕等),以从用户请求关于期望的软件应用使用和分析的信息,并且可以提供包括各种分析结果(例如,每个集群的软件应用分析、软件应用版本信息、应用安装的位置、重复软件应用的存在、不匹配的软件应用、系统范围或每个集群的应用统计等)的报告。
配置参数扫描储存库32可包含从扫描相应集群获得的信息,所述信息包括卷、命令、配置参数、秘密或从扫描与软件应用相关联的对象获得的任何其它信息。在一些方面,该信息可以在不同的时间段上被编译,以跟踪在特定时间窗口期间的应用安装。
不匹配参数储存库34可包括从扫描获得的不匹配应用参数的列表,可将其提供到签名生成模块105以供进一步分析。在一些情况下,可将关于不匹配参数的通知发送到用户,向用户通知不匹配应用。一旦被识别,该签名就可以被添加到签名目录36,用于随后识别相应的应用,并且可以被添加到其他集群中。
签名目录36可包括已安装应用的签名的列表。该目录可以由签名生成模块105更新,并且当识别出不匹配应用时,可以为不匹配应用生成签名,并将其添加到签名目录以供后续扫描。在一些情况下,目录可以被手动配置。在其他情况下,一旦足够数量的目录条目可用作训练数据,机器学习系统就可以被训练以从扫描的数据构造签名目录的签名。
集群分析储存库38可以包括该集群的匹配应用和不匹配应用的列表。利用该信息,计算系统可以在计算环境上重新分布应用,例如,以帮助平衡计算工作负荷并提高该集群的性能。在一些情况下,可以以自动化方式执行重新分配。
服务器系统10和客户端系统20可以由任何常规的或其它的计算机系统来实现,所述计算机系统优选地配备有显示器或监视器、基座(例如,包括至少一个处理器16、22、一个或多个存储器17、24和/或内部或外部网络接口或通信设备18、26(例如,调制解调器、网卡等))、可选的输入设备(例如,键盘、鼠标或其它输入设备)、用户接口19、28以及任何可买到的和定制的软件(例如,服务器/客户端通信软件、基于集群的软件发现模块15等)。
另选地,服务器可以在每个集群的基础上检测软件应用的使用。在这种操作模式中,每个集群可以访问基于集群的软件发现模块15。图形用户(例如GUI等)或其他界面(例如命令行提示、菜单屏幕等)从相应用户请求关于期望分析的信息,并且可以提供包括分析结果的报告。
基于集群的软件发现模块15可以包括一个或多个模块或单元,以执行这里描述的本发明实施例的各种功能。各种模块(例如,签名生成模块105、配置参数扫描模块110、基于集群的签名目录比较模块115、不匹配参数模块120等)可以由任何数量的软件和/或硬件模块或单元的任何组合来实现,并且可以驻留在服务器和/或客户端系统的存储器17、24内以供处理器16、22执行。
签名生成模块105包括为软件应用创建签名目录36的功能。在一些方面,可以向签名生成模块提供信息,诸如包含配置文件的卷、命令行自变量、存储在应用容器内的环境变量、配置映射和秘密。可以包括密码、OAuth令牌或ssh密钥的秘密可以存储在对象中以促进敏感信息的管理。该信息可以用于生成特定应用的签名。在扫描期间收集的信息可以与这些签名进行比较以识别安装在特定集群上的应用。
配置参数扫描模块110可以扫描集群以识别和收集包含在对象中的参数或其他信息,这些参数或其他信息与它们各自的应用有关,这些应用可以部署在容器中。从扫描获得的信息可以与由签名生成模块105生成的签名目录36进行比较以识别软件应用。
基于集群的签名目录比较模块115可以用于执行比较以识别集群中的应用。该模块可以比较信息,包括但不限于包含配置文件的卷、命令行自变量、容器内的环境变量、配置映射和秘密(或对象中包含的任何其他合适的应用识别信息),以例如通过与签名目录36比较来识别已安装的应用。在一些情况下,如果在被比较的项之间存在足够的相似性,例如,这些项不必精确匹配,但是应当相似或具有某些其他特征或独特特征的组合以识别应用,则匹配可以是肯定的。在其它情况下,两个、三个、四个或更多参数可以匹配,以肯定地识别应用。
不匹配参数模块120识别在扫描期间获得的、但与签名目录36中的签名不匹配的参数。该模块可以将不匹配的参数的列表传递到签名生成模块,以便进一步分析,并向用户发送关于不匹配的参数的通知。
图2是基于配置参数的识别来发现软件应用的基于集群的环境的图示。本文提供的技术可以用于发现使用容器编排平台供应的软件,而无需标签或注释,其中软件与配置文件、命令、环境变量或对象(例如,秘密、ConfigMap等)相关联。配置参数的其它示例包括在应用模式之间切换以及打开或关闭特征的信息。
集群210可以包括多个pod(220,230),其是集群的最小单元,并且表示在集群上执行的过程。pod可以是应用的实例,并且可以用单个容器或多个容器来执行。
容器允许软件应用被打包,使得软件应用对特定机器没有依赖性,并且因此可以在任何合适的计算环境中的任何机器上执行。例如,软件应用的代码、库和依赖性可被一起打包到一容器中。与虚拟机不同,容器可以允许软件应用与主机操作系统共享相同的内核。因此,对于操作,用在主机操作环境中找不到的代码和/或库来打包应用就足够了。容器编排被用于管理软件,尤其是在大的动态环境中,并且可以用于控制和自动化任务。
本技术允许基于相关联的参数来识别在基于集群的基础设施上供应的应用。这些技术显著地改进了集群中应用软件的检测。这样的配置信息通常与应用映像分离,使得可以在不重建应用映像的情况下执行配置信息的修改。配置参数的示例包括但不限于:其中放置配置文件的卷、命令行自变量、放置在容器内的环境变量、配置映射(ConfigMap API240、245)、秘密250、以及其它配置设置。在一些方面,ConfigMap API对象保持与pod关联的配置数据的键-值对或其它配置数据以识别系统组件。
开源容器编排平台的示例Kubernetes提供了用来管理多个集群的平台。Kubernetes对象可存储秘密或其它敏感数据,诸如用户名和口令等。Kubernetes可用于使容器化的应用的部署、缩放和管理自动化。该平台还允许容器在不同的机器上执行,以缩放进程,执行负载平衡,以及在所供应的容器发生故障的情况下提供附加容器等。这种编排平台的另一个示例是Nomad。
配置参数扫描模块110可以用于扫描集群以查找配置映射、秘密或任何其他信息,以识别与pod相关联的应用。如前所述,配置参数可以包括但不限于:卷、命令行自变量、容器内的环境变量、配置映射和秘密。从扫描获得的信息(输出260)可以存储在配置参数扫描储存库32中,并且与签名目录36中的条目进行比较。
为了使用基于卷的配置信息,需要将配置文件放置在卷内。或者,命令行自变量可被传递到应用,但可以是冗长的。
诸如ConfigMap或秘密的环境变量可被包括在应用配置中。作为示例,在Kubernetes中,与web应用软件“X”相关联的ConfigMap可以包括以下信息:
Figure BDA0003622820820000061
在web应用“X”中使用的该特定ConfigMap可以被硬编码成签名。可以使用Kubernetes特定命令(例如,kubectl describe pod pod_name)或任何其他合适的API来扫描集群。在扫描集群以识别pod之后,可以将信息与包括与ConfigMap中相同或相似的信息的签名目录36进行比较,以发现软件应用。
图3示出了由以上在图1中列出的模块执行的示例操作。在操作205,参考基于集群的软件发现模块15,可以使用签名生成模块105来构建应用的签名。签名可以包括任何合适的配置对象信息,包括卷、命令行自变量或配置参数。
在一些情况下,一旦足够数量的目录条目可用作训练数据,机器学习系统就可以被训练成从扫描的数据构造签名目录的签名。在这种情况下,系统可以自动识别信息,并使用这种信息基于已安装软件包的配置参数从已安装软件应用构造签名。因此,操作305处的签名生成可以被配置为自动发生。
在操作310,该信息可以被硬编码成存储在签名目录36中的签名。一旦识别了相关的配置参数,该过程也可以被自动执行。
在操作315,可以扫描集群(参见图2)以获得关于该集群中的配置参数的信息,例如,用于针对一个或多个pod。系统可以以周期性的间隔或当供应新的软件应用时扫描集群。系统可以将该扫描的信息存储在配置参数扫描储存库32中。
在操作320,将包括配置参数的扫描信息与目录签名进行比较,以确定是否存在指示应用安装在该集群上的匹配。在一些方面,可以在扫描之前生成目录签名以便于将扫描的信息与参考目录签名进行比较。在其他方面,目录签名可以在信息改变时被更新,例如,签名可以被更新以反映秘密的改变(例如,访问的改变、口令的改变等)。
在操作325,如果存在不匹配的信息,则系统将使用例如基于相似性的识别技术来进一步处理该信息。例如,行为签名匹配可以基于相似度来执行匹配,而不需要扫描的信息和签名目录之间的精确匹配。
如果不存在不匹配的信息,则系统进行到操作335,其中该信息可用于分析跨一个或多个集群的软件应用分布。这可以允许资源的重新分布或其它供应、负载平衡或其它操作,以改进基于集群的计算环境的性能。
图4示出了检测已安装在基于集群的环境中的软件应用的高级操作。在操作410,确定与安装在集群上的特定软件包相对应的签名。签名可以基于存在于集群中的配置对象来构建,所述配置对象可以包含配置参数,配置参数包括配置映射、秘密(例如,口令、用户名等)、命令或其他应用配置(例如,运行具有开发、调试模式、导口端口等的应用)、环境变量、卷等。这个信息可以存储在目录中。
在操作420,可以扫描集群以收集关于该集群(例如,包括Kubernetes或Nomad类型集群)中的配置参数和对象的信息。
在操作430,扫描结果可与目录签名相比较以识别软件应用。利用该信息,应用可以被移动到不同的集群以优化资源和计算负载,从而提高基于集群的计算环境的性能。此外,识别在集群上使用的应用对于许可管理或其它审计或信息目的可能是有用的。
本文提供了方法、系统和计算机可读介质,其提供了以自动化方式识别安装在基于集群的环境中的软件应用的方式。此外,所述技术可适于改变的配置参数,因为所述技术可基于相似性来识别软件应用。因此,如果配置参数由于该应用的升级或新发行而被改变,但是在相似性阈值内,则可以进行匹配。
这些技术可以跨基于集群的环境扩展以做出关于软件安装的决定并且更好地利用软件资源。例如,可以分析该信息以在每个集群的基础上确定安装的软件的分布和使用。这些技术可以周期性地执行,以便考虑集群的变化(例如,pod的添加或移除)。
本文所述的方法具有若干优点。例如,可以在不对文件系统进行冗长的扫描操作的情况下识别应用。可以将不匹配的参数提供给系统以用于进一步处理。在一些情况下,系统可以识别在该集群上不再需要的软件,并且应用可以被自动移除或卸载,例如以释放用于另一计算环境中的另一用户的许可或释放集群上的资源。在其它情况下,系统可向网络管理员提供关于集群上的不匹配应用的通知。在其他方面,系统可以重新分布软件用于重新配置集群,以提高系统的性能。
将理解,以上描述并在附图中示出的实施例仅表示实现用于自动确定集群中的软件应用的实施例的许多方式中的一些方式。
本发明实施例的环境可以包括以任何期望的方式布置的任何数量的计算机或其他处理系统(例如,客户端或终端用户系统、服务器系统等)以及数据库或其他储存库,其中本发明实施例可以应用于任何期望类型的计算环境(例如,云计算、客户端-服务器、网络计算、大型机、独立系统等)。本发明实施例所采用的计算机或其它处理系统可以由任何数量的任何个人或其它类型的计算机或处理系统(例如,台式机、膝上型计算机、PDA、移动设备等)来实现,并且可以包括任何商业上可用的操作系统以及商业上可用的和定制的软件(例如,浏览器软件、通信软件、服务器软件、基于集群的软件发现模块15等)的任何组合。这些系统可以包括任何类型的监视器和输入设备(例如,键盘、鼠标、语音识别等)以输入和/或查看信息。
应当理解,本发明实施例的软件(例如,基于集群的软件发现模块15,包括签名生成模块105、配置参数扫描模块110、基于集群的签名目录比较模块115、不匹配参数模块120等)可以用任何期望的计算机语言来实现,并且可以由计算机领域的普通技术人员基于附图中示出的流程图和说明书中包含的功能描述来开发。此外,本文对执行各种功能的软件的任何引用一般是指在软件控制下执行这些功能的计算机系统或处理器。本发明实施例的计算机系统可以可选地由任何类型的硬件和/或其它处理电路实现。
计算机或其它处理系统的各种功能可以以任何方式分布在任何数量的软件和/或硬件模块或单元、处理或计算机系统和/或电路中,其中计算机或处理系统可以彼此本地或远程地布置,并且经由任何适当的通信介质(例如,LAN、WAN、内联网、因特网、硬连线、调制解调器连接、无线等)进行通信。例如,本发明实施例的功能可以以任何方式分布在各种终端用户/客户端和服务器系统和/或任何其它中间处理设备中。可以以实现这里描述的功能的任何方式来修改上面描述的和流程图中示出的软件和/或算法。另外,流程图或描述中的功能可以以实现期望操作的任何顺序来执行。
本发明实施例的软件(例如,基于集群的软件发现模块15,包括签名生成模块105、配置参数扫描模块110、基于集群的签名目录比较模块115、不匹配参数模块120等)可以在固定或便携式程序产品装置或设备的非暂时性计算机可用介质(例如,磁或光介质、磁光介质、软盘、CD-ROM、DVD、存储器设备等)上可用,以与独立系统或通过网络或其他通信介质连接的系统一起使用。
通信网络可以由任何数量的任何类型的通信网络(例如,LAN、WAN、因特网、内联网、VPN等)来实现。本发明实施例的计算机或其它处理系统可以包括任何常规或其它通信设备,以经由任何常规或其它协议通过网络进行通信。计算机或其它处理系统可以利用任何类型的连接(例如,有线、无线等)来访问网络。本地通信介质可以由任何合适的通信介质(例如,局域网(LAN)、硬连线、无线链路、内联网等)来实现。
系统可以采用任何数量的任何常规或其他数据库、数据存储或存储结构(例如,文件、数据库、数据结构、数据或其他储存库等)来存储信息(例如,基于集群的软件发现模块15,包括签名生成模块105、配置参数扫描模块110、基于集群的签名目录比较模块115、不匹配参数模块120等)。数据库系统可以由任何数量的任何常规或其它数据库、数据存储或存储结构(例如,文件、数据库、数据结构、数据或其它储存库等)来实现,以存储信息(例如,配置参数扫描储存库32、不匹配参数储存库34、签名目录36和集群分析储存库38等)。数据库系统可以包括在服务器和/或客户端系统内或耦合到服务器和/或客户端系统。数据库系统和/或存储结构可以远离计算机或其他处理系统或位于计算机或其他处理系统本地,并且可以存储任何期望的数据(例如,配置参数扫描储存库32、不匹配参数储存库34、签名目录36和集群分析储存库38等)。
本发明的实施例可以采用任何数量的任何类型的用户接口(例如,图形用户接口(GUI)、命令行、提示等)来获得或提供信息(例如,配置参数扫描储存库32、不匹配参数储存库34、签名目录36和集群分析储存库38等),其中该接口可以包括以任何方式布置的任何信息。该接口可以包括布置在任何位置的任何数量的任何类型的输入或致动机制(例如,按钮、图标、栏、框、链接等),以经由任何合适的输入设备(例如,鼠标、键盘等)输入/显示信息并发起期望的动作。界面屏幕可以包括任何合适的致动器(例如,链接、选项卡等)以便以任何方式在屏幕之间导航。
基于集群的软件发现模块15的输出可以包括以任何方式布置的任何信息,并且可以是基于规则或其他标准可配置的,以向用户提供期望的信息(例如,分析结果、软件应用的列表、签名目录、一个或多个集群中的应用的分布等)。
本发明的实施例不限于上述特定任务或算法,而是可以用于其中软件应用的自动识别有用的任何应用。此外,该方法通常可应用于减轻任何上下文中的任何标识或其他信息,并且不限于任何特定应用领域,诸如制造、健康或其他领域。
本文所用的术语仅是为了描述特定实施例的目的,而不是要限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,术语“包括”、“包含”、“含有”、“具有”、“带有”等在本说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、部件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本发明的描述,但是该描述不是穷举的或者将本发明限制为所公开的形式。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有各种修改的各种实施例,这些修改适合于所设想的特定用途。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

Claims (20)

1.一种用于检测安装在计算环境中的软件应用的方法,所述方法包括:
获取签名目录并且由机器学习系统基于安装的软件的配置信息为所述签名目录构建至少一个签名,所述机器学习系统利用来自所述签名目录的签名训练集进行了训练;
扫描所述计算环境的配置对象以获得与在所述计算环境中供应的软件应用相对应的配置参数,其中所述配置参数包括要放置配置文件的卷、放置在容器内部的环境变量、以及配置映射;以及
将所述签名目录与所述配置参数进行比较以确定所述计算环境中供应的所述软件应用。
2.根据权利要求1所述的方法,其中,所述计算环境是包括一个或多个集群的基于集群的计算环境。
3.根据权利要求2所述的方法,其中所述方法进一步包括:
跨不同集群重新分布所确定的软件应用以优化处理。
4.根据权利要求2所述的方法,还包括:
确定所述一个或多个集群中的哪些pod使用与特定配置参数相关联的对象;以及
将所述pod的输出与所述签名目录进行比较以识别所述软件应用。
5.根据权利要求2所述的方法,其中所述基于集群的计算环境包括kubernetes集群或nomad集群。
6.根据权利要求1所述的方法,其中,所述软件应用被封装在容器中。
7.根据权利要求1所述的方法,其中所述签名目录包括信息,所述信息包括与所述软件应用对应的卷、命令、配置参数或秘密。
8.一种用于检测安装在计算环境中的软件应用的系统,包括一个或多个处理器,所述一个或多个处理器被配置为:
获得签名目录并且由机器学习系统基于安装的软件的配置信息为所述签名目录构建至少一个签名,所述机器学习系统利用来自所述签名目录的签名训练集进行了训练;
扫描所述计算环境的配置对象以获得与在所述计算环境中供应的软件应用相对应的配置参数,其中所述配置参数包括要放置配置文件的卷、放置在容器内部的环境变量、以及配置映射;以及
将所述签名目录与所述配置参数进行比较以确定所述计算环境中供应的所述软件应用。
9.根据权利要求8所述的系统,其中,所述计算环境是包括一个或多个集群的基于集群的计算环境。
10.根据权利要求9所述的系统,其中,所述一个或多个处理器还被配置为:
跨不同集群重新分布所确定的软件应用以优化处理。
11.根据权利要求9所述的系统,其中所述一个或多个处理器还被配置为:
确定所述一个或多个集群中的哪些pod使用与特定配置参数相关联的对象;以及
将所述pod的输出与所述签名目录进行比较以识别所述软件应用。
12.根据权利要求9所述的系统,其中所述基于集群的计算环境包括kubernetes集群或nomad集群。
13.根据权利要求8所述的系统,其中所述软件应用被封装在容器中。
14.根据权利要求8所述的系统,其中所述签名目录包括信息,所述信息包括与所述软件应用对应的卷、命令、配置参数或秘密。
15.一种用于检测安装在计算环境中的软件应用的计算机可读存储介质,所述计算机可读存储介质具有随其实施的程序指令,所述程序指令可由处理器执行以:
获得签名目录并且由机器学习系统基于安装的软件的配置信息为所述签名目录构建至少一个签名,所述机器学习系统利用来自所述签名目录的签名训练集进行了训练;
扫描所述计算环境的配置对象以获得与在所述计算环境中供应的软件应用相对应的配置参数,其中所述配置参数包括要放置配置文件的卷、放置在容器内部的环境变量、以及配置映射;以及
将所述签名目录与所述配置参数进行比较以确定所述计算环境中供应的所述软件应用。
16.根据权利要求15所述的计算机可读存储介质,其中,所述计算环境是包括一个或多个集群的基于集群的计算环境。
17.根据权利要求16所述的计算机可读存储介质,其中所述程序指令可执行以:
跨不同集群重新分布所确定的软件应用以优化处理。
18.根据权利要求16所述的计算机可读存储介质,其中所述程序指令可执行以:
确定所述一个或多个集群中的哪些pod使用与特定配置参数相关联的对象;以及
将所述pod的输出与所述签名目录进行比较以识别所述软件应用。
19.根据权利要求15所述的计算机可读存储介质,其中,所述软件应用被封装在容器中。
20.根据权利要求15所述的计算机可读存储介质,其中所述签名目录包括信息,所述信息包括与所述软件应用对应的卷、命令、配置参数或秘密。
CN202080076364.1A 2019-11-08 2020-11-06 用于使用配置对象来检测计算环境中软件应用的使用的自动化技术 Active CN114631077B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/677,991 US11163557B2 (en) 2019-11-08 2019-11-08 Automated techniques for detecting the usage of software applications in a computing environment using configuration objects
US16/677,991 2019-11-08
PCT/IB2020/060454 WO2021090254A1 (en) 2019-11-08 2020-11-06 Automated techniques for detecting usage of software applications in computing environment using configuration objects

Publications (2)

Publication Number Publication Date
CN114631077A CN114631077A (zh) 2022-06-14
CN114631077B true CN114631077B (zh) 2023-06-02

Family

ID=75846586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080076364.1A Active CN114631077B (zh) 2019-11-08 2020-11-06 用于使用配置对象来检测计算环境中软件应用的使用的自动化技术

Country Status (8)

Country Link
US (1) US11163557B2 (zh)
JP (1) JP2023500813A (zh)
KR (1) KR20220035257A (zh)
CN (1) CN114631077B (zh)
AU (1) AU2020377576B2 (zh)
DE (1) DE112020004647T5 (zh)
GB (1) GB2605080B (zh)
WO (1) WO2021090254A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263120B2 (en) * 2020-02-12 2022-03-01 Capital One Services, Llc Feature-based deployment pipelines
US11768921B2 (en) * 2020-09-14 2023-09-26 Hewlett Packard Enterprise Development Lp Monitoring license constraints in a container orchestration system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101978354A (zh) * 2008-03-20 2011-02-16 国际商业机器公司 检测软件在应用虚拟化环境中的安装和使用的方法和系统
US9395966B1 (en) * 2010-09-27 2016-07-19 Symantec Corporation Systems and methods for associating installed software components with software products
CN105938525A (zh) * 2015-03-04 2016-09-14 国际商业机器公司 虚拟机设备的基于目录的发现

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307355B2 (en) * 2005-07-22 2012-11-06 International Business Machines Corporation Method and apparatus for populating a software catalogue with software knowledge gathering
WO2007122021A1 (en) 2006-04-20 2007-11-01 International Business Machines Corporation A method for generating a robust software signature
US7698305B2 (en) * 2006-12-01 2010-04-13 Microsoft Corporation Program modification and loading times in computing devices
WO2008119610A1 (en) * 2007-04-03 2008-10-09 International Business Machines Corporation A method and system for populating a software catalogue with related product information
US7506038B1 (en) * 2008-05-29 2009-03-17 International Business Machines Corporation Configuration management system and method thereof
US8402452B2 (en) * 2009-04-02 2013-03-19 International Business Machines Corporation Automatically recommending an upgrade approach for a customizable software product
WO2011014191A1 (en) 2009-07-31 2011-02-03 Hewlett-Packard Development Company, L.P. Method and system to recognize and inventory applications
US9665366B2 (en) 2014-09-26 2017-05-30 Oracle International Corporation Creation of a software configuration signature for software
GB2528679A (en) * 2014-07-28 2016-02-03 Ibm Software discovery in an environment with heterogeneous machine groups
US10572449B2 (en) 2015-03-02 2020-02-25 Walmart Apollo, Llc Systems, devices, and methods for software discovery using application ID tags
US10223074B2 (en) 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US10705829B2 (en) 2016-03-30 2020-07-07 International Business Machines Corporation Software discovery using exclusion
US10212031B2 (en) 2016-06-22 2019-02-19 Amazon Technologies, Inc. Intelligent configuration discovery techniques
US20200034167A1 (en) * 2016-08-10 2020-01-30 Nutanix, Inc. Automatic application migration across virtualization environments
US11159334B2 (en) * 2016-10-04 2021-10-26 International Business Machines Corporation Distribution of software signatures using a community catalog based on blockchain
US10313379B1 (en) * 2017-06-09 2019-06-04 Symantec Corporation Systems and methods for making security-related predictions
US20190079846A1 (en) * 2017-09-08 2019-03-14 Performance Sherpa, Inc. Application performance control system for real time monitoring and control of distributed data processing applications
CN110297641B (zh) 2019-06-25 2022-02-22 四川长虹电器股份有限公司 基于kubernetes的应用编排部署方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101978354A (zh) * 2008-03-20 2011-02-16 国际商业机器公司 检测软件在应用虚拟化环境中的安装和使用的方法和系统
US9395966B1 (en) * 2010-09-27 2016-07-19 Symantec Corporation Systems and methods for associating installed software components with software products
CN105938525A (zh) * 2015-03-04 2016-09-14 国际商业机器公司 虚拟机设备的基于目录的发现

Also Published As

Publication number Publication date
US11163557B2 (en) 2021-11-02
AU2020377576A1 (en) 2022-03-17
WO2021090254A1 (en) 2021-05-14
US20210141636A1 (en) 2021-05-13
GB202208364D0 (en) 2022-07-20
GB2605080B (en) 2023-11-08
JP2023500813A (ja) 2023-01-11
CN114631077A (zh) 2022-06-14
KR20220035257A (ko) 2022-03-21
AU2020377576B2 (en) 2023-09-14
GB2605080A (en) 2022-09-21
DE112020004647T5 (de) 2022-07-14

Similar Documents

Publication Publication Date Title
US20210064417A1 (en) Method and system of providing artifacts in a cloud computing environment
US10983774B2 (en) Extensions for deployment patterns
US9612767B2 (en) Context aware dynamic composition of migration plans to cloud
US11671506B2 (en) Microservice management system for recommending modifications to optimize operation of microservice-based systems
JP7050106B2 (ja) 実行可能分析モジュールをインスタンス化する方法
US10956132B1 (en) Unified code and data management for model development
US10942801B2 (en) Application performance management system with collective learning
CN114631077B (zh) 用于使用配置对象来检测计算环境中软件应用的使用的自动化技术
US11138060B2 (en) Application performance management system with dynamic discovery and extension
US9342784B1 (en) Rule based module for analyzing computing environments
US9256509B1 (en) Computing environment analyzer
US11221846B2 (en) Automated transformation of applications to a target computing environment
US20160366033A1 (en) Compacted messaging for application performance management system
JP6930862B2 (ja) クライアント改ざん判断システムおよび方法
US11829766B2 (en) Compliance enforcement via service discovery analytics
US10817396B2 (en) Recognition of operational elements by fingerprint in an application performance management system
US20150052164A1 (en) Associating an application with an application file
US11968086B1 (en) Isolated environment provisioning in service mesh-based microservices systems
CN117648198B (zh) 应用适配方法及装置、设备及存储介质
EP4276665A1 (en) Analyzing scripts to create and enforce security policies in dynamic development pipelines
Jaktholm Building a Scalable Simulation Platform for Prototyping Distributed Machine Learning Solutions

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
GR01 Patent grant
GR01 Patent grant