云上微服务架构应用部署和运维管理方法及系统与流程

文档序号:32127727发布日期:2022-11-09 08:43阅读:146来源:国知局
云上微服务架构应用部署和运维管理方法及系统与流程

1.本发明涉及云服务应用管理技术领域,具体地说是云上微服务架构应用部署和运维管理方法及系统。


背景技术:

2.云原生的概念,由pivotal公司的技术经理首次提,满足以下概念:符合12模式;微服务架构;自助服务敏捷基础设施;面向api接口通信;抗脆弱性。经过不断的发展,云原生架构的应用程序应该如下:采用开源堆栈(k8s+docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、devops支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。云的四要素可以归纳为:微服务,服务解耦,内聚更强,变更更易;容器化,docker是应用最为广泛的容器引擎,k8s是容器编排系统,用于容器管理,容器间的负载均衡;devops,开发和运维合体,为云原生提供持续交付能力;持续交付,不误时开发,不停机更新,要求开发版本和稳定版本并存。
3.随着虚拟化技术的成熟和分布式框架的普及,应用上云已经是不可逆转的趋势,云计算的三层划分,即基础设施即服务(iaas)、平台即服务(paas)、软件即服务(saas)为云原生提供了技术基础和方向指引,真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变。
4.如何实现云上应用的部署和运维管理,提高创建应用服务的灵活性和可维护性,是需要解决的技术问题。


技术实现要素:

5.本发明的技术任务是针对以上不足,提供云上微服务架构应用部署和运维管理方法及系统,来解决如何实现云上应用的部署和运维管理,提高创建应用服务的灵活性和可维护性的技术问题。
6.第一方面,本发明的一种云上微服务架构应用部署和运维管理方法,其特征在于包括如下步骤:
7.创建应用,设置应用名称、应用标签和应用描述;
8.通过开源堆栈k8s+docker上传程序包,构建镜像并设置程序包版本作为镜像标签;
9.通过开源堆栈k8s+docker进行容器化,在应用下创建应用实例;
10.对应用实例进行基础配置和可选配置,通过基础配置设置应用实例的名称、k8s中pod数量、资源配置和环境变量,通过可选配置选择性的将应用服务接入应用性能追踪服务、云监控服务和云日志服务;
11.将用户创建的应用服务注册至服务注册中心,注册中心的地址在创建应用实例时的环境变量中设置,通过服务注册中心对应用服务以及应用服务实例进行可视化管理。
12.作为优选,所述程序包包括dockerfile文件,上传程序包后,创建容器镜像目录、
编译dockerfile文件、并指定镜像名称,生成可用镜像。
13.作为优选,对于所述程序包和所述应用均通过多租户的方式进行管理,不同的租户使用不同程序包仓库进行程序包管理,不同的租户使用同一个镜像仓库的不同镜像项目进行镜像管理。
14.作为优选,通过如下接入方法将应用服务接入应用性能追踪服务:为应用deployment添加init-container、将性能追踪服务agent文件以挂载卷的方式共享给应用的container;
15.所述接入方法包括如下步骤:
16.构建性能追踪服务镜像;
17.initcontainers通过mse-agent卷挂载mse-agent-sidecar中的/mse/agent;
18.将上述构建的性能追踪服务镜像中的agent目录复制到/mse/agent目录,
19.对应的应用服务启动时挂载到mse-agent卷;
20.并将对应的应用服务挂载到容器的/usr/nse/agent目录;
21.通过如下接入方法将应用服务接入云监控服务:
22.将采集器代码进行编译,并配合配置文件config.yaml,将上述两个文件打包为docker镜像;
23.在容器中启动main即可采集数据并上报;
24.将采集器agent的镜像与应用实例运行在同一个pod不同的container中,应用的信息在部署时设置为容器采集器agent的环境变量;
25.采集器主程序main读取应用的接口获取监控数据,并对获取的监控数据进行展示;
26.对获取的监控数据进行展示,展示的信息包括:
27.服务的累计信息和时序曲线,所述服务的累计信息包括请求量、错误率、平均耗时,所述服务的时序曲线包括请求量、错误率、响应耗时以及http状态码;
28.服务实例的累计信息和时序曲线,所述服务实例的累计信息包括请求量、错误率和平均耗时,所述服务实例的时序曲线包括请求量、错误率、响应耗时和http状态码;
29.服务实例接口的累计信息和时序曲线,所述服务实例接口的累计信息包括请求量、错误率和平均耗时,所述服务实例接口的时序曲线包括请求量、错误率、响应耗时和http状态码;
30.通过如下接入方法将应用服务接入云日志服务:
31.获取到云日志镜像后,修改chart包增加云日志配置;
32.进行云日志配置挂载,将云日志配置挂载至和主目录相同的目录;
33.调用k8s接口增加云日志镜像配置,创建deployment和configmap。
34.作为优选,通过服务注册中心对应用服务以及应用服务实例进行可视化管理,包括对服务的上下线、服务的元数据处理、服务调用的权重比例和查看服务实例详情进行管理服务。
35.第二方面,本发明的一种云上微服务架构应用部署和运维管理系统,用于通过如第一方面任一项所述的一种云上微服务架构应用部署和运维管理方法对云上架构应用进行部署和运维管理,所述系统包括:
36.程序包管理模块,所述程序包管理模块用于创建应用,设置应用名称、应用标签和应用描述;并用于通过开源堆栈k8s+docker上传程序包,构建镜像并设置程序包版本作为镜像标签;
37.服务器管理模块,所述服务器管理模块用于通过开源堆栈k8s+docker进行容器化,在应用下创建应用实例;
38.配置模块,所述配置模块用于对应用实例进行基础配置和可选配置,通过基础配置设置应用实例的名称、k8s中pod数量、资源配置和环境变量,通过可选配置选择性的将应用服务接入应用性能追踪服务、云监控服务和云日志服务;
39.部署模块,所述部署模块用于将用户创建的应用服务注册至服务注册中心,注册中心的地址在创建应用实例时的环境变量中设置,通过服务注册中心对应用服务以及应用服务实例进行可视化管理。
40.作为优选,所述程序包包括dockerfile文件,所述程序包管理模块用于上传程序包后,创建容器镜像目录、编译dockerfile文件、并指定镜像名称,生成可用镜像。
41.作为优选,所述程序包管理模块用于通过多租户的方式对所述程序包和所述应用进行管理,不同的租户使用不同程序包仓库进行程序包管理,不同的租户使用同一个镜像仓库的不同镜像项目进行镜像管理。
42.作为优选,所述配置模块用于通过如下接入方法将应用服务接入应用性能追踪服务:为应用deployment添加init-container、将性能追踪服务agent文件以挂载卷的方式共享给应用的container;
43.所述接入方法包括如下步骤:
44.构建性能追踪服务镜像;
45.initcontainers通过mse-agent卷挂载mse-agent-sidecar中的/mse/agent;
46.将上述构建的性能追踪服务镜像中的agent目录复制到/mse/agent目录,
47.对应的应用服务启动时挂载到mse-agent卷;
48.并将对应的应用服务挂载到容器的/usr/nse/agent目录;
49.所述配置模块用于通过如下接入方法将应用服务接入云监控服务:
50.将采集器代码进行编译,并配合配置文件config.yaml,将上述两个文件打包为docker镜像;
51.在容器中启动main即可采集数据并上报;
52.将采集器agent的镜像与应用实例运行在同一个pod不同的container中,应用的信息在部署时设置为容器采集器agent的环境变量;
53.采集器主程序main读取应用的接口获取监控数据,并对获取的监控数据进行展示;
54.对获取的监控数据进行展示,展示的信息包括:
55.服务的累计信息和时序曲线,所述服务的累计信息包括请求量、错误率、平均耗时,所述服务的时序曲线包括请求量、错误率、响应耗时以及http状态码;
56.服务实例的累计信息和时序曲线,所述服务实例的累计信息包括请求量、错误率和平均耗时,所述服务实例的时序曲线包括请求量、错误率、响应耗时和http状态码;
57.服务实例接口的累计信息和时序曲线,所述服务实例接口的累计信息包括请求
量、错误率和平均耗时,所述服务实例接口的时序曲线包括请求量、错误率、响应耗时和http状态码;
58.所述配置模块用于通过如下接入方法将应用服务接入云日志服务:
59.获取到云日志镜像后,修改chart包增加云日志配置;
60.进行云日志配置挂载,将云日志配置挂载至和主目录相同的目录;
61.调用k8s接口增加云日志镜像配置,创建deployment和configmap。
62.作为优选,所述部署模块用于通过服务注册中心对应用服务以及应用服务实例进行可视化管理,包括对服务的上下线、服务的元数据处理、服务调用的权重比例和查看服务实例详情进行管理服务。
63.本发明的云上微服务架构应用部署和运维管理方法及系统具有以下优点:
64.1、通过开源堆栈k8s+docker可自行上传程序包,基于上传的程序包可快速构建基础镜像,便于管理和维护;
65.2、以云原生为基础,采用开源堆栈(k8s+docker)进行容器化,基于微服务架构提高灵活性和可维护性,提高微服务应用实例的创建和管理效率;
66.3、微服务应用实例可以接入应用性能追踪服务、云监控服务和云日志,为用户提供更多元化和更完善的服务管理手段,包括查看服务trace信息和拓扑信息、服务的请求量和响应状态、清晰的微服务应用实例日志等功能;
67.4、通过用户注册中心对应用服务以及应用服务实例进行管理,包含服务的上下线,服务实例详情,服务调用权重设置,服务元数据设置等,提高微服务应用实例的管理效率。
附图说明
68.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
69.下面结合附图对本发明进一步说明。
70.图1为实施例1一种云上微服务架构应用部署和运维管理方法的流程框图。
具体实施方式
71.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
72.本发明实施例提供云上微服务架构应用部署和运维管理方法及系统,用于解决如何实现云上应用的部署和运维管理,提高创建应用服务的灵活性和可维护性的技术问题。
73.实施例1:
74.本发明一种云上微服务架构应用部署和运维管理方法,包括如下步骤:
75.s100、创建应用,设置应用名称、应用标签和应用描述;
76.通过开源堆栈k8s+docker上传程序包,构建镜像并设置程序包版本作为镜像标
签;
77.s200、通过开源堆栈k8s+docker进行容器化,在应用下创建应用实例;
78.s300、对应用实例进行基础配置和可选配置,通过基础配置设置应用实例的名称、k8s中pod数量、资源配置和环境变量,通过可选配置选择性的将应用服务接入应用性能追踪服务、云监控服务和云日志服务;
79.s400、将用户创建的应用服务注册至服务注册中心,注册中心的地址在创建应用实例时的环境变量中设置,通过服务注册中心对应用服务以及应用服务实例进行可视化管理。
80.本实施例步骤s100创建应用,其中包含设置应用名称、设置应用标签和设置应用描述,其中应用标签用于多应用时方便管理应用。创建应用完成后,可针对具体的应用进行上传程序包(构建镜像)操作。
81.将本地的程序包进行上传,其中包含dockerfile文件,创建容器镜像目录、编译dockerfile文件、指定镜像名称,生成可用镜像并设置jar包版本为镜像标签,方便镜像管理,最后输出镜像信息提供给创建应用实例时使用。应用管理下可针对应用进行创建应用实例、查看应用程序包、查看镜像等。应用管理和程序包的管理采用多租户的方式,对于程序包,不同的租户使用不同的程序包仓库进行程序包管理,对于镜像,不同的租户使用同一镜像仓库的不同镜像项目进行镜像的管理。
82.应用、镜像上传和程序包构建步骤完成后,执行步骤s200创建应用实例,创建应用实例时,采用开源堆栈(k8s+docker)进行容器化,依次选择存在可使用的k8s集群,选择k8s集群命名空间,选择应用,并选择应用下可用的镜像,设置应用实例名称,实现在应用下创建应用实例。
83.对于创建的应用实例,执行步骤s300对应用实例进行基础配置和可选配置。
84.基础配置包括如下操作:设置k8s中pod数量、资源配置和环境变量等基础设置。
85.可选配置为选择设置是否开启应用性能追踪服务、云监控服务和云日志服务等功能。
86.应用服务接入应用性能追踪实现思路如下:给应用deployment添加init-container,把性能追踪服agent文件以挂在卷的方式共享给应用的container。基于该思路,实现步骤为:首先构建性能追踪服务镜像,initcontainers通过mse-agent卷挂载mse-agent-sidecar中的/mse/agent,并且将上述构建的性能追踪服务镜像中的agent目录复制到/mse/agent目录,完成后对应的应用服务启动时也挂载了mse-agent卷,并将其挂载到了容器的/usr/nse/agent目录,这样就完成了共享过程。可参考的应用场景为:根据应用的信息通过调用应用性能追踪服务的接口获取数据,数据包括服务的trace信息、一个接口的trace信息、查询一段时间内的trace信息、查询服务的拓扑信息和查询一段时间内的服务拓扑信息等。
87.应用服务接入云监控实现思路如下:首先将采集器代码进行编译,并配合配置文件config.yaml,将上述两个文件打包为docker镜像,在容器中启动main即可采集数据并上报。将采集器agent的镜像与微服务应用创建出的实例运行在同一个pod不同的container中,应用的信息(如namespace等)在部署时设置为容器采集器agent的环境变量。采集器主程序main读取应用(如provider应用)的接口http://127.0.0.1:9091/actuator/
prometheus获取监控数据,同一个pod内不同的container内网络互通,可在采集器agent中用127.0.0.1访问provider的9091端口。最终可以向用户展示的信息包括:
88.(1)服务、累计:请求量、错误率、平均耗时;
89.时序曲线:请求量、错误率、响应耗时、http状态码;
90.(2)服务实例,累计:请求量、错误率、平均耗时;
91.时序曲线:请求量、错误率、响应耗时、http状态码;
92.(3)服务实例的接口,累计:请求量、错误率、平均耗时;
93.时序曲线:请求量、错误率、响应耗时、http状态码。
94.应用服务接入云日志实现思路如下:获取到云日志镜像后,修改chart包增加云日志配置,进行云日志配置挂载,和主目录挂载相同的目录。调用k8s接口增加云日志镜像配置,创建deployment和configmap。本功能主要是解决用户的微服务应用实例日志不方便查看问题。
95.步骤s400将用户创建的应用服务注册至服务注册中心,注册中心的地址在创建应用实例时的环境变量中设置,通过服务注册中心对应用服务以及应用服务实例进行可视化管理,其中功能包括服务的上下线、服务的元数据处理、服务调用的权重比例和查看服务实例详情等功能。
96.本实施例公开的方法设置应用名称、设置应用标签和设置应用描述,采用多租户方式,专门的应用管理模块进行应用粒度的管理。
97.本实施例公开的方法使用开源堆栈(k8s+docker),将本地的程序包进行上传,其中包含dockerfile文件,创建容器镜像目录,编译dockerfile文件,指定镜像名称,生成可用镜像并设置程序包版本为镜像标签,方便镜像管理。
98.本实施例公开的方法对微服务应用实例的设置,包括设置k8s中pod数量、资源配置和环境变量等基础设置,也可以选择设置高级设置,包括是否开启应用性能追踪服务、云监控服务和云日志服务等可拓展的功能。
99.本实施例公开的方法对于微服务应用实例的管理,包含服务的上下线,服务实例详情,服务调用权重设置,服务元数据设置等,提高微服务应用实例的管理效率。
100.实施例2:
101.本发明一种云上微服务架构应用部署和运维管理系统,包括程序包管理模块、服务器管理模块、配置模块和部署模块,该系统可通过实施例1公开的方法对云上架构应用进行部署和运维管理。
102.程序包管理模块用于创建应用,设置应用名称、应用标签和应用描述;并用于通过开源堆栈k8s+docker上传程序包,构建镜像并设置程序包版本作为镜像标签。
103.其中,应用标签用于多应用时方便管理应用。程序包管理模块用于创建应用并针对具体的应用进行上传程序包(构建镜像)操作。具体操作如下:
104.将本地的程序包进行上传,其中包含dockerfile文件,创建容器镜像目录、编译dockerfile文件、指定镜像名称,生成可用镜像并设置jar包版本为镜像标签,方便镜像管理,最后输出镜像信息提供给创建应用实例时使用
105.该程序包管理模块用于针对应用进行如下操作:创建应用实例、查看应用程序包、查看镜像等。该程序管理模块通过多租户的方式对应用和程序包进行管理,对于程序包,不
同的租户使用不同的程序包仓库进行程序包管理,对于镜像,不同的租户使用同一镜像仓库的不同镜像项目进行镜像的管理。
106.服务器管理模块用于通过开源堆栈k8s+docker进行容器化,在应用下创建应用实例。作为具体实施,该服务器管理模块用于通过如下步骤创建应用实例:采用开源堆栈(k8s+docker)进行容器化,依次选择存在可使用的k8s集群,选择k8s集群命名空间,选择应用,并选择应用下可用的镜像,设置应用实例名称,实现在应用下创建应用实例。
107.配置模块用于对应用实例进行基础配置和可选配置,通过基础配置设置应用实例的名称、k8s中pod数量、资源配置和环境变量,通过可选配置选择性的将应用服务接入应用性能追踪服务、云监控服务和云日志服务。
108.基础配置包括如下操作:设置k8s中pod数量、资源配置和环境变量等基础设置。
109.可选配置为选择设置是否开启应用性能追踪服务、云监控服务和云日志服务等功能。
110.应用服务接入应用性能追踪实现思路如下:给应用deployment添加init-container,把性能追踪服agent文件以挂在卷的方式共享给应用的container。基于该思路,实现步骤为:首先构建性能追踪服务镜像,initcontainers通过mse-agent卷挂载mse-agent-sidecar中的/mse/agent,并且将上述构建的性能追踪服务镜像中的agent目录复制到/mse/agent目录,完成后对应的应用服务启动时也挂载了mse-agent卷,并将其挂载到了容器的/usr/nse/agent目录,这样就完成了共享过程。可参考的应用场景为:根据应用的信息通过调用应用性能追踪服务的接口获取数据,数据包括服务的trace信息、一个接口的trace信息、查询一段时间内的trace信息、查询服务的拓扑信息和查询一段时间内的服务拓扑信息等。
111.应用服务接入云监控实现思路如下:首先将采集器代码进行编译,并配合配置文件config.yaml,将上述两个文件打包为docker镜像,在容器中启动main即可采集数据并上报。将采集器agent的镜像与微服务应用创建出的实例运行在同一个pod不同的container中,应用的信息(如namespace等)在部署时设置为容器采集器agent的环境变量。采集器主程序main读取应用(如provider应用)的接口http://127.0.0.1:9091/actuator/prometheus获取监控数据,同一个pod内不同的container内网络互通,可在采集器agent中用127.0.0.1访问provider的9091端口。最终可以向用户展示的信息包括:
112.(1)服务、累计:请求量、错误率、平均耗时;
113.时序曲线:请求量、错误率、响应耗时、http状态码;
114.(2)服务实例,累计:请求量、错误率、平均耗时;
115.时序曲线:请求量、错误率、响应耗时、http状态码;
116.(3)服务实例的接口,累计:请求量、错误率、平均耗时;
117.时序曲线:请求量、错误率、响应耗时、http状态码。
118.应用服务接入云日志实现思路如下:获取到云日志镜像后,修改chart包增加云日志配置,进行云日志配置挂载,和主目录挂载相同的目录。调用k8s接口增加云日志镜像配置,创建deployment和configmap。本功能主要是解决用户的微服务应用实例日志不方便查看问题。
119.部署模块用于将用户创建的应用服务注册至服务注册中心,注册中心的地址在创
建应用实例时的环境变量中设置,通过服务注册中心对应用服务以及应用服务实例进行可视化管理。其中功能包括服务的上下线、服务的元数据处理、服务调用的权重比例和查看服务实例详情等功能。
120.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1