一种不停机升级维持版本一致性的方法及云原生下的应用技术

技术编号:39307128 阅读:11 留言:0更新日期:2023-11-12 15:54
本发明专利技术公开了一种不停机升级维持版本一致性的方法,包括以下步骤:(1)建立版本管理规范并利用版本校验工具进行校验和比对;(2)建立事务状态管理规则,统一对运行状态中的事务和动态依赖关系进行管理;(3)收集系统中的微服务信息和多版本微服务之间的版本依赖关系;(4)创建部署云原生环境下不停机升级保证版本一致性的监控系统。本发明专利技术可以精确识别软件的更新后的功能和特性,方便用户对应,减少版本号的对应混乱,能够更加清晰地传达版本信息,方便用户和开发人员了解软件的功能变化情况和开发进度。并且在监控系统中增加定义了一些关键性能指标,可以确保应用程序的稳定性和可靠性。靠性。靠性。

【技术实现步骤摘要】
一种不停机升级维持版本一致性的方法及云原生下的应用


[0001]本专利技术涉及一种不停机升级维持版本一致性的方法及云原生下的应用,涉及G06F,具体涉及电数字数据处理领域。

技术介绍

[0002]云原生是以容器、微服务、DevOps(运维)等技术为基础建立的一套云技术产品体系,云原生环境下的不停机升级有蓝绿发布,滚动发布,金丝雀发布等,蓝绿分布需要准备一个与生产环境相同的环境,考虑数据同步和数据一致性。滚动发布是将系统的每个节点依次升级,但是存在故障恢复和负载均衡的问题,金丝雀发布先经过小范围测试,再扩大使用范围,但是存在监控和反馈机制的问题。在云原生环境下均可以实现不停机升级,但是由于网络延迟,故障和数据同步等问题都会导致微服务器之间存在不一致的问题。升级过程中,不同版本的服务器可能同时存在,服务在新版本中被删除或修改,旧版本中仍然调用,事务调用异常会导致服务调用不一致的问题。如果微服务的API(应用程序编程接口)接口发生变化,其依赖的微服务也要进行修改,否则也会产生版本不一致的问题。微服务会依赖于其他微服务或第三方组件,而组件之间的版本兼容性问题增加了版本依赖关系的复杂性,还会出现版本不一致的问题。
[0003]中国专利技术专利CN202211176658.9公开了一种云原生的数据库变更回退及版本管理方法,通过主机路径或持久性存储卷的方式挂载指定数据库最新版本的数据库schema(提要)变更及回退sql(数据库语言)文件,可以实现自动化执行数据库变更,避免手动执行的繁琐步骤;支持跨版本更新及回退及异常处理;版本校验,防止误操作,且可以重复执行,但还是存在升级后版本不一致的风险。中国专利技术专利CN202210032241.9公开了一种基于GitOps(版本控制方法)的多云环境升级方法及控制平台,通过捕捉环境快照和快照重放,并借助GitOps仓库的提交和解析,将复杂的微服务架构、数据库对象、种子数据脚本、模版文件等以环境快照的形式固化下来,并通过快照重放方便地在各个环境间传递,让OP(操作码)用户能够自由选择数据存放位置,但是方式的灵活性反而会降低数据的储存安全性,增加升级前后版本一致性的难度。

技术实现思路

[0004]为了解决云原生环境下不停机升级的版本不一致问题,本专利技术的第一个方面提供了一种不停机升级维持版本一致性的方法,包括以下步骤:
[0005](1)建立版本管理规范并利用版本校验工具进行校验和比对;
[0006](2)建立事务状态管理规则,统一对运行状态中的事务和动态依赖关系进行管理;
[0007](3)收集系统中的微服务信息和多版本微服务之间的版本依赖关系;
[0008](4)创建部署云原生环境下不停机升级保证版本一致性的监控系统。
[0009]作为一种优选的实施方式,所述步骤1具体包括:
[0010]1.1在版本管理规范中定义版本号的格式和规范;
[0011]1.2利用复合哈希算法编写CheckSUM(校验和)校验工具进行版本和文件的一致性检查。
[0012]采用一种创新的基于功能驱动的版本号定义方法,和传统采用语义化标准版本格式(x.y.z)不一样的地方在于:增加了基于功能的软件开发版本格式,将每个版本的变化和升级都与具体的功能相关联,可以更加精确地标识软件的功能和特性,方便用户和开发者更加清晰地了解版本之间的差异和变化,同时也可以减少版本号的冲突和混乱。
[0013]作为一种优选的实施方式,所述步骤1.1中版本号的格式为<主版本号>.<次版本号>.<修订版本号>

<预发布版本号>+<功能标识符>。
[0014]功能标识符是一个简短的字符串,用于表示该版本号所包含的主要功能更新。这种方法的优点在于:版本号的含义清晰明确,能够方便地表达软件版本的更新和变化,预发布版本号的引入能够提高软件的测试和评估效率,减少潜在问题的出现。同时也能够明确表示各个版本所包含的主要功能更新,方便开发人员进行版本管理和控制。
[0015]版本一致性校验的主要目的是对上线前的版本信息进行自动化校验,使用复合哈希算法即静态哈希算法和弹性哈希算法相结合的方式编写版本一致性校验工具。与传统仅采用静态哈希算法的区别在于:在软件安装包中预先嵌入版本号或签名,然后使用静态哈希算法计算版本号或签名,再使用弹性哈希算法计算文件的哈希值,将版本数据库中每个哈希值映射到一组虚拟节点,并将版本号一起返回,当文件内容发生改变时,生成的校验和也会随之改变,因此可以通过对比校验和来检查版本文件是否被篡改,以便后续校验文件的版本一致性。检查内容包含版本上线前需要安装的软件包和开源软件安装包的名称、版本号。
[0016]所述步骤2建立事务状态管理规则,统一对运行状态中的事务和动态依赖关系进行管理,事务状态管理主要是在事务状态发生变更时,对相应的服务集合信息进行更新保存,为系统提供事务运行时的信息和动态依赖关系信息。通过在分布式系统中协调正在处理中的事务的各种状态,来确保版本信息的一致性和可靠性。
[0017]作为一种优选的实施方式,所述步骤2具体包括:
[0018]2.1通过流量中转代理收集微服务的事务状态信息;
[0019]2.2提取事务信息,依据事务标识和事务状态维护事务状态关系。
[0020]作为一种优选的实施方式,所述微服务的事务状态信息包括初始状态,运行状态,终止状态,在途事务处理状态,更新开始状态,版本切换状态,结束撤销状态,事务ID(身份标识号),代理请求状态,缓存状态,重定向状态,访问控制状态,异常执行结果状态信息。
[0021]流量中转代理中可以捕捉到在途事务处理状态,更新开始状态,版本切换状态,结束撤销状态,事务ID,代理请求状态,缓存状态,重定向状态,访问控制状态,异常执行结果状态的信息,可以对微服务的运行状态进行更细颗粒度的增强,另一方面还能够定义状态之间的跳转关系,实现对微服务系统更精准的流量控制和管理,最终实现保证升级过程中版本的一致性的作用。
[0022]除了插入流量中转代理模块,还添加了对应的事务状态管理器,事务状态管理器在服务网格框架Istio(开源的服务网格)上进行具体设计,利用Istio框架提供的自动注入功能,在对微服务实例进行部署时,对事务状态进行管理可以实现多种功能,包括流量控制、故障恢复、度量、监控、访问控制、认证、鉴权和配额。可以确保正在处理中的事务之间的
执行顺序,以避免数据一致性问题和并发执行时的冲突。
[0023]流量中转代理会在转发请求到目标服务之前接管所有的外来的请求,生成相应的事务。事务标识是在代理服务器接收到一个请求时生成的一个唯一标识符,用于标识一个事务的开始和结束。在一个事务中,请求和响应都会带有相同的事务标识。代理服务器可以根据事务标识来确保请求和响应的正确匹配,从而维护事务状态关系,保证事务的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种不停机升级维持版本一致性的方法,其特征在于,包括以下步骤:(1)建立版本管理规范并利用版本校验工具进行校验和比对;(2)建立事务状态管理规则,统一对运行状态中的事务和动态依赖关系进行管理;(3)收集系统中的微服务信息和多版本微服务之间的版本依赖关系;(4)创建部署云原生环境下不停机升级保证版本一致性的监控系统。2.根据权利要求1所述不停机升级维持版本一致性的方法,其特征在于,所述步骤1具体包括:1.1在版本管理规范中定义版本号的格式和规范;1.2利用复合哈希算法编写CheckSUM校验工具进行版本和文件的一致性检查。3.根据权利要求2所述不停机升级维持版本一致性的方法,其特征在于,所述步骤1.1中版本号的格式为<主版本号>.<次版本号>.<修订版本号>

<预发布版本号>+<功能标识符>。4.根据权利要求1所述不停机升级维持版本一致性的方法,其特征在于,所述步骤2具体包括:2.1通过流量中转代理收集微服务的事务状态信息;2.2提取事务信息,依据事务标识和事务状态维护事务状态关系。5.根...

【专利技术属性】
技术研发人员:韩磊黄寅飞焦彦嘉汤平崔妍妍
申请(专利权)人:上海聚均科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1