2019云计算开源产业大会丨赖强:中国农业银行开源治理实践

发表日期: 2019年07月04日

赖强:非常高兴有机会来参加云计算开源产业大会,分享一下农业银行在开源软件治理方面的一些研究和实践。

赖强

农业银行为什么要开展开源软件治理?

作为金融业,银行是可以数字化产业的用户方。整个产业供给侧发生了很大的变化,以往银行更多使用商业软件,除了银行自身软件之外,其他软件,尤其是基础软件、操作系统、中间件都用商务软件,这时候往往大型商业软件供应商会给我们做定制化的服务,这时候我们有什么需求直接找厂商就可以得到很好的解决。

而近两年,银行业基本进入了金融科技时代,在这个时代也是跟这个大会主题非常契合,银行未来发展会使用大智云等技术,如TensorFlow、Hadoop、Spark等技术,这些技术都是基于开源的,这些开源软件目前基本都是从互联网上靠用户侧自己去找,供给已经是超市化的。

今天公布:GitHub9600万,2018年增加了1/3。对于我们企业来讲,选择开源软件已经是一个非常复杂的事情。

我们面临的问题主要有三个方面:

1.最早的时候基本上由研发团队进行选择,这时候发现它不具备组织级风险防控能力,开源软件还是有很多方面的风险。既然不具备这样的能力,怎么办?首先考虑从组织级要做相应的事情。

2.传统软件管理方式不适应新时代开源软件的使用。我理解开源软件其中一个比较大的价值,软件很大一块是新型的众包众策,企业内部也引入了这个。今天上午也有一个专家说,现在IT双模,都需要我们采用新的研发模式。

3.碎片化开源软件的使用不能够满足企业对技术掌控的需要。现在企业对技术掌控的要求越来越高,原来项目组做的时候,往往同一类开源软件会有多套,对一个组织来讲成本会比较高,我们现在也在做一个转变,以组织级方式来做。

以上是我们农业银行以前面临的问题,也就是说从用户侧去探讨、去研究如何做好开源软件的管理和使用。

银行与数字化产业有很大的区别,我们主要是做应用系统。银行业实际上对应用系统有专门的定级,不管用什么样的软件,银行提供了这个服务必须要达到国家相应的要求,银行内部也对重要信息系统有管理的需要。银行往往对五个方面比其他行业更高一些性能,用户数都是以亿来计的,月活跃量基本是千万级,是非常大的量,尤其安全方面比很多行业都要求高。如果手机一天不能用,大家会难受一天,但是如果某一天在银行的钱没有了,估计谁也接受不了。我们明确了基于可信的评估模型管理策略,不管入什么样的软件,必须要达到可信的,我们制定相应等级要求,根据等级来进行分级分类的管理,也就是说不管是这个软件具有商业服务支持,还是自建专业团队,或由项目组自主掌握的相关技术,只要用在生产环境,都按照等级进行评估。同时我们从独立部署运行方面考虑相关风险隔离机制。

  如何拥抱开源?

在大的趋势下,如果不使用开源,对银行来讲是一个颠覆与被颠覆的状态。因为不适用开源意味着很多大智云技术用不上,很可能你的产品在市场上跟不上。农业银行在科技与产品创新管理委员会,下设一局两中心,项目经理管理机制来实现IT双模研究的管理模式,开源是对我们管理体系有效的补充,为此我们设计了一个开源管理的实施框架,制定了一套统一的评估方法、模型、平台工具,对软件研发的全生命周期进行五位一体的规划管理。

最早开源软件是由项目管理人员自发使用,我们做了开源软件治理之后,是在技术管理部门设立了相应的岗位,现在基本由技术架构师、应用架构师、安全架构师来牵头。原来来源于项目组的开源软件已经在使用的,我们会进行组织级评测,形成一个组织计开源软件的目录和指导意见,在整个委员会统筹之下来开展开源软件的治理工作。同时我们也会设立专业的团队。我们还会设立一个应用平台研发部,让我们自己对开源技术深入掌握,现在整体上对于大型银行来讲对自主可控有一定要求,所以我们对技术的掌握内部提出较大要求。

这个团队会参与到软件显型、版本规划、配置优化,之前因为不同项目组采用了不同开源软件配置,导致我们在性能等调优方面得不到最佳的解决方案。

  怎么管理开源软件。

整个管理倡导的是管理态和运营态,是一种管理模式。我们建立了专门管理平台,对软件资产管理,包括自评,以及构建、安全检测等这样的工具会集成到整个软件资产里去。同时还有一个软件支持服务平台,这个平台可能类似于社区的支持,通过管理平台实现对开源软件从引入到使用到退出全生命周期的管理。

运行态方面,基于IaaS、PaaS之上,作为银行来讲,主要还是在做上面的应用,所以我们重点关注的可能是综合应用平台以及基于大数据的开发平台上。如综合应用平台现在用云的微服务架构集成到综合应用平台,形成对传统单体应用、微服务应用,我们综合应用平台有两种模式都会支持,既保证了原来传统研发能有效运转,同时对于新的微服务架构可以很好的提应用。

评测。基本上采取全流程、全覆盖、全方位的评估,之所以这么做的原因是没有把它完全独立出去,实际上是分类的,但不是彻底完全孤立出去的,不管采用哪种方式,从规划到需求、设计、开发、测试、投产,这些环节都是不可避免的,这个项目不管是选基于商业还是基于开源的,我们都是在版本规划里需求层面进行评估,评估之后按照我们的实际需要来做。

我们的评估模型主要考虑基于应用场景实际用途,同时考虑到风险偏好来进行评估。主要会评估四个方面:质量,开源许可协议,行业认可度,服务支持等基本质量要求。

 特点。按照基础软件,应用软件主要是在开源的组件,使用的桌面工具,根据用途,采用不同的管理侧。同时会根据服务的应用系统进一步确定开源软件需要做的评估,包括管理的增强、安全的增强,这是我们都要去做的。

举例,现在上大数据,如果按照最新等保指导要求,可能需要达到等保三级的要求,大数据这块纯粹Hadoop运营管理是做不到的,我们也是跟国内合作,提了很多管理需求,在原来开源软件基础之上做了一些管理上的增强,达到我们银行对于应用系统所需要的层级。还会根据风险偏好进一步确定它的使用后的管理策略。

我们构建整个开源软件管理引入的工具。原来更多是由项目组自发获取开源软件,这样就面临一个问题,根本不清楚到底哪些应用使用了开源软件。首先我们做了一个较大的改变,用组织级统一搭建软件资产管理平台,基于这个软件的平台,由专门配置管理团队会统一确定可信的站点,通过专业的团队,根据需要,先下载到内部服务器上面,我们也分了三个库,适用库,这个开展软件在适用库的范围通常比较大,经过评测,确定引入之后,会放到交互库当中去,一旦生命周期终结之后,会归档退出。

通过统一的构建工具,能够建立开源软件跟自研软件关联关系,就能够很好管理开源软件。基本上通过内部评测之后,在内部使用时能够得到一个比较方便的使用。

针对开源软件管理的架构,里面会用到一些厂商的工具。

以往开源软件出现问题时,我们的做法是专项排查,一个一个项目组靠人工去做这个事情,目前是部分做到工具,今年全部自动化。不管是开源漏洞还是通过漏扫工具发现开源软件本身漏洞之后,都会形成相应的任务,任务发布到研发知识平台,形成相应的工单。由于我们建立了开源软件和应用系统的关系,所以能很快确定开源软件会影响到哪些应用系统,通知相应应用系统责任单位进行风险的确认,按照我们确定的风险级别进行相应处置。原来人肉几天才能做的事情,现在能够快速定位、快速处理,这是我们作为开源软件治理通过工具化以后给我们带来的很大便利。

 做开源软件核心目标。

我们核心要助力整个银行数字化转型,通过开源软件整个治理过程,现在把人工智能、移动互联、区块链、大数据、云计算、网络安全,形成一个自己金融科技的服务能力,我们叫“两录两库”,软件目录、协议目录,漏洞库和自评库,通过这个模型的评估建立自身软件服务平台,这样在对比银行的渠道会用到大量的移动互联技术,内部管理会用到大量的大数据技术、人工智能技术,第三方可信的会用到区块链技术,通过这个评估,能把技术跟场景进行融合。

尤其是银行今年以来比较热的话题是“开放银行”,这跟开源的理念是一样的,早期我们也跟一些学校有合作做研究,也想做一些开源的项目,银行产品本身用实物货币越来越少,更多通过数字化、通过APP、通过手机等载体,未来整个银行产品化之后、数字化之后可能会进一步开放,一些自发开源的企业面临的问题我们也会面临,真正把开放银行做起来之后,对银行来讲也会产生很大的变化。

未来展望。

非常高兴跟中国信通院有这么一个合作,我们去年参加了一个银保监会的研究课题,非常希望有一些行业合作,因为我们的目标就是希望把开源软件通过一套有效的方法和规矩,在内部形成一个培训机制之后,会自己形成一个可信的知识图谱,来支持我们应用系统的研发。中国信通院做了之后,我们能够形成一个行业,甚至一个国家级的,原来希望支持内部数字化转型,通过加强行业的合作,相信相关的开源产业会更好地服务于其他产业。目前我们也加入了金融行业开源社区,也非常希望未来能够在中国自己的漏洞库、开源协议的认证等有对接,进一步确保我们自身的开源软件在使用上能够做到自主可控,而且更加可信,同时能够有一些更加好的标准化的做法来帮助企业做数字化转型。   

点赞 0
分享到:

置顶
点赞
0