CN114356401A - 灰度发布方法、装置、电子设备及计算机可读存储介质 - Google Patents
灰度发布方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114356401A CN114356401A CN202210033532.XA CN202210033532A CN114356401A CN 114356401 A CN114356401 A CN 114356401A CN 202210033532 A CN202210033532 A CN 202210033532A CN 114356401 A CN114356401 A CN 114356401A
- Authority
- CN
- China
- Prior art keywords
- experiment
- gray scale
- copy
- release
- service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000009826 distribution Methods 0.000 title description 4
- 238000002474 experimental method Methods 0.000 claims abstract description 66
- 238000004458 analytical method Methods 0.000 claims abstract description 49
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 241000287219 Serinus canaria Species 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000007704 transition Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 241000287231 Serinus Species 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 241000598039 Promethes Species 0.000 claims 1
- 230000000750 progressive effect Effects 0.000 abstract description 10
- 238000012360 testing method Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 241000287127 Passeridae Species 0.000 description 3
- 238000003339 best practice Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了灰度发布方法、装置、电子设备及计算机可读存储介质,方法包括:接收实验请求,并根据所述实验请求为实验对象创建至少两个副本集;定义分析模板,并收集业务数据指标;利用所述分析模板对所述至少两个副本集进行所述业务数据指标的监控,以生成实验结果;根据所述实验结果生成灰度发布策略。本申请能够实现灰度的渐进式发布,且能够自定义分析组件策略。
Description
技术领域
本申请涉及云计算领域,尤其是涉及灰度发布方法、装置、电子设备及计算机可读存储介质。
背景技术
云原生的概念,自2015年由Pivotal首次提出,并与2019年成为行业最热门的词汇。云原生可分解为“云”(Cloud)和“原生”(Native)两个词,当然还隐藏了一个词——“计算”(Computing),因为云原生本质上是一种与云计算(Cloud Computing)相同的计算方式。如今,云计算已经成为企业数字化转型的新的基础设施,同时也是国家“新基建”的核心环节,是物联网和人工智能的赋能平台,从市场发展趋势看,云计算将是未来IT的主流。越来越多的企业逐渐意识到了云服务的专业性和高服务等级协议(SLA),这些企业在数字化转型的过程中将基础设施即服务(IaaS)和平台即服务(PaaS)的通用技术复杂性委托给了云平台,从而能够更好地专注于自身业务逻辑的创新。
渐进式灰度发布是要是按照一定策略选取部分用户,先行体验新版本的应用,通过收集新版本应用的反馈或者是新版本功能、性能、稳定性等指标,进而决定继续放大新版本投放范围直至全量升级或回滚至老版本。渐进式可以保证整体系统的稳定,在初始发布的时候就可以发现、调整问题,以保证其影响度。
中国专利申请CN113301168A提出一种动态策略灰度发布引擎实现请求精准分流方法包括以下步骤:S1、通过灰度发布管控平台进行不同策略下分流规则配置,并实时下发到分流引擎;S2、由分流引擎提取请求特征并与分流规则进行配对,根据配对结果实现精准分流。但该方案的开发力度大,无法通用;而且,并非云原生的方案。
中国专利申请CN113342520A公开了一种基于联邦实现的跨集群远程持续发布方法.,能够用于金融领域或其他领域:主集群接收至少一个应用开发需求信息和所有业务集群传输的工作负载状况信息,并根据所有工作负载状况信息调度各业务集群;业务集群接收主集群发送的业务集群调度指令以及应用开发需求信息,开发对应的应用;通过多集群管理的模式,主集群根据各业务集群的工作负载情况决定如何在不同集群中分配工作负载,将不同的任务指派到不同集群。该方案主要强调发布能力,而不是对发布细节的掌控;而且,同样非云原生的方案。
以上两种方案均无法应对企业复杂的发布需求。鉴于此,有必要对现有渐进式灰度发布方案进行改进。
发明内容
本申请的目的在于提供基于云的灰度发布策略,以保证业务连续性和降低风险。
本申请的目的采用以下技术方案实现:
第一方面,提出一种灰度发布方法,包括:接收实验请求,并根据实验请求为实验对象创建至少两个副本集;定义分析模板,并收集业务数据指标;利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果;根据实验结果生成灰度发布策略。有益效果为:灰度发布采用渐进式发布过程,按照一定的预设阶段发布新版本,对于每一个阶段插入监控以实现自动化测试,通过对收集数据分析确定灰度继续发布或终止,能够实现灰度的渐进式发布,且能够自定义分析组件策略。
可选的,至少两个副本集的属性不同,至少两个副本集包括基线副本集和金丝雀副本集;或者,至少两个副本集包括蓝版副本集和绿版副本集。
可选的,采用Prometheus服务器收集业务数据指标。
可选的,实验对象包括多个pod,通过pod的标签信息区分业务数据指标的类别。
可选的,至少两个副本集包括基线副本集和金丝雀副本集;对应的,利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果包括:
确定基线副本的第一业务数据指标;确定金丝雀副本的第二业务数据指标;利用分析模板对第一业务数据指标和第二业务数据指标进行差异对比,生成比对结果;根据业务设定阈值和比对结果生成实验结果,实验结果包括实验发布成功和实验发布失败。
可选的,根据实验结果生成灰度发布策略包括:响应于实验结果为实验发布成功,利用镜像更新事件触发自动更新金丝雀版本部署;采用逐步过渡的方式进行金丝雀版本发布。
可选的,逐步过渡的方式包括:控制路由到金丝雀的负载处于设定流量阈值范围内,流量阈值为5%-10%;或者,间隔设定时间增加金丝雀版本发布的权重。
可选的,在收集业务数据指标前,方法还包括:判断实验对象是否包含Http协议;响应于实验对象不包含Http协议,将实验对象对应的功能设置为Sidecar模式。
可选的,实验对象的业务包括多个业务类型表,且至少两个业务类型表的调用频率不同。
第二方面,提出一种灰度发布装置,包括:副本集创建模块,用于接收实验请求,并根据实验请求为实验对象创建至少两个副本集;业务数据指标生成模块,用于定义分析模板,并收集业务数据指标;实验结果生成模块,用于利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果;发布策略模块,用于根据实验结果生成灰度发布策略。
第三方面,本申请提供了一种电子设备,所述电子设备包括存储器、处理器以及用于执行任务的硬件模组,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现:
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
附图说明
下面结合附图和实施例对本申请进一步说明。
图1是本申请一实施例提供的灰度发布方法的流程示意图;
图2是本申请另一实施例提供的灰度发布方法的流程示意图;
图3是本申请一实施例的实验阶段示意图;
图4是本申请一实施例的根据实验结果生成灰度发布策略流程示意图;
图5是本申请一实施例的灰度发布阶段示意图;
图6是本申请又一实施例提供的灰度发布方法的流程示意图;
图7是本申请一实施例灰度发布装置结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图;
图9是本申请实施例提供的一种用于实现灰度发布的程序产品的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
为了降低线上产品在新版本发布时可能引发的风险,通常采取灰度发布的策略,通过在黑与白之间的平滑过渡,既可以保证系统运行的稳定性,有可以在初始灰度的时候就能够及时发现、并调整可能引发风险的各类问题,以保证其影响度,提升产品以及功能的稳定性,降低产品由于版本升级对用户产生的不利影响,缩短生产发布时系统的停机时长,还可以做到生产环境的无缝切换,同时开发测试人员也无需在在线值守对生产功能进行在线验证,对某些需隔日才能发现的缺陷或者漏洞可以提早发现。灰度发布通常采用渐进式发布过程,该渐进式布过程按照一定策略选取部分用户/发布对象,先行体验新版本的应用,通过收集新版本应用的反馈或者是新版本功能、性能、稳定性等指标,进而决定继续放大新版本投放范围直至全量升级或回滚至老版本。渐进式可以保证整体系统的稳定,在初始发布的时候就可以发现、调整问题,以保证其影响度。
本申请针对灰度发布过程中,企业发布需求复杂的问题,提出一种借助开源云原生解决方案Argo Rollouts,结合最佳实践经验,指定良好的发布和分析策略,以满足企业复杂发布需求。请参见图1,本申请实施例提供了一种灰度发布方法,所述方法包括步骤S101~S104。
步骤S101、接收实验请求,并根据实验请求为实验对象创建至少两个副本集。示例性的,实验对象可以是待发布的程序产品,其对应所有用户中的部分用户,例如:实验对象可包括多种线上业务中用于实现未升级的服务功能的程序产品和/或用于实现已升级的服务功能的程序产品。
可选的,实验对象创建的两个或更多个副本副本集的属性不同。例如,两个副本集包括基线副本集和金丝雀副本集;或者,两个副本集包括蓝版副本集和绿版副本集。
可选的,可借助开源云原生解决方案Argo Rollouts,结合最佳实践经验,指定良好的发布和分析策略。满足企业复杂发布需求。在一个实施例中,Argo Rollouts是一个Kubernetes Operator实现,Rollout是Deployment资源的直接替代品,它提供额外的blueGreen(蓝绿)和canary(金丝雀)更新策略,这些策略可以在更新期间创建AnalysisRuns,可以推进更新,或中止更新。本申请实施例通过定制Rollouts的Analysis组件策略,为更好的利用发挥灰度发布能力。
在一个实施例中,副本集的创建通过设置自定义资源(Experiment CRD)实现:用户临时运行一个或多个副本集(ReplicaSet),启动AnalysisRuns,确认新的ReplicaSet是否按预期运行自定义资源还是使用自定义资源定义的。创建CRD后,Kubernetes API服务器会为CRD中指定的每个版本创建一个RESTful路径。根据CRD文件中定义的范围,该路径可以被整个集群全局访问,也可以仅被特定项目访问。Kubernetes API服务器负责资源生命周期和复制。它的作用类似于原生资源,当一个项目被删除时,所有的自定义资源和原生资源也会被删除。
步骤S102、定义分析模板,并收集业务数据指标。
可选的,业务数据可以为在灰度发布过程中从源服务单元切换至目标服务单元的目标作业。示例性的,每个目标作业对系统所提供的服务功能有稳定性、新功能等不同的需求:如果目标作业需要一个稳定的运行环境,则可以运行在对应功能的部署release版代码的服务单元上,以保证其所需要的稳定性;如果目标作业需要及时使用最新功能,则可以运行在对应功能的部署beta版代码的服务单元上,并对新功能进行测试。
在一个实施例中,可定义FatTesting AnalysisTemplate模板,使用imagecommand执行任务,生成业务特定数据。业务数据指标的收集和存储可采用Prometheus服务器。实验对象对每一个pod会生成各自的状态信息文件podTemplate Hash,分析模板利用这个状态信息文件对不同pod做监控指标的区分。例如,实验对象创建有多个pod,通过pod的标签信息能够区分业务数据指标的类别。
可选的,数据指标可包括常规指标和特殊指标。示例性的,常规指标能够从Prometheus服务器获取,该常规指标通过AnalysisTemplate的web provider从url获取;特殊指标可以是不支持Http协议的业务服务,该特殊指标可以使用AnalysisTemplate的jobprovider定制image command获取。
步骤S103、利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果。可选的,业务高流量阶段收集的数据会更加贴合实际,定义CompareAnalysisTemplate模板作为分析模板,该分析模板能够对副本集的监控指标做差异对比,以生成实验结果。
步骤S104、根据实验结果生成灰度发布策略。可按用户业务特定阈值来决定实验发布成功,继续下一步,还是立即终止。
在一个实施例中,根据实验结果生成灰度发布策略包括:若实验结果小于用户业务特定阈值,则判定实验发布阶段执行成功,继续执行后续步骤,如继续下一步的灰度发布;若实验结果大于用户业务特定阈值,则判定实验发布阶段执行失败,则通知测试人员人工介入审核,若经测试人员判断执行测试脚本失败原因是测试脚本问题或可容忍的问题等,不会影响本次发布,则审核通过,继续执行后续步骤;若实验结果大于用户业务特定阈值,且测试人员判断执行脚本失败原因是重大代码缺陷等,会影响本次发布,则审核未通过,中断后续步骤。
本申请实施例中,灰度发布采用渐进式发布过程,按照一定的预设阶段发布新版本,对于每一个阶段插入监控以实现自动化测试,通过对收集数据分析确定灰度继续发布或终止。通过借助开源云原生解决方案Argo Rollouts,结合最佳实践经验,指定良好的发布和分析策略,能够满足企业复杂发布需求。本申请实施例通过定制Rollouts的Analysis组件策略,能够保证业务连续性和降低风险,从实验、流量和时间三个方面的组合,达到高效、安全和稳定发布的目的。云原生应用的发布,kubernetes默认的策略比较简单,通过本方案策略,能够实现比较复杂的发布策略,对线上业务可以起到很好的保护作用。
在一个实施例中,用户希望在线上流量进来之前,需做要一系列准备,比如预热、初始化等操作,通过使用蓝绿部署,在绿版本上完成相应的操作,然后再切换接收线上流量。即:在不停止老版本服务的前提下,发布新版本服务然后进行测试,确认新版本服务没有问题后将流量切到新版本,然后删除老版本实例。本申请实施例包括实验阶段和灰度阶段。
本申请实施例中,灰度发布为云原生应用的发布,Kubernetes默认的策略比较简单,能够实现比较复杂的发布策略,对线上业务可以起到很好的保护作用。
如图2所示为本申请另一实施例的灰度发布方法的流程示意图。具体步骤包括:
步骤201、接收实验请求,并根据实验请求为实验对象创建基线副本集和金丝雀副本集。
在此实施例中,实验对象创建了两个副本集(replicaset),其中:第一个作为基线副本集;第二个为金丝雀副本集。每个副本集有1个镜像(replica),服务器后台运行20-60分钟。
步骤202、定义分析模板,确定基线副本的第一业务数据指标,确定金丝雀副本的第二业务数据指标。
如图3所示,在实验阶段,定义FatTesting AnalysisTemplate模板作为分析模板,使用image command执行任务,生成业务特定数据,Prometheus服务器收集和存储这些数据指标。在此实施例中,FatTestingAnalysisTemplate能够定义了如何执行金丝雀分析,例如它应该执行的指标、频率以及被视为成功或失败的值。集成实验阶段能够为组合多种分析,开启两种及以上业务测试,避免测试影响线上环境。
实验对象通过对每一个pod生成各自的状态信息podTemplateHash,分析模板利用这个状态信息对两个pod做监控指标的区分,以区分第一业务数据指标和第二业务数据指标。
在一个实施例中,实验对象的业务包括多个业务类型表,且至少两个业务类型表的调用频率不同。例如:可根据业务的使用频率确定,对于比较重要的但是使用频率不高的实验对象的业务API,Prometheus服务器查询使用每个API操作权重的总和而不是总平均值;对于使用频率高的实验对象的业务API,Prometheus服务器查询使用每个API操作权重的平均值。
步骤203、利用分析模板对所述第一业务数据指标和第二业务数据指标进行差异对比,生成比对结果。
可选的,业务高流量阶段收集的数据会更加贴合实际,定义比对CompareAnalysisTemplate模板,对基线副本和金丝雀副本生成的监控指标做差异对比,生产对比结果。
步骤204、根据业务设定阈值和所述比对结果生成实验结果。实验结果包括实验发布成功和实验发布失败。
可按用户业务特定阈值来决定实验发布成功,继续下一步,还是立即终止。本申请实施例的方案简单易行,避免过多开发,能够是企业快速应用起来,节省企业成本。
在一个实施例中,如图4所示,根据实验结果生成灰度发布策略包括:
步骤401、响应于实验结果为实验发布成功,利用镜像更新事件触发自动更新金丝雀版本部署;
步骤402、采用逐步过渡的方式进行金丝雀版本发布。
在此实施例中,以用户想在生产环境使用小流量验证一段时间,确认稳定运行,没有问题(Bug)之后,再全量发布,那么可以使用金丝雀部署。小流量发布后,暂停验证,查看日志,观测应用指标,然后决定是回滚还是继续推进。如图5所示,当实验发布成功以后,就可以继续下一步的灰度发布了。当然不管是实验阶段还是发布阶段,都需要收集监控指标。业务团队打包的新镜像版本,也就是金丝雀版本。可以理解的,此时如果要发布到生产环境,还是需要采取逐步过渡的阶段。要分离出一部分流量给到金丝雀。在此实施例中,设定流量阈值为5%-10%,即:路由到金丝雀的负载应不小于流量的5%,且不得超过流量的10%。
可以理解的,在此实施例中,快速试错快速失败,对开发人员是非常有用的。这一阶段的发布,采用15秒钟收集一次监控指标,从暴露的服务指标中收集60个数据点,总共15分钟。就可以决定要不要进行下一步。
定义Regression-Testing AnalysisTemplate,启动AnalysisRun,查询Prometheus服务器,以1分钟间隔/样本测量Http成功率,后台一直运行,一直持续到完成或者出现失败。如果测量到的指标小于95%,并且有三个这样的测量值,则分析被视为失败。失败后Rollout会自动中止,将Canary流量权重设置为零。如果没有问题,则认为Rollout是成功的,然后控制器会停止运行分析。
本实施例中设置step的数量定义为五步,每10分钟逐渐将Canary权重增加20%,直到达到100%。完成了发布任务后,定义notifications的webhook service,触发外部事件或者发送通知。
在一个实施例中,可提供选项,通过该选项在灰度发布阶段跳过对新版本的金丝雀分析,这对于紧急修复生产错误特别有用,因为生产错误无法等待很久再发布该版本。
在一个实施例中,用户想慢慢的放进生产流量,那么可以使用金丝雀部署。定义多步骤(steps),慢慢调大权重。如图6所示,包括:
步骤601、接收实验请求,并判断实验对象是否包含Http协议。
步骤602、响应于实验对象不包含Http协议,将实验对象对应的功能设置为Sidecar模式,并为实验对象创建至少两个副本集。
步骤603、对至少两个副本集进行业务数据指标的监控,以生成实验结果;
步骤604、响应于实验结果为实验发布成功,在灰度阶段间隔设定时间增加金丝雀版本发布的权重。
本申请实施例在业务服务没有使用Http,可以使用Sidecar模式,集成通用容器,有助于统一服务中使用的指标。灰度发布的需要采用渐进式发布过程,每一个阶段都插入监控以实现自动化测试,然后收集数据纳入分析策略,最后决定是继续发布还是终止并清理现场。本申请实施例从实验,流量,时间三个方面的组合,达到高效、安全、稳定发布的目的。
参见图7,本申请实施例还提供了一种灰度发布装置,其具体实现方式与上述方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。所述装置包括:副本集创建模块710、业务数据指标生成模块720、实验结果生成模块730和发布策略模块740。其中,副本集创建模块710用于接收实验请求,并根据实验请求为实验对象创建至少两个副本集;业务数据指标生成模块720,用于定义分析模板,并收集业务数据指标;实验结果生成模块730,用于利用分析模板对少两个副本集进行业务数据指标的监控,以生成实验结果;发布策略模块740,用于根据实验结果生成灰度发布策略。
在一个实施例中,副本集创建模块710创建的两个副本集的属性不同,该两个副本集可包括基线副本集和金丝雀副本集;或者,该两个副本集包括蓝版副本集和绿版副本集。
在一个实施例中,业务数据指标生成模块720采用Prometheus服务器收集业务数据指标。实验对象包括多个pod,业务数据指标生成模块720通过pod的标签信息区分业务数据指标的类别。实验对象的业务可包括多个业务类型表,且至少两个业务类型表的调用频率不同。
在一个实施例中,至少两个副本集包括基线副本集和金丝雀副本集。对应的,实验结果生成模块730利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果包括:确定基线副本的第一业务数据指标;确定金丝雀副本的第二业务数据指标;利用分析模板对第一业务数据指标和第二业务数据指标进行差异对比,生成比对结果;根据业务设定阈值和比对结果生成实验结果,其中,实验结果包括实验发布成功和实验发布失败。
在一个实施例中,发布策略模块740根据实验结果生成灰度发布策略包括:
响应于实验结果为实验发布成功,利用镜像更新事件触发自动更新金丝雀版本部署;采用逐步过渡的方式进行金丝雀版本发布。可选的,逐步过渡的方式包括:控制路由到金丝雀的负载处于设定流量阈值范围内,所述流量阈值为5%-10%;或者,间隔设定时间增加所述金丝雀版本发布的权重。
在一个实施例中,灰度发布装置还包括模式修改模块700,用于在收集业务数据指标前,判断实验对象是否包含Http协议;以及,响应于实验对象不包含Http协议,将实验对象对应的功能设置为Sidecar模式。
参见图8,本申请实施例还提供了一种电子设备200,电子设备200包括至少一个存储器210、至少一个处理器220以及连接不同平台系统的总线230。
存储器210可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)211和/或高速缓存存储器212,还可以进一步包括只读存储器(ROM)213。
其中,存储器210还存储有计算机程序,计算机程序可以被处理器220执行,使得处理器220执行本申请实施例中上述任一项方法的步骤,其具体实现方式与上述方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。存储器210还可以包括具有一组(至少一个)程序模块215的程序/实用工具214,这样的程序模块215包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
相应的,处理器220可以执行如下计算机程序:接收实验请求,并根据实验请求为实验对象创建至少两个副本集;定义分析模板,并收集业务数据指标;利用分析模板对至少两个副本集进行业务数据指标的监控,以生成实验结果;根据实验结果生成灰度发布策略。
总线230可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备240例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序被执行时实现:
接收实验请求,并根据实验请求为实验对象创建至少两个副本集;定义分析模板,并收集业务数据指标;利用分析模板对至少两个副本集进行所述业务数据指标的监控,以生成实验结果;根据实验结果生成灰度发布策略。
图9示出了本实施例提供的用于实现上述方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品300不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品300可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,其设置有的实用进步性,已符合专利法所强调的功能增进及使用要件,本申请以上的说明及附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。
Claims (12)
1.一种灰度发布方法,其特征在于,包括:
接收实验请求,并根据所述实验请求为实验对象创建至少两个副本集;
定义分析模板,并收集业务数据指标;
利用所述分析模板对所述至少两个副本集进行所述业务数据指标的监控,以生成实验结果;
根据所述实验结果生成灰度发布策略。
2.根据权利要求1所述的灰度发布方法,其特征在于,所述至少两个副本集的属性不同,所述至少两个副本集包括基线副本集和金丝雀副本集;或者,所述至少两个副本集包括蓝版副本集和绿版副本集。
3.根据权利要求1或2所述的灰度发布方法,其特征在于,采用Promethe us服务器收集业务数据指标。
4.根据权利要求1所述的灰度发布方法,其特征在于,所述实验对象包括多个pod,通过所述pod的标签信息区分所述业务数据指标的类别。
5.根据权利要求2所述的灰度发布方法,其特征在于,所述至少两个副本集包括基线副本集和金丝雀副本集;
对应的,利用所述分析模板对所述至少两个副本集进行所述业务数据指标的监控,以生成实验结果包括:
确定所述基线副本的第一业务数据指标;
确定所述金丝雀副本的第二业务数据指标;
利用所述分析模板对所述第一业务数据指标和第二业务数据指标进行差异对比,生成比对结果;
根据业务设定阈值和所述比对结果生成实验结果,所述实验结果包括实验发布成功和实验发布失败。
6.根据权利要求1所述的灰度发布方法,其特征在于,根据所述实验结果生成灰度发布策略包括:
响应于所述实验结果为实验发布成功,利用镜像更新事件触发自动更新金丝雀版本部署;
采用逐步过渡的方式进行金丝雀版本发布。
7.根据权利要求6所述的灰度发布方法,其特征在于,所述逐步过渡的方式包括:
控制路由到金丝雀的负载处于设定流量阈值范围内,所述流量阈值为5%-10%;或者,
间隔设定时间增加所述金丝雀版本发布的权重。
8.根据权利要求1所述的灰度发布方法,其特征在于,在收集业务数据指标前,所述方法还包括:
判断所述实验对象是否包含Http协议;
响应于所述实验对象不包含Http协议,将所述实验对象对应的功能设置为Sidecar模式。
9.根据权利要求4至8任一项所述的灰度发布方法,其特征在于,所述实验对象的业务包括多个业务类型表,且至少两个业务类型表的调用频率不同。
10.一种灰度发布装置,其特征在于,包括:
副本集创建模块,用于接收实验请求,并根据所述实验请求为实验对象创建至少两个副本集;
业务数据指标生成模块,用于定义分析模板,并收集业务数据指标;
实验结果生成模块,用于利用所述分析模板对所述至少两个副本集进行所述业务数据指标的监控,以生成实验结果;
发布策略模块,用于根据所述实验结果生成灰度发布策略。
11.一种电子设备,所述电子设备包括存储器、处理器以及用于执行任务的硬件模组,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-9任一项方法的步骤。
12.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210033532.XA CN114356401A (zh) | 2022-01-12 | 2022-01-12 | 灰度发布方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210033532.XA CN114356401A (zh) | 2022-01-12 | 2022-01-12 | 灰度发布方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356401A true CN114356401A (zh) | 2022-04-15 |
Family
ID=81110160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210033532.XA Pending CN114356401A (zh) | 2022-01-12 | 2022-01-12 | 灰度发布方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356401A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580855A (zh) * | 2020-04-09 | 2020-08-25 | 上海淇毓信息科技有限公司 | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN110688134A (zh) * | 2019-08-29 | 2020-01-14 | 阿里巴巴集团控股有限公司 | 灰度发布的方法及装置 |
CN111580855A (zh) * | 2020-04-09 | 2020-08-25 | 上海淇毓信息科技有限公司 | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 |
CN112100055A (zh) * | 2020-08-13 | 2020-12-18 | 浙江大学 | 一种基于代码覆盖率的灰度发布度量方法 |
-
2022
- 2022-01-12 CN CN202210033532.XA patent/CN114356401A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN110688134A (zh) * | 2019-08-29 | 2020-01-14 | 阿里巴巴集团控股有限公司 | 灰度发布的方法及装置 |
CN111580855A (zh) * | 2020-04-09 | 2020-08-25 | 上海淇毓信息科技有限公司 | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 |
CN112100055A (zh) * | 2020-08-13 | 2020-12-18 | 浙江大学 | 一种基于代码覆盖率的灰度发布度量方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580855A (zh) * | 2020-04-09 | 2020-08-25 | 上海淇毓信息科技有限公司 | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 |
CN111580855B (zh) * | 2020-04-09 | 2023-11-14 | 上海淇毓信息科技有限公司 | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9665472B2 (en) | Auto-deployment and testing of system application test cases in remote server environments | |
EP2008400B1 (en) | Method, system and computer program for the centralized system management on endpoints of a distributed data processing system | |
US9811443B2 (en) | Dynamic trace level control | |
US7594219B2 (en) | Method and apparatus for monitoring compatibility of software combinations | |
US8458690B2 (en) | Automated software deployment triggered by state differences in distributed systems | |
US11176030B2 (en) | Conducting automated software testing using centralized controller and distributed test host servers | |
CN109120678A (zh) | 用于分布式存储系统的服务托管的方法和装置 | |
US20160357660A1 (en) | Early risk identification in devops environments | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
US20050086333A1 (en) | Distributed autonomic solutions repository | |
US20160360006A1 (en) | Management of connections within a messaging environment based on the statistical analysis of server responsiveness | |
KR20210049033A (ko) | 결함 주입 방법과 장치, 전자 기기 저장매체 및 프로그램 | |
US20170123777A1 (en) | Deploying applications on application platforms | |
CN111580855B (zh) | 一种基于全流程灰度发布的策略发布方法、系统和电子设备 | |
US20160179570A1 (en) | Parallel Computing Without Requiring Antecedent Code Deployment | |
CN115812298A (zh) | 供应故障的区块链管理 | |
US20200358648A1 (en) | Continuous monitoring of network devices during maintenance | |
CN114356401A (zh) | 灰度发布方法、装置、电子设备及计算机可读存储介质 | |
CN113297081A (zh) | 一种持续集成流水线的执行方法和装置 | |
CN116450464A (zh) | 运维管理方法、系统及设备 | |
CN115964302A (zh) | 一种数据测试的方法和装置 | |
CN113535560B (zh) | 测试执行方法、装置、存储介质和计算设备 | |
CN115291928A (zh) | 多种技术栈的任务自动集成方法、装置及电子设备 | |
CN113360368B (zh) | 一种软件性能测试的方法和装置 | |
US11176024B1 (en) | Software patch application and testing optimization |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220415 |