通过架构变革、并行开发、多分支管理、持续集成等方式,成功实现敏捷转身。
业务特征及痛点
南京银行科技有运维中心、研发中心和科技管理部,正式的员工有200多人,外包合作厂商有600多人,在线运营的运营系统有300多个。
有人说银行不就是有柜面、网银、手机银行吗?在这里想和大家解释一下,举个例子。一个贷款的产品,除了要涉及到本身的核心柜面,贷款本身的系统以外,可能还涉及到风控,涉及到大数据,然后总账,还有账户管理,还有监管。那么银行的这种交易的特殊性,导致了每一个产品可能都有很多个系统在背后支撑,也就导致了交易的链路会非常的长。
最开始的时候银行可能只有几个系统,结构简单,有很多技术强人可能技术能力很全面,一个人就把系统都做好并维护好了。随着银行业务不断扩展,用户可以买理财、买债券、融资等,就导致了复杂的系统结构。这个时候如果还像原来作坊式的开发模式就行不通了。
举个例子,在刚刚工作的时候有一个项目经理,他是非常负责任的,每天下班前会做一个Excel表记录团队里每个人今天修改了哪些代码,在哪个模块上做了什么,这样手动去记。在多行研发的时候根本就不可能完成的。到2014年的时候系统已经到200套了,也就大概六七十个人,这个时候仅仅靠人是根本不能完成的。这时就决定要引入外部的管理,要有流程,要有质量。2014年的时候获得了CMMI ML3和ISO的体系认证。
建设这些体系的过程中跟传统银行业一样遇到了很多痛点,比如厂商很多,拿过来的原型也很多。原先的这种模式是外购为主,经过适配很快就能把业务连接起来。这样的弊端就是各种各样的技术架构,非常复杂,在这样复杂的系统架构里边去实施一个流水线是一件非常痛苦的事情,同时也带来了银行的业务要求需要迭代非常快。如果这么多的问题,没有一个工具来管理的话,是不能完全应付的。当时我们也做了一些统一的工作,设立了一些系统把需求管起来。架构也要统一起来,即使是一部分的统一也要尽量的保持不要浪费资源。配置管理也用了一些集成的工具,还有测试到部署。但是一个点的快并不是全流程的快,想要快速交付这个价值,需要一个完整的不能中断的流水线才能尽善尽美。这些问题怎么解决呢?
“鑫云+”的诞生
“鑫云+”是一个什么概念?南京银行是鑫合俱乐部的一个牵头行,鑫合俱乐部有140家成员行,所有的资金在一个联盟里面。另外的一头连接的是互联网。作为这两头的桥梁,可以连接出很多种可能。
“鑫云+”项目架构变革
“鑫云+”进厂之后就对厂商原有的产品做了重构,所有的规范全部重来。拆成微服务、换数据库中间所有的这些标准全部按照阿里的要求做修改。在这个基础上提出来DevOps体系。
云效在DevOps上落地的一些内容,从开发开始→测试→集成→部署,包括环境管理、监控。这一套可视化非常强,也简单易用,工作者不需要学很多,尤其是测试人员,只需要上堂课就可以将上万条案例都测试完。
“鑫云+”项目并行开发、多分支管理、持续集成
分支开发模式是云效非常值得学习的一点。在传统端,比如一个老开发系统已经开发很长时间,有一个大的模块可能半年才上,但是同时又有其他小的需求,可能一两周就要上,同时可能也有一些bug要修复,三条线并行。这时候往往出现的一种情况是虽然也分支了,但是并不能管控所有人的提交时间,可能提交的时候会产生冲突,就需要解决冲突,配管员就是解决冲突的。还有一种就是在只有一个主干的时候,上线的时候通通往上交,交到最后发现又要去解决依赖的问题。所以这个时候自动化就根本无法实施,交付的自动化当时对于我们来说是非常难解决的问题但是云上解决了。云效首先永远有一个保持正确的主干,来了一个需求之后,会有特性分支,并行的特性分支开发完之后。如果这三个需求都要上,那就从主干上打出一个集成分支到认证环节去测。如果发现有问题有一个需求不能上,全部回滚回来把正确的两个打出集成再往下走。所有的这些自动化非常的快,不需要在里边摘代码,不需要查看冲突,都能快速的完成。
“鑫云+”项目测试效能提升
在2016年新核心上线的时候上了一个新的系统,核心系统对于一个银行来说相当于信道,它的改动会使其他系统得到改动,这个系统的重建也是非常巨大的一个工程。当时没有一个好的自动化测试工具,所以测试是一个非常耗成本的事情。到了“鑫云+”的时候我们也是核心,我们是全国首家能够实现分布式核心的商业银行。 “鑫云+”是一个通道式的平台,其实大部分的时候是没有界面的,靠人工测界面是测不起来的,但是又希望提前去发现这些问题。所以更多的时候测试是要分层次的,针对接口的测试针对服务的测试,把这些都测掉,云效能够在它的系统里做自动的留痕,保证再去重新跑一遍的时候只要是修改的测过的都能够正确的上去。
“鑫云+”混合云架构的安全策略管理
在这里要感谢云效,一开始是采用混合云的架构,在公有云上测试,在私有云上面生产。
这样的话,就必须要有一个链路去通到公有云。云效在这里帮助做了一些安全策略,或多个中枢扭转的这种设计,使得我们既能满足监管要求也能够无缝对接迭代快速的开发模式。
免费体验阿里云云效:企业级一站式研发协同平台,通过BizDevOps、DevOps、敏捷开发等不同研发解决方案,助力企业实现研发敏捷和组织敏捷。
如果您的团队有专有云部署需求,欢迎填写咨询表单,我们会有工作人员与您电话交流。
本文作者:吴攀,南京银行研发管理负责人。
本文内容非阿里云官方提供,如您发现本文档存在侵权内容或其他问题,请提供相应证明材料并在本页面内提交反馈信息,阿里云会协调或通知相关作者进行处理