一种云原生平台在线升级方法及系统与流程
1.本发明公开一种云原生平台在线升级方法及系统,涉及云计算技术领域。
背景技术:
2.云原生是基于分布部署和统一运管的分布式云,以容器、微服务、devops等技术为基础建立的一套云技术产品体系,目前云原生已成为云计算领域的新力量,云原生在云计算时代指导企业基于云原生的架构和设计来开发应用。
3.随着云原生逐渐扩散到金融、政务、物流等行业,云原生平台的迭代升级面临着诸多的问题,云原生平台升级过程繁琐,用户很难自主进行升级,需运维协助升级;升级版本更新特性用户无法直观获取;用户升级过程失败,无法回滚等问题。
4.因此,为了减少用户升级难度,避免用户升级操作不当带来的诸多问题,本发明提供一种云原生平台在线升级方法及系统。
技术实现要素:
5.本发明针对现有技术的问题,提供一种云原生平台在线升级方法及系统,所采用的技术方案为:一种云原生平台在线升级方法,所述的方法具体步骤如下:
6.s1通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;
7.s2通过云原生平台提供平台升级功能,在中心侧获取升级版本;
8.s3将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;
9.s4现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;
10.s5对升级失败的云原生平台提供版本滚回操作。
11.所述s2具体步骤如下:
12.s21基于现场版本拉去中心可升级版本;
13.s22获取到新版本,现场侧升级管理界面展示新版本;
14.s23现场拉取中心版本获得多个新版本,进行选择升级。
15.所述s3的具体步骤如下:
16.s31基于新版本号,与中心侧通信,获取新版本的升级介质;
17.s32同步chart包,现场存在对应的分支则更新分支,不存在则创建新分支;
18.s33同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库。
19.所述s4的具体步骤如下:
20.s41获取新版本的chart列表;
21.s42执行升级命令,进行chart包release;
22.s43同步release进度,前端页面回显。
23.所述s5的具体步骤如下:
24.s51记录升级失败日志,用于排查升级失败原因;
25.s52删除release版本;
26.s53rollback到未升级前的版本。
27.一种云原生平台在线升级系统,所述的系统具体包括任务下发模块、版本获取模块、介质下载模块、版本升级模块和版本回滚模块:
28.任务下发模块:通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;
29.版本获取模块:通过云原生平台提供平台升级功能,在中心侧获取升级版本;
30.介质下载模块:将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;
31.版本升级模块:现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;
32.版本回滚模块:对升级失败的云原生平台提供版本滚回操作。
33.所述版本获取模块具体包括版本拉取模块、版本展示模块和版本选择模块:
34.版本拉取模块:基于现场版本拉去中心可升级版本;
35.版本展示模块:获取到新版本,现场侧升级管理界面展示新版本;
36.版本选择模块:现场拉取中心版本获得多个新版本,进行选择升级。
37.所述介质下载模块具体包括介质获取模块、分支处理模块和命令同步模块:
38.介质获取模块:基于新版本号,与中心侧通信,获取新版本的升级介质;
39.分支处理模块:同步chart包,现场存在对应的分支则更新分支,不存在则创建新分支;
40.命令同步模块:同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库。
41.所述版本升级模块具体包括列表获取模块、命令执行模块和进度同步模块:
42.列表获取模块:获取新版本的chart列表;
43.命令执行模块:执行升级命令,进行chart包release;
44.进度同步模块:同步release进度,前端页面回显。
45.所述版本回滚模块具体包括失败排查模块、版本删除模块和滚回处理模块:
46.失败排查模块:记录升级失败日志,用于排查升级失败原因;
47.版本删除模块:删除release版本;
48.滚回处理模块:rollback到未升级前的版本。
49.本发明的有益效果为:本方案的发明是针对云原生平台升级繁琐,用户无法独立升级的问题,提出的一种云原生平台在线升级方法,相较于以往云原生平台提供者为用户进行平台升级部署,本发明方法通过操作云原生平台升级页面即可完平台成升级的目的,用户不需要了解云原生技术,无需输入复杂的升级命令,通过页面操作即可完成云原生平台升级,能够提升用户云原生平台升级体验,同时方便用户更好的管理和维护云原生平台版本。
附图说明
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
51.图1是本发明方法实施例的s1步骤流程图;图2是本发明方法实施例的s2步骤流程图;图3是本发明方法的实施例流程图。
具体实施方式
52.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
53.实施例一:
54.一种云原生平台在线升级方法,所述的方法具体步骤如下:
55.s1通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;
56.s2通过云原生平台提供平台升级功能,在中心侧获取升级版本;
57.s3将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;
58.s4现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;
59.s5对升级失败的云原生平台提供版本滚回操作;
60.如图1所示,s1中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户。升级任务维护新版本升级的基本信息,如新版本号,最小兼容版本,灰度发布/全量发布,强制升级/提示升级等信息,新版本根据中心维护的升级任务,可以匹配哪些用户可以升级新版本,满足升级任务要求的现场版本,可以获取到中心下发的升级任务。
61.云原生平台提供平台升级功能,现场侧管理员用户登陆云原生平台,进入平台升级功能菜单,获取中心侧下发的升级版本。
62.进一步的,如图2所示,所述s2具体步骤如下:
63.s21基于现场版本(如:v1.0)拉取中心可升级版本。若现场版本号大于新版本最小兼容版本号,则现场能获取到中心下发的新版本。
64.s22获取到新版本,现场侧升级管理页面展示新版本号、更新日志、升级说明等信息,为用户升级提供引导。
65.s23现场拉取中心版本可获取多个新版本(如:v1.1,v1.3,v1.3),用户选择其中一个版本进行升级。
66.进一步的,所述s3的具体步骤如下:
67.s31基于新版本号,与中心侧通信,获取新版本的升级介质;
68.s32同步chart包,现场存在对应的分支则更新分支,不存在则创建新分支;
69.s33同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库;
70.一般来说,云原生平台的升级介质包含chart包,容器images,在升级新版本前,需
要将新版本的chart和images同步到现场环境。通过git命令和docker命令将新版本的chart和images同步到本地仓库;
71.进一步的,现场侧平台升级页面显示从中心侧拉取到的新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署。后端程序返回升级进度到前端页面,用户可实时查看升级进度。
72.所述s4的具体步骤如下:
73.s41获取新版本的chart列表;
74.s42执行升级命令,进行chart包release;
75.s43同步release进度,前端页面回显;
76.升级进度计算公式:progress=released/chart list*100%,当升级进度100%时,提示用户升级成功。
77.再进一步的,云原生平台的升级可能会因网络、升级介质等问题,存在升级失败的风险,若升级失败,需要提供版本回滚操作,及时恢复用户的应用服务,避免因升级失败造成云原生平台中的某个服务不可用,甚至整个云原生平台的不可用。平台升级页面提供“版本回滚”操作,用户可点击“版本回滚”,云原生平台恢复到未升级前的版本;所述s5的具体步骤如下:
78.s51记录升级失败日志,用于排查升级失败原因;
79.s52删除release版本;
80.s53rollback到未升级前的版本。
81.实施例二:
82.一种云原生平台在线升级系统,所述的系统具体包括任务下发模块、版本获取模块、介质下载模块、版本升级模块和版本回滚模块:
83.任务下发模块:通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;
84.版本获取模块:通过云原生平台提供平台升级功能,在中心侧获取升级版本;
85.介质下载模块:将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;
86.版本升级模块:现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;
87.版本回滚模块:对升级失败的云原生平台提供版本滚回操作。
88.进一步的,所述版本获取模块具体包括版本拉取模块、版本展示模块和版本选择模块:
89.版本拉取模块:基于现场版本拉去中心可升级版本;
90.版本展示模块:获取到新版本,现场侧升级管理界面展示新版本;
91.版本选择模块:现场拉取中心版本获得多个新版本,进行选择升级。
92.进一步的,所述介质下载模块具体包括介质获取模块、分支处理模块和命令同步模块:
93.介质获取模块:基于新版本号,与中心侧通信,获取新版本的升级介质;
94.分支处理模块:同步chart包,现场存在对应的分支则更新分支,不存在则创建新
分支;
95.命令同步模块:同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库。
96.进一步的,所述版本升级模块具体包括列表获取模块、命令执行模块和进度同步模块:
97.列表获取模块:获取新版本的chart列表;
98.命令执行模块:执行升级命令,进行chart包release;
99.进度同步模块:同步release进度,前端页面回显。
100.再进一步的,所述版本回滚模块具体包括失败排查模块、版本删除模块和滚回处理模块:
101.失败排查模块:记录升级失败日志,用于排查升级失败原因;
102.版本删除模块:删除release版本;
103.滚回处理模块:rollback到未升级前的版本。
104.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种云原生平台在线升级方法,其特征是所述的方法具体步骤如下:s1通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;s2通过云原生平台提供平台升级功能,在中心侧获取升级版本;s3将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;s4现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;s5对升级失败的云原生平台提供版本滚回操作。2.根据权利要求1所述的方法,其特征是所述s2具体步骤如下:s21基于现场版本拉去中心可升级版本;s22获取到新版本,现场侧升级管理界面展示新版本;s23现场拉取中心版本获得多个新版本,进行选择升级。3.根据权利要求1所述的方法,其特征是所述s3的具体步骤如下:s31基于新版本号,与中心侧通信,获取新版本的升级介质;s32同步chart包,现场存在对应的分支则更新分支,不存在则创建新分支;s33同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库。4.根据权利要求1所述的方法,其特征是所述s4的具体步骤如下:s41获取新版本的chart列表;s42执行升级命令,进行chart包release;s43同步release进度,前端页面回显。5.根据权利要求1所述的方法,其特征是所述s5的具体步骤如下:s51记录升级失败日志,用于排查升级失败原因;s52删除release版本;s53rollback到未升级前的版本。6.一种云原生平台在线升级系统,其特征是所述的系统具体包括任务下发模块、版本获取模块、介质下载模块、版本升级模块和版本回滚模块:任务下发模块:通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;版本获取模块:通过云原生平台提供平台升级功能,在中心侧获取升级版本;介质下载模块:将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;版本升级模块:现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;版本回滚模块:对升级失败的云原生平台提供版本滚回操作。7.根据权利要求6所述的系统,其特征是所述版本获取模块具体包括版本拉取模块、版本展示模块和版本选择模块:版本拉取模块:基于现场版本拉去中心可升级版本;版本展示模块:获取到新版本,现场侧升级管理界面展示新版本;
版本选择模块:现场拉取中心版本获得多个新版本,进行选择升级。8.根据权利要求6所述的系统,其特征是所述介质下载模块具体包括介质获取模块、分支处理模块和命令同步模块:介质获取模块:基于新版本号,与中心侧通信,获取新版本的升级介质;分支处理模块:同步chart包,现场存在对应的分支则更新分支,不存在则创建新分支;命令同步模块:同步images,docker pull,docker tag,docker push命令同步新版本images到本地仓库。9.根据权利要求6所述的系统,其特征是所述版本升级模块具体包括列表获取模块、命令执行模块和进度同步模块:列表获取模块:获取新版本的chart列表;命令执行模块:执行升级命令,进行chart包release;进度同步模块:同步release进度,前端页面回显。10.根据权利要求6所述的系统,其特征是所述版本回滚模块具体包括失败排查模块、版本删除模块和滚回处理模块:失败排查模块:记录升级失败日志,用于排查升级失败原因;版本删除模块:删除release版本;滚回处理模块:rollback到未升级前的版本。
技术总结
本发明公开了一种云原生平台在线升级方法及系统,属于云计算领域;所述的方法具体步骤如下:S1通过中心发布新的云原生平台版本,基于新版本创建升级任务,下发至用户;S2通过云原生平台提供平台升级功能,在中心侧获取升级版本;S3将新版本的chart和images同步到现场环境,通过git命令和docker命令将新版本的chart和images同步到本地仓库;S4现场侧拉取新版本,用户根据需要选择版本进行升级,后台程序通过helm包管理工具进行chart包的升级部署;S5对升级失败的云原生平台提供版本滚回操作;本发明方法无需输入复杂的升级命令,通过页面操作即可完成云原生平台升级,能够提升用户云原生平台升级体验,同时方便用户更好的管理和维护云原生平台版本。理和维护云原生平台版本。理和维护云原生平台版本。