CN114706611A - 一种版本管理方法、系统、电子设备及介质 - Google Patents
一种版本管理方法、系统、电子设备及介质 Download PDFInfo
- Publication number
- CN114706611A CN114706611A CN202210412432.8A CN202210412432A CN114706611A CN 114706611 A CN114706611 A CN 114706611A CN 202210412432 A CN202210412432 A CN 202210412432A CN 114706611 A CN114706611 A CN 114706611A
- Authority
- CN
- China
- Prior art keywords
- version
- target
- data
- expected
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000005096 rolling process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 241000380131 Ammophila arenaria Species 0.000 description 8
- 238000003064 k means clustering Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 241000338119 Dulus dominicus Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种版本管理方法、系统、电子设备及介质,该方法包括:获取系统需求数据,并根据系统需求数据部署版本资源集,版本资源集包括若干个应用的目标版本;根据版本资源集生成期望版本,并实时监控期望版本;将期望版本与目标版本进行比对,得到资源比对结果;根据资源比对结果更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致;根据更新后的期望版本部署运行版本;通过采用该方法解决了现有技术中版本管理方式不合理的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种版本管理方法、系统、电子设备及介质。
背景技术
随着互联网技术的快速发展,获取用户对业务的反馈意见越来越方便。用户的业务需求变化快,为了满足用户的业务需求,需要对业务版本进行变更。在传统互联网中,大多数场景下的业务版本管理都是依赖于管理员的手工操作,缺乏对业务版本统一、有效地管理,导致一个产品的多个微服务之间版本不统一,从而提高了业务版本管理的复杂性和易错性。此外,对于不同版本的变更也没有进行有效地记录,使得版本的溯源和回滚也需要依靠人工操作才能完成,从而造成大量人力、物力的浪费。
发明内容
本发明提供一种版本管理方法、系统、电子设备及介质,以解决现有技术中版本管理方式不合理的问题。
本发明提供的版本管理方法,包括:
获取系统需求数据,并根据所述系统需求数据部署版本资源集,所述版本资源集包括若干个应用的目标版本;
根据所述版本资源集生成期望版本,并实时监控所述期望版本;
将所述期望版本与所述目标版本进行比对,得到资源比对结果;
根据所述资源比对结果更新所述期望版本,以使在同一个应用下所述目标版本与更新后的期望版本一致;
根据所述更新后的期望版本部署运行版本。
可选地,所述根据所述更新后的期望版本部署运行版本之后还包括:
实时监控所述运行版本,并将所述运行版本与所述更新后的期望版本进行比对,得到版本比对结果;
根据所述版本比对结果更新所述运行版本,以使更新后的运行版本与所述更新后的期望版本一致。
可选地,所述根据所述系统需求数据部署版本资源集包括:
根据所述系统需求确定所述若干个应用以及应用的目标版本数据;
获取所述应用的helm chart模板,并根据所述目标版本数据和所述helm chart模板部署所述版本资源集。
可选地,所述根据所述更新后的期望版本部署运行版本之后还包括:
接收第一目标应用的版本更新请求数据,并根据所述版本更新请求数据确定目标更新数据;
获取目标用户数据,并根据所述目标用户数据和所述目标更新数据配置灰度发布策略;
根据所述灰度发布策略对所述第一目标应用进行灰度发布。
可选地,所述根据所述目标用户数据和所述目标更新数据配置灰度发布策略包括:
获取样本用户数据,并采用聚类算法对所述样本用户数据进行分类处理,得到分类结果,所述分类结果包括若干个用户类别;
根据所述目标用户数据和所述分类结果得到用户类别数据;
根据所述目标更新数据和所述用户类别数据配置灰度发布策略。
可选地,所述灰度发布策略包括灰度用户和版本权重,所述根据所述目标更新数据和所述用户类别数据配置灰度发布策略包括:
根据所述用户类别数据获取目标用户类别的用户量和目标用户类别的数量;
获取所述目标用户类别与所述目标更新数据的匹配度,并根据所述目标用户类别的用户量和所述匹配度确定版本权重;
根据所述目标用户类别的数量和所述匹配度确定灰度用户。
可选地,所述根据所述更新后的期望版本部署运行版本之后还包括:
接收第二目标应用的版本回滚请求,并根据所述版本回滚请求确定待回滚版本和目标回滚版本;
根据所述目标回滚版本获取目标版本资源;
采用所述目标版本资源替换所述待回滚版本,完成版本回滚过程。
本发明还提供了一种版本管理系统,包括:
版本集部署模块,用于获取系统需求数据,并根据所述系统需求数据部署版本资源集,所述版本资源集包括若干个应用的目标版本;
期望版本模块,用于根据所述版本资源集生成期望版本,并实时监控期望版本;
资源比对模块,用于将所述期望版本与所述目标版本进行比对,得到资源比对结果;
版本更新模块,用于根据所述资源比对结果更新所述期望版本,以使在同一个应用下所述目标版本与更新后的期望版本一致;
运行版本模块,用于根据所述更新后的期望版本部署运行版本,所述版本集部署模块、所述期望版本模块、所述资源比对模块、所述版本更新模块和所述运行版本模块相连接。
本发明还提供一种电子设备,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述版本管理方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述版本管理方法。
如上所述,本发明提供了一种版本管理方法、系统、电子设备及介质,具有以下有益效果:首先获取系统需求数据,并通过系统需求数据部署版本资源集,版本资源集包括多个应用以及每个应用相对应的版本,从而实现了版本资源的统一管理,达到了降低了业务版本管理的复杂性和易错性的目的;再根据系统数据部署版本资源集并根据版本资源集生成期望版本,进一步实现了对系统中多个应用版本的统一管理;然后实时监控期望版本,将期望版本与目标版本进行比对,得到资源比对结果,根据资源比对结果更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致;通过将期望版本与需求资源进行比对,并根据比对结果对期望版本进行更新避免了由权限等问题所导致的期望版本生成有误以及生成的期望版本被人员删除等问题,确保了在同一个应用下目标版本与期望版本一致;最后根据更新后的运行版本部署运行版本,也确保了在同一个应用下目标版本与运行版本的一致性,使得运行版本能够实现系统的需求功能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中版本管理方法的流程示意图;
图2是本发明实施例中版本资源集的部署方法的流程示意图;
图3是本发明实施例中版本管理系统的结构示意图;
图4是本发明实施例中电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1是本发明在一实施例中提供的版本管理方法的流程示意图。
如图1所示,版本管理方法,包括步骤S110-S140:
S110,获取系统需求数据,并根据系统需求数据部署版本资源集,版本资源集包括若干个应用的目标版本;
S120,根据版本资源集生成期望版本,并实时监控期望版本;
S130,将期望版本与目标版本进行比对,得到资源比对结果;
S140,根据资源比对结果更新期望版本,以使在同一应用下目标版本与更新后的期望版本一致;
S150,根据更新后的期望版本部署运行版本。
在本实施例的步骤S110中,系统需求数据包括但不限于实现系统功能需要的应用以及每个应用的版本号,若同一应用的多个版本均能实现系统功能,则在根据系统需求需求数据部署版本资源集时,选取这个应用的其中一个版本来进行版本资源集部署,具体地,可以选择这个应用的最新版本来进行版本资源集部署,也可以选择这个应用的最优版本来进行版本资源集部署,版本资源集包括若干个应用的目标版本。
在一实施例中,根据系统需求数据部署版本资源集的具体实现方法请参见图2,图2是本发明在一实施例中版本资源集的部署方法的流程示意图。
如图2所示,版本资源集的部署方法可以包括以下步骤S210-S220:
S210,根据系统需求确定所述若干个应用以及应用的目标版本数据;
S220,获取应用的helm chart模板,并根据目标版本数据和helm chart模板部署版本资源集。
在一实施例中,根据系统需求数据所确定的应用为实现系统功能所需要的应用,应用的目标版本数据包括应用的目标版本号,一个应用只有一个相对应的目标版本号,因此根据目标版本数据和helm chart模板所部署的版本资源集中每一个应用只有一个版本即目标版本。
在一实施例中,helm是一个命令行下的客户端工具,helm为kubernetes的包管理器,每个包称为一个chart。其中,kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。helm主要用于Kubernetes应用程序chart的创建、打包、发布以及创建和管理本地和远程的chart仓库。chart仓库中一个应用对应一个helm chart模板,因此可以通过获取应用的helm chart模板,再根据目标版本数据和helm chart模板部署版本资源集。通过系统需求数据部署版本资源集,版本资源集包括多个应用以及每个应用相对应的版本,从而实现了版本资源的统一管理,达到了降低了业务版本管理的复杂性和易错性的目的。
在本实施例的步骤S120中,根据版本资源集生成期望版本的具体实现方法包括:接收期望版本的生成请求,并根据生成请求生成期望版本和期望版本的chart。具体地,tiller是helm的服务端,部署在Kubernetes集群中,tiller用于接收helm的请求,helm的请求包括期望版本的生成请求,chart为Kubernetes中期望版本的部署文件(在helm中期望版本称为Release)。可以基于kuerbuilder框架开发的operator对期望版本进行监控。根据版本资源集生成期望版本后,可能由于期望版本被管理人员删除、应用权限等原因导致期望版本与根据版本资源集生成的期望版本不一致,因此需要对期望版本进行监控。
在本实施例的步骤S130中,将期望版本与目标版本进行比对,得到资源比对结果的具体实现方法包括:分别获取期望版本与目标版本的同一应用,将期望版本与目标版本的同一应用进行比对;然后获取同一应用下期望版本的版本数据和目标版本的版本数据,并将同一应用下期望版本的版本数据和目标版本的版本数据进行比对,得到资源比对结果。
在本实施例的步骤S140中,根据资源比对结果更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致的具体实现方法包括:若资源比对结果为异常,则更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致;若资源比对结果为正常,则不对期望版本进行更新。
在一实施例中,若期望版本与目标版本一致,则资源比对结果为正常;期望版本与目标版本一致即期望版本的应用与目标版本的应用一一对应,期望版本的应用个数与目标版本的应用个数相同,每个期望版本的应用均有对应的目标版本的相同应用,在同一应用下期望版本的版本号与目标版本的版本号相同。相对应地,若期望版本与目标版本不一致,则资源比对结果为异常,资源比对结果为异常包括目标版本的应用个数大于期望版本的应用个数或者同一个应用中目标版本的版本号与期望版本的版本号不一致。
在一实施例中,若目标版本的应用个数大于期望版本的应用个数,则确定目标版本中有而期望版本中没有的应用,并根据目标版本生成对应的应用,以使更新后的期望版本的应用个数与目标版本的应用个数相同且每个目标版本的应用均有对应的期望版本的相同应用。
在一实施例中,若同一个应用中目标版本的版本号与期望版本的版本号不一致时,则根据资源比对结果更新期望版本时,需要将期望版本中对应的应用删除,并生成与目标版本的版本号相同的期望版本,以使在同一个应用下目标版本与更新后的期望版本一致。
在本实施例的步骤S150中,根据更新后的期望版本部署运行版本的具体实现方法包括:将更新后的期望版本发送给Kubernetes,Kubernetes创建对应的应用,并生成运行版本。其中运行版本为真实服务。在根据更新后的期望版本部署运行版本之后还需要确保运行版本与更新后的期望版本的一致性,具体地,在根据更新的期望版本部署运行版本的具体实现方法包括:实时监控运行版本,将运行版本与更新后的期望版本进行比对,得到版本比对结果;根据版本比对结果更新运行版本,以使更新后的运行版本与更新后的期望版本一致。根据更新后的运行版本部署运行版本并监控运行版本,将运行版本与更新后的期望版本进行比对,得到版本比对结果;根据版本比对结果更新运行版本,以使更新后的运行版本与更新后的期望版本一致,同时也确保了在同一个应用下目标版本与运行版本的一致性,使得运行版本能够实现系统的需求功能,以及实现了系统对应用版本的统一管理,达到了降低了业务版本管理的复杂性和易错性的目的。
在一实施例中,在生成运行版本后,还可以对系统的应用进行灰度发布,因此,根据更新后的期望版本部署运行版本后还包括接收第一目标应用的版本更新请求数据,并根据版本更新请求数据确定目标更新数据;获取目标用户数据,并根据目标用户数据和目标更新数据配置灰度发布策略;根据灰度发布策略对第一目标应用进行灰度发布。其中,第一目标应用为需要进行更新的应用,目标用户为第一目标应用的使用用户,目标用户数据包括目标用户使用的应用数据,例如,目标用户使用的应用类别和目标用户使用的应用能够实现的功能。通过目标用户数据和目标更新数据共同配置灰度发布策略,通过目标用户数据的维度配置灰度发布策略能够保证第一目标应用的用户黏度,通过目标更新数据的维度配置灰度发布策略能够保证灰度发布后的第一目标应用满足版本更新请求。
在一实施例中,根据目标用户数据和目标更新数据配置灰度发布策略的具体实现方法包括获取样本用户数据,并采用聚类算法对样本用户数据进行分类处理,得到分类结果,分类结果包括若干个用户类别;根据目标用户数据和分类结果得到用户类别数据;根据目标更新数据和用户类别数据配置灰度发布策略。其中,灰度发布策略包括版本权重和灰度用户。样本用户数据包括样本用户使用的应用数据。采用聚类算法对样本用户数据进行分类处理,得到分类结果之前还需要设置聚类参数。具体地,聚类算法包括但不限于K-means聚类算法。获取目标用户的数量,可以根据目标用户的数量设定K值,目标用户的数量越大,对应的K值越大。采用K-means聚类算法对样本用户数据进行分类处理,得到分类结果,分类结果包括不同的簇类,对不同的簇类进行标记得到对应的用户类别。通过对样本用户数据进行分类处理后,得到若干个用户类别,再根据目标用户数据和若干个用户类别确定目标类别数据,并基于此用户类别数据配置灰度发布策略,充分考虑到了目标用户的个体应用使用差异,使得配置的灰度发布策略更符合目标用户的应用使用习惯,进而保证了灰度发布过程中目标用户的使用黏度。
在一实施例中,根据目标更新数据和用户类别数据配置灰度发布策略的具体实现方法包括:根据用户类别数据获取目标用户类别的用户量和目标用户类别的数量;获取目标用户类别与目标更新数据的匹配度,并根据目标用户类别的用户量和匹配度确定版本权重;根据目标用户类别的数量和相匹配度确定灰度用户。其中,目标用户类别的数量为目标用户类别的个数,目标用户类别的用户量为每一个用户类别的用户。先确定目标用户类别,再获取目标用户类别与目标更新数据的匹配度,不需要单独获取每个目标用户与目标更新数据的匹配度,便于更快速地配置灰度发布策略,从而提高了数据处理效率。
在一实施例中,获取目标用户类别与目标更新数据的匹配度的实现方法包括:获取目标用户类别所对应的应用,得到第三目标应用;获取第三目标应用与目标更新数据的应用相似度,并确定同一用户类别下最大应用相似度的第三目标应用,得到第四目标应用;获取第四目标应用的目标用户行为数据,根据用户行为数据和最大应用相似度生成匹配度。根据用户行为数据和最大应用相似度生成匹配度步骤中得到的是一个目标用户类别与目标更新数据的匹配度,重复获取目标用户类别与目标更新数据的匹配度的实现方法,可以得到不同目标用户类别与目标更新数据的匹配度。目标用户行为数据包括但不限于目标用户对第四目标应用的使用数据,使用数据包括但不限于使用频次、单次使用时间和总使用时间。可以根据第三目标应用的功能数据与目标更新数据的相似度获取应用相似度,具体地,应用相似度包括第三目标应用能够实现的功能与目标更新数据能够实现的功能的相似度。
在一实施例中,根据用户行为数据和最大应用相似度生成匹配度的实现方法包括设置用户权重和应用权重,根据用户权重和目标用户行为数据确定第一匹配参数,根据应用权重和最大相似度确定第二匹配参数,根据第一匹配参数和第二匹配参数生成匹配度。具体地,可以根据实际应用设置用户权重和应用权重,也可以根据第一目标应用的期望版本的更新次数以及运行版本的更新次数设置用户权重和应用权重,更新次数越大则用户权重越大,应用权重越小;更新次数越大表明第一目标应用在期望版本、运行版本生成以及运行中出问题的概率越大,相对应地,将此时的用户权重设置得越大、应用权重设置得越大,从而保证了目标用户对第一目标应用的使用黏度。具体地,可以根据用户权重和目标用户行为数据的乘积,得到第一匹配参数;根据应用权重和最大相似度的乘积,得到第二匹配参数;根据第一匹配参数和第二匹配参数之和,得到匹配度。
在一实施例中,根据用户权重和目标用户行为数据确定第一匹配参数可以根据目标用户行为数据中的频次数据、时间数据以及用户权重共同确定第一匹配参数,也可以根据频次数据和用户权重共同确定第一匹配参数,还可以根据时间数据和用户权重共同确定第一匹配参数,根据频次数据、时间数据和用户权重共同确定第一匹配参数包括获取同一目标用户类别下目标用户使用第四目标应用的频次之和,得到若干个目标用户类别所对应的第一目标频次;获取同一目标用户类别下目标用户使用第四目标应用的时间之和,得到若干个目标用户类别所对应的第一目标时间;获取目标用户使用所有第四目标应用的频次之和,得到第二目标频次;获取目标用户使用所有第四目标应用的时间之和,得到第二目标时间;第一目标频次与第二频次的比值,得到频次比值;第一目标时间与第二时间的比值,得到时间比值;频次比值与时间比值之和,得到目标比值;目标比值和用户权重的乘积,得到第一匹配参数。
在一实施例中,根据目标用户类别的用户量和匹配度确定版本权重包括获取最大匹配度和最大匹配度下目标用户类别的用户量;根据最大匹配度的数值和最大匹配度下目标用户类别的用户量确定版本权重;最大匹配度的数值越大,则在灰度发布过程中第一目标应用更新后的版本的权重越大,最大匹配度下目标用户类别的用户量越大,则在灰度发布过程中第一目标应用更新后的版本的权重越大。通过匹配度和用户量确定版本权重,从而实现了合理地匹配灰度发布策略。
在一实施例中,根据目标用户类别的数量和相匹配度确定灰度用户,若目标用户类别的数量小于第一预设数量,则调整聚类参数,并采用调整后的聚类参数对样本用户数据进行再次分类处理,得到分类结果,并重复步骤根据目标用户数据和分类结果得到用户类别数据以及步骤根据目标更新数据和用户类别数据配置灰度发布策略。若目标用户类别的数量大于或等于第一预设数量,则获取最大匹配度,并确定最大匹配度下的目标用户为灰度用户。第一预设数量可以根据实际情况进行设定,例如,第一预设数量为3、4、5等。获取灰度用户量与总目标用户量的比值,若比值大于第一预设比值,则调整聚类参数,例如增大K-means聚类算法中的K值,并根据调整后的聚类参数配置灰度发布策略。若比值小于第二预设比值,则调整聚类参数,例如减小K-means聚类算法中的K值,并根据调整后的聚类参数配置灰度发布策略。第一预设比值大于第二预设比值。通过调整聚类参数,并根据调整后的聚类参数配置灰度发布策略,从而得到合理的灰度用户,避免了灰度用户量过大或者过小的问题。
在一实施例中,可以通过配置ingress实现应用的灰度发布。Ingress是一种向Kubernetes集群外部的客户端访问接入点,承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。nginx-ingress-controller是基于nginx作为反向代理和负载均衡器的Kubernetes Ingress控制器,根据编写的ingress规则动态的去更改nginx服务的配置文件。通过配置ingress规则可以实现基于Request Header的流量切分、基于服务权重的流量切分和基于Cookie的流量切分。
在一实施例中,根据更新后的期望版本部署运行版本之后还包括接收第二目标应用的版本回滚请求,并根据版本回滚请求确定待回滚版本和目标回滚版本;根据目标回滚版本获取目标版本资源;采用目标版本资源替换待回滚版本,完成版本回滚过程。采用目标版本资源替换待回滚版本包括将目标版本资源发送给Kubernetes替换待回滚版本。其中,第二目标应用为需要回滚的应用,通过采用上述回滚方法,使得版本的溯源和回滚也需要不需要依靠人工操作才能完成,从而降低了大量人力、物力的浪费。
本施例提供了一种版本管理方法,该方法首先获取系统需求数据,并通过系统需求数据部署版本资源集,版本资源集包括多个应用以及每个应用相对应的版本,从而实现了版本资源的统一管理;再根据系统数据部署版本资源集并根据版本资源集生成期望版本,进一步实现了对系统中多个应用版本的统一管理;然后实时监控期望版本,将期望版本与目标版本进行比对,得到资源比对结果,根据资源比对结果更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致;通过将期望版本与需求资源进行比对,并根据比对结果对期望版本进行更新避免了由权限等问题所导致的期望版本生成有误以及生成的期望版本被人员删除等问题,确保了在同一个应用下目标版本与期望版本一致;最后根据更新后的运行版本部署运行版本,也确保了在同一个应用下目标版本与运行版本的一致性,使得运行版本能够实现系统的需求功能。
基于与版本管理方法相同的发明构思,相应的,本实施例还提供了一种版本管理系统。在本实施例中,该版本管理系统执行上述任一实施例的版本管理方法,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图3为本发明提供的版本管理系统的结构示意图。
如图3所示,所示版本管理系统包括:31版本集部署模块、32期望版本模块、33资源比对模块、34版本更新以及35运行版本模块。
其中,版本集部署模块,用于获取系统需求数据,并根据系统需求数据部署版本资源集,版本资源集包括若干个应用的目标版本;
期望版本模块,用于根据版本资源集生成期望版本,并实时监控期望版本;
资源比对模块,用于将期望版本与目标版本进行比对,得到资源比对结果;
版本更新模块,用于根据资源比对结果更新期望版本,以使在同一个应用下目标版本与更新后的期望版本一致;
运行版本模块,用于根据更新后的期望版本部署运行版本,版本集部署模块、期望版本模块、资源比对模块、版本更新模块和运行版本模块相连接。
在一些示例性实施例中,版本更新模块包括:
版本比对单元,用于实时监控运行版本,并将运行版本与更新后的期望版本进行比对,得到版本比对结果;
运行版本更新单元,用于根据版本比对结果更新运行版本,以使更新后的运行版本与更新后的期望版本一致。
在一些示例性实施例中,版本集部署模块包括:
版本数据确定单元,用于根据系统需求确定若干个应用以及应用的目标版本数据;
版本集部署单元,用于获取应用的helm chart模板,并根据目标版本数据和helmchart模板部署版本资源集。
在一些示例性实施例中,上述版本管理系统还包括:
更新数据确定模块,用于接收第一目标应用的版本更新请求数据,并根据版本更新请求数据确定目标更新数据;
发布策略配置模块,用于获取目标用户数据,并根据目标用户数据和目标更新数据配置灰度发布策略;
灰度发布模块,用于根据灰度发布策略对第一目标应用进行灰度发布。
在一些示例性实施例中,发布策略配置模块包括:
分类单元,用于获取样本用户数据,并采用聚类算法对样本用户数据进行分类处理,得到分类结果,分类结果包括若干个用户类别;
类别数据单元,用于根据目标用户数据和分类结果得到用户类别数据;
发布策略配置单元,用于根据目标更新数据和用户类别数据配置灰度发布策略。
在一些示例性实施例中,发布策略配置单元还包括:
发布策略配置子单元,用于根据用户类别数据获取目标用户类别的用户量和目标用户类别的数量;
获取目标用户类别与目标更新数据的匹配度,并根据目标用户类别的用户量和匹配度确定版本权重;
根据目标用户类别的数量和匹配度确定灰度用户。
在一些示例性实施例中,运行版本模块还包括:
回滚请求单元,用于接收第二目标应用的版本回滚请求,并根据版本回滚请求确定待回滚版本和目标回滚版本;
版本资源单元,用于根据目标回滚版本获取目标版本资源;
回滚单元,用于将目标版本资源发送给Kubernetes替换待回滚版本,完成版本回滚过程。
在一个实施例中,请参见图4,本实施例还提供了一种电子设备400,包括存储器401、处理器402及存储在存储器上并可在处理器上运行的计算机程序,所述处理器402执行所述计算机程序时实现如上任一项实施例所述方法的步骤。
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,说明书对“本实施例”、“一实施例”、“另一实施例”、“在一些示例性实施例”或“其他实施例”的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”、“一实施例”、“另一实施例”的多次出现不一定全部都指代相同的实施例。
在上述实施例中,尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变形对本领域普通技术人员来说将是显而易见的。例如,其他存储结构(例如,动态RAM(DRAM))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种版本管理方法,其特征在于,包括:
获取系统需求数据,并根据所述系统需求数据部署版本资源集,所述版本资源集包括若干个应用的目标版本;
根据所述版本资源集生成期望版本,并实时监控所述期望版本;
将所述期望版本与所述目标版本进行比对,得到资源比对结果;
根据所述资源比对结果更新所述期望版本,以使在同一个应用下所述目标版本与更新后的期望版本一致;
根据所述更新后的期望版本部署运行版本。
2.根据权利要求1所述的版本管理方法,其特征在于,所述根据所述更新后的期望版本部署运行版本之后还包括:
实时监控所述运行版本,并将所述运行版本与所述更新后的期望版本进行比对,得到版本比对结果;
根据所述版本比对结果更新所述运行版本,以使更新后的运行版本与所述更新后的期望版本一致。
3.根据权利要求1所述的版本管理方法,其特征在于,所述根据所述系统需求数据部署版本资源集包括:
根据所述系统需求确定所述若干个应用以及应用的目标版本数据;
获取所述应用的helm chart模板,并根据所述目标版本数据和所述helm chart模板部署所述版本资源集。
4.根据权利要求1所述的版本管理方法,其特征在于,所述根据所述更新后的期望版本部署运行版本之后还包括:
接收第一目标应用的版本更新请求数据,并根据所述版本更新请求数据确定目标更新数据;
获取目标用户数据,并根据所述目标用户数据和所述目标更新数据配置灰度发布策略;
根据所述灰度发布策略对所述第一目标应用进行灰度发布。
5.根据权利要求4所述的版本管理方法,其特征在于,所述根据所述目标用户数据和所述目标更新数据配置灰度发布策略包括:
获取样本用户数据,并采用聚类算法对所述样本用户数据进行分类处理,得到分类结果,所述分类结果包括若干个用户类别;
根据所述目标用户数据和所述分类结果得到用户类别数据;
根据所述目标更新数据和所述用户类别数据配置灰度发布策略。
6.根据权利要求5所述的版本管理方法,其特征在于,所述灰度发布策略包括灰度用户和版本权重,所述根据所述目标更新数据和所述用户类别数据配置灰度发布策略包括:
根据所述用户类别数据获取目标用户类别的用户量和目标用户类别的数量;
获取所述目标用户类别与所述目标更新数据的匹配度,并根据所述目标用户类别的用户量和所述匹配度确定版本权重;
根据所述目标用户类别的数量和所述匹配度确定灰度用户。
7.根据权利要求1所述的版本管理方法,其特征在于,所述根据所述更新后的期望版本部署运行版本之后还包括:
接收第二目标应用的版本回滚请求,并根据所述版本回滚请求确定待回滚版本和目标回滚版本;
根据所述目标回滚版本获取目标版本资源;
采用所述目标版本资源替换所述待回滚版本,完成版本回滚过程。
8.一种版本管理系统,其特征在于,包括:
版本集部署模块,用于获取系统需求数据,并根据所述系统需求数据部署版本资源集,所述版本资源集包括若干个应用的目标版本;
期望版本模块,用于根据所述版本资源集生成期望版本,并实时监控所述期望版本;
资源比对模块,用于将所述期望版本与所述目标版本进行比对,得到资源比对结果;
版本更新模块,用于根据所述资源比对结果更新所述期望版本,以使在同一个应用下所述目标版本与更新后的期望版本一致;
运行版本模块,用于根据所述更新后的期望版本部署运行版本,所述版本集部署模块、所述期望版本模块、所述资源比对模块、所述版本更新模块和所述运行版本模块相连接。
9.一种电子设备,其特征在于,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于使所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412432.8A CN114706611A (zh) | 2022-04-19 | 2022-04-19 | 一种版本管理方法、系统、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412432.8A CN114706611A (zh) | 2022-04-19 | 2022-04-19 | 一种版本管理方法、系统、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706611A true CN114706611A (zh) | 2022-07-05 |
Family
ID=82173736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210412432.8A Pending CN114706611A (zh) | 2022-04-19 | 2022-04-19 | 一种版本管理方法、系统、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706611A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN111159596A (zh) * | 2019-12-25 | 2020-05-15 | 中国建设银行股份有限公司 | 应用资源访问控制方法和装置 |
CN111176713A (zh) * | 2019-12-04 | 2020-05-19 | 江苏艾佳家居用品有限公司 | 一种基于Kubernetes平台和Istio网格技术的灰度发布编排方法 |
CN111694592A (zh) * | 2020-06-24 | 2020-09-22 | 深圳壹账通智能科技有限公司 | 项目版本发布的管理方法以及系统 |
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN112817624A (zh) * | 2021-01-28 | 2021-05-18 | 广州衣科明夷信息技术有限公司 | 一种基于React Native的灰度热部署系统 |
CN113326058A (zh) * | 2021-07-01 | 2021-08-31 | 苏州好玩友网络科技有限公司 | 一种应用的版本更新方法、装置、设备及介质 |
CN113672245A (zh) * | 2021-08-05 | 2021-11-19 | 浪潮云信息技术股份公司 | 一种针对Helm chart的自动化发布方法 |
-
2022
- 2022-04-19 CN CN202210412432.8A patent/CN114706611A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN111176713A (zh) * | 2019-12-04 | 2020-05-19 | 江苏艾佳家居用品有限公司 | 一种基于Kubernetes平台和Istio网格技术的灰度发布编排方法 |
CN111159596A (zh) * | 2019-12-25 | 2020-05-15 | 中国建设银行股份有限公司 | 应用资源访问控制方法和装置 |
CN111694592A (zh) * | 2020-06-24 | 2020-09-22 | 深圳壹账通智能科技有限公司 | 项目版本发布的管理方法以及系统 |
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN112817624A (zh) * | 2021-01-28 | 2021-05-18 | 广州衣科明夷信息技术有限公司 | 一种基于React Native的灰度热部署系统 |
CN113326058A (zh) * | 2021-07-01 | 2021-08-31 | 苏州好玩友网络科技有限公司 | 一种应用的版本更新方法、装置、设备及介质 |
CN113672245A (zh) * | 2021-08-05 | 2021-11-19 | 浪潮云信息技术股份公司 | 一种针对Helm chart的自动化发布方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
EP3667500B1 (en) | Using a container orchestration service for dynamic routing | |
US11175913B2 (en) | Elastic application framework for deploying software | |
US20150378721A1 (en) | Methods for managing applications using semantic modeling and tagging and devices thereof | |
US10318333B2 (en) | Optimizing allocation of virtual machines in cloud computing environment | |
US20170126500A1 (en) | Automatic redistribution of virtual machines as a growing neural gas | |
EP1700422B1 (en) | A system and method for providing autonomic management of a networked system using an action-centric approach | |
CN102945175A (zh) | 一种基于云计算环境的终端软件在线升级系统及其方法 | |
WO2016201160A1 (en) | Computing resource deployment system | |
US11418606B2 (en) | Computing resource management system | |
EP3218805B1 (en) | Method and system for model-driven, affinity-based, network functions | |
CN108563509A (zh) | 数据查询实现方法、装置、介质及电子设备 | |
WO2018005125A1 (en) | Ingestion manager for analytics platform | |
CN113918352B (zh) | 一种服务资源配置方法、计算设备及存储介质 | |
US20130166751A1 (en) | Distributed resource management systems and methods for resource management thereof | |
CN114490086A (zh) | 资源动态调整方法、装置、电子设备、介质和程序产品 | |
CN114706611A (zh) | 一种版本管理方法、系统、电子设备及介质 | |
CN113138772B (zh) | 数据处理平台的构建方法、装置、电子设备和存储介质 | |
CN111865696B (zh) | 网络安全的可视化方法、装置、设备及介质 | |
Guo et al. | PARA: Performability‐aware resource allocation on the edges for cloud‐native services | |
AlHadid et al. | Web services composition using dynamic classification and simulated annealing | |
US20210286819A1 (en) | Method and System for Operation Objects Discovery from Operation Data | |
Tanaka et al. | Distributed topic management in publish-process-subscribe systems on edge-servers for real-time notification service | |
CN115361285B (zh) | 实现离在线业务混合部署的方法、装置、设备及介质 | |
Pham et al. | Resource Allocation for Virtual Service Based on Heterogeneous Shared Hosting Platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220705 |
|
RJ01 | Rejection of invention patent application after publication |