本篇文章给大家谈谈h5灰度发布系统,以及灰度发布技术对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享h5灰度发布系统的知识,其中也会对灰度发布技术进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
F5提出的“灰度发布”是什么意思呢?
灰度发布是在软件开发过程中交付
h5灰度发布系统的一种方式
F5率先提出在应用交付控制器中支持“灰度发布”,并进一步完善了灰度发布
h5灰度发布系统的实现形式,除支持传统的A/B测试场景外,还可在线复制生产系统的流量到测试系统。在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户-忠诚度较高的种子用户-更大范围的活跃用户-所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,按照中国特色的叫法被冠以“灰度发布”、“灰度放量”、“分流发布”。
请采纳
h5灰度发布系统!
为什么灰度发布又叫金丝雀发布?
作为技术人员,肯定听说过 灰度发布 这个技术术语,它指的是发布版本 (黑) 与线上版本 (白) 之间,能够平滑过渡的一种发布方式。
一般来说,随着一个产品不断地快速迭代开发上线,必然会有一方面要保证线上版本稳定,另一方面又要保证新版本上线的需求,这时候就需要设计一套灰度发布系统,让大部分用户继续使用原来的线上版本,少量用户或内部测试人员使用新版本功能,并且一旦出现问题可以很快的控制影响,如果没有不良的反馈意见,则继续逐步扩大范围,把所有用户都迁移到新版本上面来。
灰度发布可以保证整体业务的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,实现更好的风险控制。
这种发布形式非常实用,包括Google都在使用,并在书中有详细介绍,是不少成长型技术组织和互联网公司的主流发布方式。
金丝雀发布 这个说法其实来自欧美,以前旷工矿工开矿,在下矿洞时面临的一个重要危险就是矿井中的毒气,于是他们想到一个办法来辨别矿井中是否有毒气,矿工们下矿井时随身携带一只金丝雀 (Canary) 。
由于金丝雀对毒气的抵抗能力比人类要弱,在毒气环境下会先挂掉起到预警的作用,这种风险控制背后的原理暗合灰度发布的根本需求,即:
灰度发布的步骤
1)定义目标
2)选定策略h5灰度发布系统:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等
3)筛选用户h5灰度发布系统:包括用户特征、用户数量、用户常用功能、用户范围等
4)部署系统h5灰度发布系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调
5)发布总结h5灰度发布系统:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表
6)产品完善
7)新一轮灰度发布或完整发布
什么是灰度发布
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
使用Nginx 简单实现灰度发布
灰度发布是指在黑与白之间, 能够平滑过渡h5灰度发布系统的一种发布方式. AB test就是一种灰度发布试. 让一部分用户继续使用A, 一部分用户开始使用B, 如果用户对B没有什么反对意见, 那么逐步扩大范围, 把所有用户都迁移到B上面来.
灰度发布可以保证整体系统的稳定, 在初始灰度的时候就可以发现,调整问题, 以保证其影响度.
灰度发布常见一般有三种方式:
本文主要讲解 根据Cookie和来路IP这两种方式来实现简单的灰度发布, Nginx+LUA 这种方式涉及内容太多就不再本文展开了.
根据 Cookie 查询 Cookie 键为 version 的值, 如果该 Cookie 值为 V1 , 则转发到 hilinux_01 , 为 V2 则转发到 hilinux_02 , Cookie 的值都不匹配的情况下, 默认走 hilinux_01 所对应的服务器.
两个服务器分别定义为:
在Nginx里面配置一个映射, $COOKIE_version 可以解析出 Cookie 里面的version字段, $group 是一个变量, {}里面是映射规则.
如果一个 version 为 V1 的用户来访问h5灰度发布系统, $group 就等于 hilinux_01 。在 server 里面使用就会代理到 http://hilinux_01 上。 version 为 V2 的用户来访问h5灰度发布系统, $group 就等于 hilinux_02 。在 server 里面使用就会代理到 http://hilinux_02 上。 Cookie 值都不匹配的情况下默认走 hilinux_01 所对应的服务器。
如果是内部IP,则反向代理到hilinux_02(预发布环境);如果不是则反向代理到hilinux_01(生产环境)。
如果你只有单台服务器,可以根据不同的IP设置不同的网站根目录来达到相同的目的。
到此最基本的实现灰度发布方法就讲解完了,如果要做更细粒度灰度发布可参考ABTestingGateway项目。
蓝绿发布、红黑发布、灰度发布和滚动发布
总结:
蓝绿发布、红黑发布、灰度发布和滚动发布组最终的目标都是避免因发布导致流量的丢失或服务不可用的问题
四种方式均可以做到平滑式升级,在升级过程中服务仍然保持服务的连续性,升级对外界是无感知的。那生产上选择哪种部署方法最合适呢?这取决于哪种方法最适合你的业务和技术需求。如果你们运维自动化能力储备不够,肯定是越简单越好,建议蓝绿发布,如果业务对用户依赖很强,建议灰度发布。如果是K8S平台,滚动更新是现成的方案,建议先直接使用。
蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。
红黑发布: 申请新环境,删除老版本
灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。
滚动发布:按批次停止老版本实例,启动新版本实例。
项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署。B组仍然继续提供服务。
当A组升级完毕,负载均衡重新接入A组,再把B组从负载列表中摘除,进行新版本的部署。A组重新提供服务。
1.如果出问题,影响范围较小;
2.发布策略简单;
3.用户无感知,平滑过渡;
4.升级/回滚速度快。
1.需要准备正常业务使用资源的两倍以上服务器,防止升级期间单组无法承载业务突发;
2.短时间内浪费一定资源成本;
3.基础设施无改动,增大升级稳定性。
当前服务都运行在集群A上
在云上申请一个黑色集群 B,在 B 上部署新版本的服务; 等到 B 升级完成
最后一次性地把负载均衡全部指向 B,并把 A 集群从负载均衡列表中删除,并释放集群 A 中所有机器。
可以看到,与蓝绿部署相比,红黑部署只不过是充分利用了云
计算的弹性伸缩优势,从而获得了两个收益:一是,简化了
流程;二是,避免了在升级的过程中,由于只有一半的服务器提供服务,而可能导致的系统过载问题。
1.从LB摘掉灰度服务器,升级成功后再加入LB;
2.少量用户流量到新版本;
3.如果灰度服务器测试成功,升级剩余服务器。
1.保证整体系统稳定性,在初始灰度的时候就可以发现、调整问题,影响范围可控;
2.新功能逐步评估性能,稳定性和健康状况,如果出问题影响范围很小,相对用户体验也少;
3.用户无感知,平滑过渡。
自动化要求高
滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。
1.保证整体系统稳定性,在初始灰度的时候就可以发现、调整问题,影响范围可控;
2.新功能逐步评估性能,稳定性和健康状况,如果出问题影响范围很小,相对用户体验也少;
3.用户无感知,平滑过渡。
自动化要求高
关于h5灰度发布系统和灰度发布技术的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
h5灰度发布系统的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于灰度发布技术、h5灰度发布系统的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~