一种用于多租户的灰度发布方法、装置及存储介质制造方法及图纸

技术编号:35231983 阅读:33 留言:0更新日期:2022-10-15 10:53
本发明专利技术提出一种用于多租户的灰度发布方法、装置及存储介质,涉及计算机技术中的分布式计算技术领域,该方法包括:基于灰度选择策略从多租户中选择用于灰度发布的租户集合;在灰度环境中设置灰度元数据层,在正式环境中设置正式元数据层,基于灰度元数据层和正式元数据层共享一个数据库;在确定进行灰度发布的变更点后,基于灰度元数据层中的灰度元数据将灰度环境与正式环境进行隔离,在灰度环境中使用租户集合中的租户进行任务执行,任务执行完毕后,此时,正式环境基于正式元数据层仍然能对同一张物理表进行任务操作,实现了多租户模式下,同一张物理表支撑了两套应用环境。实现了灰度环境与正式环境的无缝衔接,提高了上线效率。率。率。

【技术实现步骤摘要】
一种用于多租户的灰度发布方法、装置及存储介质


[0001]本专利技术涉及计算机技术中的分布式计算
,具体涉及一种用于多租户的灰度发布方法、装置及存储介质。

技术介绍

[0002]目前SAAS产品采用云原生架构后,在交付介质、基础设施管理、运维模型上都有一个全面升级和突破,但是在方便了开发人员快速满足需求,敏捷迭代的同时,也带来了应用交付和管理的巨大挑战。大多数公司的常规迭代,由于微服务架构服务之间的依赖多、线上环境配置复杂、上线过程手工交互场景多,导致上线变更是影响产品稳定性的一个极大因素。为了既实现业务快速迭代,又要保障业务高稳定,系统一般采用灰度发布的方式更新系统版本。
[0003]中国专利技术专利公开文本CN112948278A公开了一种基于灰度数据库的产品灰度发布方法,其在正常情况下,通过binlog维持灰度数据库的同步,在灰度验证期间将同步功能关闭,仅使用灰度数据库进行验证,灰度数据与生产数据此时不同步,后续做反向同步或者丢弃这些验证数据,这些对业务来说都是不连续的,而再隔离出一套灰度数据库,既增加数据库成本,维护又复杂,浪费实际上线时间,这是现有技术的一项技术缺陷。
[0004]中国专利技术专利公开文本CN114625799A公开了一种用于数据库灰度发布的方法,其通过补录的方式将补录的数据基于当前数据库表名同步至数据库,其根本不适合大量数据处理的系统,且通过补录的方式,容易导致数据错乱,导致数据库错误。
[0005]因此,现有的灰度发布技术,如果按照端来分的话,大致可以分为web前端、移动端、服务后端的灰度。以服务后端为例,又包括应用服务集群和数据库存储两大类。而服务后端灰度不论是在网关层面按照用户(即租户,租用服务的用户)请求进行灰度发布,还是在业务逻辑中增加特性开关固定灰度用户名单,更多考虑的是从流量入手,使用流量标将应用服务进行灰度隔离,但是对于现在的多租户场景下,所有用户共享数据库且共享数据库表结构,对于有强一致要求的数据存储服务,以及从后端发起的后台任务,如定时任务、消息队列的任务消费,都没有比较好的方案用一套数据去进行灰度验证。
[0006]此外,现有技术中,都是盲目的开辟一个较大的缓存供灰度环境使用,没有考虑到用于灰度发布的租户的活跃度等,从而缓存利用效率低。

技术实现思路

[0007]本专利技术针对上述现有技术中一个或多个技术缺陷,提出了如下技术方案。
[0008]一种用于多租户的灰度发布方法,该方法包括:选择步骤,基于灰度选择策略从所述多租户中选择用于灰度发布的租户集合;共享步骤,在灰度环境中设置灰度元数据层,在正式环境中设置正式元数据层,基于所述灰度元数据层和正式元数据层共享一个数据库;所述灰度元数据层为第一缓存层,所述正式元数据层为第二缓存层,所述第一缓
存层的大小为第二缓存层大小的C倍,其中,,e为自然常数,d为大于零的自然数,n为租户集合中的租户数量,m为所有租户的数量,S为正式元数据层所有缓存key的个数,t为正式元数据层每个租户对应的缓存key的个数;发布步骤,在确定进行灰度发布的变更点后,基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔离,在所述灰度环境中使用所述租户集合中的租户进行任务执行,所述任务执行完毕后,此时,正式环境基于正式元数据层仍然能对同一张物理表进行任务操作。
[0009]更一步地,所述灰度选择策略为以下之一或其组合:优质活跃租户、本次迭代解决的线上问题对应的租户、本次迭代新增功能的潜在租户。
[0010]更一步地,用于灰度发布的数据库脚本分为变更数据库表结构的DDL语句和变更表数据的DML语句。
[0011]更一步地,在确定进行灰度发布的变更点后,需要对用于灰度发布的数据库脚本进行向下兼容性判断:获取待发布的数据库脚本,判断所述数据库脚本是否为DDL语句,如果是,则基于预设的兼容规则判断所述数据库脚本是否向下兼容,如果是,则通过审核。
[0012]更一步地,所述基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔离的操作为:首先执行数据库脚本以更新数据库,然后清空灰度环境中的灰度元数据层中的灰度元数据,再设置灰度环境的参数,利用服务重启的时机,将新的灰度元数据缓存加载到灰度环境中的灰度元数据层中,此时正式环境中的正式元数据层中的正式元数据没有被清空,从而基于灰度元数据及正式元数据实现了灰度环境和正式环境的隔离。
[0013]更一步地,所述灰度环境中的灰度消息添加灰度标签,所述正式环境中的正式消息添加正式标签,在灰度环境或正式环境中基于环境参数订阅灰度标签或正式标签进行消息的发送或接收,从而实现灰度环境中的消息与正式环境中的消息的统一调度。
[0014]本专利技术还提出了一种用于多租户的灰度发布装置,该装置包括:选择单元,基于灰度选择策略从所述多租户中选择用于灰度发布的租户集合;共享单元,在灰度环境中设置灰度元数据层,在正式环境中设置正式元数据层,基于所述灰度元数据层和正式元数据层共享一个数据库;发布单元,在确定进行灰度发布的变更点后,基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔离,在所述灰度环境中使用所述租户集合中的租户进行任务执行,所述任务执行完毕后,此时,正式环境基于正式元数据层仍然能对同一张物理表进行任务操作。
[0015]更一步地,所述灰度选择策略为以下之一或其组合:优质活跃租户、本次迭代解决的线上问题对应的租户、本次迭代新增功能的潜在租户。
[0016]更一步地,用于灰度发布的数据库脚本分为变更数据库表结构的DDL语句和变更表数据的DML语句。
[0017]更一步地,在确定进行灰度发布的变更点后,需要对用于灰度发布的数据库脚本
进行向下兼容性判断:获取待发布的数据库脚本,判断所述数据库脚本是否为DDL语句,如果是,则基于预设的兼容规则判断所述数据库脚本是否向下兼容,如果是,则通过审核。
[0018]更一步地,所述基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔离的操作为:首先执行数据库脚本以更新数据库,然后清空灰度环境中的灰度元数据层中的灰度元数据,再设置灰度环境的参数,利用服务重启的时机,将新的灰度元数据缓存加载到灰度环境中的灰度元数据层中,此时正式环境中的正式元数据层中的正式元数据没有被清空,从而基于灰度元数据及正式元数据实现了灰度环境和正式环境的隔离。
[0019]更一步地,所述灰度环境中的灰度消息添加灰度标签,所述正式环境中的正式消息添加正式标签,在灰度环境或正式环境中基于环境参数订阅灰度标签或正式标签进行消息的发送或接收,从而实现灰度环境中的消息与正式环境中的消息的统一调度。
[0020]更一步地,所述灰度元数据层为第一缓存层,所述正式元数据层为第二缓存层,所述第一缓存层的大小为第二缓存层大小的C倍,其中,,e为自然常数,d为大于零的自然数,n为租户集合中的租户数量,m为所有租户的数量,S为正式元数据层所有缓存key的个数,t为正式元数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于多租户的灰度发布方法,其特征在于,该方法包括:选择步骤,基于灰度选择策略从所述多租户中选择用于灰度发布的租户集合;共享步骤,在灰度环境中设置灰度元数据层,在正式环境中设置正式元数据层,基于所述灰度元数据层和正式元数据层共享一个数据库;所述灰度元数据层为第一缓存层,所述正式元数据层为第二缓存层,所述第一缓存层的大小为第二缓存层大小的C倍,其中,,e为自然常数,d为大于零的自然数,n为租户集合中的租户数量,m为所有租户的数量,S为正式元数据层所有缓存key的个数,t为正式元数据层每个租户对应的缓存key的个数;发布步骤,在确定进行灰度发布的变更点后,基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔离,在所述灰度环境中使用所述租户集合中的租户进行任务执行,所述任务执行完毕后,此时,正式环境基于正式元数据层仍然能对同一张物理表进行任务操作。2.根据权利要求1所述的方法,其特征在于,所述灰度选择策略为以下之一或其组合:优质活跃租户、本次迭代解决的线上问题对应的租户、本次迭代新增功能的潜在租户。3.根据权利要求2所述的方法,其特征在于,用于灰度发布的数据库脚本分为变更数据库表结构的DDL语句和变更表数据的DML语句。4.根据权利要求3所述的方法,其特征在于,在确定进行灰度发布的变更点后,需要对用于灰度发布的数据库脚本进行向下兼容性判断:获取待发布的数据库脚本,判断所述数据库脚本是否为DDL语句,如果是,则基于预设的兼容规则判断所述数据库脚本是否向下兼容,如果是,则通过审核。5.根据权利要求4所述的方法,其特征在于,所述基于所述灰度元数据层中的灰度元数据将所述灰度环境与所述正式环境进行隔...

【专利技术属性】
技术研发人员:郑芸王云波李正
申请(专利权)人:畅捷通信息技术股份有限公司
类型:发明
国别省市:

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

1