2023年8月22日山东移动Cloud CRM首个灰度+滚动发布版本成功上线,实现支撑系统版本发布“客户无感知、业务零中断、风险更可控”,为后续快速迭代、按需发布奠定坚实基础。
架构复杂度呈指数级跳变、用户规模庞大、业务逻辑复杂,传统发布方式面临巨大挑战:
软件开发过程的不确定性使得软件升级存在问题在所难免,高频次的上线导致出问题的概率也随之增高,急需寻求一种有效的技术手段,更早的发现和解决问题、控制问题影响范围。
业务支撑系统逐步云化、微服务化后,规模更加庞大、复杂度更高,频繁的系统升级时常造成服务中断,新旧版本难以平滑演进。
新业务需求日益增多、推出周期越来越短,对业务支撑系统的支撑效率提出了更高的要求,同时新业务发展的快速支撑对版本质量带来极大冲击。
面对挑战,山东移动携手华为公司构建灰度+滚动发布能力,实现业务发布零中断、无感知、更可控:
灰度+滚动演进路线
灰度+滚动方案
版本发布步骤
山东移动在灰度+滚动发布试点过程中,通过多项实践总结归纳出“一个标准、两个工具”的滚动发布模式,为电信行业支撑系统滚动发布提供标准化经验:
一个标准:制定产品灰度标准,从数据层、文件层、接口交互层、架构层四个维度制定可灰标准。
方案设计阶段:
根据灰度标准输出需求设计方案,对于不可灰需求进行严格评审。
避免热表进行DDL操作。
开发阶段:
对于不可灰的需求,代码逻辑需有开关控制,不影响灰度发布。
非灰度参数表和灰度参数表禁止关联操作。
两个工具
一键发布:支持云原生镜像包的一键发布能力,业务部署过程全流程动态展示;业务流量秒级切换,用户无感知。
流量实时监控工具:山东移动公司结合调用链和大数据技术,开发系统流量实时监控工具,实时监控各个地市流量分布情况,动态评估滚动发布地市或中心流量,智能调配流量峰值,将繁忙地市流量分配至空闲地市。
山东移动通过灰度+滚动发布能力建设,在满足客户、渠道和业务全融合快速发展的同时,实现了三项突破:
开发、交付模式突破:打破传统火车版本交付模式,按业务场景开发、上线。在线升级,缩短需求交付周期。
版本发布时间突破:打破业界版本只能夜间发布的规则,实现白天亦可发布版本,确保24小时业务不中断。版本发布“零中断”、“无感知”,提升客户体验满意度。
业务流量切换控制突破:由操作员->营业厅->区县->地市等维度控制灰度流量,改变为按流量百分比控制灰度流量,灰度试点业务范围更接近生产,及时发现问题、控制影响范围。