背景
\\在这个移动互联网日渐成熟的今天,手机端流量占比高达85%。大家为了抢夺用户手机屏幕上的一席之地,杀成红海,产品的极限飙车、急速迭代。整个系统的日趋复杂可是研发时间一再压缩,变成了移动产品质量的达摩克利斯之剑。
\\对于Native App来讲,这个问题将变得异常严重,任何一个线上的质量问题修复的成本非常高昂,甚至还要依赖外力来解决。
\\在这样的环境下,移动端版本灰度发布的价值突显而出:为待发布的移动端版本提供快捷和可控范围的生产环境验证,以确认版本质量是否符合用户和业务的要求。
\\打造快捷和可控的生产验证,对于移动端来讲需要一个完整的灰度解决方案。相比其他移动端的灰度方案,苏宁金融的方案既包括移动APP环节的灰度,也包括移动网关到整个APP后端服务环节的灰度,实现了在真实生产环境下,苏宁金融APP全链路的灰度,如下图:
\\ \\图1 苏宁金融APP全链路灰度
\\接下来我们将分两部分详细阐述: APP网关以及APP后端服务灰度和 APP灰度系统。
\\1.APP网关以及APP后端服务灰度
\\随着移动端用户数量的增长,移动后端服务发布出现的事故影响面越来越大,往往可能一个测试没覆盖的低级错误造成大面积线上用户不可使用的故障。
\\在不断的填坑中,我们发现移动服务端发布存在以下三大问题:
\\- 影响范围不可控。一旦发布到生产,特别是一些特别重要的服务的发布,如登录、首页、个人中心等。这些服务一旦出问题,会导致所有用户的崩溃。\\t
- 发布后验证的时间节点。为了保证上线后第一时间进行生产验证,我们一般在系统调用较少的时候进行发布(半夜)。开发人员的电话需要24小时待机应对生产验证问题,这对开发人员是一个较大的考验。\\t
- 问题反馈不易,出现生产问题后,只能通过被动的投诉来发现问题,开发人员疲于奔命,产品还要遭到差评。\
我们的思路
\\如何做到生产安全发布呢?我们需要解决以下几个问题:
\\- 减小影响范围:发布后尽量不会影响到正常用户使用,将线上问题的影响范围可控。\\t
- 支持生产环境验证:支持指定人员在指定时间范围内生产环境验证,并支持少量外部用户测试。\\t
- 实时数据分析:实时采集上线后的日志与并进行异常分析告警。\