实战 | 开源助力基础软件腾飞,治理保障顶级项目稳健


微众银行基础科技产品部  邸帅  王和平  李文
微众银行科技管理部  钟燕清

近年来,开源技术在金融行业得到广泛应用,基于开源技术自主研发的基础软件在金融行业中扮演的角色越来越重要。开源为金融机构和企业注入发展活力的同时,如何利用开源“协同创新”的特性推动金融机构业务创新和敏捷研发,以及如何保障金融机构开源的安全性、稳定性、核心技术可控性成为行业关注的重点话题。


微众银行自立行之初就充分利用开源软件进行系统建设,搭建起一套完善的开源治理体系,保障了开源技术的稳定、安全、合规运用。后续,基于自身实践向行业陆续开源了多个技术领域的几十个项目。近期,由微众银行主导开源并捐赠的大数据平台计算中间件Apache Linkis项目正式从Apache软件基金会孵化器毕业成为顶级项目,其中从技术开源到社区治理的实践经验,或许可以为金融行业的技术开源提供可参考案例。


拥抱开源,搭建完善开源治理体系

成立之初,微众银行充分利用开源软件和标准化硬件,搭建了国内首个具备完全自主知识产权、可支撑亿量级客户和高并发交易的新一代分布式银行核心系统,得以节省购买高端计算资源、软件许可的巨额费用,大大降低了IT成本,提升客户体验,探索出一条商业可持续发展的数字化普惠金融路径。


2019年,微众银行宣布金融科技全面开源,积极拥抱开源文化,参与开源社区和开源生态体系建设。迄今,在人工智能、区块链、云计算和大数据等领域已源源不断涌现出33个项目。


在制定了“科技全面开源”的战略目标后,为能够通过更广泛和深入的开源项目社区建设,连接更多的生态伙伴,共同推动技术创新与业务创新,以及满足金融机构“强监管”特性、严苛的安全及合规方面的要求,微众银行逐步建立起了完备的开源治理体系。


2019年,微众银行开始组建开源管理办公室(OSPO),微众银行的OSPO组织定位是“银行内部的开源基金会”,在组织架构、职能定位等方面深入研究和参考了开源基金会以及各种大型开源项目社区的管理体系架构及运作模式(如图1)。

图1  微众银行开源治理组织架构


该模式下,信息科技委员会为银行最高与信息科技相关的决策机构,开源管理工作组直接向信息科技委汇报,这意味着公司将开源与研发管理、运维管理等放到了同一个层面,通过成立OSPO把和开源治理相关的各个职能、岗位和角色串联在一起,统筹规划所有工作。


微众银行还成立了TOC团队(Technical Oversight Committee,技术监督委员会),由各个部门选派或推举的技术专家构成,主要工作就是制定技术标准和规范、解决技术难题、推动内部开源、推动公共平台建设,以产品驱动、敏捷模式的组织架构在企业内部技术开放的风格中推动由技术驱动的决策机制,加强技术联动。通过TOC在企业内部推动由技术驱动的决策机制,实现开放协同透明的氛围,是微众银行在开源建设上很重要的探索。


同时,微众银行积极倡导内部开源文化建设,通过内部开源激励体系,鼓励员工积极参与内外部的开源活动及上游社区。目前,微众银行超过五成的科技员工关注开源、拥有GitHub账号,超过二成的科技员工积极参与社区贡献。


在完善的开源治理组织体系基础上,微众银行制定了长期的开源战略,从开源软件的使用者不断向上游社区的参与者、开源项目的发起者、开源生态的建设者等角色转换,其中,孕育出了计算中间件Linkis项目。


敏捷创新,解决金融机构业务痛点

对于金融行业而言,数据是驱动业务发展的核心资产。为了更好地利用这些数据,搭建自己的大数据平台已经成为金融行业科技创新的主要方向。Linkis最初就是为解决微众银行内部大数据平台建设过程中的痛点而生。


大数据技术的普及和深入发展带来了越来越多样化的用户场景需求,金融机构在建立大数据平台的过程中,遇到了一些挑战,如大数据的深入应用催生了很多上层应用工具和底层计算存储引擎,而在当前的大数据平台架构体系下,上层应用工具和底层各个引擎各自为政的情况还十分普遍,Server-Client模式紧耦合满天飞。在大量的上层应用工具和大量的底层引擎之间,缺乏一层通用的“中间件”框架设计,导致整个大数据平台变成复杂网状架构(如图2)。

图2  没有Linkis之前上层应用工具和底层引擎之间是个复杂的网状结构


这也使得上层应用工具和底层引擎之间的连通、扩展、管控、编排、复用等“计算治理”问题凸显。


从“连接”问题来看,大数据底层计算存储引擎繁多,各个上层应用工具需要各自维护底层引擎的Lib依赖、运行时环境等信息,导致部署运维工作极其繁重,底层引擎任何变动都会影响上层应用的可用性和可维护性。


从“扩展”问题来看,比如某个上层应用最初使用的数据引擎是Hive,但一段时间后觉得Hive计算太慢,想使用Spark,后又由于同样的原因再去使用Presto、Impala等,此时这个上层应用工具需要分别去扩展对接这些引擎,这无疑会带来非常巨大的开发成本,也不符合金融机构对敏捷研发的需求。


从“复用”问题来看,每个上层应用都要重复集成和管理各种底层引擎的Client的连接及其状态,特别是在并发使用用户逐渐变多、并发计算任务量逐渐变大时,每个上层应用还要重复解决多个用户间在Client端的资源争用、权限隔离,计算任务的超时管理、失败重试等等计算治理问题,造成的开发人力浪费不可小觑。


除了上述的架构层面问题,在复杂分布式架构环境下,想让各种类型的计算任务都能更简洁、灵活、有序、可控地提交执行并成功返回结果,计算治理还需关注高并发、高可用、多租户隔离、资源管控、安全增强、计算策略等细化特性问题。


为解决这些问题,微众银行大数据平台团队结合自身开发经验设计了中间件Linkis(如图3),专门用来解决上述紧耦合、重复造轮子、扩展难、应用孤岛等计算治理问题,如复杂分布式架构的典型场景——数据平台环境下的计算治理。

图3  应用Linkis后的上层应用和底层引擎之间的连接


Linkis在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用Linkis提供的REST/JDBC/Shell等标准接口,上层应用可以方便地连接访问MySQL/Spark/Hive/Trino/Flink等底层引擎,同时实现变量、脚本、函数和资源文件等用户资源的跨上层应用互通,以及通过REST标准接口提供了数据源管理和数据源对应的元数据查询服务。


以往,金融机构建立大数据平台时,因为上层应用和底层引擎的调用关系复杂,很多金融机构会在选择了某些组件后,将其固化,被某个单一技术绑定,这样也失去了开源技术“敏捷高效”的意义。而Linkis作为一个中间件工具,为微众银行大数据平台中庞杂的上层应用和底层技术提供了高效衔接,成为微众银行打造的一站式、金融级、全连通、开源开放的大数据平台套件WeDataSphere中重要的一环。从最开始只为解决数据分析工具IDE即时分析的场景,到现在已经支撑了微众银行内数据平台的多个上层应用工具,涵盖了用户的整个数据应用分析的开发流程,并对接了多个线上应用支撑了多个核心关键业务应用,让不同的引擎和不同的技术组件能够高效打通,并且实现兼容。


利用Linkis强大的连通、复用、编排、扩展和治理管控能力,通过计算中间件将应用层和引擎层解耦,简化了复杂的网络调用关系,降低了整体复杂度,保障灵活创新的同时还节约了整体开发和维护成本。


开放协作,打造世界级开源项目

Linkis最初只是在微众银行内部进行孵化,2019年开始对外开源。在开源后,Linkis项目得到了很多开发者和用户的支持和帮助,如招联金融、中国平安、阳光保险、长桥证券等金融机构,以及中国电信、奇虎360、理想汽车、Boss直聘等各行各业知名企业也逐渐参与Linkis社区的建设。利用开源技术的创新应用,微众银行不但解决了自身大数据平台建设的痛点,还为业界提供了一个优秀的中间件开源方案。


Linkis开源后的快速成长,并获得了ASF的注意。ASF成立于1999年,是目前世界上最大的开源基金会,管理着2.27亿多行代码,并且100%免费向公众提供价值约为220亿美元的软件,使全球数十亿用户受益。


经过ASF的全方位审核和评估,于2021年9月,Linkis正式通过ASF投票决议,以全票通过的优秀表现成为ASF孵化器项目。


ASF孵化器对毕业成为顶级项目所要求的条件严苛,每个孵化项目都需要达到事先制定的目标成熟度,且遵照ASF的孵化毕业流程进行投票,因社区的参与者来自世界各地,所以项目需要所有不同国家、不同文化、不同背景的开发者共同认同一个技术理念,投票通过方可毕业。正因此,造就了如Hadoop、Flink、Spark等多个享誉世界的顶级项目。


2023年1月18日,Apache软件基金会官方宣布ApacheLinkis顺利毕业,成为Apache顶级项目(TLP),这也是全球首个由银行机构主导捐赠并毕业的Apache顶级项目。截至目前,源自中国的Apache顶级项目只有20个,华为、百度、阿里、腾讯等大型科技公司均主导过Apache顶级项目,主导Apache顶级项目已成为国内外领先科技公司技术实力和社会责任的双重体现。


社区治理,奠定顶级开源项目基础

Apache Linkis的成功,得益于微众银行建立的开源治理体系和Apache Linkis的开发团队持续不断的努力和创新。在项目的开源治理方面,Apache Linkis充分遵循了“Apache Way”(Apache软件基金会推崇的开源软件开发和社区治理模式),并结合微众银行自身多年的开源治理实践经验,为Apache Linkis的成长提供了开放、透明、共识、技术导向、精英治理等治理模式。


1.建立开放的沟通渠道。Apache Linkis开放了多个沟通渠道,包括Apache邮件列表、开发者社群、GitHub/Gitee、社交媒体等。这些渠道允许社区成员自由讨论和交流,共同推动项目的发展。Linkis开发团队积极参与社区讨论和反馈,不断优化和改进软件的功能和性能。


2.建立清晰的代码管理和贡献流程。Apache Linkis基于GitHub建立起清晰的代码管理和贡献流程,使得社区成员可以方便地提交代码和贡献。Apache Linkis开发团队会对代码进行审核和测试,确保其质量和稳定性。同时,Apache Linkis也鼓励社区成员积极参与到代码审核和测试中来,共同推动项目的发展。对于有意愿为Apache Linkis做贡献的开发者,Apache Linkis团队进行耐心的指导,帮助开发者顺利完成代码提交,做出代码贡献。


3.提供完善的文档和教程。Apache Linkis提供了完善的文档和教程,帮助社区成员更好地理解和使用软件。Apache Linkis的文档和教程包括安装、配置、使用和贡献指南等,通过Apache Linkis官网、GitHub、Gitee都能快速的获取到,这些内容可以帮助社区成员更好地使用软件。


4.建立友好的社区文化。Apache Linkis建立了友好的社区文化,鼓励社区成员彼此尊重和支持,促进合作和共赢。Apache Linkis开发团队非常注重社区成员的反馈和意见,积极处理和解决问题,使得社区成员感受到Apache Linkis项目的价值和意义。


5.持续创新和改进。Apache Linkis开发团队持续进行创新和改进,推出了许多新的功能和模块,使得软件的功能和性能得到了极大提升。Apache Linkis开发团队还积极关注行业的变化和用户的需求,不断优化和改进软件,为用户提供更好的使用体验。


在建立和管理一个开源项目的过程中,开放的沟通渠道、清晰的代码管理和贡献流程、完善的文档和教程、友好的社区文化和持续的创新和改进十分关键。通过这些方式,Linkis逐渐成为了一个稳定、成熟和受欢迎的开源项目。目前,Apache Linkis开源社区群用户总数超7600人,沙箱累计试用公司超2600家,收到超过110家企业已投入生产的反馈,生产环境支撑的数据量超400PB,生产服务的用户超5000人,涉及金融、电信、制造、互联网等多个行业。


释放价值,助力基础软件走向国际

Apache Linkis是微众银行开源战略的重要里程碑,从项目的开源的经验和成效来看,开源的确可以为金融机构的创新发展提供强大的动力,并为金融行业的科技进步释放积极价值,具体而言。


1.开源是促进团队技术能力飞跃的有效举措。在开源社区建设的过程中,项目团队始终践行开放的理念,积极组织并参与社区的讨论与分享。在Apache Linkis项目中,开源社区集结了超过127位来自不同地区和行业的开发者参与贡献,平均每1~2个月就会发布一个新版本,极大反哺了项目的成长,加速了微众银行大数据平台团队自身技术实力的提升。


2.开源是激发技术人员创新热情的有力抓手。“将代码丢出去,将信任拿回来”是微众银行开源爱好者们秉持的一致理念。当代码质量经过了社区开发者的考验,特别是收到来自外部机构使用后的反馈时,研发人员所受到的鼓励往往比内部项目交付还要直接。而这种鼓舞,也让技术人员能够产生持续的动力,从而饱含热情地投入下一次创新。


3.开源是提升企业技术预研能力的可靠方式。拥抱前沿技术、持续科技创新是当代金融机构的必由之路。微众银行坚持以科技为驱动业务发展的引擎,持续投入前沿技术研究与储备,开源软件的引入和对外开源的过程中,基于快速迭代的开源技术,以及与全球社区开发者的交流探讨,在开源实践中提升了对技术趋势的研判能力,帮助我们在发展初期将区块链、云计算等技术运用于自身业务,又前瞻布局研发了诸如联邦学习FATE、区块链FISCO BCOS、大数据Linkis、隐私计算WeDPR等相关技术成果。


4.开源是践行ESG、推动基础软件自立自强的可行路径。一般看来,将知识产权局限于企业内部使用,可能对企业本身的利益是最大化的。然而微众银行选择开放知识产权,将软件代码开源,不仅整体降低了行业的研发门槛,避免重复造轮子,更能推动行业技术的共同发展。通过技术开源、生态建设,Linkis项目从银行内部解决大数据平台管理的一个小组件,成长为被国际开源领域权威认可的明星项目,证明了我国金融科技的研发实力,提升了我国大数据相关基础软件的影响力,推动了自主研发的基础软件走向国际。


未来,微众银行将会持续贯彻开源战略,完善治理体系,贡献开源代码,共建开源生态,并将经验共享给行业,助力推动金融科技整体的开源进程,为助力高水平科技自立自强,探索行之有效的参考路径。


(栏目编辑:韩维蜜)



新媒体中心

主任 / 邝源

编辑 / 姚亮宇  傅甜甜  张珺  邰思琪

本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章