案例名称
基于稳敏双态的移动金融研发体系建设
案例简介
“十四五”期间,银行数字化转型面临新的挑战,各家银行面临金融服务敏捷、灵活、高效等日益增强的业务挑战。传统软件开发最早是以瀑布模式为主,到了本世纪初软件开发模式组件开始转变为敏捷开发,各种敏捷开发框架比如Scrum、Kanban等逐一发布,逐步演进到DevOps,软件开发模式也发展到了“开发运维一体化”的阶段,主要强调打破开发、运维之间的界限。
随着我行业务需求的递增和不断更新迭代,对移动端的开发质量和效率要求也随之提高。我行基于“统一标准规范,建自动化流程”的建设理念,持续推进移动端研发质量效能体系的建设,手机银行作为全行级的移动端APP,移动金融研发体系的建设为其他移动端提供了一套“可复制,可共享,可落地”的解决方案、方法论或最佳实践体系,为“数字农商”建设提供了数字化的“炮火支援”。
本项目基于敏稳双态的移动金融研发体系建设,制定标准研发流程规范,统一工具平台,建立一站式DevOps系统,提升研发效率,完善代码质量管控水平,提升需求开发的管理质量,助力我行移动端研发由传统瀑布开发模式向敏捷开发模式转型,以应对快速迭代的业务需求。我行移动金融研发体系实施按照“试点建设、全面推广”的原则,围绕实际业务场景需求,已完成对手机银行移动端研发质量效能的提升,实现了对敏稳双态的完美支持。
创新技术/模式应用
我行利用移动研发协同平台,提供从“项目->需求->开发->测试->集成->发布”全流程的协同服务支撑,满足产品经理、开发、测试等不同角色的使用需求,实现持续集成与敏捷开发,助力企业提升移动端研发效率。移动研发协同平台主要包含一站式DevOps工具集和支持应用蓝绿发布两个创新点。
一、一站式DevOps工具集
一站式DevOps工具集
区别于服务端DevOps针对服务端代码的编译、发布,移动研发协同平台可以:
一键触发打包构建,产品经理、测试人员也可打包;
打包后生成安装二维码,手机扫码即可安装。
移动研发协同平台的产品特点如下:
企业级场景深度应用:针对企业级项目人员众多、流程冗长等复杂场景,提供精细化的角色、权限管理,并支持深度对接企业现有内部系统
研发管理高效协同:为企业大型App开发,多人/多模块/多迭代协作提供高效协同工具,科学管控人员、代码、迭代及产品版本
研发流程全面覆盖:全面覆盖产品规划、开发、构建、验证、集成等项目环节,且各环节从不同角度提供了多款产品,助力全方位掌控项目全局
流程任务驱动:按照开发过程中的核心流程来驱动整个研发流程,在流程的不同阶段用任务驱动进程,确保项目稳步快速推进
支持多种包类型:支持App版本构建,模块包,离线包,热修复,小程序包等各种包类型,并与mPaaS框架,发布深度集成
移动研发协同平台核心功能如下:
需求版本管理:为产品需求、项目计划及版本管理等环节提供简洁、方便的管理平台。
研发流程管理:为项目研发阶段的人员管理,及开发、构建、测试、集成等研发环节提供管理平台。
代码构建管理:提供代码库,为代码扫描、工程构建提供平台支持,并为三方包、证书等依赖物提供平台托管。
用例缺陷管理:为产品缺陷的创建、提交、跟进及测试用例等提供管理平台。
消息通知触达:提供完善的消息触达能力,提升各管理模块任务处理效率。
通过这样一整套的高可用、高性能的一站式DevOps工具集,将移动端研发质控流程由系统自动化对接、构建、编译、部署,落实代码扫描机制,大幅缩短研发生命周期,提升研发效率和质量。
我行移动端研发质量效能体系的初衷是打破组织壁垒,建设一站式DevOps系统,提高移动端质量,安全、合规、研发协同效率,建设过程可提炼四点经验进行分享。
(1)流程贯通,建立一站式DevOps系统。
通过构建部署平台、质量管理平台、开发测试平台以及安全加固平台之间相互打通与融合,补齐Android、iOS、H5三端项目管理、需求管理、缺陷管理、打包构建、安全加固等功能,实现一站式DevOps系统。
(2)统一管控,嵌入流程审批机制。
通过质量管理平台的代码扫描工具,在构建前对工程代码进行扫描,将扫描结果同步开发测试平台,并嵌入开发测试质量管理流程卡点进行有效管控,强制开发修复代码缺陷,从而减少代码中的潜在缺陷,提高代码编写规范,确保缺陷修复完成才能打包构建。
(3)版本安全,减少人工干预。
通过集成安全平台,实现客户端产物自动进行加固处理,减少构建产物的落地次数和人工干预的次数。并通过平台通用管理工程证书文件和添加发布审核,提高发布安全性合规性。
(4)分工协作,提高研发协同效率。
通过建立移动端研发质量效能体系的协作流程规范,理清并划分各科室职责,合理分工协作,提高研发协同效率和系统质量。
二、手机银行App蓝绿发布
在移动APP的发布架构上实施灰度+蓝绿发布系统,改善我们的发布流程并减少风险,该方案将包括以下关键功能和组件:
1)蓝绿集群路由分发器
app请求头信息会带该次请求是路由到哪个(蓝/绿)区的集群,路由机制由mpaas控制,通过请求头router值判断,如router=A走蓝区集群,router=B走绿区集群。
2)蓝绿流量控制器
实时修改白名单/非白名单用户分别路由到蓝绿区集群,实现蓝绿流量平滑切换。
3)白名单规则维护:
白名单规则:按手机号/设备id/用户id取模,运营端可以修改白名单规则,修改成功后,用户下一次登录才会刷新白名单标记,支持App从mpaas拉取h5灰度离线包白名单,完全依赖后端的白名单规则。
蓝绿发布切换流程
通过蓝绿发布可以极大的提高了手机银行App在发布效率、系统可维护性、降低故障率等方面的能力,具体如下:
1)提高发布效率:蓝绿发布可以任何时候投版,加速新版本的上线,这提高了发布效率。
2)改进系统可维护性:蓝绿发布可以促使系统更易维护,通过平滑的流量切换,能快速回滚到对应蓝/绿集群系统。可以更轻松地恢复到稳定版本,以解决问题。
3)提高可用性:蓝绿发布帮助确保系统的可用性,因为在发布新版本时不会中断服务。这对于关键业务系统和客户体验至关重要。
4)降低故障率:通过监控系统、平滑切换流量能实现快速回滚,蓝绿发布可以降低因发布引入的故障的风险。
5)加速新功能交付:蓝绿发布可以加速新功能的交付,因为它降低了发布的复杂性和风险,鼓励团队频繁地发布新功能。
6)提高应对问题的能力:蓝绿发布可以帮助团队更快速地应对问题,通过快速回滚或调整流量切换来降低问题的影响。
项目效果评估
一、解决的行业痛点
移动研发协同平台通过引入成熟的一站式解决方案mPaaS移动开发平台,支持从开发、测试、上线到运维的全生命周期管理,建立统一的应用架构、标准化的研发流程以及云端集成的能力。通过需求版本管理、研发流程管理、代码构建管理、用例缺陷管理、消息通知这样一整套的高可用、高性能的一站式DevOps工具集,将移动端研发质控流程变成系统自动化对接、构建、编译、部署,落实代码扫描机制,显著提高开发团队的工作效率,实现快速迭代和版本更新。通过蓝绿发布,实现了零宕机,将新版本部署到生产环境时,不会中断现有用户的服务,实现千人千面的个性化用户体验,确保金融应用在各种复杂环境下的稳定运行。
二、效果数据
移动端研发质控流程的5个人工执行节点实现全部流水线自动化,工程编译速度提高40%,安全加固周期由半天缩短为10分钟,全量前端应用发布部署由60分钟降低到5分钟。
蓝绿发布实现了零宕机发布,将新版本部署到生产环境时,不会中断现有用户的服务。用户将在不知不觉中切换到新版本,不会感到服务中断或不可用。同时减少发布风险,蓝绿发布旨在降低发布过程中的风险,通过平滑的流量切换、回滚机制和监控系统,减少因发布而导致的故障。
项目牵头人
章伟 信息科技部渠道应用研发科室科长
项目团队成员
团队成员名单:汤海先、曾令军、廖晨鹏、魏子良、宋立桃、刘松、周民、乐大勇、熊斌、涂浩翔、邓国波等人。
团队成员合影如下:
责任编辑:王煊
免责声明:
中国电子银行网发布的专栏、投稿以及征文相关文章,其文字、图片、视频均来源于作者投稿或转载自相关作品方;如涉及未经许可使用作品的问题,请您优先联系我们(联系邮箱:cebnet@cfca.com.cn,电话:400-880-9888),我们会第一时间核实,谢谢配合。