Apache Linkis入选孵化,微众银行开源之路独行快,众行远

在王家卫执导的电影《东邪西毒》中,有这样一句台词:“每个人都会经过这个阶段,看见一座山,就想知道山的后面是什么。我想告诉他,可能翻到山后,你会发觉没什么特别,回头看,会觉得这边更好。但是他不会相信。以他的性格,自己不试试是不会甘心的。”

1923年,在英国探险家乔治·马洛里准备攀登珠穆朗玛峰前,记者问他为什么要攀登珠峰?他回复说:“因为山就在那里。”在每个攀登者眼前,山就是远方,他们不惜用手中的微光照亮众人的前行之路。

如今,在愈发壮大的开源世界,同样有一群人,手持开源的火炬,踽踽前行。独行快,众行远,他们并肩携手,一同探索人类科技前沿的“无人区”,将开源的基因深深融入自身的企业文化。

在2019年就宣布“全面开源”的微众银行便是代表之一。在2019年的金融科技日,微众银行一口气发布 10 款开源的技术、应用以及解决方案。同年,微众银行将一套一站式、金融级、全连通、开源开放的大数据平台套件WeDataSphere逐步进行开源,其中就包括计算中间件 Linkis等核心组件,形成了业界领先的大数据开源生态。

2021年8月,Linkis 成功进入国际顶级开源组织 Apache 软件基金会孵化器,完成关键一步。一路走来,Linkis是如何在两年内取得关键性阶段成果的? 


初识 Linkis:重新出发,终见微光


回顾往昔,微众银行大数据平台负责人邸帅和大数据技术专家尹强的记忆依然深刻,“Linkis在微众内部,已经过5年的迭代。其5年前的最原始版本,是内部自研的一个叫Remote Server 的后台服务,只是用来辅助解决WebIDE 这一单一数据脚本开发工具的任务高并发,和多租户隔离问题。当时,做消费金融业务的用户团队初尝这一套支持高并发、多租户的WebIDE 方案,马上就’上瘾’,开始大规模推广。”不久,业务团队郑重地提出了一个新需求,“我们现在使用的其他数据工具,也要支持高并发、多租户隔离。并且,现在各个数据工具之间是彼此割裂的,我们不想再做各种复制同步切来切去,我们需要更加互通融合的体验。”

这个问题很棘手。挨个数据工具做改造?团队人手又不足,能力也参差不齐,即使大家加班加点,效果还可能不理想。做一套标准的、可复用的公共框架服务?行业还没有类似的成功案例,难点多挑战多不确定性强,依然可能会费力不讨好。面对这种困境,Linkis团队曾几经纠结。

“团队一起讨论了几轮,决定还是要走,构建可复用的公共框架服务这条路”,邸帅对当时的这一决定深感欣慰,“团队的核心成员不少既做过开发又做过运维,长期面对数据平台庞杂组件的开发运维工作,没少吃过在不同组件中,重复解决高并发、多租户、不互通等相似问题的苦。如果我们不去做一套标准化、可复用的公共框架服务,这苦大家还得继续吃下去。

微众银行大数据平台负责人邸帅

于是,最初的Remote Server,演变为了统一任务执行服务UJES(Unified Job Execution Service)。它可以对接SQL开发、调度系统、可视化系统等各种上层数据功能工具,并可对接多种底层计算存储引擎,统一管理任务的提交、解析和执行,并打通各工具后台的物料、变量、函数等影响用户“互通”体验的要素。紧接着,技术团队继续完成更多功能“填空题”,进一步完善了UJES 的连通、管控能力,包括数据脱敏、数据质量校验等更多功能工具也完成与UJES的对接。至此,UJES 已初步具备连通、管控、扩展、复用等核心功能,Linkis 雏形初现。

随着UJES 在微众银行大数据平台扮演的角色越来越重要,在2018年底的一次大数据平台团队内部工作规划会上,邸帅与团队开始重新思考和定位 UJES,以进一步优化其架构模块,和增强其可扩展性、可维护性,赋予其对接全栈计算存储引擎的“计算中间件”职责,并为它寻找全新命名。为贴切描述,开发者可利用它便捷的连通各种上层应用和底层引擎,团队一开始想到了《哆啦A梦》里的“任意门”,可随后觉得“门”字无法准确表达其中关键的“连接、连通”之意,取名为“任意桥”似乎更贴切些。

中文名有了,到底用哪个英文单词来表达“桥”的意义呢?不如用“Link”吧!邸帅的灵光一闪获得了大家的点赞,因为“Link”正是“连通”之意。为何后缀又多了“is”呢?这是微众银行副行长兼首席信息官马智涛,给微众银行大数据平台套件WeDataSphere中的所有组件,起的一个“小名”。“is”代表“In Sphere”,作为统一后缀,且将”S”设计成立体球形,能很好的提升产品名称的区分度和辨识度。

从 Linkis不断变换的命名过程中我们发现,由最开始的 Remote Server,到 UJES 统一任务执行服务,再到“任意桥”,最终到 Linkis,表面上是名字的转换,背后是微众银行大数据团队对 Linkis 项目不同时期,需要解决的问题的真实思考和升级提炼。

ApacheLinkis 概念图

时间到了2019年中,在微众银行首届FinTech Day上,Linkis 宣布开源。之后Linkis团队通过持续完善架构设计和代码,不断降低参与项目开发的门槛。对一个开源项目来说,可扩展性、可维护性是否良好,软件工程方面的文档、部署、调试与测试等方面的成熟度,都决定了开发者参与门槛的高低。而能否获得广大社区开发者的认可和参与共建,又决定了一个开源项目能否行稳致远。

从最初的忐忑忧虑到后来的笃定从容,一步步走来,邸帅带领团队建立了一个开放友好、蓬勃发展的开源社区。在起步阶段,就开始种子用户的识别和手把手的操作引导,甚至帮助用户做数据平台的整体问题识别和解决。但另一方面,团队能够投入到开源社区的运营和建设上的资源是有限的。“所以,我们非常关注社区用户的反馈,确保打造的功能贴近用户当前优先级最高的需求,而不是把资源投到一些看上去很美好而需求并不迫切的功能。”邸帅表示Linkis团队就是这样,把用户当成自己人,聚焦他们的最优先需求,耐心地引导他们去试验并运用到生产环境。这种自己人的友好态度,打动了更多的开发者,吸引他们参与新特性的设计与新版本的迭代讨论。

不断扩大的社区开发者朋友圈,持续致力解决前行中遇到的问题,让Linkis 的开源之路越走越宽,终见微光。如今,计算中间件Linkis 成为社区用户口中,大数据开源领域的“灯塔”,引领着大家在庞杂晦涩的大数据领域开源组件迷雾中前行,连通和照亮越来越庞大的上层应用和底层引擎生态圈。

 

开源之路:独行快,众行远


随着大数据技术的发展,支撑海量数据的分布式计算引擎越来越多,例如:Hive、Spark、Impala、Flink等等,各个计算引擎的架构设计、使用方式以及适用的场景各不相同,这无疑增加了建设大数据平台的复杂度,如何统一管理和调用这些框架工具,又是新的技术难题。彼时,Boss 直聘大数据平台负责人朱辉正在为企业建设一站式大数据开发平台绞尽脑汁。

此时,一位神秘的开发者把Linkis 开源代码放到了OSCHINA开源中国社区上。这段代码立马吸引了朱辉的注意力,他带领团队花费了一个月时间深入研究 Linkis 架构、代码后,欣喜地发现 Linkis 十分吻合他们业务需要,且文档齐全,代码质量较好,社区开放、活跃,是优秀的开源项目。在内部试运行一段时间后,2019 年下半年,Boss直聘成为第一个把Linkis投产到生产环境的公司,此时距离Linkis正式开源仅隔几个月。

Boss直聘大数据平台负责人朱辉

与 Linkis 两年同行的日子中,朱辉坦言收获良多:首先,他们锻炼和提高了编程技术。Linkis 作为分布式技术架构,由 Scala 和 Java 语言混合编程,意味着开发者需掌握这两门语言。同时 Linkis 涵盖了网络通信RPC技术、微服务治理、多租户多进程共同协作、资源调度算法以及各种计算引擎的插件化接入等多领域技术,通过学习Linkis,拓展了开发者的技术视野以及提升技术架构设计等能力。

其次,开发者参与开源建设的积极性不断提升。在逐步了解 Linkis 的过程中,朱辉感受到其友好的开源氛围:Linkis 技术手册齐全,定期技术分享和交流,建立众多讨论群,在群里反馈问题基本及时得到响应,并沉淀为 FQA 文档。朱辉逐渐被这个有活力的开源项目吸引,自发地加入 Linkis 的开源建设中,成为 Linkis 的 PPMC。目前朱辉不仅在工作中使用 Linkis,还在利用业务时间参与社区建设,主动给 Linkis 贡献代码,志愿负责日常问题的解答和跟进 PR,作为一位“自己人”,积极回馈社区。

苹果公司联合创始人乔布斯在斯坦福大学的演讲中曾说,人生就是一个连点成线的过程,有些经历也许一开始看不到它的意义所在,但也许若干年后便会发挥其特有的作用。开源星星之火逐渐成燎原之势,由一个个的“点”组建连接成“线”,且这些线不断延伸,相互作用:朱辉“不藏私”,积极将“宝藏”项目 Linkis 推广给团队小伙伴,目前他所在的团队都会使用 Linkis 开发,Linkis 已成为他们团队的核心技术平台之一。

朱辉团队的伙伴们,也喜欢为 Linkis 出谋划策。比如,他们发现在一些真实场景中,Linkis 的解决方案还有待完善。于是和微众团队一起头脑风暴,共同完成 Linkis 对 Flink 引擎的支持。又如一名朱辉团队开发人员在使用 Linkis Client调取数据发送Push 时出现故障,系统后台并无异常日志,微众团队立即参与进来,共同排查和定位问题,最终顺利地将难题解决掉。

在这些不断碰撞思维火花,携手联合攻坚困难的过程中,不同团队的开发者们磨炼和提高了自己的能力,提振了团队的凝聚力,形成良性循环,让开源飞轮转动起来。如今 Linkis 不仅帮朱辉团队打造数据中台,更普惠行业、社会,不少企业已实际应用到生产环境中。

截至 2021 年 7 月,Linkis 已拥有了 700多家试验企业和 1000+ 沙盒试验用户,涉及金融、电信、制造、互联网等多个行业。2021年8月2日, Linkis 正式通过国际顶级开源组织 Apache 软件基金会的投票决议,以全票通过的优秀表现成为软件基金会孵化器项目。

Apache Linkis开源里程牌

目前,Linkis已产生了15位Committer,51位Contributor,吸引了超过110位社区开发者加入开发群共同规划建设Linkis,社区代码贡献量超过10万行,PPMC团队成员更是扩大到了Boss直聘大数据平台负责人朱辉、天翼云大数据平台负责人王小刚、萨摩耶云数据业务部总监易小华、荣耀架构师张荣和爱奇艺大数据工程师王震等多家公司的大数据技术专家。

独行快,众行远。友好而开放的社区生态,是Linkis能茁壮成长的的关键。从内部来看,Linkis 真正填补了大数据中间件工具的空白,并独具创新性,不为重复造轮子而生。从项目工程化而言,其文档齐全,功能完整、成熟,系统稳定,代码可扩展性、可维护性良好,有效降低上手门槛,对用户十分友好。从外部来看,在社区的起跑阶段时,Linkis团队有效地集中资源和精力积累信任的种子用户,把用户当做自己人,不留余力地引导他们真正使用、参与讨论、版本迭代、代码贡献等开源建设中来,共同进步。


开源治理:以终为始,全面开花


2019 年 7 月,在微众银行的首届金融科技开放日大会上,微众银行副行长兼首席信息官马智涛宣布,“微众银行将 AI、区块链以及一系列金融级应用公开并全面开源,用金融科技开放创新的能力真正助力合作伙伴。”从此,开源成为微众银行金融科技的战略方向。

截止到2021年11月,微众银行已有 33 个对外开源的项目,超过230个代码仓,涵盖 AI、区块链、云计算、大数据、大前端等多个技术领域。Star 总数超过27,000 个,Fork近10,000个。其中不乏开源联盟链底层平台 FISCO BCOS、中间件平台 WeBASE、联邦学习工业级开源框架 FATE 和 EventMesh 、Linkis 等行业顶尖的开源项目。

微众银行开源管理办公室负责人钟燕清

微众银行开源管理办公室负责人钟燕清的工作,是支持技术团队创建和运营开源社区,并协助微众的开源项目与开源基金会、开源联盟组织以及开源相关技术平台建立广泛连接。“开源绝不仅仅是将代码丢出去,也不仅是开发团队的工作。我们深受Apache软件基金会的影响——坚持开放、共享、协同的开源精神。而微众银行这33个开源项目背后,都有着一众具备开源精神的人们。”钟燕清介绍到,当开发团队决定和执行开源时,开源管理办公室、法务、合规与知识产权等多个部门就会通力合作,持续给项目提供支持,吸引和激发更多的开发者与用户参与其中,“微众银行的开源不着眼于短期商业利益,开发团队与我们这些职能支持团队,也并不是在达成领导下达的KPI。我们聚在一起共事,是因为对开源精神的认同。同时,又在透明、共享、协作的开源实践中,分享社区逐步壮大的喜悦。社区的成功,就是我们的成功。”

在开源精神的推动下,越来越多的微众人在工作内外,加入了支持开源社区的工作中。微众银行开源管理办公室的康悦,就利用业余时间成为各大开源社区的志愿者,一边学习开源社区的运营经验,一边将在微众银行积攒的开源能量传递给更多人。2021年,她作为开源社顾问委员会工作组成员,承担了中国开源年会(COSCon)深圳分会场的筹备工作,并被评选为开源社开源之星。微众银行区块链核心开发者石翔在FISCO BCOS开源社区牵头组建了人数多达70人的跨链技术专项兴趣小组CC-SIG,以代码任务、Meetup学习等形式,研究实现不同区块链间的互联互通。近期,CC-SIG小组建设完成了Hyperledger Fabric 2.0 跨链适配器的代码仓库,实现FISCO BCOS与Fabric 2.0 的跨链适配。对微众人来说,开源不仅不是不务正业,还能获得褒奖。公司设置了即时激励奖,在颁发荣誉证书外,还有相应的现金,用于奖励突出的社区贡献。如果是通过评选的优秀项目,还能获得内部相应的积分作为激励。此外,微众人不论是参与外部开源还是内部开源,都能在申请晋级升职时获得很好的良性助力。

微众银行1024技术周

目前,微众银行超过50%的员工皆为技术人员,他们之中超过50%的人都有Github账户并活跃在各大开源社区。微众银行内部也有诸如科技问问、微众开源等开源心得及技术讨论平台,形成了活跃的开源氛围。微众银行企业及同业科技产品部的资深开发专家李宗波,早在2008年,就给著名的日志组件slf4j贡献过优化代码,至今分享了近200篇开源软件使用和优化心得。如今,他依然保持着对开源的热忱,在微众银行的内部开源项目与平台积极分享自己的代码和经验。在加入微众不久时,一起生产慢SQL引发的故障,促使李宗波思考能否通过开源组件来提前发现业界经常头痛的SQL潜在隐患。在深入研究后,他基于国产开源组件druid,进行了增强特性封装,实现了绝大部分SQL隐患都能通过组件自动提前发现,由此做出内部开源组件Weup-druid,大大减少了生产故障。

“我们对内部开源的重视,并不亚于外部开源。”钟燕清表示,如果内部开源不够透明,或者说不够开放,很多开发者只是在自己的小格子里面工作,没办法横向进一步发挥自己的价值,个人成长速度也会比较局限。如果在内部能够去建立这种高效、协同、透明的内部开源的协作模式,其实开发者在外部社区也能够更如鱼得水,可以承担更多的工作,为组织去创造更多的价值,产生更多的创新,最后形成一个多赢的局面。

微众银行正式成立技术监督委员会 TOC

为此,在今年微众银行1024技术周上,微众银行进一步优化内部的开源管理,技术监督委员会(Technical Oversight Committee, 简称TOC)正式成立。TOC将微众银行每个部门的技术大拿聚集起来,作为评委团,从全公司的备选技术项目中甄选优秀的开源项目。TOC不讨论业务,不讨论产品,以技术为检验项目的唯一标准,以共知、共识、共建的精神,让不断涌现出的项目,更快地在技术层面达成最优解。“来自不同部门的A、B团队也许在孕育类似的开源项目,有了TOC纯粹的技术标准,就可以决出哪一种技术更优质,从而引导不同团队、不同部门的同事,不重复造轮子,而是聚力使到一处去。”钟燕清认为,建立TOC这样的组织,能让企业内部开放、透明、高效、协同的开源文化流动,帮助员工打破工作的边界,自由探索更多的兴趣爱好和特长,进一步参与到关键项目的建设中,建立和其他团队的连接,提升个人的技术能力。此外,基于技术大拿在各自团队的影响力,可以带头督促和鼓励其他同事参与开源,推动众人共建自下而上的企业内部开源生态。

开源不是微众银行的一个 KPI、领导的命令,而是企业长期坚持的战略和文化。以终为始,全面开花的开源治理方式,让微众银行不仅能够推出 Linkis 等优秀开源项目,更是将开源基因渗透到每一位开源参与者的血液中。

独行快,众行远。在微众银行这个攀登者眼前,远方山脉的轮廓已经逐渐清晰,而他探索开源世界的脚步一直在路上。

想了解更多Linkis 项目内容,立即点击“阅读原文


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

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