网易首页 > 网易号 > 正文 申请入驻

实战丨阳光保险灰度发布的最佳实践

0
分享至

文 / 阳光保险集团科技中心 王卓 李冰 杨清华

随着互联网线上业务的快速开展,金融保险企业对信息技术的依赖程度也在逐步提升,业务发展带来的需求快速迭代对IT系统的稳定性与产品上线效率提出了更高要求。传统的系统版本发布存在发布周期长、影响范围大、异常回滚耗时长等问题,这些问题往往会给企业带来巨大的风险和经济损失。

伴随着微服务化和容器化的推广使用,版本发布过程中的风险已得到了大大缓解,但是因版本内容导致的问题依然是影响系统稳定性的重要因素。如何确保在不影响已上线业务的情况下进行升级,实现业务新老版本的平滑过渡,并且避免升级过程中出现问题对用户造成的影响,成为迫切需要解决的问题。目前,针对版本发布稳定性的问题业内已有一些比较成熟的解决方案,如蓝绿发布、滚动发布以及灰度发布等,每种发布策略都有自己的适用场景,我们需要综合可靠性、效率、效果、成本等因素,选择适合本企业的落地方案。本文主要介绍阳光保险使用灰度发布策略的最佳实践。

灰度发布(又名金丝雀发布)是一种能实现软件新旧版本平滑过渡的一种版本发布方式。它的执行方式是在原有软件生产版本可用的情况下,同时部署一个或多个新的版本,使一个软件产品的多个版本同时运行。常用的灰度发布策略是同时部署AB两个版本,让一部分用户继续使用版本A,另一部分用户开始用新版本B,如果版本B用户使用正常,则逐步扩大范围,把所有用户流量都迁移到版本B上面,从而完成 AB版本的平滑过渡。灰度发布可以在初始灰度阶段发现、修改问题,控制升级影响范围,从而保证版本发布过程中系统的稳定运行。

灰度发布实践

1.灰度发布目的

对于互联网场景来说,灰度发布更多为了优化产品,通过多个版本同时在线的方式让随机用户参与产品测试,从而缩短用户反馈环,及早获得用户意见反馈,以达到完善产品功能,提升产品质量的目的。

与互联网场景不同,金融保险企业应用灰度的目的更多是为了提升版本稳定性,加速产品上线速度,对流量控制的粒度也相对更精细,因此对网关路由策略的管理复杂度和稳定性要求更高。

互联网灰度场景与金融保险的灰度场景的对比如下表所示。结合灰度发布的适用场景和能力,阳光保险引入灰度发布希望达成的目的主要有三点:一是规避发布风险,降低版本迭代影响范围。灰度发布适用于需要控制版本升级影响范围的场景,通过网关的路由配置,控制访问新版本服务的用户范围。二是快速回滚异常版本。灰度发布适用于风险较高的版本,传统全量发布、全量回滚的发布模式耗时长、影响大,而灰度发布通过调整网关路由配置,可将用户流量快速从异常服务切换到正常服务,从而实现异常版本迅速回滚的效果。三是全天候版本发布。灰度发布为白天工作时段生产升级验证提供了条件,无需在夜间版本发布后再耗费大量测试资源做流程验证,可实现版本的快速上线,同时缓解了开发人员的工作压力。

表 互联网灰度场景与金融保险的灰度场景对比表

2.灰度发布原则

根据灰度发布的落地情况,总结灰度发布的原则有以下六点。

(1)不是所有版本都可灰度发布。灰度发布本质还是借助生产流量进行版本验证和试错,由于灰度发布依赖的网关和服务分区主要是基于应用层,考虑系统各层级灰度的实现成本和版本回滚造成的影响,部分场景是不适合进行灰度发布的。不适合灰度发布的场景主要包含:一是监管版本。由于金融保险企业存在较多行业监管要求,往往会要求在某一时间节点将范围内的所有用户都同步使用相同的版本,故对于发布监管需求的版本大部分不适用于灰度发布。二是涉及数据结构变更的版本。某些版本包含底层数据结构变更,如字段删除和字段含义改变,这些情况无法支持新老版本使用相同的数据库,故一些涉及数据结构变更的版本不适用于灰度发布。三是有上下游服务依赖的版本。在微服务的场景下,业务需求的实现往往需要上下游服务协作完成,如果某些版本需要周边服务配合进行版本升级,但周边服务不支持灰度发布,则此版本不适用灰度发布。每次版本发布前,需评审发布方式,不适用灰度发布的版本仍需要通过传统全量发布方式上线。

(2)灰度版本可随时升级。灰度区服务原则上应支持随时进行版本发布。

(3)灰度发布范围可控。灰度区流量切换计划应在版本发布之前与相关负责人及开发人员沟通制定,根据版本需求和用户维度确定灰度范围和版本拉齐周期。原则上灰度版本拉齐生产的周期不宜超过两周。

(4)灰度版本基线独立。灰度区代码需维护至独立代码基线,由版本管理员统一管理。

(5)发布采用滚动升级。由于在灰度版本发布过程中可能存在用户的请求流量,且网关流量切换可能存在迟滞,故版本升级应采用滚动升级的方式将服务分批重启,保证灰度区和生产区的服务可用性。

(6)灰度版本充分验证。灰度发布后需要进行充分的验证,在发布后使用版本相关用户账号和不相关用户账号分别进行流程对照验证。灰度版本上线后,运维及相关开发人员应及时关注生产环境问题反馈,如灰度版本有问题需及时告知对应负责人,并讨论制定后续流量切换计划。

3.技术方案

灰度发布架构体系包括三个主要组成模块,分别是网关、灰度区服务集群、灰度管理平台,分别负责请求路由分发、灰度版本运行以及灰度路由管理。目前,阳光落地的灰度发布场景主要包括基于OpenResty网关的前端请求灰度和基于微服务网关的后端请求灰度。灰度区计算资源以生产区资源1/3的比例规划。

具体实现方面,OpenResty和微服务网关分别解析请求Cookie和Header中包含的JWT(Json Web Token),根据JWT中包含的用户、机构、渠道等信息到缓存或配置中心中获取灰度标识,之后网关根据灰度标识将请求代理至生产或灰度分区的服务集群。除了支持基于用户标识的灰度路由,还实现了百分比流量控制,管理员可以通过灰度管理平台查看和调整用户群的灰度标识和生效百分比,实现多维度的动态路由。

4.灰度发布流程管理

灰度发布的技术实现并不复杂,在引入灰度发布后,还需要制定对应的标准规范来约束灰度发布流程。在经过一段时间的落地实践之后,阳光保险IT团队总结了一套灰度发布流程的最佳实践,主要包含以下三个环节。

(1)代码评审及发布计划制定。版本在测试环境测试通过后,由系统负责人组织代码评审,评审内容主要包括:版本是否适用灰度发布,需切换至灰度区的流量范围,灰度版本验证通过后的拉齐时间,验证不通过的流量切换计划等。评审输出的灰度发布计划维护至需求版本管理系统。

(2)版本发布阶段。灰度区版本滚动升级完毕并确认服务可用后,由版本管理员在灰度管理平台根据灰度发布计划将部分验证工号的请求流量切换至灰度区服务,并进行版本验证。灰度区版本验证通过后,由管理员调整路由策略,逐步将灰度区用户范围扩大至灰度发布计划目标状态。如灰度版本验证出现问题,则由管理员将灰度区用户迁回生产区,之后将灰度区的版本进行回滚或升级补丁版本。

(3)版本发布结束阶段。灰度区版本按计划完成验证周期后,由版本管理员将灰度区版本拉齐至生产区,再将版本相关的所有用户的请求指向到生产区,完成灰度版本发布计划。

5.上线过程与成果

灰度发布最初在阳光产险核心系统落地后,虽然可以实现预期动态流量控制能力,但是也暴露出了灰度策略与发布计划管理缺失的问题,导致一些灰度版本未按预期进行流量试错,影响了灰度发布的效果。随着灰度体系的逐步推广,上下游服务如何保证灰度路由切换步调一致也是亟待解决的问题。针对以上问题,阳光保险内部搭建了统一的灰度管理平台,实现线上化灰度流量控制,并提供针对灰度版本多维度的监控与统计,协助管理人员统筹版本上线节奏,优化灰度发布的效率与效果。

目前阳光产险大部分系统在引入灰度发布体系后,都具备了日间生产版本发布的能力,配合阳光云 DevOps自动化发版流程,实现了版本的快速上线迭代。同时,通过灰度发布请求流量动态路由的能力,较好地控制了版本发布的影响范围,极大降低了版本带来的风险,系统宕机中断时长大幅缩短。

阳光产险核心系统作为最早落地灰度发布体系的系统,常规版本发布时间由过去动辄数小时缩短至从开发提交代码到生产发布最快30分钟内完成上线,月均发布灰度版本200余个,系统不可用时间下降了 92.5%,实现效率与质量的双保障。

灰度发布体系在阳光保险的建立与推广是技术赋能业务的典型体现,是对传统IT系统建设思路的大胆革新。目前灰度发布体系已在阳光产险全面落地,并且逐渐推广至其他各主体子公司,阳光保险IT团队也在落地过程中不断完善灰度体系结构,提升灰度发布覆盖的广度和深度,助力阳光保险数字化运营能力的全面提升。

(栏目编辑 :韩维蜜)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
朗科很无奈:一个赚了4亿元的专利,彻底失效了

朗科很无奈:一个赚了4亿元的专利,彻底失效了

互联网.乱侃秀
2024-05-23 12:22:58
重庆这件事,已经不是践踏公平的问题了

重庆这件事,已经不是践踏公平的问题了

顾礼先生
2024-04-22 15:51:11
发现了没有,不知不觉方向变了,一部分人觉醒了。

发现了没有,不知不觉方向变了,一部分人觉醒了。

诉人世间
2024-04-25 09:16:32
她一生风流成性、老少通吃,撩汉无数,至今55岁却依旧单身

她一生风流成性、老少通吃,撩汉无数,至今55岁却依旧单身

天保影视V3
2024-05-12 06:10:03
东部战区再次环岛军演,吓唬不到台湾,解放台湾时间未到。

东部战区再次环岛军演,吓唬不到台湾,解放台湾时间未到。

梁讯
2024-05-23 19:31:38
不要逼台湾艺人站队?恕我直言,这不是上纲上线,更不是道德绑架

不要逼台湾艺人站队?恕我直言,这不是上纲上线,更不是道德绑架

拾娱先生
2024-05-24 23:10:49
太悲哀了!中国电视把自己玩没了,美国3亿人口一年卖4000多万台

太悲哀了!中国电视把自己玩没了,美国3亿人口一年卖4000多万台

回京历史梦
2024-05-14 14:11:52
刘和平:解放军“快闪式军演”,打了赖清德一个措手不及

刘和平:解放军“快闪式军演”,打了赖清德一个措手不及

直新闻
2024-05-24 20:44:15
恳请中国队退出!巴黎街头屎尿横飞,画面不忍直视,还开奥运会?

恳请中国队退出!巴黎街头屎尿横飞,画面不忍直视,还开奥运会?

林子说事
2024-05-23 19:33:07
中超14轮全部结束!五虎争霸格局确立!多达9支球队有降级危险?

中超14轮全部结束!五虎争霸格局确立!多达9支球队有降级危险?

运动帮
2024-05-27 07:26:12
下赛季英超20强出炉!瓜分超250亿奖金,莱斯特城回来了,要搅局

下赛季英超20强出炉!瓜分超250亿奖金,莱斯特城回来了,要搅局

侃球熊弟
2024-05-27 00:05:33
TVB“人肉发电机”现身广州,面对负评百毒不侵,全力进军内地

TVB“人肉发电机”现身广州,面对负评百毒不侵,全力进军内地

肇庆之星
2024-05-25 00:03:39
惊!俄罗斯军用机场遭袭,两套价值数亿防空系统被彻底摧毁

惊!俄罗斯军用机场遭袭,两套价值数亿防空系统被彻底摧毁

亡海中的彼岸花
2024-05-24 09:03:17
香港市民怒斥:滚!垃圾!

香港市民怒斥:滚!垃圾!

三农老历
2024-05-24 19:14:46
苏州常熟一公司仓库平台塌陷,3名被困人员经抢救无效死亡

苏州常熟一公司仓库平台塌陷,3名被困人员经抢救无效死亡

新京报
2024-05-26 16:50:18
菏泽南站从爆火到冷清的12天:小贩亏钱离开,郭有才回归无期

菏泽南站从爆火到冷清的12天:小贩亏钱离开,郭有才回归无期

上游新闻
2024-05-25 18:14:12
重返欧冠!C罗迎来欧洲球队合同,两大因素推动,高层全力支持

重返欧冠!C罗迎来欧洲球队合同,两大因素推动,高层全力支持

祥谈体育
2024-05-26 10:53:17
撑不住了,我劝大家随时做好1年内零收入的准备!

撑不住了,我劝大家随时做好1年内零收入的准备!

送你一程
2024-04-22 09:04:59
衣锦还乡!弗格回美国 辽篮副总送行 老婆和2个女儿等他凯旋

衣锦还乡!弗格回美国 辽篮副总送行 老婆和2个女儿等他凯旋

淑怡说
2024-05-25 11:49:31
国防部,为何要取消“副部长”?一名正部长够用吗?

国防部,为何要取消“副部长”?一名正部长够用吗?

太空记
2024-05-24 16:48:08
2024-05-27 08:12:49
金融电子化
金融电子化
中国金融信息科技类主导期刊。
1601文章数 457关注度
往期回顾 全部

科技要闻

刘强东:只要拼搏公司永远不会辞退你

头条要闻

媒体:乌军对俄战略预警雷达下手 俄有了使用核武理由

头条要闻

媒体:乌军对俄战略预警雷达下手 俄有了使用核武理由

体育要闻

燃炸了!他们重返英超 疯狂脱衣庆祝

娱乐要闻

霍启仁求婚成功,郭晶晶要有妯娌了

财经要闻

光伏,正发生踩踏……

汽车要闻

底盘升级/首搭DM5.0混动技术 比亚迪秦L到店

态度原创

游戏
房产
艺术
本地
教育

暴雪设计师惊现骚操作,魔兽世界玩家义愤填膺,未来会加强吗?

房产要闻

超高性价比!仁恒长天云汀价格曝光!近500套房源一次砸出!

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

本地新闻

2024沈阳皇姑第二届半程马拉松

教育要闻

试题难度不大,类似题目讲过多次,好好想想解题!

无障碍浏览 进入关怀版