在实践中快速成长——专访中信银行软件开发中心副总经理刘良俊
刘良俊:2016年初,由信息技术管理部牵头,软件开发中心和数据中心参与,完成制定了《中信银行“十三五”信息科技规划》。该《规划》积极呼应中信银行业务发展规划对信息技术提出的战略要求,紧紧把握现代金融业信息技术发展潮流趋势,确定了“十三五”期间信息科技工作的总体发展目标和具体实施路径。中信银行提出通过实施综合化经营战略、特色化经营战略、中间业务发展战略、渠道一体化战略、国际化经营战略和创新驱动战略,努力实现“最佳综合融资服务银行”的愿景。
基于我行的发展愿景和科技兴行战略,“十三五”信息科技发展的总体目标是:进一步完善IT治理,强化IT基础管理,完成向开放、分布式架构的转型,全面支持我行综合化、国际化、特色化战略目标,到规划期末使我行信息科技达到国内同业第一梯队水平。强化项目管理制度和流程建设,加强质量管理体系和测试体系建设,建成交付快速、质量过硬的研发体系,落实架构转型目标,支撑业务战略发展需要是《规划》对软件开发中心提出的基本要求。
刘良俊:为全面实现《规划》的战略目标,中心正着力推进以下几项工作:一是扩大团队规模,逐步加强自主掌控能力。二是加强年轻员工的培养,打造人才梯队。三是强化研发体系建设。
刘良俊:首先是应用交付能力的提升。2016年项目按计划投产率为99.87%,2017年一季度按计划投产率达到100%;2016全年生产事件密度较2015全年下降53%。2017年第一季度生产事件密度同比下降66%。从这两项指标看,近两年来中心的交付能力取得了长足的进步。
从项目建设方面来看,近两年来软件开发中心完成了支撑业务发展的数十项重点项目。先后建成了渠道整合开发平台、统一移动开发平台、统一开发平台、大数据平台等基础技术开发平台,以及总分快捷协作特色业务处理平台等应用开发平台,为快速响应业务需求夯实了基础;金融同业平台面向同业客户提供综合化、开发式服务,有力支持同业业务发展;持续优化升级零售CRM系统,支持精准营销功能,为业务部门提供了“精确制导”利器,使客户价值提升、客户关怀、潜在客户挖掘有了基础,工资贷、税金贷、POS贷、公积金贷、烟商贷等创新型 络贷款产品的上线对拓展零售信贷客户发挥了重要作用;远程授权、印章电子化、电子渠道实时风险监控等项目强化了柜面操作风险和零售客户资金风险的管控,提高了业务部门作业效率,节约了人力成本。即将于2017年下半年或2018年投产的新一代授信业务系统、交易+2.0、海外分行系统、新一代国际业务系统也是亮点纷呈。
刘良俊:我们将全力践行《规划》要求,以实现“最佳综合融资服务银行”的战略愿景为使命,高质量、高效率支撑全行业务发展,落地IT架构转型规划,持续重视队伍建设和能力建设。到“十三五”末,开发中心的交付能力、研发体系初步达到同业优秀开发中心的水平。
企业级架构引领的新一代核心业务系统建设
随着金融市场的进一步开放,银行业经营环境正在发生深刻变化。如何在行业内、外激烈竞争的情况下,进一步拓展业务,增强盈利能力,是各商业银行面临的重大课题。中信银行审时度势,适时启动新一代核心业务系统建设,对外围系统进行全面梳理和重新定位,为持续业务创新,快速响应市场需求,夯实信息技术发展基础发挥作用。
架构引领,建设强健核心
中信银行在新一代核心业务系统建设期间,同步实现了外围系统的整合或改造,新建了企业级数据仓库和大数据平台,从而构建出完整的适应中信银行发展的企业级架构体系,改变了之前企业级系统架构不完善,信息系统体系杂乱的局面。
总体设计原则
在新一代核心业务系统建设过程中,坚持了以下总体设计原则:一是架构引领。项目群建设以企业级架构规划为蓝图和指引,指导核心业务系统的架构决策。二是数据标准先行。参考国内外金融行业数据模型,制定中信银行客户、机构、产品数据标准,同时参照监管机构数据标准、行业数据标准及行内其他数据规范,指导新一代核心业务系统数据模型和接口设计。三是将高可扩展性、高性能作为新一代核心业务系统的首要质量属性。
核心业务系统设计特点
新一代核心业务系统是基于IBM i系列小型机开发的系统,采用:1. 层次化设计:层次化设计可隔离层内变化,内聚层内功能,封装层内服务,降低层间耦合,各层仅通过单向依赖为上层提供服务,从而使系统逻辑层次清晰。2.模块化设计:系统在各层内部进行分区模块化设计,按功能内聚原则确定各模块的功能边界。各模块封装本模块的功能为外部模块提供服务,确保跨模块的功能调用和数据访问必须通过目标模块提供的服务完成,有效降低模块之间的耦合性。3.组件化设计:系统在各模块内部从高内聚、低耦合和可重用性角度对模块功能进行抽象并划分为层次及粒度不一的组件。组件划分的基本原则是功能单一明确、具备复用价值、组件粒度适中,通过简单的组件灵活结合串接实现复杂的功能。组件化设计加强了代码的共享和重用。4.参数化设计:参数化设计是对系统中的变化规则、控制点、变量进行抽象和管理。新一代核心业务系统设计了结构化参数管理体系,统一了参数使用机制、参数维护机制和参数发布机制,对参数抽象、参数存储、参数部署等方面提出了规范要求。这些设计方法,在性能及容量设计方面采取了一系列有针对性的设计考虑,系统在可扩展性、可重用性、可维护性、高可用性以及性能方面达到优秀水平。
勠力同心,收获丰硕成果
1.客户服务能力显著提升
新一代核心业务系统投产后,系统运行平稳,交易量稳步增长,产品创新能力持续增强。通过建立客户统一视图、优化业务处理流程、实现差异化客户服务、支持统一跨渠道服务,构建了全方位的客户服务体系,全面提升了客户体验;“柜面快车”、综合签约变更、厅堂综合服务和营销等深受客户好评;柜面效率提升50%以上,免填单业务效率提升60%以上。在标准化的产品管理体系、灵活可扩展的产品工厂及“积木式”自由组合的账户体系支撑下,新产品开发周期显著缩短,实施效率提升明显。
2.企业架构更加先进
新一代核心项目群遵循企业级架构设计原则,根据业务价值链对全行业务能力模型进行解构和重组,形成了核心服务组件,实现了应用的层次化、组件化、参数化设计,缩短了产品创新周期;采用了核心业务系统与数据分析平台同步建设的策略,参考FSDM等业界先进模型,实现了企业级数据模型在交易系统和管理分析系统中的配套落地;由于新一代核心系统的组件化设计符合SOA的理念,高内聚松耦合,逻辑设计清晰,组件分层合理,未来向开放平台、云技术架构迁移更加便利。
快捷协作特色业务处理平台介绍
中信银行按照组件化、流程化、模型化和定制化思路,打造了快捷协作特色业务处理平台(以下简称总分快捷协作平台)。总分快捷协作平台组件化设计的特点尤其适用于以快速迭代为特点的敏捷开发模式。总分快捷协作平台通过合理的架构设计分层,抽象出各个层级的组件、主控模块组装组件、上下文模块暂存接口和组件输入输出参数,再封装上标准接口,从而可以提供标准化的业务模型。同时配套以统一的开发规范、统一的发布部署规则与流程、统一的监控与风险安全防范机制,统一的数据搜集 送和管理方式,统一的互联 渠道调用服务,成为分行特色业务研发的基础平台。
提升共享复用水平
首先,总分快捷协作平台整合出生活服务、财政、 保医疗公积金、交通服务、互联 教育物业景区服务、公共资源和其他共7大类分行特色业务;然后对各类特色业务的处理逻辑进行抽象归纳,形成了底层服务、原子操作、交易场景、业务模型4层逻辑抽象;在此基础上,构建了平台、技术、基础、业务、场景5个层级的组件。从而形成下层抽象为上层抽象服务,下层组件为上层组件提供服务的整体格局。
贯通总分协作
总分快捷协作平台支持以总行和分行协作的方式实施特色业务开发:总行负责抽象组件的开发、标准业务模型的构建,分行负责使用平台向导裁剪业务模型,适配联调标准接口。
图 基于云平台的总分协作方式
对于该平台提供的生活服务、财政等特色业务的开发流程通常由分行登记注册、申请项目实施,再由总行统一分配资源、分析开发模式。对于标准缴费业务,分行可直接复用总行的业务模型,使用开发平台进行接口适配,组织与第三方联测;对于特色缴费业务,分行复用平台的基础组件、技术组件、业务组件和场景组件,自行对业务模型中的流程进行裁剪、对接口进行适配;对于特定应用场景,分行可直接复用总行针对该应用场景的组件模块。
实现向导式开发
按照快捷、协作、规范、灵活的原则,总分快捷协作平台同时提供了集成开发环境,分行开发人员通过对资源模型调用、流程匹配和参数设置,对已抽象化的各类资源模型进行流程裁剪和接口适配,即可完成分行特色业务的开发。不但缩短了开发周期、提高了业务需求响应速度,而且由于各类资源模型和组件均经过了多次测试和生产,分行特色业务功能的投产质量也得到了保证,用户满意度显著提升。
集成开发环境中同时包含了单元测试和集成测试工具,提供了可视化的单步调试功能,还集成了模拟第三方的挡板以满足独立实施集成测试的要求。
此外,平台还集成了业务种类、业务状态、业务模型、业务需求等分析设计阶段所需的管理功能,内嵌了满足开发规范、接入标准、版本管理、部署管理、查询监控等开发、测试、运维阶段工作要求的管理功能。
缩短实施周期
基于SaaS理念,总分快捷协作平台提供了完整的端到端业务管理、数据管理与接入渠道服务,同时保证服务的兼容性、灵活性和底层支持性,可适应多变的产品形态和多种商业模式。分行业务应用可快速接入不同类型的行业应用,实现快速投产。通过该平台完成产品配置化开发后,可以使用一键导出、导入,实现产品从开发到测试直至上线投产的平滑过渡。降低了投产部署难度,实现了应用投产包的统一管理、一键部署,避免了人工打包可能发生的操作失误,大幅降低上线包出错概率。投产速度和投产质量的大幅提高,不但提高了分行科技生产力,保证了交付系统的安全性与规范性,而且直接反映为分行科技部门提升了业务交付效率、提高了业务响应速度。据统计,基于该平台的分行特色业务系统实施周期较原有开发模式缩短了1/3。
响应开发运维一体化
总分快捷协作平台不但提供了开发、测试和部署工具,而且还集成了运维管理工具,能够满足平台的集群管理和应用统一部署维护要求。通过服务注册管理机制,实现了平台应用的服务治理功能;基于配置策略的服务调用方式,可以达到平台应用的秒级扩容;通过引入容器技术和基于缓存的交易调度模型,实现不同分行间应用的相互隔离和热部署;产品的发布也由原来的程序发布改变为细粒度的资源模型和资源模型组合关系的发布,产品的管理维护则由原来的程序维护提升为对配置参数的维护;通过平台实现了一套开发规范、一套发布规则、一套管理模式和一套运维体系。该平台则通过整合从开发、测试到运维的整个项目建设过程,实现了开发、运维一体化,提升了开发部门和运维部门之间的合作和协同。
支持敏捷开发
总分快捷协作平台可为研发人员提供灵活的应用开发工具,丰富、成熟的业务模型,稳定、可靠的运行环境,为敏捷开发模式的实施提供了必要条件。首先,平台提供的云服务,为应用提供稳定的运行环境以及配套的部署、运维支持工具,使得研发人员无需特别申请和管理应用的运行环境;其次,快捷平台提供强大的功能组件,研发人员只需专注于运用功能组件组装业务功能,专注于裁剪模型并实例化为应用,可大大缩短研发周期;最后,快捷平台提供的可视化开发工具,实现了通讯接口表格化和业务流程图形化,研发人员无须关注应用主体架构的设计、实现。平台上述特性都为敏捷开发模式的实施提供了技术支撑。依托总分快捷协作平台,研发人员可以采用快速迭代的方式分批开发、分批测试、分批投产,尽早推出创新类业务产品为客户和市场服务。
中信银行基础开发平台初露峥嵘
中信银行已初步建成了渠道整合开发平台、统一移动开发平台、统一开发平台和大数据平台等基础开发平台,基于开源数据库的分布式数据集群等重大平台建设工作也在积极有序地推进中。
渠道整合之术—UCP
基于SOA设计思想和多渠道整合理念,中信银行启动了渠道整合开发平台(Unified-Channel Platform,简称UCP)的建设工作。遵循企业级架构要求,重新规划设计底层技术架构,梳理业务处理逻辑,按照统一规划、整合复用的设计思路,重新设计 上银行、手机银行、微信银行和电话银行等各渠道的业务组件。
逻辑架构上,UCP将渠道接入和业务处理划分为前置(FO)和业务处理(BP)两个逻辑层次,并以技术手段确保层次间边界清晰、可控。前置层负责请求接入、安全认证和会话控制,屏蔽各渠道特征,业务处理层负责集中处理业务逻辑,从而实现了业务处理逻辑集中、渠道服务集中、客户行为集中、接入渠道开放的“三集中一开放”模式。
技术实现上,UCP遵循自主掌控的要求,经过长时间的技术探索和攻坚,全部平台代码和关键模块自主开发,避免了引入商业解决方案造成的产品实施周期长、后期维护成本高、长期受外部因素制约的问题,也避免了开源项目无法响应银行的特色需求,不能提供技术支持,框架底层代码对外暴露的缺点。同时,UCP提供了一整套应用开发框架、开发测试工具、文档规范知识库,目前,中信银行已有40多个应用系统采用UCP平台建设实施。
移动开发之剑—UMP
为应对互联 的迅猛发展的挑战,中信银行构建了统一移动开发平台(Unified-Mobile Platform,UMP),既提升了移动金融项目的开发效率,又为客户提供了稳定可靠的金融服务。
UMP有两个建设目标:一是打造易扩展、可维护、高效率的开发平台,实现移动端、微信端、PC端等多渠道系统的快速搭建;二是满足移动金融的发展需要,保证银行IT系统高安全、高稳定的运行。
UMP平台不仅提供基本的页面模板、基础组件、辅助开发工具,还支持自动化打包、客户行为采集、大数据分析、自动化测试和灰度发布等功能,更好的为常规和敏捷双模开发提供基础服务支撑。此外,UMP为移动金融产品提供全面的安全防护机制,除提供https、安全控件、混淆等基础安全机制,还提供前后手交易验证防篡改、原生接管页面请求、服务器对页面进行加密和签名、本地配置文件加密存储等特有的防护措施,为业务系统提供了交易安全保证,形成了完整的移动金融安全体系。
目前,中信银行手机银行、微信银行、员工互联 渠道客户端、个人外汇交易客户端、在线客服、超级柜台等多个重要业务系统均基于UMP搭建,已逐步打造成总分行联动的移动金融业务开发生态体系。截止到2016年12月,基于UMP平台的移动金融系统总客户数超过2000万,月均账务类交易量超过1000万笔。
数据应用之基—大数据平台
依托分布式、开源开放式架构,中信银行建立了区别于传统技术方案的大数据平台技术架构。
在为业务提供营销支持方面,利用大数据的流式处理技术搭建了复杂事件处理平台,拓宽了前后台应用系统之间的数据交换渠道,使数据在各应用系统之间快速流动,协助业务部门从大数据中抽取、分析、提炼用户行为特征、资金变化情况、交易对手等重要信息,从而实现事件式实时营销。
在协助业务开展风险管控方面,中信银行充分利用大数据平台提供的海量数据信息,将其中的用户操作行为日志数据、业务交易数据和第三方行业数据有机整合,并考虑监管部门要求、自身业务需求,实现事前、事中、事后全流程的风险控制,特别是加强电子渠道实时交易风险控制。
大数据平台实现了访问接口组件化,简化了应用调用,系统融合初露端倪;大数据平台具有横向扩展能力,解决了多应用处理带来的性能压力问题;大数据平台具备资源隔离和权限控制能力,除能实现数据共享之外,还能规避应用之间的相互影响。
应用开发之矛—统一开发平台
统一开发平台采用主流开源框架,整合、封装了主流开源软件,结合中信银行应用研发的实际情况进行深度定制,形成了一套具有特色的开发框架和平台。如封装了AS/400、交换平台接口的底层技术细节,简化了各应用之间的互联开发的成本;增加了统一用户角色权限控制框架,规范了应用安全管理;添加开发多语言组件,提供了平台级的国际化功能支持等。
此外,统一开发平台也对开源软件的部分功能和框架做了完善和修改。如为消除开源代码中普遍采用的明文配置文件可能存在的不安全、误操作的隐患,将配置属性和国密加密后的密码信息纳入数据库保存和管理,不仅增强了系统安全性和健壮性,也为下一步应用容器化部署打下了基础。
经多年建设,统一开发平台已可为应用开发提供众多的通用业务功能,形成了包括前端框架、后端框架、组件管理工具、持续集成工具的完整的应用开发平台。目前已升级到3.0版本,基于该版本开发实施的项目已达数十个,其中不乏新一代授信业务系统、本外币一体化支付 关、金融同业平台、对公额度与限额管控系统等重点项目。下一步将对平台做进一步完善和优化,努力提高信息技术项目开发效率与质量。
中信银行软件测试专业化发展之路
全生命周期测试体系
中信银行全生命周期测试体系是在新一代核心业务系统的建设过程中,逐步形成和完善的,涵盖了基础设施、测试实施、测试评价和工具平台等部分(见图所示)。
图 中信银行全生命周期测试体系
基础设施体系
中信银行构建了全流程、全体系的测试制度体系,明确了需求、设计、开发、测试、投产各阶段测试工作的准入和准出条件,搭建了由人、过程、交付物等要素组成的测试过程流水线,实现了测试过程可跟踪、可控制、可检查。并借助项目管理工具、测试管理工具、自动化测试,通过流程规范及测试标准工具化,保证测试体系可执行、可落地。
测试实施体系
中信银行主要以测试项目方式执行测试管理工作,依托自动化测试工具和标准化测试案例,统一调配资源,以早介入、早准备、早执行为原则,严把测试控制关。在开发项目立项时,立即启动相应的测试项目,按照项目管理方式监控测试进度、效率、成本及质量情况并及时纠偏;在项目需求阶段即安排测试人员介入,及早参与需求讨论和评审,及早准备测试案例和测试数据;在测试执行阶段,合理应用自动化测试工具,扩大回归测试范围,提升测试执行效率,降低测试遗漏风险;在测试实施过程中,注重测试总结以及测试案例的积累和复用,以降低整体测试成本,进一步提高测试效率;对于外包测试资源采取资源池模式集中管理,由行方统一配置、集中调度,实现按需调整、动态分配,提升了外包测试资源的使用效益;在测试结果评估时,严格控制测试出口,特别是验收测试阶段,对于没有通过测试的、无法出具测试 告的,不予提交投产上线流程。
在业界,应用系统投产上线验证通常由开发团队和运维团队共同负责。中信银行优化了业界做法,以测试条线人员为主体主导项目投产前的测试验证工作。此外,还会根据项目的不同类型,由测试条线专业测试团队主导和参与性能测试、安全测试、兼容性测试和用户体验测试等专项测试。
针对直接面对分行大客户的系统接入和产品对接测试需求,中信银行专门建立了商户联调测试服务保障机制。组建了由客户服务层、中台核心支持层、后台保障层组成的专业化联调测试团队。对外服务层作为统一的支持信息平台,是对外服务窗口;核心支持层积累形成了完善的工作流程及各类规范模板,以及包括准备库、指引库、答疑库、案例库等内容的丰富的测试资产,为联调工作涉及的十余项业务提供有力的核心支持;后台保障层则重点提供保障服务,提供环境可用性发布、问题预警、视频培训、问题总结分析等一套保障功能。
测试评价体系
中信银行建立了相对完善的测试评价体系,对软件质量、测试工作绩效等进行量化的评价和考核。软件质量评价方面主要通过统计分析软件的代码缺陷率、案例缺陷率、缺陷泄露率、缺陷修复率等软件质量关键指标数据;测试充分性方面,主要以单元测试代码覆盖率指标、集成测试接口覆盖率指标、系统测试案例覆盖率指标缺陷收敛率等评价指标数据为标准,对于不能满足阈值要求的,不得进入下一阶段。
工具方法支撑体系
在测试工具建设方面,已基本建成涵盖单元测试、接口测试、自动化功能测试、性能测试、移动APP测试、安全测试等各个测试领域或环节的自动化工具测试体系,各工具应用效果明显,切实提升了测试工作质量和效率。
在测试方法研究方面,中信银行提出了“基于耦合分析的功能测试方法”。通过运用耦合分析、解耦实施、隔离执行、结对耦合、端到端测试等一整套测试方法和建设的辅助工具平台,有效解决了功能测试中遇到的关联系统或功能非同步交付、关联系统环境缺失、长业务流程中单点修改验证时前置流程约束复杂、功能正确但 文字段赋值错误等严重影响测试效率及质量的问题。在配合业务验收测试方面,中信银行提出了“因子情景+坐标防御+五级体验+企业级双维存取案例库”的“四+”复合测试模型,首先将复杂金融业务逐级分解为业务因子(金融字典),然后通过因子关系库形成可组合的 状因子互联模型,最终通过“七要素”提取形成全场景案例;对于常见的异常场景采用“坐标防御”测试模式,利用异常因子形成预设的缺陷测试模型;此外还结合“五级体验”,积累形成了重点针对长交易链路交互导引问题、功能点选问题和数据录入便捷性问题、结果查询和问题提示误导类感知问题的速查checklist;同时还运用“系统+业务”双维案例库中的流程串联,形成带有实际业务场景的无分支测试流程实例;综合运用多种方法,初步形成了业务测试方法体系。
五位一体的测试管理框架
依托软件全生命周期测试体系、工具方法支撑体系和专业化测试队伍,中信银行形成了专业化团队、实用化工具、集约化管理、跨地域协作和流水线式作业的五位一体的测试管理总框架。在五位一体的测试框架的支持下,中信银行软件开发项目的测试实施周期明显缩短,投产后的缺陷率有效降低,测试效率和测试质量得到了进一步提升。面对银行业未来更加激烈的竞争和挑战,中信银行测试条线将继续完善现有测试框架,并与开发、运维团队以及业务部门一起努力,共同推进中信银行软件开发质量和效率的持续提升。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!