管理应用配置的方法、系统、计算机设备和存储介质与流程

文档序号:33711611发布日期:2023-04-01 00:06阅读:54来源:国知局
管理应用配置的方法、系统、计算机设备和存储介质与流程

1.本发明涉及计算机应用技术领域,更为具体而言,涉及一种管理应用配置的方法、系统、计算机设备和存储介质。


背景技术:

2.随着应用程序的日益复杂,应用的配置项也日益增多,配置中心是微服务架构体系中比较重要的核心组件,多数企业目前应用的配置中心为spring cloud config。然而,目前spring cloud config配置中心存在配置变更操作流程复杂且无法实现自动化部署的问题,同时,缺少必要的权限管理及相应的审计服务,以及在配置变更后服务无法立即生效,需要其他组件辅助实现或重启服务,增加了生产运营成本,提高了操作风险。


技术实现要素:

3.为解决上述现有技术存在的问题或部分问题,本发明实施方式提供了一种管理应用配置的方法、系统、计算机设备和存储介质,在审计过程发现应用配置异常时,可以根据生成的变更日志定位异常信息并恢复至期望的配置信息,从而能够保证应用配置的安全性,实现对应用配置的安全审计及数据恢复。
4.根据本发明的第一方面,本发明实施方式提供了一种管理应用配置的方法,其包括:获取配置信息;判断所述配置信息是否发生变更;如果所述配置信息发生变更,基于所述配置信息的变更类型、变更时间和变更对象生成变更日志;在审计过程中确定应用配置异常时,根据所述变更日志定位异常信息,并根据所述变更日志对应的数据表恢复历史版本中期望的配置信息。
5.根据本发明上述实施方式,通过对发生变更的配置信息生成变更日志,从而在审计过程发现应用配置异常时,根据所述变更日志定位异常信息,以及恢复至期望的配置信息,能够保证应用配置的安全性,实现了对应用配置的安全审计和数据恢复。
6.在本发明的一些实施方式中,所述方法还包括:如果所述配置信息发生变更,通过http长轮询向客户端发送通知,使客户端获取所述配置信息。
7.根据本发明上述实施方式,当配置信息发生变更时,客户端根据http长轮询发送的通知立即自动获取配置信息,可以实现应用配置实时更新,避免重启服务或其他组件辅助的复杂流程,从而降低生产运营成本,提高操作安全性。
8.在本发明的一些实施方式中,获取所述配置信息包括将配置发布方的所述配置信息插入自定义的注册表中。
9.在本发明的一些实施方式中,所述方法还包括:根据配置发布方的配置权限确定是否发布所述配置信息。
10.根据本发明上述实施方式,通过权限验证确定是否发布配置信息,可以减少信息泄露、配置项误操作等事故的产生。
11.在本发明的一些实施方式中,所述方法还包括:当所述配置信息包含敏感信息时,
对所述配置信息进行加密后发布。
12.根据本发明上述实施方式,通过对配置信息的敏感信息自动加密,可以提升应用的安全性。
13.根据本发明的第二方面,本发明实施方式提供了一种管理应用配置的系统,其包括:信息获取模块,用于获取配置信息;变更判断模块,用于判断所述配置信息是否发生变更;日志生成模块,用于当所述配置信息发生变更时,基于所述配置信息的变更类型、变更时间和变更对象生成变更日志;信息恢复模块,用于在审计过程中确定应用配置异常时,根据所述变更日志定位异常信息,并根据所述变更日志对应的数据表恢复历史版本中期望的配置信息。
14.根据本发明上述实施方式,通过对发生变更的配置信息生成变更日志,从而在审计过程发现应用配置异常时,根据所述变更日志定位异常信息,以及恢复至期望的配置信息,能够保证应用配置的安全性,实现了对应用配置的安全审计和数据恢复。
15.在本发明的一些实施方式中,所述配置中心服务端还包括:动态更新模块,用于当所述配置信息发生变更时,通过http长轮询向客户端发送通知,使所述客户端获取所述配置信息。
16.根据本发明上述实施方式,当配置信息发生变更时,客户端根据http长轮询发送的通知立即自动获取配置信息,可以实现应用配置实时更新,避免重启服务或其他组件辅助的复杂流程,从而降低生产运营成本,提高操作安全性。
17.在本发明的一些实施方式中,获取所述配置信息包括将配置发布方的所述配置信息插入自定义的注册表中。
18.在本发明的一些实施方式中,所述配置中心服务端还包括:权限控制模块,用于根据配置发布方的配置权限确定是否发布所述配置信息。
19.根据本发明上述实施方式,通过权限验证确定是否发布配置信息,可以减少信息泄露、配置项误操作等事故的产生。
20.在本发明的一些实施方式中,所述配置中心服务端还包括:加密模块,用于当所述配置信息包含敏感信息时,对所述配置信息进行加密后发布。
21.根据本发明上述实施方式,通过对配置信息的敏感信息自动加密,可以提升应用的安全性。
22.根据本发明的第三方面,本发明实施方式提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述管理应用配置的方法所包含的步骤。
23.根据本发明的第四方面,本发明实施方式提供一种包括存储器和处理器的计算机设备,所述存储器存储有计算机可读指令,其中,所述计算机可读指令被所述处理器执行时能够实现如上任意一种实施方式所述的管理应用配置的方法。
24.由上述可知,实施本发明提供的管理应用配置的方法、系统、计算机设备和存储介质,通过对发生变更的配置信息生成变更日志,从而在审计过程发现应用配置异常时,根据所述变更日志定位异常信息,以及恢复至期望的配置信息,能够保证应用配置的安全性,实现对应用配置的安全审计和数据恢复。
附图说明
25.图1是根据本发明一种实施方式的管理应用配置的方法的流程示意图;
26.图2是根据本发明一种进一步实施方式的管理应用配置的方法的流程示意图;
27.图3是根据本发明一种实施方式的管理应用配置的系统的架构图。
具体实施方式
28.以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
29.下面对本文中使用的术语进行简要说明。
30.spring cloud config:一种配置中心。
31.spring:一个开放源代码的j2ee应用程序框架。
32.bean:由spring容器实例化、组装和管理的对象。
33.fallback机制:一种服务故障时的容错方式。
34.config service:客户端配置服务。
35.admin service:配置管理服务。
36.namespace:配置项的集合。
37.notificationid:通知id。
38.ldap协议:lightweight directory access protocol,轻量级目录访问协议。
39.jdk:java语言的软件开发工具包。
40.jce:java cryptography extension,java密码扩展,提供用于加密、密钥生成算法和协商等的框架和实现。
41.appid:接入系统的应用id,该appid为标志该接入系统的唯一标识。
42.releaseid:接入系统的应用对应的配置信息集合发布后产生的一个版本号,该版本号在每次配置信息发布时生成一个。
43.openapi接口:开放应用程序接口。
44.devops:development和operations的组合词,一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(qa)部门之间的沟通、协作与整合。
45.图1是根据本发明一种实施方式的管理应用配置的方法的流程示意图。
46.如图1所示,在本发明的一种实施方式中,所述方法可包括:步骤s11、步骤s12、步骤s13和步骤s14,下面对上述步骤进行具体的描述。
47.在步骤s11中,获取配置信息。在一些实施方式中,获取配置信息包括将配置发布方的配置信息,类如应用名称、应用端口号、数据库连接池、业务等配置信息,用appid做为key,配置信息作为value依次插入到自定义的注册表中,以便客户端从注册表中获取所需项目的配置信息。例如,spring框架提供beanpostprocessor和beanfactorypostprocessor两种级别处理的扩展接口,在spring容器启动过程中,配置中心通过自定义的
beanpostprocessor和beanfactorypostprocessor将配置信息中包含${

}占位符和@value注解的bean注册到配置中心框架中定义的注册表中。由此,可以得到适应配置中心自定义规则的配置信息。
48.在步骤s12中,判断所述配置信息是否发生变更。
49.在步骤s13中,如果所述配置信息发生变更,基于所述配置信息的变更类型、变更时间和变更对象生成变更日志。其中,配置信息的变更类型包括但不限于下述一种或多种:新增、修改、删除、发布操作。
50.在其他实施方式中,根据配置信息确定操作类型、操作时间和操作账号,并根据上述信息生成事件操作日志,并将所述事件操作日志保存在关系型数据库中,同时,在每次发布操作时,将当前发布的配置信息副本保存至历史版本库中。
51.在步骤s14中,在审计过程中确定应用配置异常时,根据所述变更日志定位异常信息,并根据所述变更日志对应的数据表恢复历史版本中期望的配置信息。具体而言,当需要进行安全审计时,根据变更日志定位问题,快速简便地定位到配置变更的发生时间及操作账号,如需恢复配置信息,则通过历史版本库中的数据表进行一键数据恢复,在可选的实施方式中,通过历史版本库将应用配置回复至最接近当前配置的未出现异常的配置版本。
52.采用本发明实施方式的上述管理应用配置的方法,通过对发生变更的配置信息生成变更日志,从而在审计过程发现应用配置异常时,根据所述变更日志定位异常信息,以及恢复至期望的配置信息,能够保证应用配置的安全性,避免误操作或人为恶性删除等操作导致的严重后果,实现对应用配置的安全审计和数据恢复。
53.在进一步的实施方式中,当所述配置信息发生变更时,通过http长轮询向客户端发送通知,使客户端获取该客户端对应的配置信息。当配置信息发生变更时,接入配置中心的客户端(服务/系统)根据http长轮询发送的通知,立即自动拉取配置中心根据客户端提供的appid返回的该appid对应的所有配置信息,可以实现应用配置实时更新,避免重启服务或其他组件辅助的复杂流程,从而降低生产运营成本,提高操作安全性。
54.在其他的实施方式中,客户端通过fallback机制,定时从配置中心的config service服务中定时拉取一次配置信息,例如5分钟拉取一次配置信息。由此,当http长轮询因为故障失效,使得接入配置中心的系统(客户端)获取不到最新的配置信息时,可以根据加入的fallback机制,5分钟主动拉取一次配置信息,起到了容错的效果,保证接入系统多一种获取配置信息的保障方式,确保配置信息更新后在客户端生效。
55.本发明给出一种基于http长轮询请求和spring扩展机制的进一步实施方式的管理应用配置的方法,采用该方法可以实现应用配置的实时更新。如图2所示,该进一步实施方式的管理应用配置的方法包括如下步骤:
56.首先,配置中心服务端通过admin service服务将已经发布的配置信息的releaseid(发布id)插入到release message表(发布注册表)中,得到配置中心服务端的配置信息,并且,配置中心服务端通过config service服务每秒扫描一次注册表,以获取注册表中的配置信息。在进一步实施方式中,releaseid作为已发布的配置信息的版本号,可以用于恢复历史版本中期望的配置信息,即根据该版本号确定其对应的配置信息的数据快照。
57.其次,一方面,配置中心的客户端通过fallback的机制,每5分钟从配置中心的
config service服务中定时拉取一次注册表中的配置信息;另一方面,客户端通过while循环发起http请求,配置中心的服务端的config service服务与客户端之间通过http长轮询建立预设时长的长连接,例如60秒,config service服务会挂起该请求60秒,在这60秒内如果没有配置信息变更则返回httpstatus304的状态,表示配置信息并未修改,如果配置信息有更新则返回httpstatus200的状态,表示配置信息有修改,并通知配置中心客户端,使配置中心客户端立即从config service中拉取配置信息,拉取到的配置信息覆盖原有bean的属性,使bean的属性实时生效。
58.其中,当配置信息有更新并返回httpstatus 200的状态时,同时返回namespace中的最新notificationid,客户端调用deferredresult的setresult方法,即deferredresultwrapper#setresult(list《confignotication》)的方法,直接设置deferredresult的结果并结束本次长轮询,deferredresult的结果包含最新配置发布的版本号,客户端携带该发布版本号在配置中心拉取该客户端(应用)的所有配置信息,对比后覆盖有变化的配置信息。当配置信息没有更新时,等待至有变更或等待至超时结束本次长轮询。
59.在一些实施方式中,管理应用配置的方法还包括:根据配置发布方的配置权限确定是否发布所述配置信息。在进一步的实施方式中,配置发布方的操作人员通过域账号登录配置中心,配置中心通过解析ldap协议,获取登录成功后的账号信息,然后为该登录账号进行权限配置,并将账号信息、应用、权限类型等数据保存至权限数据表中;当配置发布方发布配置信息时,配置中心根据权限数据表校验该配置发布方的域账号是否要其待发布的配置信息对应的操作权限;当该域账号无相应的操作权限时,拒绝发布其待发布的配置信息;当该域账号有相应的操作权限时,发布其待发布的配置信息并将发布的配置信息存储至历史版本库中。其中,权限配置可以为每个接入配置中心的应用系统分配相互独立的权限,也可以为应用系统对应的不同配置文件可分配不同的权限。
60.通过细颗粒度的权限验证确定是否发布配置信息,可以减少信息泄露、配置项误操作等事故的产生。
61.在可选的实施方式中,通过sql语句对配置发布方的权限进行判断。
62.在进一步的实施方式中,管理应用配置的方法还包括:当配置信息包含敏感信息时,对所述配置信息进行加密后发布。在可选的实施方式中,针对敏感信息,配置中心通过jdk扩展加密模块进行加密和解密,该加密模块使用jce技术对敏感信息进行加密保存,并且对接入配置中心的应用系统自动解密所述加密后的配置信息。由此,非接入配置中心的应用系统无法解密,从而获取不到真正的配置信息,只有在应用系统接入配置中心后,才能自动化解密,从而提升了应用系统的安全性。
63.在更进一步的实施方式中,配置中心的openapi接口接入devops系统,通过devops系统调用配置中心的openapi接口,devops系统可以自动化发布配置信息、读取配置信息、加密配置信息、解密配置信息等,并且,devops系统针对拉取的配置信息也可以进行自动解密。同时,基于devops系统与openapi接口的连接,可以通过现有域账号体系进行配置登录和权限管理。
64.当应用配置的变更只支持新版本的应用系统,不支持旧版本的应用系统,并且该应用配置的应用系统在生产环境中存在多个节点的部署时,devops系统自动暂停所述应用
配置的配置信息的实时生效机制,并使该应用系统中的所有节点更新至新版本后再恢复所述应用配置的配置信息的实时生效机制,然后使该应用系统中的所有节点拉取最新的应用配置进行配置发布和变更。
65.基于openapi服务与devops系统的兼容性,实现了开放性的应用配置,并能够对敏感信息自动化加解密,提升了应用系统的安全性。同时,还可以支持多节点配置不兼容升级,降低了运维的复杂度和运营的业务连续性。
66.图3是根据本发明一种实施方式的管理应用配置的系统的架构图。
67.如图3所示,所述管理应用配置的系统的配置中心服务端300包括:
68.信息获取模块310,用于获取配置信息。在一些实施方式中,获取配置信息包括将配置发布方的配置信息插入到自定义的注册表中,以便客户端从注册表中获取所需项目的配置信息。
69.变更判断模块320,用于判断所述配置信息是否发生变更。
70.日志生成模块330,用于当所述配置信息发生变更时,基于所述配置信息的变更类型、变更时间和变更对象生成变更日志。其中,配置信息的变更类型包括但不限于下述一种或多种:新增、修改、删除、发布操作。
71.在其他实施方式中,根据配置信息确定操作类型、操作时间和操作账号,并根据上述信息生成事件操作日志,并将所述事件操作日志保存在关系型数据库中,同时,在每次发布操作时,将当前发布的配置信息副本保存至历史版本库中。
72.信息恢复模块340,用于在审计过程中确定应用配置异常时,根据所述变更日志定位异常信息,并根据所述变更日志对应的数据表恢复历史版本中期望的配置信息。具体而言,当需要进行安全审计时,根据变更日志定位问题,快速简便地定位到配置变更的发生时间及操作账号,如需恢复配置信息,则通过历史版本库中的数据表进行一键数据恢复。在可选的实施方式中,通过历史版本库将应用配置回复至最接近当前配置的未出现异常的配置版本。
73.通过对发生变更的配置信息生成变更日志,从而在审计过程发现应用配置异常时,根据所述变更日志定位异常信息,以及恢复至期望的配置信息,能够保证应用配置的安全性,实现了对应用配置的安全审计和数据恢复。
74.动态更新模块350,用于当所述配置信息发生变更时,通过http长轮询向客户端发送通知,使所述客户端获取该客户端对应的配置信息。当配置信息发生变更时,配置中心客户端(服务/系统)根据http长轮询发送的通知,立即自动拉取配置中心服务端根据客户端提供的appid返回的该appid对应的所有配置信息,可以实现应用配置实时更新,避免重启服务或其他组件辅助的复杂流程,从而降低生产运营成本,提高操作安全性。
75.在其他的实施方式中,客户端通过fallback的机制,定时从配置中心服务端的config service服务中定时拉取一次配置信息,例如5分钟拉取一次配置信息。由此,当http长轮询因为故障失效,使得配置中心客户端获取不到最新的配置信息时,可以根据加入的fallback机制,5分钟主动拉取一次配置信息,起到了容错的效果,保证客户端多一种获取配置信息的保障方式,确保配置信息更新后在客户端生效。
76.权限控制模块360,用于根据配置发布方的配置权限确定是否发布所述配置信息。在进一步的实施方式中,配置发布方的操作人员通过域账号登录配置中心服务端,配置中
心服务端通过解析ldap协议,获取登录成功后的账号信息,然后为该登录账号进行权限配置,并将账号信息、应用、权限类型等数据保存至权限数据表中;当配置发布方发布配置信息时,配置中心服务端根据权限数据表校验该配置发布方的域账号是否要其待发布的配置信息对应的操作权限;当该域账号无相应的操作权限时,拒绝发布其待发布的配置信息;当该域账号有相应的操作权限时,发布其待发布的配置信息并将发布的配置信息存储至历史版本库中。其中,权限配置可以为每个接入配置中心服务端的应用系统分配相互独立的权限,也可以为应用系统对应的不同配置文件可分配不同的权限。
77.通过细颗粒度的权限验证确定是否发布配置信息,可以减少信息泄露、配置项误操作等事故的产生。
78.在可选的实施方式中,通过sql语句对配置发布方的权限进行判断。
79.加密模块370,用于当所述配置信息包含敏感信息时,对所述配置信息进行加密后发布。在可选的实施方式中,加密模块370为jdk扩展加密模块,针对敏感信息,配置中心服务端通过jdk扩展加密模块进行加密和解密,该加密模块使用jce技术对敏感信息进行加密保存,并且对接入配置中心服务端的应用系统(客户端)自动解密所述加密后的配置信息。由此,非接入配置中心服务端的应用系统(客户端)无法解密,从而获取不到真正的配置信息,只有在应用系统接入配置中心服务端后,才能自动化解密,从而提升了应用系统的安全性。
80.服务接入模块380,用于与devops系统连接,使所述devops系统执行包括下述操作中的至少一种:发布配置信息、加密配置信息、解密配置信息、读取配置信息。在一些实施方式中,服务接入模块包括openapi接口,基于openapi服务与devops系统的兼容性,实现了开放性的应用配置,并能够对敏感信息自动化加解密,提升了应用系统的安全性。
81.采用本发明实施方式的上述管理应用配置的系统,可以实现快捷且安全的自动化应用配置和应用配置实时生效,还可以实现细粒度的权限管理及相应的安全审计服务,以及配置异常后的异常定位和数据恢复,不仅提高了运营效率,还降低了生产运营成本。
82.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
83.对应的,本发明实施方式还提供一种计算机可读存储介质,其上存储有计算机可读指令或程序,所述计算机可读指令或程序被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述管理应用配置的方法所包含的步骤,在此不再赘述。其中,所述存储介质可以包括:例如,光盘、硬盘、软盘、闪存、磁带等。
84.另外,本发明实施方式还提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机可读指令或程序,其中,所述一条或多条计算机可读指令或程序被所述处理器执行时能够实现如上任意一种实施方式所述的管理应用配置的方法。所述计算机设备可以是,例如,服务器、台式计算机、笔记本计算机、平板电脑等。
85.最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。因此本发明的保护范围应以权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1