一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集中管理和容易使用应用程序配置的系统、方法及介质与流程

2023-02-02 02:51:09 来源:中国专利 TAG:


1.本发明涉及通信技术领域,具体地,涉及一种集中管理和容易使用应用程序配置的系统、方法及介质。


背景技术:

2.在微服务大行其道的架构背景下,服务拆分之后部署在不同的机器(也可能是虚拟机或者云pod)上,修改应用程序的配置涉及到多个实例和多个集群分组时,传统的修改配置文件的方式需要占用大量的运维时间,显得力不从心,而且配置没法记录变更历史和回滚操作,因此提供集中管理和容易使用应用程序配置的系统十分有必要。
3.集中管控的配置服务主要解决分布式应用程序部署场景下,配置中心服务需要管理系统的所有配置数据。提供非常友好的配置动态修改发布、发布历史查询、回滚等服务,相比传统的登录到某台机器上,修改配置文件然后重启服务的方式,极大降低运维成本。易用的界面包括可以批处理执行的命令行,方便系统管理员对系统的负载、流量、日志和系统功能等做管控运维。
4.现在互联网上也有类似功能的配置中心,不过存在以下缺陷:1、没有集成进中台,和其他paas服务相互割裂,用户使用服务的时候需要在各个中台服务之间来回切换。2、没有预案功能,无法提前做好各种常见场景的配置项,需要临时配置,需要对系统配置要求较高,容易出现配置问题。3、没有分级灰度功能,当应用程序实例很多的时候,没法分批方式做配置发布,对发布要求太高。4、没有命令行功能,某些特定场景的操作,比如自动化脚本和批量配置无法完成。
5.专利文献cn104301412a(申请号:cn201410548806.4)公开了一种大数据云服务集中管控系统,由多个安装在本地信息处理设备上的终端及与终端连接的云端管理中心组成,所述云端管理中心包括数据中心及集中管控模块,所述集中管控模块具有管控数学模型。但该发明没有集成进中台,和其他paas服务相互割裂,用户使用服务的时候需要在各个中台服务之间来回切换。


技术实现要素:

6.针对现有技术中的缺陷,本发明的目的是提供一种集中管理和容易使用应用程序配置的系统、方法及介质。
7.根据本发明提供的一种集中管理和容易使用应用程序配置的系统,包括:
8.接入模块:为系统的操作入口,用户登录web页面进行集群分组和配置的管控操作,将请求功能模块指令、集群信息、配置参数、用户信息传输到功能模块;
9.功能模块:包括集群分组管理、命名空间管理、文件代理功能、自身监控、集群信息、灰度发布、分级灰度、预案管理、命令行、发布历史、版本控制、元数据管理和审计;功能模块执行完后,将得到的变更的配置信息携带进入基础资源模块;
10.基础资源模块:属于系统架构依赖的硬件资源和在硬件资源基础上的服务,资源
更新后触发监听机制,服务客户端进行下一步的操作;
11.服务客户端模块:应用程序上集成配置服务客户端,拉取基础资源模块的配置信息,更新自身的配置。
12.优选地,在所述接入模块中:
13.如果服务器上没有图形界面,使用命令行登录操作,其中命令行有区分交互式和非交互式两种,交互式是登录之后一问一答的方式,能够调试和修改各种配置,非交互式方便编写批量修改配置的脚本,能够定时执行或者自动化运维执行;
14.api管理接口把操作配置的能力通过接口方式提供,其他业务系统做应用集成和二次开发,应用程序接口是业务系统对接的接口,服务端配置的数据通过该接口实时同步到应用程序,该接口对配置数据是只读的。
15.优选地,在所述功能模块中:
16.集群分组管理:将应用程序划分为几个相对独立的集群分组,不同集群分组的应用程序采用不同的配置数据,实现功能包括ab测试、用户分流和故障隔离;
17.命名空间管理:提供命名空间创建、查询和删除功能,对配置做增删改查操作并发布;
18.文件代理功能:适用于不修改源应用程序,直接在应用程序所在的环境中部署一个代理程序,通过代理程序,实现修改应用程序的配置文件,并通过重载或者重启的方式让应用程序的配置生效。
19.文件代理功能具体包括:服务端文件管理服务,应用程序端配置代理程序;
20.配置代理程序部署好之后,系统管理员在文件管理的服务端上传配置文件或者直接点开配置文件进行编辑;编辑完成之后点击保存按钮,服务端保存编辑的内容;用户检查内容,没有问题之后选择发布;服务端通知代理程序配置的修改;代理程序收到通知之后获取最新的配置数据文件;代理程序将本地的配置文件备份,并添加最新的服务端获取的配置文件;通知应用程序重新加载配置或者重启来读取最新的配置文件。
21.优选地,自身监控:通过自身监控机制,获取各个节点的运行情况,及时发现故障问题从而排除隐患;
22.集群信息:展示系统本身的各个节点,健康状态之外还包括使用配置服务的各个应用程序信息,获取当前使用配置服务的应用程序信息,掌握改配置模块的使用的情况;
23.灰度发布功能:用户能够修改配置试错,通过设置灰度范围再做灰度发布,如果发现有异常及时放弃灰度,将试错成本控制在最小;
24.分级灰度发布:将原来一次性发布的配置数据分成几个阶段来发布,每发布一个阶段完成,都停下来观察和测试应用是否正常,使得系统管理员和运维人员及时发现问题,适用场景包括应用程序发布上线和新配置发布修改。
25.优选地,预案管理功能:把某些特定场景需要修改的配置事先设置,遇到对应的场景时直接发布配置,系统管理员和运维人员能够针对可能出现的场景做事先的演练和配置修改准备;
26.命令行:提供了交互式和非交互式两种命令行执行方式,在字符界面的命令行终端使用配置中心服务和通过编写自动化脚本使用配置中心服务;
27.优选地,发布历史:详细记录了发布信息包括灰度发布的各个版本号、配置内容、
发布时间和发布人,浏览发布历史能够查看配置之前的修改记录,对配置做回溯;
28.版本控制:管控版本的发布和回滚操作,以及两个版本之间的配置数据差异;
29.元数据管理:记录配置服务本身的配置数据,包括配置项内容长度的限制、命名空间的区分维度、集群分组信息;
30.审计:通过审计日志方式记录信息包括配置的修改时间、修改人,进行权限管控和对操作的审计。
31.优选地,在所述基础资源模块中:
32.属于系统架构依赖的硬件资源和在硬件资源基础上的服务,配置数据存储,使用mysql数据库,通过主备方式保证数据可用,使用交互协议让应用程序建立连接并且传输数据,结合通知机制使得配置变更之后有效通知,通过微服务组件eureka实现多个实例相互注册成一个配置服务集群对外提供服务,避免单点故障导致的配置不可用。
33.优选地,在所述服务客户端模块中:
34.配置服务客户端程序衔接spring框架、集成到jup开发工具,添加配置服务地址和访问token实现从配置服务获取配置数据,对于非spring框架的应用程序,客户端调用相应获取配置的接口,接口有缓存机制,当服务端添加或者修改配置时,配置服务客户端能立马感知,并直接修改内存配置,达到动态调整应用程序的目的。
35.根据本发明提供的一种集中管理和容易使用应用程序配置的方法,采用所述的集中管理和容易使用应用程序配置系统,执行包括:
36.步骤s1:业务方人员进入接入层模块,进行身份验证,得到身份以及角色认证后进入功能模块层;
37.步骤s2:得到基本的功能入口以及能力进行相应的功能执行,执行后得到数据流,数据流进入基础层;
38.步骤s3:业务方的客户端程序会得到变更的配置的通知,对应直接修改内存的配置,实现动态发布。
39.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述集中管理和容易使用应用程序配置的方法的步骤。
40.与现有技术相比,本发明具有如下的有益效果:
41.1、本发明有集成进中台,用户使用服务的时候无需在各个中台服务之间来回切换;
42.2、本发明有预案功能,能够提前做好各种常见场景的配置项,无需临时配置,对系统配置要求低,不容易出现配置问题;
43.3、本发明有分级灰度功能,当应用程序实例很多的时候,能够分批方式做配置发布,对发布要求低;
44.4、本发明有命令行功能,某些特定场景的操作,比如自动化脚本和批量配置能够完成。
附图说明
45.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
46.图1为本发明配置服务技术架构中模块组成示意图;
47.图2为本发明配置下发过程中的交互图。
具体实施方式
48.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
49.实施例1:
50.本发明提供一种集中管理和容易使用应用程序配置的系统、方法及介质,包括:集群分组管理、命名空间管理、灰度发布功能、预案管理、分级灰度发布、命令行等模块。其中,集群分组管理模块:可以将应用程序划分为几个相对独立的集群分组,不同集群分组的应用程序采用不同的配置数据,用于实现a/b测试、用户分流和故障隔离等功能;命名空间管理模块:提供命名空间创建、查询和删除功能,可以方便对配置做增删改查操作并发布,是系统管理员和配置员操作操作最频繁的模块。灰度发布功能模块:给予用户修改配置试错能力,通过设置灰度范围,灰度发布,如果发现有任何异常可以及时放弃灰度,将试错成本控制在最小范围;预案管理模块:方便系统管理员和运维人员针对可能出现的场景做事先的演练和配置修改准备,方便在遇到相应的场景时能快速有效应对,提高应用程序的健壮性;分级灰度发布模块:将原来一次性发布的配置数据分成几个阶段来发布,每发布一个阶段完成,都可以停下来观察和测试应用是否正常,方便系统管理员和运维人员及时发现问题,适用于应用程序发布上线和新配置发布修改等场景;命令行模块:提供了交互式和非交互式两种命令行执行方式,方便在命令行终端使用配置中心服务和编写自动化脚本使用配置中心服务。
51.一种集中管理和容易使用应用程序配置的方法,包括:
52.业务方人员进入接入层模块;进行身份验证,得到身份以及角色认证后进入功能模块层;在该层得到基本的功能入口以及能力进行相应的功能执行,执行后得到数据流,数据流会进入基础层进行持久化;业务方的客户端程序会得到变更的配置的通知,之后会对应直接修改内存的配置,实现动态发布。
53.一种集中管理和容易使用应用程序配置的系统,如图1-图2所示,包括:
54.集群分组管理、命名空间管理、灰度发布功能、文件代理功能、预案管理功能、分级灰度发布、命令行等模块。
55.其中,集群分组管理模块:用于将应用程序划分为几个相对独立的集群分组,不同集群分组的应用程序采用不同的配置数据,方便实现a/b测试、用户分流和故障隔离等功能;
56.命名空间管理:提供命名空间创建、查询和删除功能,可以方便对配置做增删改查操作并发布,是系统管理员和配置员操作操作最频繁的模块;
57.灰度发布功能:给予用户修改配置试错能力,通过设置灰度范围再做灰度发布,做到小范围内的应用程序修改配置,如果发现有任何异常可以及时放弃灰度,将试错成本控制在最小范围,及时为用户进行应急以及止血;
58.文件代理功能:适用于不修改源应用程序,直接在应用程序所在的环境中部署一个代理程序。通过代理程序,实现修改应用程序的配置文件,并通过重载或者重启的方式让应用程序的配置生效;
59.文件代理功能模块具体包括:服务端文件管理服务,应用程序端配置代理程序;
60.配置代理程序部署好之后,系统管理员可以在文件管理的服务端上传配置文件或者直接点开配置文件进行编辑;
61.编辑完成之后点击保存按钮,服务端会保存编辑的内容;
62.用户可以检查内容,没有问题之后可以选择发布;
63.服务端会通知代理程序配置的修改;
64.代理程序收到通知之后会获取最新的配置数据文件;
65.代理程序将本地的配置文件备份,并添加最新的服务端获取的配置文件;
66.通知应用程序重新加载配置或者重启来读取最新的配置文件。
67.预案管理功能:把某些特定场景需要修改的配置事先设置好,等到遇到对应的场景时,可以直接发布配置,方便系统管理员和运维人员针对可能出现的场景做事先的演练和配置修改准备,方便在遇到相应的场景时能快速有效应对,提高应用程序的健壮性;
68.分级灰度发布:将原来一次性发布的配置数据分成几个阶段来发布,每发布一个阶段完成,都可以停下来观察和测试应用是否正常,方便系统管理员和运维人员及时发现问题,适用于应用程序发布上线和新配置发布修改等场景;
69.命令行:提供了交互式和非交互式两种命令行执行方式,方便在字符界面的命令行终端使用配置中心服务和通过编写自动化脚本使用配置中心服务;
70.配置服务客户端:上面说的是配置服务操作的服务端程序,最后配置数据要落实到应用程序上,需要在应用程序上集成配置服务客户端。配置服务客户端程序已经无缝衔接主流的spring框架、集成到行内jup开发工具,只要添加配置服务地址和访问token即可实现从配置服务获取配置数据,对应用程序开发人员完全透明。对于非spring框架的应用程序,客户端也能无缝衔接,只要调用相应获取配置的接口即可,接口有缓存机制,可以放心调用。当服务端添加或者修改配置时,配置服务客户端能立马感知,并直接修改内存配置,达到动态调整应用程序(响应时长在1秒内)的目的。
71.一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述集中管理和容易使用应用程序配置的方法的步骤。
72.实施例2:
73.实施例2为实施例1的优选例,以更为具体地对本发明进行说明。
74.本发明提供一种集中管理和容易使用应用程序配置的系统、方法及介质,包括:集群分组管理、命名空间管理、灰度发布功能、预案管理、分级灰度发布、命令行等功能模块。模块之间是松耦合设计,可以方便修改和扩展。参照图1展示了系统各个模块和模块的分层,各层和模块如下:
75.1.接入层:是系统的操作入口,用户可以直接登录web页面进行集群分组和配置的管控操作。如果是服务器上没有图形界面,可以使用命令行登录操作,其中命令行有区分交互式和非交互式两种。交互式是登录之后一问一答的方式,方便调试和修改各种配置。非交互式方便编写批量修改配置的脚本,方便定时执行或者自动化运维执行。api管理接口把操
作配置的能力通过接口方式提供,方便其他业务系统做应用集成和二次开发,目前行内微服务网关治理以及监控和告警服务的参数配置和动态调配都是使用该方式完成。最后的应用程序接口是业务系统对接的接口,服务端配置的数据都是通过该接口才能实时同步到应用程序,该接口对配置数据是只读的。
76.2.中间的是功能模块层:系统的绝大部分功能都在这一层中,其中
77.(1)集群分组管理模块:用于将应用程序划分为几个相对独立的集群分组,不同集群分组的应用程序采用不同的配置数据隔离,应用程序只能获取一个具体分组中的配置数据,方便实现a/b测试、用户分流和故障隔离等功能;
78.(2)命名空间管理:提供命名空间创建、查询和删除功能,以类似管理单独的一个个文件的方式,可以方便对配置做增删改查操作并发布,是系统管理员和配置员操作操作最频繁的模块;
79.(3)文件代理功能:适用于不修改源应用程序,直接在应用程序所在的环境中部署一个代理程序。通过代理程序,实现修改应用程序的配置文件,并通过重载或者重启的方式让应用程序的配置生效。该功能中代理程序和配置服务交互可以查看图2中右边部分,用户通过web页面或者命令行操作配置服务端之后,服务端会通知代理程序。代理程序从服务端获取数据文件在本地,然后通知应用程序2去读取最新的配置文件数据;
80.(4)自身监控模块:是系统自我的一种健康检查机制,当系统自身被分布式部署之后,往往是部署3个节点以上的服务节点。而且服务本身的高可用性,当某个节点发生故障,整体的服务不会受到影响。所以存在多个节点不好管理的问题。通过自身监控机制,可以方便获取各个节点的运行情况,可以及时发现故障问题从而排除隐患;
81.(5)集群信息模块:用来展示系统本身的各个节点,健康状态之外还包括使用配置服务的各个应用程序信息,通过该模块可以很方便获取当前使用配置服务的应用程序信息,方便掌握改配置模块的使用的情况;
82.(6)灰度发布功能:给予用户修改配置试错能力,通过设置灰度范围再做灰度发布,做到小范围内的应用程序修改配置,如果发现有任何异常可以及时放弃灰度,将试错成本控制在最小范围;
83.(7)分级灰度功能:该模块是功能6的升级本部,方便对发布过程人为划分几个阶段,每发布一个阶段完成,都可以停下来观察和测试应用是否正常,方便系统管理员和运维人员及时发现问题,通过阶段的发布配置实现分级灰度。特别适合用在系统新功能上线和老功能替代的顺滑切换过程;
84.(8)预案管理功能:方便系统管理员和运维人员针对可能出现的场景做事先的演练和配置修改准备,方便在遇到相应的场景时能快速有效应对,提高应用程序的健壮性;
85.(9)命令行模块:提供了交互式和非交互式两种命令行执行方式,方便在命令行终端使用配置中心服务和编写自动化脚本使用配置中心服务;
86.(10)发布历史模块:详细记录了发布包括灰度发布的各个版本号、配置内容、发布时间和发布人等信息,浏览发布历史可以查看配置之前的修改记录,方便对配置做回溯;
87.(11)版本控制模块:主要管控版本的发布和回滚操作,以及两个版本之间的配置数据差异;
88.(12)元数据管理模块:主要记录配置服务本身的配置数据,比如配置项内容长度
的限制、命名空间的区分维度、集群分组信息等;
89.(13)审计模块:通过审计日志方式记录配置的修改时间、修改人等信息,方便权限管控和对操作的审计。
90.3.基础层:属于系统架构依赖的硬件资源和在硬件资源基础上的服务。主要体现为配置数据存储,目前用的是开源的mysql数据库,通过主备方式保证数据高可用。交互协议,应对应用程序建立连接并且传输数据,结合通知机制,使得配置变更之后有效通知,从配置发布到应用程序收到整个过程在1秒之内。高可用机制是通过微服务组件eureka实现多个实例相互注册成一个配置服务集群对外提供服务,从而避免单点故障导致的配置不可用。
91.除上述配置服务分层之外,还有配置服务客户端:指的是应用程序上集成配置服务客户端。配置服务客户端和配置服务交互可以查看图2中左边部分,他是和应用程序在同一个操作系统进程中。和图2中右边部分的文件代理服务相比,和应用程序之间的交互配置省去了外部文件环节,直接在内存中修改配置项。配置服务客户端程序已经无缝衔接主流的spring框架、集成到行内jup开发工具,只要添加配置服务地址和访问token即可实现从配置服务获取配置数据,对应用程序开发人员完全透明。对于非spring框架的应用程序,客户端也能无缝衔接,只要调用相应获取配置的接口即可,接口有缓存机制,可以放心调用。当服务端添加或者修改配置时,配置服务客户端能立马感知,并直接修改内存配置,达到动态调整应用程序(响应时长在1秒内)的目的。
92.接入模块的请求功能模块指令、集群信息、配置参数、用户信息会传输到功能模块;
93.功能模块执行完后,会将得到的变更的配置信息携带进入基础资源模块;
94.基础资源模块上的资源更新后会触发监听机制,服务客户端会进行下一步的操作;
95.服务客户端模块会拉取基础资源模块的配置信息,以此来更新自身的配置。
96.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
97.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献