在2018云栖大会南京峰会企业研发云专场,由南京银行研发管理负责人吴攀带来了“云效助力新金融DevOps转型——南京银行实践之路”的主题分享。首先对南京银行的研发规模与成长做了介绍,对“鑫云+”的诞生和其架构应用做了详细的讲解。

(云效公有云周年折扣活动进行中红,包年55折优惠中!)

以下为精彩视频内容整理:

南京银行研发规模概况

简单给大家介绍一下南京银行现在的规模,南京银行的科技现在有运维中心、研发中心和科技管理部,我是在科技管理部负责配置管理和研发过程管理。我们现在正式的员工有200多人,外包合作场商有600多人,在线运营的运营系统有300多个。
有人说银行不就是有柜面、网银、手机银行吗?在这里想和大家解释一下,举个例子。一个贷款的产品,除了要涉及到本身的核心柜面,贷款本身的系统以外,可能还涉及到风控,涉及到大数据,然后总账,还有账户管理,还有监管。那么银行的这种交易的特殊性,导致了每一个产品可能都有很多个系统在背后支撑,也就导致了交易的链路会非常的长。

南京银行研发管理的成长历程

很荣幸在加入南京银行之后正好是金融快速发展的这些年,见证了南京银行科技力量不断增强的一个过程。最开始的时候银行可能只有几个系统结构简单,但还是有很多技术强人,他可能技术能力很全面,他可能一个人就把系统都做好了,把一个系统维护好。那么银行的业务不断扩展,用户可以买理财,买债券,可以融资等,这样就导致了很复杂的系统结构。这个时候如果还像原来作坊式的开发模式就行不通了。举个例子,在刚刚工作的时候有一个项目经理,他是非常负责任的,他每天下班前都会做一个excel表记录团队里每个人今天修改了哪些代码,在哪个模块上做了什么,这样手动去记。在多行研发的时候根本就不可能完成的。到2014年的时候系统已经到200套了,也就大概六七十个人,这个时候仅仅靠人是根本不能完成的。这个时候就决定要引入外部的管理,要有流程,要有质量。2014年的时候获得了CMMI ML3和ISO的体系认证。

传统金融业研发过程管理痛点

在建设这些体系的过程中也是跟传统银行业一样遇到了很多痛点,比如厂商很多,拿过来的原型也很多。原先的这种模式是外购为主,经过适配很快就能把业务连接起来。这样的弊端就是各种各样的技术架构,非常复杂,在这样复杂的系统架构里边去实施一个流水线是一件非常痛苦的事情,同时也带来了银行的业务要求需要迭代非常快。如果这么多的问题,没有一个工具来管理的话,是不能完全应付的。当时我们也做了一些统一的工作,设立了一些系统把需求管起来。架构也要统一起来,即使是一部分的统一也要尽量的保持不要浪费资源。配置管理也用了一些集成的工具,还有测试到部署。但是一个点的快并不是全流程的快,想要快速交付这个价值,需要一个完整的不能中断的流水线才能尽善尽美。这些问题怎么解决呢?接下来进行一个介绍。

“鑫云+”的诞生

2017年1月份这个思想才萌芽,真正开始进厂的时候是2017年的7月,等到上线是2017年11月,先来介绍一下“鑫云+”是一个什么概念呢?南京银行是鑫合俱乐部的一个牵头行,鑫合俱乐部有140家成员行,所有的资金在一个联盟里面。另外的一头连接的是互联网。作为这两头的桥梁,可以连接出很多种可能。

“鑫云+”项目架构变革

“鑫云+”从7月份进厂之后就对厂商原有的产品做了重构,所有的规范全部重来。拆成微服务、换数据库中间所有的这些标准全部按照阿里蚂蚁的要求做修改。在这个基础上提出来DevOps体系。

云效在DevOps上落地的一些内容,从开发开始→测试→集成→部署,包括环境管理、监控。这一套整个的可视化非常的强,也简单易用的一个流水线。这样的话工作者不需要学很多,尤其是测试人员,只需要三堂课就可以将上万条案例都测试完。

“鑫云+”项目并行开发、多分支管理、持续集成

在云效值得学习的三个地方,第一个就是分支开发的这个模式,在传统端,比如有一个老的开发系统已经开发了很长时间,有一个大的模块可能半年才上。但是同时又有其他小的需求,可能一两周就要上,同时可能也有一些bug要修复,三条线并行。这时候往往出现的一种情况是虽然也分支了,但是并不能管控所有人的提交时间,可能提交的时候会产生冲突,就需要解决冲突,配管员就是解决冲突的。还有一种就是在只有一个主干的时候,上线的时候通通往上交,交到最后发现又要去解决依赖的问题。所以这个时候自动化就根本无法实施,交付的自动化当时对于我们来说是非常难解决的问题但是云上解决了。
云效首先永远有一个保持正确的主干,来了一个需求之后,会有特性分支,并行的特性分支开发完之后。如果这三个需求都要上,那就从主干上打出一个集成分支到认证环节去测。如果发现有问题有一个需求不能上,全部回滚回来把正确的两个打出集成再往下走。所有的这些自动化非常的快,不需要在里边摘代码,不需要查看冲突,都能快速的完成。

“鑫云”项目测试效能提升

在2016年新核心上线的时候上了一个新的系统,核心系统对于一个银行来说相当于信道,它的改动会使其他系统得到改动,当时这个系统的重建也是非常巨大的一个工程。在当时的时候是没有一个这样好的自动化的测试工具,所以当时测试是一个非常耗成本的事情。到了“鑫云+”的时候我们也是核心,我们是全国首家商业银行能够实现分布式核心的银行。 “鑫云+”是一个通道式的平台,其实大部分的时候是没有界面的,靠人工测界面是测不起来的,但是又希望提前去发现这些问题。所以更多的时候测试是要分层次的,更多的是对接口的测试针对服务的测试,把这些都测掉,别切云效能够在它的系统里做自动的留痕。保证再去重新跑一遍的时候只要是修改的测过的都能够正确的上去。

“鑫云+”混合云架构的安全策略管理

在这里要感谢云效,一开始是采用混合云的架构,在公有云上测试,在私有云上面生产。
这样的话,就必须要有一个链路去通到公有云。云效在这里帮助做了一些安全策略,或多个中枢扭转的这种设计,使得我们既能满足监管要求也能够无缝对接迭代快速的开发模式。

本文作者:云效鼓励师

本文为云栖社区原创内容,未经允许不得转载。

108天南京银行完成不可能完成的新金融DevOps转型的更多相关文章

  1. 使用Gson转换json数据为Java对象的一个例子

    记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...

  2. Linux-配置虚拟IP实例

    在日常linux管理工作中,需要为应用配置单独的IP地址,以达到主机与应用的分离,在应用切换与迁移过程中可以做到动态切换,特别是在使用HA的时候,这种方案可以保证主机与应用的隔离,对日常的运维有很大的 ...

  3. 虚拟ip配置

    虚 拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口. VIPs大部分用于连接冗余:一个 ...

  4. 【Beta阶段】第二次scrum meeting

    Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 会议总结,博客编写,代码整理 100% 准备下一次会议内容,并对已完成的代 ...

  5. 50.percentiles百分比算法以及网站延时统计

    主要知识点 percentiles的用法     现有一个需求:比如有一个网站,记录下了每次请求的访问的耗时,需要统计tp50,tp90,tp99 tp50:50%的请求的耗时最长在多长时间 tp90 ...

  6. Entity Framework 6 Recipes 2nd Edition(10-8)译 - >映射插入、修改、删除操作到存储过程

    10-8. 映射插入.修改.删除操作到存储过程 问题 想要映射插入.修改.删除操作到存储过程 解决方案 假设已有运动员实体模型,如Figure 10-8所示. 对应的数据库表如Figure 10-9所 ...

  7. 【资源】108个大数据文档PDF开放下载-整理后打包下载

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html        本博客其他.NET开源项目文章目录:h ...

  8. 108 vpn iptables

    [root@fge108 webapps]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 47.88.1 ...

  9. 10-8位7段数码管驱动实验——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线--普利斯队长精心奉献   实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据, ...

随机推荐

  1. ThreadPoolExecutor 源码分析

    ThreadPoolExecutor 线程池核心实现类 线程池的生命周期 RUNNING: 接受新任务,同时处理工作队列中的任务 SHUTDOWN: 不接受新任务,但是能处理工作队列中的任务 STOP ...

  2. debian 配置静态ip

    1. 查看虚拟机上本机ipcmd→ipconfig 2. 配置网卡2.1 备份原有配置文件配置文件cp /etc/network/interfaces /etc/network/interfacesb ...

  3. 如何减小VMware虚拟机硬盘空间

    VMware是微软出品的目前最好的虚拟机件,利用虚拟机可轻松实现多系统同时运行.特别需要多个系统来完成不同功能的者更是需要,VMware是最好的选择,在这里介绍一些VMware虚拟机使用的小技巧,本文 ...

  4. abstract 和 interface 抽象类和接口的区别

    初版:以后再整理. 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需 ...

  5. 倾旋之slack主题协同

    源:https://pocketcorp.slack.com/join/shared_invite/enQtNTk2MDYwNDA4NzU0LTg3ZGVlNDE5NWUzNjJhZTc1MDQ5MT ...

  6. 007/Docker(一)

    Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口. Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件,就会生成一个虚拟容器.程序在这个虚拟容器里运行, ...

  7. C++学习笔记(七)--共用体、枚举、typedef

    1.共用体 union其定义与结构体类似:union 类型名{ 成员表列;};声明变量的方法也类似: a. union 类型名{            b. union { c.类型名 变量名; 成员 ...

  8. C与C#之间使用AES加密解密算法

    目的:C语言写的客户端加密数据,数据发送到C#写的服务端,服务端解密. 保证C与C#之间加密解密AES的配置和模式一直. AES: AES是对称加密算法,关键点: 密钥长度,明文长度,密文长度 密钥长 ...

  9. vueStudy

    目录层次: 目前学习曲线有三个前端开发,每个人有各自的目录,可以很好地对比彼此的代码.  unit1 邮箱验证 用户名 数字.字母.中文 .划线不能以下划线开头 2-12位 密码验证 6-20位英文和 ...

  10. [2019杭电多校第二场][hdu6598]Harmonious Army(最小割)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6598 题意是说一个军队有n人,你可以给他们每个人安排战士或者法师的职业,有m对人有组合技,组合技的信息 ...