本说明书涉及云原生,尤其涉及一种云原生应用的多集群运维方法、设备及介质。
背景技术:
1、随着云原生的推广以及应用云原生容器化运行需求的增加,越来越多的应用开始寻求在容器集群内运行。在业务应用中,要实现复杂的业务逻辑和多样的系统业务功能,往往需要各种中间件应用的功能支持。尤其是微服务架构的应用,其复杂程度及需要的中间件数量更是直线上升,云原生集群部署此类应用的复杂程度自然也相应地增加。
2、以数据库为例,在云原生集群内运行一个标准的可用数据库,需要部署主程序工作负载、应用服务、持久化数据存储、数据保密字典、运行数据配置项等多种资源。对于业务应用来说,除去其自身逻辑需要资源外,业务应用所依赖的中间件都需要配置这些资源才可正常使用。在这种情况下,一套完整的微服务架构业务应用部署下来需要较多数量的云原生集群资源定义才能正常运行。当需要在多集群同时运行时,例如生产集群、测试集群、开发集群、仿真集群等,现有技术通常通过手动部署、手动运维的方式,对每个集群中的应用分别进行手动部署、手动运维。在手动部署的过程中,需要对业务应用及各中间件、网络插件等应用进行复杂数据配置;在进行手动运维时,为了操持相同版本应用的部署与运行的一致性,通常需要重复构建模型,在多集群运维过程中,产生了较大的工作量,并且手动操作存在操作失误的风险,导致应用运行失败。
3、因此,当需要在多集群同时运行时,通过手动部署、手动运维的方式,对每个集群中的应用分别进行手动运维,产生了较大的工作量,并且手动操作存在操作失误的风险,导致应用运行失败。
技术实现思路
1、本说明书一个或多个实施例提供了一种云原生应用的多集群运维方法、设备及介质,用于解决如下技术问题:当需要在多集群同时运行时,通过手动部署、手动运维的方式,对每个集群中的应用分别进行手动运维,产生了较大的工作量,并且手动操作存在操作失误的风险,导致应用运行失败。
2、本说明书一个或多个实施例采用下述技术方案:
3、本说明书一个或多个实施例提供一种云原生应用的多集群运维方法,所述方法包括:获取指定云原生应用的集群运维需求信息,其中,所述集群运维需求信息包括至少一个已部署集群、所述指定云原生应用的当前应用版本信息和运维类型,所述运维类型包括部署运维类型、资源分配运维类型和版本更新运维类型;通过预置的文件下载接口,根据所述集群运维需求信息中的所述指定云原生应用的当前应用版本信息,确定所述当前应用版本信息对应的当前版本应用部署文件包,其中,所述当前版本应用部署文件包包括当前云原生集群数据模型;根据所述当前版本应用部署文件包和所述运维类型,对所述指定云原生应用进行多集群运维。
4、可选地,在本说明书的一个或多个实施例中,获取指定云原生应用的集群运维需求信息之前,所述方法还包括:确定所述指定云原生应用的集群部署需求,其中,所述集群部署需求包括至少一个待部署集群;在运维用户对客户端页面组件的拖拽操作触发下,基于所述集群部署需求,获取所述指定云原生应用的云原生集群资源,以生成云原生集群数据模型;通过所述云原生集群数据模型,在所述至少一个待部署集群中进行多集群部署,实现所述指定云原生应用的多集群部署。
5、可选地,在本说明书的一个或多个实施例中,在运维用户对客户端页面组件的拖拽操作触发下,基于所述集群部署需求,获取所述指定云原生应用的云原生集群资源,以生成云原生集群数据模型,具体包括:获取预先设置在客户端的页面组件,其中,所述页面组件对应集群内多种类型资源;在所述运维用户对所述页面组件的拖拽操作触发下,根据所述集群部署需求,进行资源节点添加,以确定所述集群部署需求中所述至少一个待部署集群对应的多个类型资源节点;通过页面表单的方式,对每个所述类型资源节点添加配置数据,以生成云原生集群数据模型,其中,所述云原生集群数据模型为页面表单数据。
6、可选地,在本说明书的一个或多个实施例中,通过所述云原生集群数据模型,在所述至少一个待部署集群中进行多集群部署,具体包括:通过预先设置的前后端约定数据结构,对所述云原生集群数据模型进行解析,以将所述云原生集群数据模型对应的页面表单数据映射为服务端实体,确定每个所述服务端实体的实体字段;获取所述至少一个待部署集群对应的各类型描述资源内置模板,其中,所述各类型描述资源内置模板的模板结构和字段值固定;根据所述服务端实体对应的实体字段对应的字段数据,对所述各类型描述资源内置模板中的字段内容进行覆盖,生成所述云原生集群数据模型对应的当前模板内容;对所述当前模板内容进行合法性校验,并将所述当前模板内容批量部署至所述至少一个待部署集群中。
7、可选地,在本说明书的一个或多个实施例中,通过所述云原生集群数据模型,在所述至少一个待部署集群中进行多集群部署之后,所述方法还包括:对所述云原生集群数据模型进行解析,生成所述指定云原生应用的当前版本的应用部署文件包,其中,所述应用部署文件包为当前版本应用部署文件包;通过预先获取的所述指定云原生应用的应用标识和预先获取的部署时间戳,对所述应用部署文件包进行应用版本定义,并进行持久化存储,以通过预置的文件下载接口,下载指定版本应用部署文件包。
8、可选地,在本说明书的一个或多个实施例中,当所述运维类型为部署运维类型时,根据所述当前版本应用部署文件包和所述运维类型,对所述指定云原生应用进行多集群运维,具体包括:获取所述指定云原生应用的部署运维需求信息,其中,所述部署运维需求信息包括至少一个待运维部署集群;根据所述部署运维需求信息,确定所述至少一个待运维部署集群的集群配置文件,以通过所述集群配置文件对每个所述待运维部署集群进行集群预置,确定至少一个预置集群;将所述当前版本应用部署文件包,在每个所述预置集群中进行一键部署,以在每个所述待运维部署集群中部署所述指定云原生应用。
9、可选地,在本说明书的一个或多个实施例中,当所述运维类型为版本更新运维类型时,根据所述当前版本应用部署文件包和所述运维类型,对所述指定云原生应用进行多集群运维,具体包括:获取所述集群运维需求信息中的版本更新运维信息,其中,所述版本更新运维信息包括至少一个待修改模板数据;根据所述当前版本应用部署文件包,获取所述指定云原生应用对应的当前云原生集群数据模型;基于所述版本更新运维信息,对所述当前云原生集群数据模型进行修改,生成更新云原生集群数据模型;根据所述更新云原生集群数据模型,在所述至少一个已部署集群中进行多集群部署,实现所述指定云原生应用的版本更新运维。
10、可选地,在本说明书的一个或多个实施例中,当所述运维类型为资源分配运维类型时,根据所述当前版本应用部署文件包和所述运维类型,对所述指定云原生应用进行多集群运维,具体包括:根据所述当前版本应用部署文件包,获取所述指定云原生应用对应的当前云原生集群数据模型;获取所述集群运维需求信息中的资源分配运维信息,其中,所述资源分配运维信息包括至少一个待修改应用工作负载;基于所述资源分配运维信息,对所述当前云原生集群数据模型进行修改,实现工作负载的资源分配运维。
11、本说明书一个或多个实施例提供一种云原生应用的多集群运维设备,包括:
12、至少一个处理器;以及,
13、与所述至少一个处理器通信连接的存储器;其中,
14、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。
15、本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
16、获取指定云原生应用的集群运维需求信息,其中,所述集群运维需求信息包括至少一个已部署集群、所述指定云原生应用的当前应用版本信息和运维类型,所述运维类型包括部署运维类型、资源分配运维类型和版本更新运维类型;通过预置的文件下载接口,根据所述集群运维需求信息中的所述指定云原生应用的当前应用版本信息,确定所述当前应用版本信息对应的当前版本应用部署文件包,其中,所述当前版本应用部署文件包包括当前云原生集群数据模型;根据所述当前版本应用部署文件包和所述运维类型,对所述指定云原生应用进行多集群运维。
17、本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过上述技术方案,通过当前版本应用部署文件包的优化,满足多种运维场景,在部署运维场景中,提高应用部署效率,数据模型的统一优化可以大量减少大型业务系统中的业务应用及各中间件、网络插件等应用手动部署的复杂数据配置,有效避免手动部署失误导致应用运行失败的问题;在版本更新运维场景中,由数据模型生成应用部署文件包,可实现一次构建多处运行,避免重复构建模型的工作并且保持相同版本应用的部署与运行的一致性;在资源分配运维场景中,实现云原生应用的动态资源分配以及应用的多集群批量在线运维支持,减少多集群手动运维成本。