首页> 中国专利> 用于实现编配引擎的系统和方法

用于实现编配引擎的系统和方法

摘要

由于大型基础设施占用空间和移动部件的数量,在现有环境中执行Splunk代码部署对于支持团队来说是一个挑战。本发明的实施例涉及一种编配引擎,用于以减少的停机时间和增强的日志记录和跟踪能力来自动执行Splunk部署发行。这种自动化不仅有助于消除在促使对生产的改变中涉及的低效且资源密集的手动过程,而且还执行验证并减少人为错误,从而为终端用户提供更稳定且可靠的平台。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-06

    实质审查的生效 IPC(主分类):H04L41/0803 专利申请号:2021800083515 申请日:20210111

    实质审查的生效

说明书

相关申请的交叉引用

本申请要求2020年1月10日提交的美国临时申请62/959,290(代理案卷号72167.001805)的优先权,其内容以其全文结合于此。

技术领域

本发明总体涉及用于实现在分布式环境中自动部署应用的编配引擎的系统和方法。

背景技术

Splunk表示用于搜索、分析和可视化来自各种资源(包括网站、应用、传感器、设备)的机器生成数据的软件平台。Cyber Splunk提供监视和分析信息安全日志和应用文件的能力。它还能够有效地诊断问题(例如,响应时间的延迟等),并且能够减少解决安全事故的平均时间。因此,对于安全分析师而言,应用是可靠的且高度可用的以对事件和事故进行响应是必须的。

当前,支持团队在Splunk环境中定期地(例如,每周)在预定程序中并以特定顺序执行改变(例如,新应用的部署、在生产环境中更新现有应用等)。任务通常基于发行文档手动执行。

当前部署过程中存在的显著缺点包括:多个发布文档(每个15-20页长);各种Splunk组件的手动备份(例如,6小时的手动工作);来自多个资产的手动部署;跨所有组件的手动验证;特权账户的玻璃打碎;以及资源密集型过程(例如,每周花费大约三天的10-15部署)。

此外,当前过程中所需的手动工作易于出现人为错误,这导致对于用户而言出现平台不稳定和不可用。

存在这些和其它缺点。

发明内容

根据实施例,本发明涉及一种在软件平台环境(例如,Splunk)中实现编配引擎的系统。所述系统包括:电子输入,被配置为经由网络(web)层接收输入配置文件;数据库,被配置为与数据访问层通信,并且还被配置为存储状态、数据和日志;以及编配引擎,包括计算机处理器,所述编配引擎耦接至所述电子输入和所述数据库,并且还被编程为执行以下步骤:从所述输入配置文件接收部署输入数据;基于所述部署输入数据,发起部署数据富集处理;执行预验证服务,以提交预验证服务调用请求并接收一个或多个验证结果;应用操作执行,以部署应用并重启软件组件的子集;执行整个基础设施的后验证服务,以提交后验证服务调用请求并接收一个或多个验证结果;以及经由交互界面生成和提供与所述部署数据富集处理有关的状态,其中,所述交互界面包括部署状态部分、提要细节部分、部署概要部分和部署历史部分。

根据另一实施例,本发明涉及一种在软件平台环境(例如,Splunk)中实现编配引擎的方法。所述方法包括以下步骤:经由电子输入从输入配置文件接收部署输入数据,其中,所述电子输入被配置为经由web层接收输入配置文件;基于所述部署输入数据经由编配引擎发起部署数据富集处理,其中,所述编配引擎包括计算机处理器并且耦接到所述电子输入和数据库,其中,所述数据库被配置为与数据访问层通信并且还被配置为存储状态、数据和日志;执行预验证服务,以提交预验证服务调用请求并接收一个或多个验证结果;应用操作执行,以部署应用并重启软件组件的子集;执行整个基础设施的后验证服务,以提交后验证服务调用请求并接收一个或多个验证结果;以及经由交互界面生成和提供与所述部署数据富集处理有关的状态,其中,所述交互界面包括部署状态部分、提要细节部分、部署概要部分和部署历史部分。

本发明的实施例可包括专门编程的计算机系统,其包括一个或多个计算机处理器、交互接口、电子存储设备和网络。本文描述的计算机实现的系统和方法为实体、安全分析师、用户和其他参与者提供了独特的优点。本发明的实施例涉及消除将应用代码可靠地递送到分布式环境中的低效且资源密集的过程。创新的解决方案还解决了与人为错误、频繁发行和停机时间有关的低效率。本发明的实施例寻求促进和提升所需的日志记录和跟踪能力。另外,用户可参与自动或单击部署解决方案,这减少了应用代码发行的显著执行时间。这进一步消除了人工干预、自动备份、文档检查,从而显著减少或甚至消除了人为错误并提供了端到端验证。本发明的实施例进一步通过提供单个平台来跟踪执行进程和历史改变、监视改变相关日志、跟踪错误、跟踪和关联部署问题来促进使用的容易性。

将在以下详细描述中更全面地描述这些和其他优点。

附图说明

为了便于更全面地理解本发明,现在参考附图。附图不应被解释为限制本发明,而是仅旨在说明本发明的不同方面和实施例。

图1是根据本发明实施例的示例性系统图。

图2是根据本发明实施例的编配器的详细图示。

图3是根据本发明实施例的示例性处理流程。

图4是根据本发明实施例的示例性用户界面。

图5是根据本发明实施例的示例性用户界面。

图6是根据本发明实施例的示例性用户界面。

图7是根据本发明实施例的示例性用户界面。

图8是根据本发明实施例的示例性用户界面。

具体实施方式

以下描述旨在通过提供具体实施例和细节来传达对本发明的理解。然而,应理解,本发明不限于仅作为示例的这些具体实施例和细节。还应理解,根据已知的系统和方法,本领域的普通技术人员将认识到,根据具体设计和其他需要,本发明在任何数量的替代实施例中用于其预期目的和益处的使用。

由于广泛的基础设施占用空间和大量移动部件,在现有环境中执行Splunk代码部署对于支持团队来说是一个挑战。本发明的实施例涉及一种编配引擎,所述编配引擎以减少的停机时间和增强的日志记录和跟踪能力自动执行Splunk部署发行。这种创新的自动化解决方案寻求消除涉及促使生产变化并进一步执行验证的低效且资源密集型手动过程。这导致显著减少的人为错误,从而为终端用户提供更稳定且可靠的平台。

本发明的实施例涉及构建端到端过程自动化解决方案以执行在Splunk或其他环境中的改变的发行中涉及的各种动作。部署过程通过显著减少手动交互来实现效率,从而减轻在当前场景中常见的人为错误的过程。

本发明的实施例可包括附加特征和功能,诸如无人看管的部署和验证;减少或消除来自实现和验证的人为错误;提高生产率(例如,将手动工作的天数减少到几小时);从故障点暂停和恢复的能力;根据需要,迅速回滚改变的能力;用于增加弹性的基于站点的部署;实现者独立性;可视化和遥测;向支持团队警告的警报、故障和其他条件;日志记录和跟踪能力;以及自动重建和升级。

例如,本发明的实施例涉及将应用和技术附件部署和更新到Splunk基础设施。另外,可以基于用户在测试中的接受来提供全自动部署,并且使其成为可以由公司内的其他业务线和用户利用的坚实范围的解决方案。

图1是根据本发明实施例的示例性系统图。本发明的实施例涉及构建自动发行解决方案以使用控制部署的执行的微服务和编配工作流来在Splunk中执行新应用的部署和/或更新现有应用。图1的系统可包括自动备份110、部署配置输入112、编配器114、事件日志收集和警报116以及可视化118。如图1所示,编配器114可包括包含预检查120、部署122、重启124和验证126的功能。

自动备份110可包括可经由调度器自动触发的密钥Splunk组件上的备份(诸如每周备份)。可应用用于备份的其它间隔。

部署配置输入112可经由Java程序处理以编配自动化任务的蓝图(诸如可扩展脚本)以实现最终目标。例如,Java编配器可执行预检查,随后是实际部署,然后根据需要重启特定Splunk组件,并且最终执行整个基础设施的完整验证。

利用事件日志收集和警报116,Java协调器可以另外收集日志并向受影响的团队发送警告/故障警报以进行干预。

自动化解决方案还可以向用户提供web用户界面(UI)以发起和跟踪由可视化118表示的改变。还可以在UI上呈现任何错误或不可预见的情况以供用户采取适当的动作。

图2是根据本发明实施例的示例性编配器工作流程。例如,图2示出了Splunk发行编配器的示例性工作流程。本发明的实施例提供了一种具有配置文件和自动化引擎的编配器,其可决定如何、在何处和部署什么以及重启什么组件。

如图2所示,用户204可以与编配器202交互。编配器202可包括Web层210、服务层220、作业230、数据访问层250和数据库260。作业230可以与微服务提供商240交互。Web层210还可包括用户接口212以及一个或多个服务,例如REST(表述性状态转移)服务214。服务层220可包括一个或多个服务,例如业务服务222。作业230可包括执行监测232、数据维护234、微服务调用236和其他服务。微服务提供商240可包括多个微服务242、244、246。数据访问层250可包括服务,例如数据访问服务252和对象关系映射(ORM)层254。

如图2所示,用户204可经由270向Web层210发送请求。Web层210可以经由272和274与服务层220交互。服务层220可经由280向数据访问层250发送请求。数据访问层250可经由282和284与数据库260交互。数据访问层250可经由286响应服务层220。Web层210可经由276向用户204发送响应。图2所示的系统可以支持其他流程和交互。

图3是根据本发明实施例的示例性处理流程。图3示出了用户接口310、编配器312、人为因素库(Artifact Repository)314、服务执行平台316和Splunk 318之间的交互。虽然附图示出了Splunk,但是可以实现其他软件平台和服务,包括搜索、分析和可视化从诸如网站、应用、传感器、设备之类的各种源收集的机器生成数据的其他系统。在步骤320,可接收部署输入文件,并且可以在用户接口310执行基本验证。在步骤322,部署输入数据可以由编配器312接收、验证和存储。在324,应用元数据请求可被发送到人为因素库314。作为响应,应用元数据可以由编配器312接收。在步骤326,可以由编配器312应用部署数据富集处理。在步骤328,可以应用部署数据分析和执行排队。

各种验证和其他功能可以由编配器312发起和执行。在步骤330,可执行预验证。可以发送预先验证服务调用请求和验证命令。作为响应,可以提供验证结果。在步骤332,可以确定验证。如果验证失败,则状态可更新为“失败”。如果验证成功,则编配器312可以准备操作有效载荷。

在步骤334,可以执行操作执行。可以发送服务调用请求和操作命令。作为响应,可以提供操作结果。在步骤336,可以确定验证。如果操作失败,则状态可更新为“失败”。如果操作成功,则编配器312可以准备后验证有效载荷。

在步骤338,可以执行后验证。可以发送后验证服务调用请求和验证命令。作为响应,可以提供验证结果。在步骤340,可以确定验证。如果验证失败,则状态可更新为“失败”。如果验证成功,则状态可更新为“成功”。

虽然图3的过程示出了以特定顺序执行的某些步骤,但是应理解,可以通过向所述过程添加一个或多个步骤、省略所述过程内的步骤和/或改变执行一个或多个步骤的顺序来实践本发明的实施例。

图4是根据本发明实施例的示例性用户界面。图4可以包括部署模块410和升级模块420。例如,部署模块410可以涉及Splunk中的应用部署。例如,升级模块420可以涉及Splunk中的产品升级。部署模块410可以支持部署状态412和部署历史414。图5是部署界面的示例性图示。

升级模块420可以支持历史422和新升级430。历史422可以提供关于子任务424、服务器426和动作428的细节。新升级430可以使用户能够通过模板432和自组织升级(AdhocUpgrade)434发起新升级。

例如,升级模块420可以显示如历史422所示执行的升级操作的历史。例如,项目可以按时间戳的降序列出。可以提供其他过滤器选项。历史页面可以包括附加细节,包括参考标识、升级动作的名称、提交操作的人或实体的用户标识、改变管理系统中的对应改变编号(或标识)、操作的状态、时间戳、动作(例如,取决于操作的当前状态,暂停、恢复、取消或其他动作)、每个操作下的子任务统计等。

利用升级模块420,用户可提交新的升级动作,如新升级430所示。例如,用户可以在模板432处选择预定义模板。每个模板可取决于其功能和技术领域而绑定到主机、资源和动作的特定集合。例如,模板可包括部署服务器、许可主机、监视控制台、索引器站点滚动升级、集群升级等。在选择模板之后,用户可以查看与模板相关的服务器(或其他资源)的列表。然后,用户可通过与界面交互来触发升级。例如,用户可输入包括改变类型、要排除的服务器、改变编号、标识等的改变细节。根据另一示例,用户可通过自组织升级434发起自组织升级。这可涉及对用户通过界面提供的任何服务执行默认升级过程。例如,用户可提供包括改变类型、服务器列表、标识、改变编号等的改变细节。一旦提交了操作,就可从历史页面查看和跟踪状态。

用户可通过与参考标识交互以打开具有子任务细节的新选项卡来挖掘以查看子任务的状态。可以执行挖掘动作,直到在当前任务下没有子任务。可以如图6至图8所示提供示例性细节。

图5是根据本发明实施例的示例性用户界面。图5提供部署状态510、提要细节(Feed Detail)520、部署概要530和部署历史540。部署状态510可包括提供关于包括过程输入、分析、部署代理重启、部署、重启、应用捆绑包等的部署阶段的细节的图形512。在514处示出的另一图形可提供任务的计数,包括总任务、完成、进行中、失败和未决。可以提供其他度量和分析。提要细节520可包括输入数据、记录和对应的细节,例如参考标识、应用名称、应用修订、应用回滚修订、部署选项、标志、更新日期和状态等。部署概要530可以包括关于操作的概要数据。部署历史540可包括参考标识、日期、改变号(或标识)、状态等。

图6是根据本发明实施例的示例性用户界面。如图6所示,用户可以查看关于子任务的细节。在图6的示例中,为特定任务提供任务概要,如610所示。具体地,图6示出了升级操作被调度运行的服务器,如620所示。

图7是根据本发明实施例的示例性用户界面。通过在图6的620中选择条目,用户可以在720处查看任务概要710和关于各个步骤的细节。例如,图7示出了作为升级动作的一部分的各个步骤,如720所示。

图8是根据本发明实施例的示例性屏幕截图。通过在图7的720中选择条目,用户可在810处查看任务概要并且在820处查看关于升级动作的细节。此外,用户可在830处查看每个动作的日志。

考虑到本文公开的本发明的说明书和实践,本发明的其他实施例、用途和优点对于本领域技术人员将是明显的。说明书和示例应当仅被认为是示例性的,因此本发明的范围不旨在由此被限制。

上述示例显示了在一个物理配置中本发明的各种实施例;然而,应理解,各种组件可位于分布式网络的远处部分,例如局域网、广域网、电信网络、内部网和/或互联网。因此,应理解,例如,各种实施例的组件可以组合成一个或多个设备,并置在分布式网络的特定节点上,或分布在网络中的各个位置。如本领域技术人员将理解的,各种实施例的组件可以布置在分布式网络内的任何一个或多个位置,而不影响各自系统的操作。

如上所述,本发明的各种实施例支持许多通信设备和组件,其中每个可以包括至少一个编程处理器和至少一个存储器或存储设备。存储器可以存储一组指令。指令可以永久或暂时性存储在处理器的一个或多个存储器中。指令集可以包括执行特定任务(例如上面描述的那些任务)的各种指令。用于执行特定任务的这样一组指令可以被描述为程序、软件程序、软件应用、应用或软件。

应了解,为了实施上述实施例的方法,处理器和/或存储器不必物理上位于同一地理位置。也就是说,在本发明的示例性实施例中使用的每个处理器和存储器可以位于地理上不同的位置并连接来以任何合适的方式通信。此外,可理解,处理器和/或存储器中的每一个可以由不同的物理设备组成。因此,处理器不必是一个位置中的一个设备,并且存储器也不必是另一个位置中的另一个设备。也就是说,可以设想处理器可以是位于两个或更多个不同物理位置的两个或更多个设备。两个不同的设备可以以任何合适的方式连接。此外,存储器可包括存储器的位于两个或更多个物理位置的两个或更多个部分。

如上所述,一组指令被用于处理本发明的各种实施例。服务器可包括存储在存储器中的软件或计算机程序(例如,包含由处理器执行的程序代码指令的非暂时性计算机可读介质),用于执行本文所述的方法。指令集可以是程序、软件或应用的形式。例如,软件可以是系统软件或应用软件的形式。例如,软件也可以是单独程序的集合、较大程序中的程序模块或程序模块的一部分。使用的软件还可包括面向对象编程形式的模块化编程。软件告诉处理器如何处理正在处理的数据。

此外,应了解,在本发明的实施方式和操作中使用的指令或指令集可采用适当的形式,使得处理器可以读取指令。例如,构成程序的指令可以是适当编程语言的形式,所述语言被转换为机器语言或目标代码,以允许处理器读取指令。也就是说,使用编译器、汇编程序或解释器将特定编程语言中的编程代码或源代码的书面行转换为机器语言。机器语言是特定于特定类型处理器(例如,特定类型的计算机)的二进制编码机器指令。根据本发明的各种实施例,可以使用任何合适的编程语言。例如,使用的编程语言可以包括汇编语言、Ada、APL、Basic、C、C++、COBOL、dBase、Forth、Fortran、Java、Modula-2、Pascal、Prolog、REXX、Visual Basic、JavaScript和/或Python。此外,没有必要结合本发明的系统和方法的操作来使用单一类型的指令或单一编程语言。相反,可以根据需要或期望使用任意数量的不同编程语言。

此外,在本发明各种实施例的实践中使用的指令和/或数据可以根据需要使用任何压缩或加密技术或算法。加密模块可被用于加密数据。此外,例如,可以使用合适的解密模块对文件或其他数据进行解密。

在本发明示例性实施例的系统和方法中,可以使用各种“用户接口”来允许用户与移动设备或其他个人计算设备进行接口。如本文所使用的,用户接口可包括处理器使用的允许用户与通信设备的处理器交互的任何硬件、软件或硬件和软件的组合。用户接口可以是例如由应用程序提供的对话屏幕的形式。用户接口还可以包括触摸屏、键盘、语音读取器、语音识别器、对话框、菜单框、列表、复选框、切换开关、按钮、虚拟环境(例如,虚拟机(VM)/云)中的任何一个,或允许用户在处理一组指令时接收有关处理器操作的信息和/或向处理器提供信息的任何其他设备。因此,用户接口可以是在用户和处理器之间提供通信的任何系统。例如,用户通过用户接口向处理器提供的信息可以是命令、数据选择或一些其他输入的形式。

本文所述的软件、硬件和服务可以使用一个或多个云服务模型提供,例如软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS),和/或使用一个或多个部署模型,例如公共云、私有云、混合云和/或社区云模型。

尽管本发明的实施例已在本文中针对特定目的在特定环境中的特定实现进行了描述,本领域技术人员将认识到,其用途不限于此,并且本发明的实施例可以出于类似目的在其他相关环境中有益地实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号