随着数字中国建设成为国家战略,工商银行软件开发中心敏锐把握新一轮科技革命和产业变革趋势,超前布局、高质量推进ECOS2.0数字技术生态。为契合弹性架构、安全可控、云化基建等ECOS2.0数字技术生态理念和要求,工商银行软件开发中心在对合作方领域系统开展异构数据库转型的同时,结合业务架构方法论推动架构转型,减少存量技术债的同时构建适应未来的架构体系,以支撑存量业务的创新突破和增量业务的快速发展。
一、转型难点

合作方领域系统与民生休戚相关,本质是金融机构、非金融机构等合作方基于合作协议,以互相代理产品销售、支付结算以及信息交换等为合作目标的合作业务。工商银行软件开发中心秉承大行担当,在合作方领域系统开展异构数据库转型期间重视业务连续性,尽量达到对合作方透明、并行期短、后续改动灵活、扩展性强等目标。
要实现上述目标,存在三方面的难点:一是老系统已建设多年,关键功能与数据库紧耦合,涉及存储过程、proc等多种特性;二是部分团队成员对存量系统的业务逻辑掌握不足;三是合作方领域系统多,需要做好分层设计和公共支撑能力,避免重复建设。
二、技术选型
1.“业务双写”对比“业务单写灰度迁移”
业务双写具有业务逻辑清晰简单和实时性高的优点,但是存在新老业务耦合,双写失败丢数据的风险。工商银行软件开发中心结合老系统兜底的要求,选择业务单写,通过灰度迁移方式分批将交易转至新系统,这就对数据同步工具的效率和侵入性提出了更高的要求。
2.数据同步工具
业界开源异构数据同步工具(见表1)无法满足工商银行业务要求,工商银行软件开发中心结合本行数据库特点,参考debezium原理进行深度定制开发。
表1 业界同步工具优点和问题
3.架构转型
老系统架构陈旧、耦合性高,改动往往会导致牵一发而动全身,无法适应未来业务需求,工商银行软件开发中心结合业务架构组件化研发理念(如图1所示)和DDD领域驱动开发思路,实践业务架构,推进IT架构分层解耦,建立“横向可解耦、纵向有层次”的IT架构体系,降低转型研发投入。
图1 业务架构组件化研发
三、探索实践
工商银行软件开发中心在合作方领域系统异构数据库转型过程中,采用稳基础-新建数据同步工具并扩展接入层、稳切流-分批灰度迁移并夯实测试守护、稳未来-业务架构组件化研发的思路形成一套完整的转型路线,对业界和其他领域系统转型都有一定的借鉴意义。
1.新建数据同步工具
工商银行软件开发中心参考debezium原理构建数据同步工具(如图2所示),实现业务表无侵入、数据自由转换、参数化配置、动态扩容的新构件,一是支持通过中间表实现类ACK机制达成到业务表无侵入的数据同步,且规避双向增量成环;二是支持二次开发定制数据转换;三是支持BLOC\CLOB等字段,做到全类型支持。在表结构良好(具备有效合理索引)的情况下,2核4G内存的容器平均同步速率可达7万~10万/分钟,可以满足绝大部分的合作方场景。
图2 新一代数据同步工具架构
2.扩展接入层
工商银行软件开发中心扩展接入层(如图3所示),一是构建双重精细化切流机制:按“交易+合作方+白名单”进行分批切流并实行精细化管控,分批切流至新数据库服务集群节点,按不超过万分之一比例实施灰度,并可按比例进行流量爬坡,最终控制交易实现完整切流或者回切。当灰度交易验证无问题时,即实现新数据库服务100%灰转正,确保交易分批可控。新的迁移交易100%通过后,即可进入新数据库服务正式集群。二是支持请求偏差率超过5%或数据一致性偏差率超过5%,就开始回切,更新同步开关,避免对客户造成影响。
图3 扩展接入层
3.确立转型四步工艺法
工商银行软件开发中心构建转型四步工艺法(如图4所示),基于敏捷开发理念,每一步都按照MVP原则分批投产,按交易批次灰度切流减少并行化时间,将同时维护2套版本库的代价降至最低,通过接入层实现转发并进行后续处理,从而对合作方透明。一是搭建对等的新数据库服务群组,并通过高可用的接入层验证新数据库服务群组的全链路联通性;二是将Paas(旧)联机集群的交易分批迁移至新数据库服务集群;三是将传统未入云的联机数据库交易分批迁移至新数据库服务集群;四是解除批量集群访问旧数据库。
图4 转型四步工艺法
4.同步实现架构转型,消除技术债
工商银行软件开发中心贯彻业务架构组件式研发思想,通过DDD分层架构诠释应用内部和外部差别,实现稳态领域层和适配层解耦。一是承接业务建模、IT对接成果,领域层聚焦于领域模型对象、领域服务、应用服务的设计和组合;二是在技术实现上,通过面向对象的设计以及设计模式的引入,在对象创建、对象交互上达到灵活解耦;三是聚焦领域模型领域服务,合理架构分层;四是形成业务对象19个、ACS/ATS 185个、其中可沉淀形成PBCs(业务共享服务包)4个,应用内可共性提炼服务67个。分层架构代码如图5所示,业务架构建模如图6所示。
图5 分层架构代码
图6 业务架构建模
5.构建转型测试保障体系
工商银行软件开发中心构建形成异构数据库转型的标准化测试保障体系,有效确保迁移功能的正确性,提前规避切流风险。一是建立数据库转型标准化测试方案,围绕功能、非功能性、投产策略层面进行数据库转型测试方法论研究,指导转型产品线有效开展数据库转型测试,保障转型质量;二是打造数据库转型测试工具集,通过引入模糊测试、数据膨胀等技术,形成自动化、智能化的工具支撑体系,全方位高效的守护转型质量;三是完善精准度量并推进资产建设,借助数据库转型工程,推进测试覆盖统计精细化至分支/行层级,并以此基础推进存量资产建设,推进ATS层接口场景案例100%自动化,核心涉账批量100%自动化,提炼系统高可用测试标准方案,沉淀数据库故障、恢复等关键场景的高可用专家案例库。
四、转型成果
工商银行软件开发中心在合作方领域完成数十个系统的异构数据库转型,一是结合Gartner组装式应用程序理念,推动复用合作方基础服务能力,沉淀新的共性能力形成PBCs(业务共享服务包),避免重复功能建设,实现边界清晰,减少重复开发;二是基于组装式应用开发平台,快速构建UC相关的ACS和BOS,自动生成单元自动化测试代码,形成业务积木块,落实业务流程灵活编排,支持业务敏捷与创新;三是推动架构转型的落地实践,引导开发人员以组件化研发思维模式开展研发,加速人员成长。
-END-
这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索无界金融生态!