一种云原生非停机升级的保持数据完整性方法及其应用技术

技术编号:39417390 阅读:13 留言:0更新日期:2023-11-19 16:07
本发明专利技术公开了一种云原生非停机升级的保持数据完整性方法,通过版本数据备份、滚动升级、验证数据监控、版本回滚和测试等步骤,保证了数据的完整性和一致性,同时实现不停机升级,有效改善了云原生环境升级过程业务不连续、不可用以及数据不一致和丢失问题。并且通过升级前的数据备份,保证了不停机系统升级时的数据完整性,避免了数据不一致和丢失问题。同时通过引入Thanos组件,实现了分布式、高可用灾备部署和数据永久备份,提高了资源存储的安全性。安全性。

【技术实现步骤摘要】
一种云原生非停机升级的保持数据完整性方法及其应用


[0001]本专利技术涉及一种云原生非停机升级的保持数据完整性方法及其应用,涉及G06F,具体涉及电数字数据处理领域。

技术介绍

[0002]云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。在云原生环境中,应用程序的各个组件需要不断升级以应对日新月异的功能性要求,常用的升级方式包括停机升级、灰度发布、服务网格蓝绿发布升级、滚动升级。停机升级可以保证数据的完整性,但是会降低工作效率,影响用户的使用体验满意度。而传统的滚动升级过程中可以实现不停机升级,但是中途可能会出故障,导致数据丢失或数据不一致,因此开发一种实现不停机升级的同时保证数据完整性的方法至关重要。
[0003]中国专利技术专利CN202210839514.0公开了一种实现数据库云服务升级的方法和系统,采用局部精准升级替代整体重建升级的策略,能够严格控制着数据库云服务环境的变动范围,同时能够有效保障数据库云服务的可用性,极大提高用户的使用体验,但是变动过程中仍然存在数据不一致或丢失问题,无法保证升级过程中的数据完整性。中国专利技术专利CN202111458637.1公开了一种分布式云原生数据库管理方法和系统,通过在一个K8S平台上可以构建多个分布式集群,可以一键式增加数据库集群;集群与集群之间相互隔离,互不干扰,达到了用户之间的资源隔离,也达到了数据库级别的隔离。但是仅涉及了数据分布式存储的方法,不涉及系统的升级过程,不适用于本申请的方法。

技术实现思路

[0004]为了保证云原生环境下不停机系统的数据完整性,本专利技术的第一个方面提供了一种云原生非停机升级的保持数据完整性方法,包括以下步骤:
[0005](1)对待升级组件的数据备份,将备份储存在独立的储存设备中;
[0006](2)升级前,将待升级组件的升级前状态储存到独立的储存设备中,以备升级失败回滚;
[0007](3)采用滚动升级的方式,逐个升级每个组件如图4,在升级过程中,对组件进行监控,如果发生故障,系统启动回滚程序,恢复到升级前状态;
[0008](4)升级结束后,进行测试,确保功能和性能没有受到影响,测试通过后,系统自动删除数据备份和升级组件的升级前状态文件,升级完成。
[0009]作为一种优选的实施方式,所述步骤1的具体操作如下:1.1.备份网站数据库文件和网站目录文件;1.2.将1.1中备份的文件转移至储存设备中;1.3.每隔一段时间进行备份,以防止数据丢失。
[0010]作为一种优选的实施方式,所述储存设备选自磁盘、外部硬盘、SD卡(内存卡)、USB
驱动器(闪存驱动器)中的一种。
[0011]作为一种优选的实施方式,所述步骤3中的滚动升级方式为:3.1.先启动一个模块的新版本,关闭剩余全部模块的老版本;3.2.在3.1的模块下启动一组件的新版本,关闭3.1的模块下的剩余全部组件的老版本;3.3.按照顺序重复步骤3.1,3.2,直至所有版本升级完成。
[0012]作为一种优选的实施方式,所述步骤3监控的过程为:使用监控工具实时识别数据升级存在的潜在问题,当某个组件发生故障时,监控看板会发出故障预警,然后在控制台启动回滚程序,将组件恢复到升级之前的状态;若无故障,继续执行当前升级命令。
[0013]作为一种优选的实施方式,所述步骤3监控的具体操作为:在kubernetes(容器编排引擎,缩写K8S)集群部署Prometheus(监视和警报)主动采集工作负载指标和用户自定义指标;然后引入Thanos(处理数据的系统)组件,Thanos Query(查询入口)组件将查询请求发给所有的Store(储存)和Sidecar(单独的进程),然后各组件把结果汇总返回给Query(查询),实现高可用功能化数据存储方案。
[0014]作为一种优选的实施方式,所述工作负载指标包括Deployment(配置)、Statefualset(有状态服务)、DeamonSet(服务守护进程)、Job(作业)指标。
[0015]作为一种优选的实施方式,所述数据存储方案支持GoogleCloudStorage(谷歌云储存)、AWS S3(云对象存储)、Azure Blob Storage(微软云储存)储存方案。
[0016]在升级过程中,对每个组件进行监控,以确保其正常运行。如果某个组件发生故障,系统将立即启动回滚程序,将该组件恢复到升级前的状态;具体操作方法:在kubernetes集群部署Prometheus主动采集工作负载指标和用户自定义指标,随着部署Pod数量的增多,Promethues内存占用过大,CPU(中央处理器)使用率升高,不支持分布式,单机性能也遇到了瓶颈,针对单机存储不可靠,速度慢的问题,引入了Thanos组件,实现了分布式、高可用灾备部署和数据永久备份。ThanosQuery作为数据的分发和合并组件,会将查询请求发给所有的Store和Sidecar,然后各组件把结果汇总返回给Query。相同的Prometheus可以部署多个Replica(副本),即使部分挂掉,依然可以获得完整数据,这样就可以实现高可用功能。
[0017]数据存储方面支持GoogleCloudStorage、AWS S3、Azure Blob Storage等存储方案,便于根据实际情况灵活选择,不限制容量,既高了数据存储的可靠性,也提高了安全性,同时也成本便宜,适合做大规模部署。
[0018]对于CPU使用率过高问题,我们增多了CPU内存的资源,同时对采集的指标进行进一步分析,精简了指标的数量,对于实时性不是很高的指标,降低了采集的频率,进一步提高了系统的稳定性。
[0019]作为一种优选的实施方式,所述步骤3中,在升级过程中还存在“在途事物”问题,所述“在途事物”问题:通过在入口网关设置消息拦截开关,在控制台发起升级时打开消息拦截,在升级完成后关闭消息拦截,保证微服务升级期间消息静默或通过在每个微服务设置流量代理,负责拦截消息并作校验,当消息头附带的版本号与微服务版本号不符合时,丢弃消息不作处理的方式解决。
[0020]升级过程中,业务数据处理与微服务模块升级并行进行,彼此可能存在干扰,产生“在途事务”问题。以操作指令为入口,返回结果为出口,其间调用的微服务合并为一个分布
式事务,每个微服务调用作为该分布式事务的子事务。为保证数据完整性,要求分布式事务的子事务不能在同一个微服务的不同版本上运行。以智能风控子系统的风控预警功能为例,该业务功能包括“指标计算

发送预警”二阶段分布式事务。假设在升级过程中,事务正好执行完一阶段,D模块在执行指标计算时为旧版本,在执行预警发送时为新版本,两个版本指标计算逻辑存在差异,那么根据旧版本指标计算结果对新版本预警触发阀值,就可能出现逻辑本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种云原生非停机升级的保持数据完整性方法,其特征在于,包括以下步骤:(1)对待升级组件的数据备份,将备份储存在独立的储存设备中;(2)升级前,将待升级组件的升级前状态储存到独立的储存设备中,以备升级失败回滚;(3)采用滚动升级的方式,在升级过程中,对组件进行监控,如果发生故障,系统启动回滚程序,恢复到升级前状态;(4)升级结束后,进行测试,确保功能和性能没有受到影响,测试通过后,系统自动删除数据备份和升级组件的升级前状态文件,升级完成。2.根据权利要求1所述云原生非停机升级的保持数据完整性方法,其特征在于,所述步骤1的具体操作如下:1.1.备份网站数据库文件和网站目录文件;1.2.将1.1中备份的文件转移至储存设备中;1.3.每隔一段时间进行备份,以防止数据丢失。3.根据权利要求2所述云原生非停机升级的保持数据完整性方法,其特征在于,所述储存设备选自磁盘、外部硬盘、SD卡、USB驱动器中的一种。4.根据权利要求2所述云原生非停机升级的保持数据完整性方法,其特征在于,所述步骤3中的滚动升级方式为:3.1.先启动一个模块的新版本,关闭剩余全部模块的老版本;3.2.在3.1的模块下启动一组件的新版本,关闭3.1的模块下的剩余全部组件的老版本;3.3.按照顺序重复步骤3.1,3.2,直至所有版本升级完成。5.根据权利要求2所述云原生非停机升级的保持数据完整性方法,其特征在于,所述步骤3监控的过程为:使用监控工具实时识别数据升级存在的潜在问题,当某个组件发生故障时,监控看板会发出故障预警,然后在控制台启动回滚程序,...

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

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

1