nos币(中国工商银行分布式缓存服务平台探索与实践)
来源:BanTech智库
作者:中国工商银行金融科技研究院
当今全球驶入数字化转型快车道,银行领域加速进入“无科技、不金融”的新时期,随着互联网和信息产业的快速发展,计算机处理的信息量呈爆炸增长态势。银行业务交易量不断增长,场景不断丰富,出现了如秒杀、会话、路由信息、计数器等高频访问的热点数据,传统基于磁盘存储的关系型数据库已无法较好地支撑上述业务场景,为满足中国工商银行(以下简称“工商银行”)在IT架构转型及智慧银行ECOS工程建设过程中各应用对业务数据的高并发、低延迟、简单易用、高效稳定的访问需求,工商银行于2015年正式启动了分布式缓存平台研发建设,经过几年的打磨与完善,现已建成在产品能力及部署规模上同业领先的企业级分布式缓存服务平台(以下简称“NOS”)。目前共部署近万个节点,实现平均交易响应时间约1毫秒/笔,日均交易量500+亿笔,交易峰值100万+QPS。
一、总体架构
工商银行通过自主研发代理转发层、监控系统、管控系统,并基于Redis开源客户端、Redis存储引擎、注册中心进行二次开发,结合工商银行PaaS、SaaS等平台建设了具备云原生能力的分布式缓存平台(如图1所示),为全行各级业务、技术系统提供高性能的主备异步模式、就近访问的异地多活模式、RPO = 0的主备强一致模式和可弹性伸缩且支持多语言的直连模式四种个性化缓存服务模式。
二、业务服务能力建设
工商银行业务体量大、场景多,对于分布式缓存平台的业务多元化支撑及运维能力提出高标准,严要求。为此,分布式缓存平台提供如下能力。
1.数据服务模式多元化,满足业务差异化需求
主备异步模式:适用性能优先策略,主备数据异步复制,可提供站点内和同城双活两种高可用能力,代理组件、存储组件、监控组件、注册中心等所有核心组件均实现同城双活。
主备强一致模式:适用数据一致性优先策略,通过对开源Redis主从数据异步复制机制的定制化改造,实现主从数据同步复制,当发生主从切换时、副本不可用时,通过自识别、自降级等方式确保业务读写的强一致,杜绝写请求丢失,解决秒杀、库存扣减等业务场景下的超卖问题。主备强一致模式如图2所示。
异地多活模式:适用异地读写场景,跨站点、跨异地部署,提供站点内强一致、站点间最终一致的读写服务,读请求采用就近原则,提升跨异地访问缓存数据性能,并提供异地多活高可用能力。异地多活模式如图3所示。
直连模式:社区原生集群模式,为满足工商银行外购产品、开源框架等内嵌原生SDK及少数采用非Java语言等场景访问缓存的需求,NOS提供了完全兼容开源、多语言SDK的直连模式。直连模式如图4所示。
2.架构部署支持单元化,防范重大系统性风险
单元化架构是近期在互联网行业渐趋流行的企业级应用部署架构(如图5所示),重要业务链路实施单元化可提升多活容灾、故障隔离等多方面的架构支撑能力,有效控制区域性故障场景爆炸半径,防范重大系统性风险。为适配工商银行单元化架构整体布局,满足业务交易单元内闭环,实现故障隔离、快速切换等要求,NOS在每个单元内部署相应集群,并制定单元化租户访问缓存及熔断回切策略等,满足单元化的整体目标。
3.租户接入云服务化,实现高效环境供应
为实现工商银行IT资源的供应全面转向云服务模式,实现云服务供应与IT服务管理的相互融合,基于云打造安全合规、自助灵活企业级IT服务,分布式缓存平台规范化服务申请模式,确保租户接入高效便捷。租户自助接入申请由版本供应模式转向资源供应模式,由业务应用按需自助申请,通过整合NOS租户创建API及华为云资源编排能力,实现NOS服务环境自助供应的全链路自动化搭建(包括测试环境、生产环境的设备申请,NOS服务部署验证等),大幅减少NOS租户接入环节,提升接入效率,降低人工成本。云服务模式建设如图6所示。
三、云原生能力建设
1.核心链路部署容器化,保障系统稳定运行
工商银行分布式缓存平台核心组件都已实现容器化。充分利用容器化的敏捷和轻量级特性,结合K8S编排部署等能力,实现快速部署、秒级启动、节点高可用等生命周期管理;通过共享宿主机操作系统提升性能,降低系统负载,节省资源成本;通过配置资源使用率阈值及伸缩策略,完成核心组件的动态弹性伸缩,应对业务洪峰等突发场景;通过容器的滚动升级、优雅启停等能力保证了分布式缓存平台在日常运行及投产升级过程均保持7×24小时不间断服务。
截至目前,分布式缓存无状态容器节点规模已有3000+,有状态节点也将在近期完成7000+虚拟机节点向容器化节点的迁移工作。
2.运维架构建设强容错,支撑系统故障自愈
工商银行分布式缓存平台提供多维度监控报警、各组件高可用切换、服务自愈、容错应急、熔断回切等能力,保障缓存平台服务的连续性。
平台实时监控节点可用性、系统资源消耗、性能容量,校验并预警注册中心、存储节点等有状态组件数据的合法性;出现节点级、集群级及网络设备等基础设施异常时,平台提供自动化的高可用接管、自愈能力,通过监控系统、负载均衡策略配置,自动实施园区内高可用切换、园区间同城双活、异地多活、异地灾备等高可用接管,提供服务节点宕机后自动拉起等自愈能力。提供租户通过代理层、存储层的弹性伸缩、读写分离、异步清理等应急恢复的能力,快速响应并有效控制大事务、大key、热key、过期key集中等问题对业务造成的影响。当出现严重故障导致服务异常时,可自动触发租户的熔断回切能力,最大程度降低对业务的影响,保证核心业务的正常处理。
目前分布式缓存平台已有100+监控报警项,高可用切换及服务自愈平均在15秒内,为“1-5-10”(即1分钟发现、5分钟定位、10分钟恢复)的运维目标提供有力支撑。
3.性能容量实时可监测,排查隐患及时有效
工商银行分布式缓存平台多维度、多层级采集分析性能数据,提供可视化展现,报表输出等功能,实现集群维度、租户维度及各组件维度等实时统计分析能力。集群维度,平台提供访问量、请求处理成功率、交易平均耗时等实时监控功能;租户维度,平台提供联机访问量、接口访问量、读写交易比、连接数、业务数据量及请求数据量等实时监控功能;组件维度,平台提供系统资源、负载量、线程运行状态、存储空间使用率及连接数等实时监控功能。通过自研管控平台对各类监控数据进行在线统计分析、聚合运算,并结合多样化图表进行可视化展现及报表输出。
目前分布式缓存平台已支撑200+应用,400+租户的接入,千万级QPS访问量的实时性能监控,全方位观察接入应用及缓存平台运行情况,帮助开发人员、运维人员定位问题,排除生产隐患。
4.生产管控多元易运维,实现运营管理一体化
工商银行分布式缓存平台提供运维管理、运维自服务、用户权限管理、租户管理和配置管理等多维度管控能力,实现一体化运维。运维管理提供全量节点状态管理、注册中心同城双活切换、集群配置信息维护、站点切换、可执行工具运行等应急服务;运维自服务提供集群升级及一键式验证、业务数据查询、修改、清理、导出以及生产熔断回切演练等接入租户自运维服务;用户权限管理提供租户权限、业务运维板块权限、审批人员职能管理、操作审计等管理功能;租户管理提供租户级维护、弹性伸缩配置、功能验证、灾备恢复和信息导入导出等管理功能;配置管理承载所有组件的配置信息变更、动态下发、监控报警黑白名单、日志级别变更等。
目前分布式缓存管控控制台已纳管数十个缓存服务集群,数百个接入应用,近万个服务节点,有效降低运维成本、提升整个平台的日常运维及变更管控能力。
四、应用实践与效果
1.主备强一致模式,助力纪念币预约平稳发行
工商银行分布式缓存平台积极助力“2021牛年纪念币”发行工作,为客户成功预约纪念币保驾护航。业务面向客户群体广、业务要求响应时间高、数据可靠性要求高,NOS为其提供了主备强一致模式(如图7所示),保证在基础设施故障、网络中断等异常场景触发存储层高可用切换后数据零丢失,提升了秒杀平台的数据可靠性。在2021年的牛年贺岁币两次发行中,NOS作为纪念币抢币交易的关键路径,服务成功率100%,访问交易量峰值达75万QPS,平均响应时间2ms/笔,有效地保障了预约工作的顺利完成。
2.异地多活能力,确保手机银行服务安全可靠
个人手机银行作为工商银行重点应用,对业务数据可靠性要求非常高,为确保高可用切换期间的数据零丢失,分布式缓存平台为其提供园区内数据强一致、园区间数据最终一致的异地多活模式,在保证数据可靠性的同时,提升了异地读取缓存数据的性能。NOS作为手机银行免登陆业务场景的关键路径,支撑用户5亿+,在日业务高峰期,服务成功率100%,支持1.3万QPS。手机银行使用NOS存储客户信息如图8所示。
工商银行分布式缓存服务平台经过多年建设、打磨、演进已取得显著成效,从最初的单园区高可用到同城双活、异地多活,各组件从普通虚拟机到容器化,从人工搭建生产环境到近万个节点的自动化投产部署,不断提升平台服务水平。工商银行秉承48字工作思路,树立“比”的意识、发扬“拼”的精神、践行“进”的行动,未来,将持续关注业界高性能KV存储领域的技术发展,结合云原生能力,以服务业务为宗旨,降低业务使用门槛,解决业务痛点,打造更加完善的企业级缓存服务平台,助力工商银行数字化转型。
-END-
这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索无界金融生态!