2018至2019年,在那风起“云”涌的日子里,传统IT企业和云服务提供商纷纷盯上了开源这块富饶的土地。继微软75亿美元收购素有“开发者神器”之称的GitHub后,蓝色巨人IBM斥资340亿美元拿下开源界“一哥”Red Hat,阿里巴巴也以9000万欧元揽得Flink背后的创业新星Data Artisans (后更名为Ververica),代表中国企业参与全球化开源开发者生态的布局与角逐。
短短数年后,这些当年多多少少都曾被诟病“商业公司破坏开源生态”的收购案,如今恰恰证明商业巨头介入对于开源生态的持续繁荣是何等重要。种种迹象表明,在时代变革的浪潮下,迅速发展的公有云厂商不仅不是开源的“拦路虎”,反而还能促进开源软件生态快速成长,正在成为开源的引领者。
仅2022年我们看到,Github 新增了2050万开发人员,总数达到 9400万,同比大增27%。Flink的Github Star数和贡献者人数也在以同比超30%的速度增长,如今Star数已超2万个,拥有上千名贡献者 (contributors),有超过20万开发者关注、超过100家国内外知名公司参与代码贡献,月下载量峰值突破1400万次,已连续两年蝉联Apache基金会财年报告最活跃项目。
这些事实无疑再次印证了开源软件领域那些“金玉良言”——开源与商业并不矛盾:开源项目背后的商业公司,往往是推动开源项目生态繁荣的关键;开源项目后面的商业公司若不在,开源项目本身必然走向衰落或灭亡。
单以Flink这一开源项目从“技术领先”到“生态领先”的蜕变之旅来看,这种“铁律”到云时代不仅没有失效,反而得到了发扬光大。阿里的深度介入,为这个诞生于欧洲的项目注入了来自中国的雄厚的技术、人才和应用生态,推动Flink全球化社区快速演进,支撑各行各业规模商用,一路狂飚成为全球大数据实时计算业界的事实标准!
生于欧洲爆发于中国,中国开发者推动Flink狂飙
Flink最早诞生于德国柏林工业大学大数据研究项目Stratosphere。2014年,Stratosphere项目组核心成员孵化出Flink,将Flink定位为主攻流处理计算 (Streaming) 的大数据引擎;同年,将Flink捐赠给Apache软件基金会。2015年,Flink成为Apache顶级项目。
在Flink横空出世之前,上一代流式计算引擎的名字叫Storm。Flink取而代之的关键在于它是一款有状态的流计算,而Storm没有。换句话说,除了低延迟、高吞吐的流计算能力,Flink还能够将流计算与状态存储进行有机融合,从而在框架层支持整个流计算状态的精准数据一致性。正因为如此,Flink很快击败Storm,受到开发者青睐,迅速成为Apache顶级项目。
不过,Flink真正的爆发始于2019年。彼时,Flink技术路线最早的拥趸之一——阿里收购了Flink背后的公司,成为Flink社区最大的推动者;同年,阿里将内部自研并演进多时的Flink分支Blink开源,一举为Flink贡献超百万行代码。特别是Stream SQL的注入,使得Flink社区也有了一套非常易用的Stream SQL,开发者们无需再写高难度的Java代码,大幅降低了开发门槛。
自那以后阿里在核心技术、人才培养、社区运营以及应用落地等维度持续发力,中国开发者大量涌入,推动Flink全球化生态实现爆发式增长。数据显示,Flink迄今已有超过20万开发者关注、超过100家国内外知名公司参与代码贡献,月度下载量峰值已突破1400万次,形成了庞大的用户和开发者生态。其中2022年阿里、腾讯、字节跳动等中国企业贡献了超过一半的代码;Flink社区在Github上产生的Pull Request有45%来自于中国开发者,表明中国开发者已经成为Flink全球化社区的中坚力量。
在中国开发者力量的大力驱动下,Flink从2020年开始已成为全球范围内大数据实时计算业界的事实标准。如今只要想到实时流计算,基本上都会选择Apache Flink。其应用也从早期的互联网行业逐步扩展到政务、金融、制造、零售、交通出行、传媒、游戏、科技等更多行业。短短数年间,Flink完成了一个开源项目从技术领先到生态领先的蜕变之旅!
从使用者到主导者,阿里引领Flink社区快速演进
众所周知,开源社区是开源生态发展壮大的根基。中国不缺开发者,但长期以来在开源软件领域的形象是世界开源大国,而不是开源强国,其中最显著的标志是缺乏拥有主导权的开源社区,无法定义和掌控核心项目的走向。近些年在政策及市场需求的驱动下,领先企业纷纷迈出了构建具有主导权的开源社区的步伐。阿里之于Flink社区,正是其中的典型。
熟悉阿里业务的都知道,大数据实时计算可谓是阿里最显著的标签之一。比如每年双11我们看到天猫交易大屏幕上显示的那些跳动的实时成交数字,就是实时流计算的结果。那些瞬息变化的数字,需要汇总各个地方的海量报表、数据库等数据,在毫秒级别的时间延迟内进行计算,并将计算结果汇总为单一的视图呈现。此外诸如实时广告、推荐、欺诈检测、服务质量监控等等,背后都有实时流计算的身影。
所以早在2015年阿里就开始调研Flink,并于2016年在双11搜索推荐场景中首次使用,随后利用Flink实现了搜索推荐和在线学习全链路实时化。2017年,Flink成为阿里集团内实时计算的标准解决方案。
2018年,阿里将Flink上云,开启阿里云上基于Flink的商业化产品供给,以更好地为中小企业服务。同年,阿里将Flink的标杆大会Flink Forward引入中国并连续举办,让广大中国开发者与这个大数据领域的顶级技术大会零距离接触,加速了Flink社区在中国的渗透。
然后是关键的2019年,阿里收购Flink背后的公司,并开源自己在Flink技术路线上潜心打造的Blink回馈社区,以超百万行代码的贡献在Runtime、SQL、PyFlink、ML等多个维度大幅提升了Flink的表现,随后开始主导推进Flink的版本发布,携手中国开发者力量开启全球化社区建设之旅。同年阿里云推出全球统一的Flink企业版平台Ververica Platform,持续在开源产品化方面发力。
2020年,阿里将“压箱底”的Blink内核也合并到Flink内核中,同时发起Apache Flink中文社区,全面支持开源社区的全球化发展。当年双11,Flink包揽了阿里集团内部所有的全链路实时化解决方案,规模达到百万级CPU Core,实时数据处理峰值创下40亿条记录/秒的新纪录。自那时起,随着阿里云的产品和内部服务都基于开源的Flink内核来实现,AWS、Cloudera等云计算和大数据厂商均将Flink内置为标准的云产品,Flink成为事实上的全球实时计算标准!
数据显示,截至目前阿里与Ververica共同主导了211个FLIP,贡献了Flink 70%以上的核心改进;累计培养了近70位Flink核心贡献者 (含项目管理委员会PMC成员和活跃贡献者committer),占比超70%;连续举办了4届FFA大会 (Flink Forward Asia)及各种开发者活动,大力推广Flink生态;通过阿里云上的Flink云产品和Flink企业版平台Ververica Platform,推动了Flink在各行各业的规模落地……可以说在方方面面都发挥了关键推手的作用。
至此,阿里从使用开源、贡献开源到主导开源,蹚出了一条构建具有主导权的开源社区的成功路径,向世界证明了中国的技术、人才和应用生态不仅可以和世界开源社区接轨,而且还能引领全球化开源社区的快速演进、蓬勃发展。
向“流式数仓”演进,加速“流批一体”时代到来
当然必须意识到,开源世界的技术更迭是无比迅捷的。从Hadoop、Hive到Storm再到Spark、Flink,从批处理到流计算再到“流批一体”,技术架构与市场需求总是在做双向选择,稍不留神就有可能被“后浪”拍死在沙滩上。总体来看,如今无论是批处理还是流计算出生的技术架构,都在将流批一体作为努力方向,力争以一套引擎同时满足实时和离线计算需求。
有鉴于此,阿里在2019年将Blink代码贡献给Flink后,便着手从1.9版本开始主导推动Flink流批一体融合,包括在API层面实现SQL与DataStream的流批统一,用户只需写一份代码即可运行在流模式或是批模式;在架构层面实现一个作业同时处理有限数据集和无限数据集,并且同时对接流式存储和批式存储,一套代码处理两套数据源;在运行层面做到一套调度框架同时适用于流和批的作业……
在阿里巴巴开源委员会副主席、阿里云开源大数据平台负责人、Flink中文社区发起人王峰看来,下一阶段Flink社区新的机会点是继续提升一体化的体验,解决存储层割裂的问题,来实现一套实时数据链路。通过Flink流批一体的SQL和流批一体的存储,构建一套真正一体化体验的流式数仓 (Streaming Warehouse)。
而实现流式数仓的关键在于打造生产可用的流批一体存储,同时支持高效的流读、流写、批读、批写,让数仓的数据流动起来。为此阿里在2022年发起Flink Table Store (现已更名为Paimon)项目,旨在实现流批一体的存储能力,推动Flink从流式计算走向流式数仓,使得用户在整个全链路的开发过程中都可以拥有全增量一体化的开发体验,以及统一的数据存储和管理体系,实现“终极”的流批一体。
毋庸讳言,以流式数仓为代表的流批一体时代一旦到来,将不仅意味着业务开发效率和计算性能的进步,也会让计算集群的资源利用率得到进一步提升。毕竟,批和流一套引擎,运行在一套资源底座上,不仅会节省开发和运维成本,同时也会大幅节省计算所耗的资源成本——这在算力昂贵的数智经济时代别提有多重要。阿里引领下的Flink社区以此为演进目标,足见背后的雄心壮志。
小结:
“中国开发群体走向哪里,哪里就有可能成为制高点。”中国科学院院士王怀民在2022开放原子开源峰会上指出,“中国开发者在世界开源领域所扮演的角色,正在从项目主要参与者演变为一些具有代表性的开源项目的发起者和主导者。”从Flink这个阿里代表性的开源实践案例看,这一论断正在被现实验证,崛起的中国开发者推动了Flink的狂飙,正在全球开源舞台扮演更重要的角色!
深究这一切发生的底层逻辑,正如开篇所说,商业巨头主导是推动开源项目生态繁荣的关键。当云与开源在新的计算时代互相吸引,浪潮之巅的云巨头有能力也有责任构建具有主导权的开源社区,将先进的开源技术以更低的门槛推向更广阔的市场。事实也表明,领先的云厂商正在成为开源的引领者,以云+开源构筑数字世界的根基,支撑各行各业开发者拥抱云与开源,加速迈向数智未来。